salescrm/b/Organization/getOrganization.dspy
2025-10-27 15:50:44 +08:00

55 lines
2.7 KiB
Plaintext

async def getOrganization(ns):
"""展示机构"""
db = DBPools()
async with db.sqlorContext('kboss') as sor:
if not ns.get('parentid') and not ns.get('type'):
sql = """select * from organization where org_type = ${org_type}$ and del_flg = 0"""
reacs = await sor.sqlExe(sql,ns)
list = []
dict = {}
if reacs:
for i in reacs:
dict[i['id']] = i
for j in reacs:
if j['parentid'] == None or j['parentid'] == '':
list.append(j)
else:
if 'son' not in dict[j['parentid']]:
dict[j['parentid']]['son'] = []
dict[j['parentid']]['son'].append(j)
return {'status': True, 'data': list}
elif ns.get('parentid'):
sql = """select * from organization where org_type = ${org_type}$ and del_flg = 0 and parentid = ${parentid}$ """
reacs = await sor.sqlExe(sql, ns)
return {'status': True, 'data': reacs}
elif ns.get('type'):
user = await sor.R('users', {'del_flg': '0', 'id': ns['id']})
orgid = user[0]['orgid']
if ns.get('orgname'):
datalist = []
reacs = await sor.R('customer', {'del_flg': '0'})
for i in reacs:
userid = await sor.R('users', {'del_flg': '0', 'id': i['salemanid']})
if len(userid) >= 1:
if userid[0]['orgid'] == orgid:
nss = {'id': i['customerid'], 'pattern': '%' + ns.get('orgname') + '%'}
sql = """select * from organization where del_flg = 0 and orgname like ${pattern}$ and id = ${id}$"""
reacse = await sor.sqlExe(sql, nss)
if len(reacse) >= 1:
datalist.append(reacse[0])
return {'status': True, 'data': datalist}
else:
datalist = []
reacs = await sor.R('customer', {'del_flg': '0'})
for i in reacs:
userid = await sor.R('users', {'del_flg': '0','id':i['salemanid']})
if len(userid) >= 1:
if userid[0]['orgid'] == orgid:
organization = await sor.R('organization', {'del_flg': '0','id':i['customerid']})
if len(organization) >= 1:
if organization[0] not in datalist:
datalist.append(organization[0])
return {'status': True, 'data': datalist}
ret = await getOrganization(params_kw)
return ret