async def getUserInfo(ns={}): # ns = { # # 'userid': 'user_abcd', # 'orgid': 'APPbNUfV5Im_KlZNnBRjd' # } db = DBPools() async with db.sqlorContext('kboss') as sor: try: if not ns.get('orgid'): # find orgid info from users org_info = await sor.R('users', {'id': await get_user(), 'del_flg': '0'}) if org_info: orgid = org_info[0].get('orgid') else: return { 'status': False, 'msg': 'can not find orgid from users' } else: orgid = ns.get('orgid') orgs = await sor.R('organization', {'id': orgid, 'del_flg': '0'}) org = orgs[0] if orgs else {} nss = {} nss['orgid'] = orgid nss['fullName'] = org.get('orgname') or '' nss['name'] = org.get('orgname') or '' nss['identityCode'] = org.get('orgcode') or '' nss['address'] = org.get('address') or '' nss['contact'] = org.get('contactor') or '' nss['tel'] = org.get('contactor_phone') or '' nss['email'] = org.get('emailaddress') or '' # find salemanid info from customers cust = await sor.R('customer', {'customerid': orgid, 'del_flg': '0'}) customer = cust[0] if cust else {} salemanid = customer.get('salemanid') org_name = '' if salemanid: saleman = await sor.R('users', {'id': salemanid, 'del_flg': '0'}) saleman_user = saleman[0] if saleman else {} salemanorgid = saleman_user.get('orgid') if salemanorgid: org_name_li = await sor.R('organization', {'id': salemanorgid, 'del_flg': '0'}) if org_name_li: org_name = org_name_li[0].get('orgname') or '' else: saleman_user = {} nss['saleMgrName'] = saleman_user.get('username') or '' nss['saleMgrEmail'] = saleman_user.get('email') or '' nss['saleMgrTel'] = saleman_user.get('mobile') or '' # add saleman org name nss['saleorgname'] = org_name # find invoice attr from orgid invoice_attr = await sor.R('invoice_attr', {'customerid': orgid, 'del_flg': '0'}) invoice = invoice_attr[0] if invoice_attr else {} nss['bankName'] = invoice.get('bank_name') or '' nss['bankAcc'] = invoice.get('bank_account') or '' nss['identityName'] = invoice.get('invoice_title') or '' nss['taxTel'] = invoice.get('phone') or '' nss['taxpayerIdentity'] = invoice.get('tax_no') or '' nss['taxAddress'] = invoice.get('address') or '' # find zj_users from orgid zj_attr = await sor.R('zj_users', {'orgid': orgid, 'del_flg': '0'}) zj = zj_attr[0] if zj_attr else {} nss['userAc'] = zj.get('userac') or ('kboss_' + orgid) nss['userPhone'] = zj.get('userphone') or nss['tel'] nss['remark'] = zj.get('remark') or '' nss['ak'] = zj.get('ak') or '' nss['sk'] = zj.get('sk') or '' nss['thirdId'] = zj.get('thirdid') or '' nss['appId'] = zj.get('appid') or '' nss['supId'] = zj.get('supid') or '' nss['sync_status'] = zj.get('sync_status') return { 'status': True, 'msg': 'get user info success', 'data': nss } except Exception as e: raise e return { 'status': False, 'msg': 'get user info failed', 'data': '' } async def saleGetUsers(ns={}): """ get users id * :param ns: :return: """ db = DBPools() async with db.sqlorContext('kboss') as sor: if not await get_user(): return { "status": False, "msg": "user id is empty, please check", } try: org_list = [] lizhi_list = await sor.R('transfer_record', {'change_id': await get_user()}) ids = list(map(lambda x: x['customer_id'], lizhi_list)) cus_list = await sor.R('customer', {'salemanid': await get_user()}) for cus in cus_list: customerid = cus.get('customerid') if ns.get('kv') == 'zj': # 判断中金users是否存在,存在就查询 exists_zj_users = await sor.R('zj_users', {'orgid': customerid}) if exists_zj_users: res_dict = await getUserInfo({'orgid': customerid}) if res_dict.get('status') and res_dict.get('data'): org_list.append(res_dict.get('data')) elif ns.get('kv') == 'jncs': # 获取济南超算id jncs_li = await sor.R('organization', {'orgname': '济南超算', 'del_flg': '0'}) jscs_id = jncs_li[0].get('id') # 获取购买过济南超算产品的用户 产品持有表 ress = await sor.R('customer_goods', {'customerid': customerid, 'providerrid': jscs_id}) if ress: org_list.append(ress) else: org_content_li = await sor.R('organization', {'id': customerid}) org_content = org_content_li[0] if org_content_li else [] if org_content: if customerid in ids: org_content["type"] = '转接客户' transfer_info = sorted(await sor.R('transfer_record', {'customer_id': customerid}), key=lambda x: x['create_at'], reverse=True) transfer_time = transfer_info[0]['create_at'] if transfer_info else None previous_sales = None for transfer in transfer_info: # print('111111137219047923042141', transfer_info) if transfer['change_id'] == await get_user(): previous_sales = transfer['dimission_id'] previous_id = await sor.R('users', {'id': previous_sales}) previous_name = await sor.R('users', {'username': previous_id[0]['username']}) if previous_name: previous_sales_name = previous_name[0]['username'] else: previous_sales_name = None break org_content["transfer_time"] = transfer_time org_content["previous_sales"] = previous_sales_name org_list.append(org_content) else: org_content["type"] = '直接客户' org_content["transfer_time"] = None org_content["previous_sales"] = None org_list.append(org_content) return { "status": True, "msg": "get user success", "data": org_list } except Exception as e: return { "status": False, "msg": "get user failed", "data": str(e) } ret = await saleGetUsers(params_kw) return ret