kboss/b/product/shoujia_guanli_cha.dspy
2025-07-16 14:27:17 +08:00

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