kboss/b/product/get_firstpage_product_tree.dspy
2025-12-04 16:28:46 +08:00

722 lines
22 KiB
Plaintext

jiajie_ali_products = [
{
"id": "e1f4a2b3c5",
"thrTitle": "弹性计算",
"value": [
{
"id": "a3b2c1d4e5",
"name": "轻量应用服务器",
"source": "jiajie"
},
{
"id": "b4c3d2e1f5",
"name": "专有宿主机",
"source": "jiajie"
},
{
"id": "c5d4e3f2a1",
"name": "云服务器 ECS",
"source": "jiajie"
},
{
"id": "d2e3f4a5b1",
"name": "弹性伸缩",
"source": "jiajie"
},
{
"id": "e3f4a5b1c2",
"name": "资源编排",
"source": "jiajie"
}
]
},
{
"id": "f5a1b2c3d4",
"thrTitle": "存储",
"value": [
{
"id": "a2b3c4d5e1",
"name": "对象存储 OSS",
"source": "jiajie"
},
{
"id": "b3c4d5e1f2",
"name": "块存储",
"source": "jiajie"
},
{
"id": "c4d5e1f2a3",
"name": "表格存储 OTS",
"source": "jiajie"
},
{
"id": "d5e1f2a3b4",
"name": "日志服务 SLS",
"source": "jiajie"
},
{
"id": "e1f2a3b4c5",
"name": "文件存储 NAS",
"source": "jiajie"
},
{
"id": "f2a3b4c5d1",
"name": "网盘与相册服务",
"source": "jiajie"
},
{
"id": "a3b4c5d1e2",
"name": "智能媒体管理 IMM",
"source": "jiajie"
}
]
},
{
"id": "b4c5d1e2f3",
"thrTitle": "数据库",
"value": [
{
"id": "c5d1e2f3a4",
"name": "云数据库专属集群 MyBase",
"source": "jiajie"
},
{
"id": "d1e2f3a4b5",
"name": "数据传输 DTS",
"source": "jiajie"
},
{
"id": "e2f3a4b5c1",
"name": "数据管理 DMS",
"source": "jiajie"
},
{
"id": "f3a4b5c1d2",
"name": "数据库自治服务 DAS",
"source": "jiajie"
},
{
"id": "a4b5c1d2e3",
"name": "云数据库 ClickHouse",
"source": "jiajie"
},
{
"id": "b5c1d2e3f4",
"name": "云原生多模数据库 Lindorm",
"source": "jiajie"
},
{
"id": "c1d2e3f4a5",
"name": "云数据库 Redis 版",
"source": "jiajie"
},
{
"id": "d2e3f4a5b1",
"name": "云数据库 MongoDB 版",
"source": "jiajie"
},
{
"id": "e3f4a5b1c2",
"name": "云数据库 RDS",
"source": "jiajie"
},
{
"id": "f4a5b1c2d3",
"name": "图数据库 GDB",
"source": "jiajie"
},
{
"id": "a5b1c2d3e4",
"name": "云原生数据仓库 AnalyticDB MySQL",
"source": "jiajie"
},
{
"id": "b1c2d3e4f5",
"name": "云原生关系型数据库 PolarDB",
"source": "jiajie"
},
{
"id": "c2d3e4f5a1",
"name": "云数据库 OceanBase",
"source": "jiajie"
},
{
"id": "d3e4f5a1b2",
"name": "分析型数据库 AnalyticDB PostgreSQL 版",
"source": "jiajie"
},
{
"id": "e4f5a1b2c3",
"name": "云原生分布式数据库 PolarDB-X",
"source": "jiajie"
}
]
},
{
"id": "f5a1b2c3d4",
"thrTitle": "安全",
"value": [
{
"id": "a1b2c3d4e5",
"name": "内容安全",
"source": "jiajie"
},
{
"id": "b2c3d4e5f1",
"name": "数据库审计",
"source": "jiajie"
},
{
"id": "c3d4e5f1a2",
"name": "等保咨询服务",
"source": "jiajie"
},
{
"id": "d4e5f1a2b3",
"name": "安全管家服务",
"source": "jiajie"
},
{
"id": "e5f1a2b3c4",
"name": "加密服务",
"source": "jiajie"
},
{
"id": "f1a2b3c4d5",
"name": "安全评估加固服务",
"source": "jiajie"
},
{
"id": "a2b3c4d5e1",
"name": "云盾证书服务",
"source": "jiajie"
},
{
"id": "b3c4d5e1f2",
"name": "渗透测试服务",
"source": "jiajie"
},
{
"id": "c4d5e1f2a3",
"name": "风险评估服务",
"source": "jiajie"
},
{
"id": "d5e1f2a3b4",
"name": "办公安全平台 SASE",
"source": "jiajie"
},
{
"id": "e1f2a3b4c5",
"name": "DDoS 高防",
"source": "jiajie"
},
{
"id": "f2a3b4c5d1",
"name": "Web 应用防火墙",
"source": "jiajie"
},
{
"id": "a3b4c5d1e2",
"name": "云安全中心 (态势感知)",
"source": "jiajie"
},
{
"id": "b4c5d1e2f3",
"name": "云防火墙",
"source": "jiajie"
},
{
"id": "c5d1e2f3a4",
"name": "堡垒机",
"source": "jiajie"
}
]
},
{
"id": "d1e2f3a4b5",
"thrTitle": "大数据计算",
"value": [
{
"id": "e2f3a4b5c1",
"name": "信息查询服务",
"source": "jiajie"
},
{
"id": "f3a4b5c1d2",
"name": "智能开放搜索 OpenSearch",
"source": "jiajie"
},
{
"id": "a4b5c1d2e3",
"name": "实时数仓 Hologres",
"source": "jiajie"
},
{
"id": "b5c1d2e3f4",
"name": "数据总线",
"source": "jiajie"
},
{
"id": "c1d2e3f4a5",
"name": "实时计算 Flink 版",
"source": "jiajie"
},
{
"id": "d2e3f4a5b1",
"name": "阿里云 ElasticSearch",
"source": "jiajie"
},
{
"id": "e3f4a5b1c2",
"name": "E-MapReduce",
"source": "jiajie"
},
{
"id": "f4a5b1c2d3",
"name": "云原生大数据计算服务",
"source": "jiajie"
},
{
"id": "a5b1c2d3e4",
"name": "MaxCompute",
"source": "jiajie"
},
{
"id": "b1c2d3e4f5",
"name": "DataV 数据可视化",
"source": "jiajie"
},
{
"id": "c2d3e4f5a1",
"name": "大数据开发治理平台 DataWorks",
"source": "jiajie"
}
]
},
{
"id": "d3e4f5a1b2",
"thrTitle": "人工智能",
"value": [
{
"id": "e4f5a1b2c3",
"name": "机器学习平台 PAI",
"source": "jiajie"
},
{
"id": "f5a1b2c3d4",
"name": "视觉智能开放平台",
"source": "jiajie"
}
]
},
{
"id": "a1b2c3d4e5",
"thrTitle": "网络与 CDN",
"value": [
{
"id": "b2c3d4e5f1",
"name": "专有网络 VPC",
"source": "jiajie"
},
{
"id": "c3d4e5f1a2",
"name": "弹性公网 IP",
"source": "jiajie"
},
{
"id": "d4e5f1a2b3",
"name": "负载均衡 SLB",
"source": "jiajie"
},
{
"id": "e5f1a2b3c4",
"name": "共享流量包",
"source": "jiajie"
},
{
"id": "f1a2b3c4d5",
"name": "共享带宽",
"source": "jiajie"
},
{
"id": "a2b3c4d5e1",
"name": "边缘网络加速",
"source": "jiajie"
},
{
"id": "b3c4d5e1f2",
"name": "内容分发网络 CDN",
"source": "jiajie"
},
{
"id": "c4d5e1f2a3",
"name": "全站加速",
"source": "jiajie"
},
{
"id": "d5e1f2a3b4",
"name": "边缘节点服务",
"source": "jiajie"
},
{
"id": "e1f2a3b4c5",
"name": "云企业网 CEN",
"source": "jiajie"
},
{
"id": "f2a3b4c5d1",
"name": "VPN 网关",
"source": "jiajie"
},
{
"id": "a3b4c5d1e2",
"name": "高速通道",
"source": "jiajie"
}
]
},
{
"id": "b4c5d1e2f3",
"thrTitle": "企业应用与云通信",
"value": [
{
"id": "c5d1e2f3a4",
"name": "短信服务",
"source": "jiajie"
},
{
"id": "d1e2f3a4b5",
"name": "备案服务",
"source": "jiajie"
}
]
},
{
"id": "e2f3a4b5c1",
"thrTitle": "混合云",
"value": [
{
"id": "f3a4b5c1d2",
"name": "NAT 网关",
"source": "jiajie"
},
{
"id": "a4b5c1d2e3",
"name": "混合云备份",
"source": "jiajie"
}
]
},
{
"id": "b1c2d3e4f5",
"thrTitle": "容器与中间件",
"value": [
{
"id": "c2d3e4f5a1",
"name": "微服务引擎 MSE",
"source": "jiajie"
},
{
"id": "d3e4f5a1b2",
"name": "Serverless 应用引擎 ACE",
"source": "jiajie"
},
{
"id": "e4f5a1b2c3",
"name": "函数计算 FC",
"source": "jiajie"
},
{
"id": "f5a1b2c3d4",
"name": "应用实时监控服务 ARMS",
"source": "jiajie"
},
{
"id": "a1b2c3d4e5",
"name": "事件总线 EventBridge",
"source": "jiajie"
},
{
"id": "b2c3d4e5f1",
"name": "性能测试 PTS",
"source": "jiajie"
},
{
"id": "c3d4e5f1a2",
"name": "API 网关",
"source": "jiajie"
},
{
"id": "d4e5f1a2b3",
"name": "消息服务 MNS",
"source": "jiajie"
},
{
"id": "e5f1a2b3c4",
"name": "消息队列 Kafka",
"source": "jiajie"
},
{
"id": "f1a2b3c4d5",
"name": "微消息队列 MQTT 版",
"source": "jiajie"
},
{
"id": "a2b3c4d5e1",
"name": "消息队列 RocketMQ 版",
"source": "jiajie"
},
{
"id": "b3c4d5e1f2",
"name": "容器镜像服务 ACR",
"source": "jiajie"
},
{
"id": "c4d5e1f2a3",
"name": "容器服务 ACK",
"source": "jiajie"
}
]
},
{
"id": "d5e1f2a3b4",
"thrTitle": "开发与运维",
"value": [
{
"id": "e1f2a3b4c5",
"name": "访问控制 RAM",
"source": "jiajie"
},
{
"id": "f2a3b4c5d1",
"name": "可观测可视化 Grafana 版",
"source": "jiajie"
},
{
"id": "a3b4c5d1e2",
"name": "操作审计",
"source": "jiajie"
},
{
"id": "b4c5d1e2f3",
"name": "云监控",
"source": "jiajie"
},
{
"id": "c5d1e2f3a4",
"name": "云解析 DNS",
"source": "jiajie"
},
{
"id": "d1e2f3a4b5",
"name": "配额中心",
"source": "jiajie"
},
{
"id": "e2f3a4b5c1",
"name": "资源管理",
"source": "jiajie"
}
]
},
{
"id": "f3a4b5c1d2",
"thrTitle": "视频服务",
"value": [
{
"id": "a4b5c1d2e3",
"name": "视频直播",
"source": "jiajie"
},
{
"id": "b5c1d2e3f4",
"name": "视频点播",
"source": "jiajie"
}
]
}
]
async def get_firstpage_product_tree(ns={}):
data = {
"product_service": [
{
"id": "1",
"firTitle": "云",
"secMenu": [
{
"id": "10",
"secTitle": "百度云",
"thrMenu": [
{
"id": "13",
"thrTitle": "计算",
"value": [
{
"id": "14",
"name": "弹性云服务器",
"discount": "2",
"type": "baidu_BCC"
},
{
"id": "25",
"name": "裸金属服务器",
"discount": "2"
},
{
"id": "36",
"name": "GPU云服务器",
"discount": "8"
}
]
}
]
},
]
},
{
'id': "2", 'firTitle': "算", 'secMenu': [
{
'id': '21', 'secTitle': '智算', 'thrMenu': [
{
'id': '211',
'thrTitle': None,
'value': [#{'id': '2111', 'name': '容器云'},
{'id': '2113', 'name': '裸金属'},
#{'id': '2114', 'name': '裸金属-910B'},
{'id': '2115', 'name': '一体机-昆仑芯'},
{'id': '2112', 'name': '一体机-天数智芯'},]
},
],
},
]
},
{
"id": "3",
"firTitle": "网",
"secMenu": [
{
"id": "31",
"secTitle": "算力网络",
"thrMenu": [
{
"id": "311",
"thrTitle": None,
"value": [{'id': '3111', 'name': '互联网专线'},
{'id': '3121', 'name': 'SDWAN'},
{'id': '3131', 'name': 'DCI'},
{'id': '3141', 'name': 'AI专线'}
]
}
]
},
]
},
# {
# "id": "4",
# "firTitle": "模型",
# "secMenu": []
# },
# {
# "id": "5",
# "firTitle": "服务",
# "secMenu": []
# },
{
"id": "6",
"firTitle": "用",
"secMenu": [
{
"id": "61",
"secTitle": "AI应用",
"thrMenu": [
{
"id": "611",
"thrTitle": "智慧医疗",
"value": [
{
"id": "6111",
"name": "灵医智能体"
}
]
},
{
"id": "612",
"thrTitle": "智慧客服",
"value": [
{
"id": "6112",
"name": "客悦·智能客服"
}
]
},
]
},
]
}
]
}
db = DBPools()
async with db.sqlorContext('kboss') as sor:
try:
if ns.get('url_link') and ('kaiyuancloud' in ns.get('url_link') or 'opencomputing' in ns.get('url_link')):
data_baidu = {
"id": "12",
"secTitle": "阿里云",
"thrMenu": jiajie_ali_products
}
data['product_service'][0]['secMenu'].append(data_baidu)
ns['prefix'] = 'baidu'
product_get_sql = """select id, name, description, label, spec_note, productgroup from product where providerpid like '{}' and del_flg = 0;""".format(ns.get('prefix') + '_%%')
products = await sor.sqlExe(product_get_sql, {})
# 使用字典来按'group'字段分组数据
grouped_data = {}
for item in products:
spec_note = json.loads(item['spec_note'].replace('None', '""'))
empty_flag = 0
for spec in spec_note:
if spec.get('configName') == 'url':
item['url'] = spec.get('value')
if not item['url']:
empty_flag = 1
elif spec.get('configName') == 'listUrl':
item['listUrl'] = spec.get('value')
elif spec.get('configName') == 'iconUrl':
item['iconUrl'] = spec.get('value')
if empty_flag:
continue
item.pop('spec_note')
group = item.get('productgroup')
if group not in grouped_data:
grouped_data[group] = []
grouped_data[group].append(item)
# 构造最终的数据结构
result = []
for group, persons in grouped_data.items():
result.append({'thrTitle': group, 'value': persons})
priority = {'计算': 0, '网络': 1, '存储': 2, '数据库': 3, '大数据平台': 4}
sorted_data = sorted(
result,
key=lambda x: (priority.get(x['thrTitle'], 4), result.index(x))
)
data['product_service'][0]['secMenu'][0]['thrMenu'] = sorted_data
return {
'status': True,
'msg': 'get product list success',
'data': data
}
except Exception as e:
print(e)
return {
'status': False,
'msg': str(e)
}
ret = await get_firstpage_product_tree(params_kw)
return ret