132 lines
7.0 KiB
Plaintext
132 lines
7.0 KiB
Plaintext
async def registerUser(ns):
|
|
"""
|
|
用户注册
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
if ns:
|
|
userns = {'username': ns['username']}
|
|
isuser = await sor.R('users', userns)
|
|
if len(isuser) >= 1:
|
|
return {'status': False, 'msg': '用户名已注册'}
|
|
useremai = {'email': ns['email']}
|
|
isuser = await sor.R('users', useremai)
|
|
if len(isuser) >= 1:
|
|
return {'status': False, 'msg': '该邮箱已注册'}
|
|
usermobile = {'mobile':ns['mobile']}
|
|
isuser = await sor.R('users', usermobile)
|
|
if len(isuser) >= 1:
|
|
return {'status': False, 'msg': '该手机号已注册'}
|
|
if len(ns.get('password')) < 6:
|
|
return {'status': False, 'msg': '密码必须6位数以上'}
|
|
#通过邀请码注册
|
|
if ns.get('invitecode'):
|
|
invitecodens = {}
|
|
invitecodens['invitecode'] = ns['invitecode']
|
|
reacss = await sor.R('invitecode', invitecodens)
|
|
if len(reacss) >= 1:
|
|
date = await get_business_date(sor=None)
|
|
if reacss[0]['expire_date'] < date:
|
|
return {'status': False, 'msg': '邀请码过期'}
|
|
try:
|
|
ns['id'] = uuid()
|
|
# ns['id'] = UUID()
|
|
orgid = ns['id']
|
|
ns['contactor_phone'] = ns.get('mobile')
|
|
usercode = await sor.R('users', {'id': reacss[0]['iusserid'], 'del_flg': '0'})
|
|
# 通过域名注册
|
|
if ns.get('domain_name'):
|
|
reseller = await sor.R('reseller', {'domain_name': ns.get('domain_name')})
|
|
if len(reseller) >= 1:
|
|
org = await sor.R('organization', {'id': reseller[0]['orgid'], 'del_flg': '0'})
|
|
ns['parentid'] = org[0]['id']
|
|
else:
|
|
ns['parentid'] = usercode[0]['orgid']
|
|
else:
|
|
ns['parentid'] = usercode[0]['orgid']
|
|
await sor.C('organization', ns)
|
|
ns['id'] = uuid()
|
|
# ns['id'] = UUID()
|
|
userid = ns['id']
|
|
ns['orgid'] = orgid
|
|
ns['password'] = password_encode(ns['password'])
|
|
await sor.C('users', ns)
|
|
listrole = ['管理员', '客户']
|
|
for i in listrole:
|
|
role = await sor.R('role', {'role': i, 'org_type': ns['org_type']})
|
|
await sor.C('userrole', {'id': uuid(), 'userid': userid, 'roleid': role[0]['id']})
|
|
ns['invite_code'] = ns['invitecode']
|
|
ns['customerid'] = orgid
|
|
ns['id'] = uuid()
|
|
# ns['id'] = UUID()
|
|
ns['salemanid'] = reacss[0]['iusserid']
|
|
await sor.C('customer', ns)
|
|
promoted_cutomerns = {}
|
|
promoted_cutomerns['id'] = uuid()
|
|
# promoted_cutomerns['id'] = UUID()
|
|
promoted_cutomerns['inviteid'] = reacss[0]['id']
|
|
promoted_cutomerns['customer'] = orgid
|
|
promoted_cutomerns['join_date'] = datetime.datetime.now()
|
|
await sor.C('promoted_cutomer', promoted_cutomerns)
|
|
promote_discount = await sor.R('promote_discount', {'promotingid': reacss[0]['promotingid']})
|
|
iusseriduser = await sor.R('users', {'id': reacss[0]['iusserid']})
|
|
dictns = {}
|
|
dictns['id'] = uuid()
|
|
dictns['offer_orgid'] = iusseriduser[0]['orgid']
|
|
dictns['bid_orgid'] = orgid
|
|
dictns['salemode'] = '0'
|
|
dictns['start_date'] = datetime.datetime.now()
|
|
dictns['end_date'] = '9999-12-31'
|
|
await sor.C('saleprotocol', dictns)
|
|
for i in promote_discount:
|
|
products = await sor.R('product', {'id': i['productid']})
|
|
product_salemode = {}
|
|
product_salemode['id'] = uuid()
|
|
product_salemode['protocolid'] = dictns['id']
|
|
product_salemode['providerid'] = products[0]['providerid']
|
|
product_salemode['productid'] = i['productid']
|
|
product_salemode['discount'] = i['discount']
|
|
await sor.C('product_salemode', product_salemode)
|
|
await openCustomerAccounts(sor, usercode[0]['orgid'], orgid)
|
|
return {'status': True, 'msg': '邀请码注册成功'}
|
|
except Exception as error:
|
|
raise error
|
|
else:
|
|
return {'status': False, 'msg': '邀请码不正确'}
|
|
else:
|
|
try:
|
|
ns['id'] = uuid()
|
|
org_id = ns['id']
|
|
ns['contactor_phone'] = ns.get('mobile')
|
|
# 通过域名注册
|
|
if ns.get('domain_name'):
|
|
reseller = await sor.R('reseller', {'domain_name': ns.get('domain_name')})
|
|
if len(reseller) >= 1:
|
|
org = await sor.R('organization', {'id': reseller[0]['orgid'], 'del_flg': '0'})
|
|
else:
|
|
org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'})
|
|
else:
|
|
org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'})
|
|
ns['parentid'] = org[0]['id']
|
|
await sor.C('organization', ns)
|
|
ns['id'] = uuid()
|
|
userid = ns['id']
|
|
ns['password'] = password_encode(ns['password'])
|
|
ns['orgid'] = org_id
|
|
await sor.C('users', ns)
|
|
listrole = ['管理员', '客户']
|
|
for i in listrole:
|
|
role = await sor.R('role', {'role': i, 'org_type': ns['org_type']})
|
|
await sor.C('userrole', {'id': uuid(), 'userid': userid, 'roleid': role[0]['id']})
|
|
ns['id'] = uuid()
|
|
ns['customerid'] = org_id
|
|
await sor.C('customer', ns)
|
|
await openCustomerAccounts(sor, org[0]['id'], org_id)
|
|
return {'status': True, 'msg': '注册成功'}
|
|
except Exception as error:
|
|
raise error
|
|
return {'status': False, 'msg': '注册失败'}
|
|
|
|
|
|
ret = await registerUser(params_kw)
|
|
return ret |