ns = params_kw.copy() debug(f'{ns=}') debug(f'get_organization.dspy:{ns=}') if not ns.get('page'): ns['page'] = 1 if not ns.get('sort'): ns['sort'] = 'orgname' sql = '''select a.*, b.province_id_text from (select * from organization where 1=1 {filterstr}) a left join (select k as province_id, v as province_id_text from appcodes_kv where parentid='chnaddr') b on a.province_id = b.province_id ''' filterjson = params_kw.get('data_filter') if not filterjson: fields = [ f['name'] for f in [ { "name": "id", "title": "机构编码", "type": "str", "length": 32 }, { "name": "orgname", "title": "机构名称", "type": "str", "length": 100 }, { "name": "alias_name", "title": "机构别名", "type": "str", "length": 100 }, { "name": "contactor", "title": "联系人", "type": "str", "length": 32 }, { "name": "contactor_phone", "title": "联系人电话", "type": "str", "length": 100 }, { "name": "province_id", "title": "所在省id", "type": "str", "length": 32 }, { "name": "city_id", "title": "所在城市id", "type": "str", "length": 32 }, { "name": "distinct_id", "title": "所在地区id", "type": "str", "length": 32 }, { "name": "emailaddress", "title": "邮箱", "type": "str", "length": 256 }, { "name": "address", "title": "地址", "type": "str", "length": 400 }, { "name": "main_business", "title": "主营业务描述", "type": "str", "length": 1000 }, { "name": "orgcode", "title": "组织结构代码", "type": "str", "length": 100, "comments": "个人客户存身份证" }, { "name": "license_img", "title": "营业执照", "type": "str", "length": 400, "comments": "个人客户存身份证照片" }, { "name": "id_img", "title": "身份证", "type": "str", "length": 400, "comments": "个人客户存身份证背面照片" }, { "name": "parentid", "title": "父机构id", "type": "str", "length": 32 }, { "name": "org_type", "title": "机构类型", "type": "str", "length": 32, "comments": "0:业主机构;1:分销商;2:公司客户;3:个人客户;4:供应商" }, { "name": "accountid", "title": "账号", "type": "str", "length": 32 } ] ] filterjson = default_filterjson(fields, ns) filterdic = ns.copy() filterdic['filterstr'] = '' if params_kw.orgname: filterstr = " and orgname like ${orgname}$ " ns['orgname'] = f'%{params_kw.orgname}%' filterdic['filterstr'] = filterstr sql = sql.format(**filterdic) debug(f'{sql=}') db = DBPools() dbname = await rfexe('get_module_dbname', 'rbac') async with db.sqlorContext(dbname) as sor: r = await sor.sqlPaging(sql, ns) return r return { "total":0, "rows":[] }