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

94 lines
3.7 KiB
Plaintext

async def saveUser(ns={}):
db = DBPools()
async with db.sqlorContext('kboss') as sor:
try:
if ns.get('orgid'):
orgid = ns.get('orgid')
else:
# 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'
}
org = {}
org['id'] = orgid
org['orgname'] = ns.get('fullName')
org['orgname'] = ns.get('name')
org['orgcode'] = ns.get('orgcode')
org['address'] = ns.get('address')
org['contactor'] = ns.get('contact')
org['contactor_phone'] = ns.get('tel')
org['emailaddress'] = ns.get('email')
await sor.U('organization', org)
# default have saleman and can update name, email, mobile
users = {}
users['username'] = ns.get('saleMgrName')
users['email'] = ns.get('saleMgrEmail')
users['mobile'] = ns.get('saleMgrTel')
# 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')
if salemanid:
users['id'] = salemanid
saleman = await sor.U('users', users)
else:
# TODO New registered user has no sale person
saleman_user = {}
exist_invoice = await sor.R('invoice_attr', {'customerid': orgid})
invoice_attr = {}
invoice_attr['customerid'] = orgid
invoice_attr['bank_name'] = ns.get('bankName')
invoice_attr['bank_account'] = ns.get('bankAcc')
invoice_attr['invoice_title'] = ns.get('identityName')
invoice_attr['phone'] = ns.get('taxTel')
invoice_attr['tax_no'] = ns.get('taxpayerIdentity')
invoice_attr['address'] = ns.get('taxAddress')
if exist_invoice:
invoice_attr['id'] = exist_invoice[0].get('id')
await sor.U('invoice_attr', invoice_attr)
else:
invoice_attr['id'] = uuid()
await sor.C('invoice_attr', invoice_attr)
exist_zj_users = await sor.R('zj_users', {'orgid': orgid})
zj_users = {}
zj_users['orgid'] = orgid
zj_users['salemgrname'] = ns.get('saleMgrName')
zj_users['salemgremail'] = ns.get('saleMgrEmail')
zj_users['salemgrtel'] = ns.get('saleMgrTel')
zj_users['userac'] = ns.get('userAc')
zj_users['userphone'] = ns.get('userPhone')
zj_users['remark'] = ns.get('remark')
zj_users['ak'] = ns.get('ak')
zj_users['sk'] = ns.get('sk')
zj_users['thirdid'] = ns.get('thirdId')
zj_users['appid'] = ns.get('appId')
zj_users['supid'] = 99
if exist_zj_users:
zj_users['id'] = exist_zj_users[0].get('id')
await sor.U('zj_users', zj_users)
else:
zj_users['id'] = uuid()
await sor.C('zj_users', zj_users)
return {
'status': True,
'msg': 'save user success'
}
except Exception as e:
return {
'status': False,
'msg': 'save user failed',
'err_data': e
}
ret = await saveUser(params_kw)
return ret