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