From 70a19238c16aec7261c76fb66c0b717df3ba7550 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 24 Jun 2026 00:56:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B3=A8=E5=86=8C=E6=97=B6=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E4=BF=83=E9=94=80=E7=A0=81=E5=B9=B6=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=BD=92=E5=B1=9E=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - register.dspy: 用户名密码注册后检查promo_code_id - sms_register.dspy: 短信注册后检查promo_code_id - code_login.dspy: 验证码登录/自动注册后检查promo_code_id - phone_login.dspy: 手机登录/自动注册后检查promo_code_id - 绑定失败只记日志不影响注册成功(try/except) --- wwwroot/phone_login.dspy | 12 +++++++++++- wwwroot/user/code_login.dspy | 10 ++++++++++ wwwroot/user/register.dspy | 9 +++++++++ wwwroot/user/sms_register.dspy | 9 +++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/wwwroot/phone_login.dspy b/wwwroot/phone_login.dspy index 8445ab6..c615668 100644 --- a/wwwroot/phone_login.dspy +++ b/wwwroot/phone_login.dspy @@ -96,7 +96,17 @@ try: await openCustomerAccounts(sor, ownerid, orgid) except Exception as e: exception(f'{e}') - + + # 检查是否有促销码,如果有则绑定客户归属关系 + promo_code_id = params_kw.get('promo_code_id') + if promo_code_id: + try: + _new_orgid = d['data']['user'].orgid + await bind_customer(request, DictObject(promo_code_id=promo_code_id, customerid=_new_orgid)) + debug(f'phone_login: customer {_new_orgid} bound via promo_code {promo_code_id}') + except Exception as e: + exception(f'phone_login: bind_customer failed: {e}') + r = d['data']['user'] await remember_user(r.id, username=r.username, userorgid=r.orgid) debug(f'here') diff --git a/wwwroot/user/code_login.dspy b/wwwroot/user/code_login.dspy index 4da92e7..49c9f5b 100644 --- a/wwwroot/user/code_login.dspy +++ b/wwwroot/user/code_login.dspy @@ -209,6 +209,16 @@ try: except Exception as e: exception(f'{e}') + # 检查是否有促销码,如果有则绑定客户归属关系 + promo_code_id = params_kw.get('promo_code_id') + if promo_code_id: + try: + _new_orgid = d['data']['user'].orgid + await bind_customer(request, DictObject(promo_code_id=promo_code_id, customerid=_new_orgid)) + debug(f'code_login: customer {_new_orgid} bound via promo_code {promo_code_id}') + except Exception as e: + exception(f'code_login: bind_customer failed: {e}') + r = d['data']['user'] await remember_user(r.id, username=r.username, userorgid=r.orgid) return { diff --git a/wwwroot/user/register.dspy b/wwwroot/user/register.dspy index d0be462..0c03da4 100644 --- a/wwwroot/user/register.dspy +++ b/wwwroot/user/register.dspy @@ -22,6 +22,15 @@ async with db.sqlorContext(dbname) as sor: except Exception as e: exception(f'{e},{orgid=}') + # 检查是否有促销码,如果有则绑定客户归属关系 + promo_code_id = params_kw.get('promo_code_id') + if promo_code_id: + try: + await bind_customer(request, DictObject(promo_code_id=promo_code_id, customerid=orgid)) + debug(f'register: customer {orgid} bound via promo_code {promo_code_id}') + except Exception as e: + exception(f'register: bind_customer failed for {orgid} via {promo_code_id}: {e}') + # 注册成功后自动登录 await remember_user(user.id, username=user.username, userorgid=user.orgid) return { diff --git a/wwwroot/user/sms_register.dspy b/wwwroot/user/sms_register.dspy index d6adaf5..762a1cf 100644 --- a/wwwroot/user/sms_register.dspy +++ b/wwwroot/user/sms_register.dspy @@ -130,6 +130,15 @@ try: except Exception as e: exception(f'{e},{orgid=}') + # 检查是否有促销码,如果有则绑定客户归属关系 + promo_code_id = params_kw.get('promo_code_id') + if promo_code_id: + try: + await bind_customer(request, DictObject(promo_code_id=promo_code_id, customerid=orgid)) + debug(f'sms_register: customer {orgid} bound via promo_code {promo_code_id}') + except Exception as e: + exception(f'sms_register: bind_customer failed for {orgid} via {promo_code_id}: {e}') + # 注册成功后自动登录 await remember_user(user.id, username=user.username, userorgid=user.orgid) return {