176 lines
7.6 KiB
Plaintext
176 lines
7.6 KiB
Plaintext
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 |