From 90225fee1ccee112632fe171243b6ecac06dd8ed Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Thu, 16 Jul 2026 13:32:43 +0800 Subject: [PATCH] update --- b/reseller/reseller_add_user.dspy | 19 ++++++++++++++++++- b/user/addUser.dspy | 20 +++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/b/reseller/reseller_add_user.dspy b/b/reseller/reseller_add_user.dspy index 3eebcdf..53736dc 100644 --- a/b/reseller/reseller_add_user.dspy +++ b/b/reseller/reseller_add_user.dspy @@ -1,3 +1,15 @@ +async def get_reseller_user_tenant_orgid(sor, orgid): + reseller = await sor.R('reseller', {'orgid': orgid, 'del_flg': '0'}) + if len(reseller) >= 1: + return orgid + org = await sor.R('organization', {'id': orgid, 'del_flg': '0'}) + if len(org) >= 1 and org[0].get('parentid'): + return org[0]['parentid'] + main_org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'}) + if len(main_org) >= 1: + return main_org[0]['id'] + return None + async def reseller_add_user(ns): """ 添加用户 @@ -15,11 +27,16 @@ async def reseller_add_user(ns): try: ns['id'] = uuid() ns['password'] = password_encode(ns['password']) - user = await sor.R('users', {'username': ns['username']}) + tenant_orgid = await get_reseller_user_tenant_orgid(sor, ns.get('orgid')) + if not tenant_orgid: + return {'status': False, 'msg': '未找到用户所属租户'} + user_sql = """select id from users where username = '%s' and tenant_orgid = '%s' and del_flg = '0' limit 1;""" % (ns['username'], tenant_orgid) + user = await sor.sqlExe(user_sql, {}) if len(user) >= 1: return {'status': False, 'msg': '用户名重复'} rolereacs = await sor.R('role', {'role': '管理员', 'del_flg': '0', 'org_type': '1'}) ns['user_reseller'] = '1' + ns['tenant_orgid'] = tenant_orgid await sor.C('users', ns) await sor.C('userrole', {'userid': ns['id'], 'roleid': rolereacs[0]['id'], 'id': uuid()}) return {'status': True, 'msg': '用户添加成功', 'userid': ns['id']} diff --git a/b/user/addUser.dspy b/b/user/addUser.dspy index a561aa4..2c63bfb 100644 --- a/b/user/addUser.dspy +++ b/b/user/addUser.dspy @@ -1,3 +1,15 @@ +async def get_user_tenant_orgid(sor, orgid): + reseller = await sor.R('reseller', {'orgid': orgid, 'del_flg': '0'}) + if len(reseller) >= 1: + return orgid + org = await sor.R('organization', {'id': orgid, 'del_flg': '0'}) + if len(org) >= 1 and org[0].get('parentid'): + return org[0]['parentid'] + main_org = await sor.R('organization', {'org_type': '0', 'del_flg': '0'}) + if len(main_org) >= 1: + return main_org[0]['id'] + return None + async def addUser(ns): """ 添加用户 @@ -17,11 +29,16 @@ async def addUser(ns): else: user_reseller = '0' ns['password'] = password_encode(ns['password']) - user = await sor.R('users', {'username': ns['username']}) + tenant_orgid = await get_user_tenant_orgid(sor, ns.get('orgid')) + if not tenant_orgid: + return {'status': False, 'msg': '未找到用户所属租户'} + user_sql = """select id from users where username = '%s' and tenant_orgid = '%s' and del_flg = '0' limit 1;""" % (ns['username'], tenant_orgid) + user = await sor.sqlExe(user_sql, {}) if len(user) >= 1: return {'status': False, 'msg': '用户名重复'} ns['id'] = uuid() if not ns.get('type'): + ns['tenant_orgid'] = tenant_orgid await sor.C('users', ns) return {'status': True, 'msg': '添加成功', 'userid': ns['id']} rolereacs = await sor.R('role', {'role': '管理员', 'del_flg': '0', 'org_type': '0'}) @@ -30,6 +47,7 @@ async def addUser(ns): return {'status': False, 'msg': '已有管理员'} ns['orgid'] = 'mIWUHBeeDM8mwAFPIQ8pS' ns['user_reseller'] = user_reseller + ns['tenant_orgid'] = ns['orgid'] await sor.C('users', ns) ns['orgid'] = 'mIWUHBeeDM8mwAFPIQ8pS' await sor.C('userrole', {'userid': ns['id'], 'roleid': rolereacs[0]['id'], 'id': uuid()})