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

60 lines
3.3 KiB
Plaintext

async def userinvitecode(ns):
""" 客户加入邀请码活动 """
db = DBPools()
async with db.sqlorContext('kboss') as sor:
code = ns.get('invitecode')
if '=' not in code:
return {'status': False, 'msg': '邀请码不正确'}
index = code.index('=') + 1
try:
invitecode = await sor.R('invitecode', {'invitecode': code[index:]})
if len(invitecode) >= 1:
orgid = await sor.R('users', {'id': ns.get('userid')})
promoted_cutomer = await sor.R('promoted_cutomer',
{'inviteid': invitecode[0]['id'], 'customer': orgid[0]['orgid']})
if len(promoted_cutomer) >= 1:
return {'status': True, 'msg': '已参过该活动'}
promote_discount = await sor.R('promote_discount', {'dle_flg':'0','promotingid': invitecode[0]['promotingid']})
saleprotocol = await sor.R('saleprotocol',
{'bid_orgid': orgid[0]['orgid']})
if len(saleprotocol) < 1:
date = await get_business_date(sor=None)
dict2 = {}
dict2['id'] = uuid()
# dict2['id'] = UUID()
useroffer_orgid = await sor.R('users', {'id': invitecode[0]['iusserid']})
dict2['offer_orgid'] = useroffer_orgid[0]['orgid']
dict2['bid_orgid'] = orgid[0]['orgid']
dict2['salemode'] = '0'
dict2['start_date'] = date
dict2['end_date'] = '9999-12-31'
await sor.C('saleprotocol', dict2)
sid = dict2['id']
else:
sid = saleprotocol[0]['id']
saleprotocolid = await sor.R('saleprotocol',
{'bid_orgid': orgid[0]['orgid']})
for i in promote_discount:
product_salemodeid = await sor.R('product_salemode', {'protocolid': saleprotocolid[0]['id'],
'productid': i['productid']})
if len(product_salemodeid) >= 1:
await sor.U('product_salemode', {'id': product_salemodeid[0]['id'], 'discount': i['discount']})
else:
dict1 = {}
dict1['id'] = uuid()
# dict1['id'] = UUID()
dict1['protocolid'] = sid
product = await sor.R('product', {'id': i['productid']})
dict1['providerid'] = product[0]['providerid']
dict1['productid'] = i['productid']
dict1['discount'] = i['discount']
await sor.C('product_salemode', dict1)
await sor.C('promoted_cutomer',
{'id': uuid(), 'inviteid': invitecode[0]['id'], 'customer': orgid[0]['orgid'],
'join_date': datetime.datetime.now()})
return {'status': True, 'msg': '参加成功'}
return {'status': False, 'msg': '验证码不正确'}
except:
return {'status': False, 'msg': '参加失败'}
ret = await userinvitecode(params_kw)
return ret