async def providerSearch(ns={}): """ add new provider `name`: 名称, `description`: 描述, `appid`: 应用id, `providerkey`: 应用key, `state`: 状态, `start_date`: 起效日期, `end_date`: 失效日期, `sale_mode`: 销售方式, `del_flag`: 删除标志 :param ns: :return: """ userid = await get_user() db = DBPools() async with db.sqlorContext('kboss') as sor: try: if await get_user(): orgid_li = await sor.R('users', {'id': userid, 'del_flg': '0'}) ns['orgid'] = orgid_li[0].get('orgid') ns_org_provider = { 'parentid': ns.get('orgid'), 'org_type': '4', 'del_flg': '0', 'sort': 'create_at', 'order': 'desc', 'page': ns.get('page') if ns.get('page') else 1 } org_li = await sor.R('organization', ns_org_provider) org_li_rows = org_li.get('rows') provider_list = [] for org in org_li_rows: org_id = org.get('id') provider_li = await sor.R('provider', {'orgid': org_id, 'del_flg': '0'}) provider_detail = provider_li[0] if provider_li else {} if provider_detail: if provider_detail.get('discount_mode'): provider_detail['salemode'] = 0 elif provider_detail.get('rebate_mode'): provider_detail['salemode'] = 1 elif provider_detail.get('floorprice_mode'): provider_detail['salemode'] = 2 # 查找saleprotocol表 返回protocolid saleprotocol_id_li = await sor.R('saleprotocol', {'offer_orgid': org_id, 'bid_orgid': ns.get('orgid')}) if saleprotocol_id_li: provider_detail['protocolid'] = saleprotocol_id_li[0]['id'] provider_detail['salemode'] = saleprotocol_id_li[0]['salemode'] # provider_detail['settle_mode'] = saleprotocol_id_li[0]['settle_mode'] provider_detail['settle_datep'] = saleprotocol_id_li[0]['settle_dp'] provider_detail['protocolfile'] = saleprotocol_id_li[0]['protocolfile'] provider_detail['provider_table_id'] = provider_detail.pop('id') org.update(provider_detail) provider_list.append(org) return { "status": True, "msg": "provider search success", "data": provider_list } except Exception as e: raise e return { "status": False, "msg": "provider search failed", "data": "" } ret = await providerSearch(params_kw) return ret