722 lines
22 KiB
Plaintext
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 |