58 lines
2.5 KiB
Plaintext
58 lines
2.5 KiB
Plaintext
async def search_user_inquiry(ns={}):
|
||
if not ns.get('url_link'):
|
||
return {
|
||
'status': False,
|
||
'msg': '请传递url_link'
|
||
}
|
||
domain_name = ns.get('url_link').split("//")[1].split("/")[0]
|
||
if 'localhost' in domain_name:
|
||
domain_name = 'dev.opencomputing.cn'
|
||
|
||
db = DBPools()
|
||
async with db.sqlorContext('kboss') as sor:
|
||
search_sql = """select * from product_inquiry where domain_name = '%s' and del_flg = '0' order by update_time desc;""" % domain_name
|
||
result = await sor.sqlExe(search_sql, {})
|
||
if ns.get('to_excel') == '1':
|
||
# 创建映射字段 导出execl
|
||
# 结果转换成 中文名称:值 的字典列表
|
||
field_mapping = {
|
||
'name': '联系人姓名',
|
||
'custom_type': '客户类型',
|
||
'phone': '联系人电话',
|
||
'email': '邮箱',
|
||
'company': '公司名称',
|
||
'content': '咨询内容',
|
||
'feedback': '反馈状态',
|
||
}
|
||
# 新增值映射字典,集中管理各字段的数值转换规则
|
||
value_mapping = {
|
||
'custom_type': {'0': '个人', '1': '企业'},
|
||
'feedback': {'0': '未反馈', '1': '已反馈'} # 根据表结构补充反馈状态映射
|
||
}
|
||
# 转换字典键为中文
|
||
for data_dic in result:
|
||
# 拆分后:显式循环结构(便于后续处理)
|
||
new_data_dic = {}
|
||
# 按field_mapping定义的顺序处理字段,确保输出顺序一致
|
||
for key in field_mapping.keys():
|
||
# 跳过数据中不存在的字段
|
||
if key not in data_dic:
|
||
continue
|
||
value = data_dic[key]
|
||
chinese_key = field_mapping[key]
|
||
if key in value_mapping:
|
||
mapped_value = value_mapping[key].get(str(value), value) # 若未找到对应映射,保留原始值
|
||
new_data_dic[chinese_key] = mapped_value
|
||
else:
|
||
new_data_dic[chinese_key] = value
|
||
data_dic.clear()
|
||
data_dic.update(new_data_dic)
|
||
|
||
return {
|
||
'status': True,
|
||
'msg': 'search success',
|
||
'data': result
|
||
}
|
||
|
||
ret = await search_user_inquiry(params_kw)
|
||
return ret |