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