174 lines
7.5 KiB
Plaintext
174 lines
7.5 KiB
Plaintext
async def shoujia_guanli_cha(ns={}):
|
|
"""
|
|
销售看售价
|
|
:return:
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
try:
|
|
ns_dijia = {
|
|
'bid_orgid': ns.get('bid_orgid'),
|
|
'salemode': '2',
|
|
'del_flg': '0'
|
|
}
|
|
ns_shoujia = {
|
|
'offer_orgid': ns.get('bid_orgid'),
|
|
'bid_orgid': '*',
|
|
'salemode': '2',
|
|
'del_flg': '0'
|
|
}
|
|
dijia_res_li = await sor.R('saleprotocol', ns_dijia)
|
|
shoujia_res_li = await sor.R('saleprotocol', ns_shoujia)
|
|
product_all = []
|
|
sj_zibiao_cha_li = []
|
|
for shoujia in shoujia_res_li:
|
|
sj_protocolid = shoujia['id']
|
|
sj_zibiao_cha_li = await sor.R('product_salemode', {'protocolid': sj_protocolid, 'del_flg': '0'})
|
|
for floorprice in dijia_res_li:
|
|
protocolid = floorprice['id']
|
|
zi_biao_cha_li = await sor.R('product_salemode', {'protocolid': protocolid, 'del_flg': '0'})
|
|
for zibiao in zi_biao_cha_li:
|
|
product_detail = {}
|
|
product_detail['gai_dijia_id'] = zibiao['id']
|
|
product_detail['productid'] = zibiao['productid']
|
|
product_detail['floorprice'] = zibiao['price']
|
|
product_table_li = await sor.R('product', {'id': product_detail['productid'], 'del_flg': '0'})
|
|
if product_table_li:
|
|
product_detail.update(product_table_li[0])
|
|
|
|
for sj_zibiao_cha in sj_zibiao_cha_li:
|
|
sj_productid = sj_zibiao_cha['productid']
|
|
if product_detail['productid'] == sj_productid:
|
|
product_detail['gai_shoujia_id'] = sj_zibiao_cha['id']
|
|
product_detail['shoujia'] = sj_zibiao_cha['price']
|
|
product_all.append(product_detail)
|
|
|
|
# 查找供应商名称 赋值给每个产品
|
|
pro_name_li = await sor.R('organization', {'del_flg': '0'})
|
|
for aeo in product_all:
|
|
for aoe_i in pro_name_li:
|
|
if aeo['providerid'] == aoe_i['id']:
|
|
aeo['providername'] = aoe_i['orgname']
|
|
|
|
# # 获取供应商和ptype拼接
|
|
# cc = {}
|
|
# bb = {}
|
|
# for item in product_all:
|
|
# providerid = item['providerid']
|
|
# providername = item['providername']
|
|
# ptype = item['ptype']
|
|
# if providername in cc.keys():
|
|
# ptypes = cc[providername]['ptype']
|
|
# if not ptype in ptypes:
|
|
# ptypes.append(ptype)
|
|
# cc[providername]['ptype'] = ptypes
|
|
# else:
|
|
# bb[providername] = {'providerid': providerid, 'ptype': [ptype]}
|
|
# cc.update(bb)
|
|
# yugo_list = []
|
|
# for yugo in cc.keys():
|
|
# yugo_dic = {}
|
|
# yugo_dic['providername'] = yugo
|
|
# yugo_dic['providerid'] = cc[yugo]['providerid']
|
|
# yugo_dic['ptype'] = [{'ptype': yg} for yg in cc[yugo]['ptype']]
|
|
# yugo_list.append(yugo_dic)
|
|
# # 指定供应商和供应商的所有产品
|
|
# if ns.get('providerid'):
|
|
# ptypes = []
|
|
# prid_res = []
|
|
# # 找到对应供应商的ptype
|
|
# for daer in yugo_list:
|
|
# daer_providerid = daer['providerid']
|
|
# if daer_providerid == ns.get('providerid'):
|
|
# ptypes = daer['ptype']
|
|
# prid_res = [item for item in product_all if item['providerid'] == ns.get('providerid')]
|
|
# # 如果既有供应商id 又有ptype指定的类型
|
|
# if ns.get('ptype'):
|
|
# prid_res = [item for item in product_all if item['providerid'] == ns.get('providerid')
|
|
# and item['ptype'] == ns.get('ptype')]
|
|
# break
|
|
# return {
|
|
# 'status': True,
|
|
# 'msg': '获取供应商对应的产品成功',
|
|
# 'provider_info': ptypes,
|
|
# 'data': prid_res
|
|
# }
|
|
# if ns.get('ptype'):
|
|
# prid_res = [item for item in product_all if item['ptype'] == ns.get('ptype')]
|
|
# return {
|
|
# 'status': True,
|
|
# 'msg': '获取供应商对应的产品成功',
|
|
# 'data': prid_res
|
|
# }
|
|
# if ns.get('keyword'):
|
|
# return {
|
|
# 'status': True,
|
|
# 'msg': '通过关键字查找产品成功',
|
|
# 'provider_info': yugo_list,
|
|
# 'data': [item for item in product_all if ns.get('keyword') in item['name']]
|
|
# }
|
|
# if ns.get('kv') == 'ptype':
|
|
# # 找所有ptype
|
|
# all_ptype = []
|
|
# for juli in yugo_list:
|
|
# juli_ptype = juli['ptype']
|
|
# all_ptype.extend(juli_ptype)
|
|
# filter_all_ptype = []
|
|
# for item in all_ptype:
|
|
# if not item in filter_all_ptype:
|
|
# filter_all_ptype.append(item)
|
|
# return {
|
|
# 'status': True,
|
|
# 'msg': '获取所有产品类型成功',
|
|
# 'data': filter_all_ptype
|
|
# }
|
|
#
|
|
# return {
|
|
# 'status': True,
|
|
# 'provider_info': yugo_list,
|
|
# 'msg': '查看售价产品成功',
|
|
# 'data': product_all
|
|
# }
|
|
|
|
provider_info = []
|
|
for i in product_all:
|
|
provider_dic = {'providername': i.get('providername'), 'providerid': i.get('providerid')}
|
|
if not provider_dic in provider_info:
|
|
provider_info.append(provider_dic)
|
|
|
|
if ns.get('providerid'):
|
|
list2 = []
|
|
for i in product_all:
|
|
if i['providerid'] == ns.get('providerid'):
|
|
list2.append(i)
|
|
product_all = list2
|
|
|
|
# 专属分类
|
|
classify_list_temp = list(set([i.get('classify') for i in product_all]))
|
|
classify_list = [{'class_key': '未配置'} if x == None else {'class_key': x} for x in classify_list_temp]
|
|
|
|
if ns.get('classify'):
|
|
if ns['classify'] == '未配置':
|
|
classify_filter = None
|
|
else:
|
|
classify_filter = ns['classify']
|
|
product_all = [i for i in product_all if i.get('classify') == classify_filter]
|
|
|
|
if ns.get('keyword'):
|
|
product_all = [i for i in product_all if ns['keyword'] in i['name']]
|
|
|
|
return {
|
|
'status': True,
|
|
'msg': '查找产品成功',
|
|
'classify_list': classify_list,
|
|
'provider_info': provider_info,
|
|
'data': product_all
|
|
}
|
|
except Exception as e:
|
|
return {
|
|
'status': False,
|
|
'msg': '查看售价产品失败: %s' % e
|
|
}
|
|
|
|
ret = await shoujia_guanli_cha(params_kw)
|
|
return ret |