Files
notes/work/移动杭研/问题处理/2024-05/0514-集团和省运营经理的域名个数全不正确.md
T
2026-03-01 01:43:46 +08:00

329 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
日期: 2024-05-14 11:10
来源: 测试
---
# 问题详情
[NRWLXT-28236 集团和省运营经理的域名个数全不正确](http://jira.komect.net/browse/NRWLXT-28236)
# 处理过程
1. 确认集团运营经理首页数据来源?
2. 确认集团运营经理域名列表域名总条数?
3. 确认集团运营经理和省运营经理的后台接口是否一致?
/dashboard/index
domainSum(域名总数)
normalNum(正常运行)
disabledNum(已禁用)
deployingNum(部署中)
deployfailureNum(部署失败)
域名总数 = 正常运行 + 已禁用 + 部署中 + 部署失败
## 域名所有状态
```
-1: 初始化
0: 待排期
1: 待分发
2: 部署中
3: 已生效
4: 部署失败
5: 已停用
6: 部署中
7: 删除中
8: 停用中
9: 启用中
10: 待分发
11: 删除中
12: 删除中
13: 部署中
14: 部署中
15: 部署中
16: 删除中
17: 删除中
18: 部署中
19: 待配置
20: 部署中
21: 部署中
22: 删除中
23: 停用中
24: 启用中
25: 已保存
26: 待确认
27: 删除中
28: 部署中
29: 部署中
30: 部署中
31: 部署中
32: 部署中
33: 删除中
```
初始化 有 1 个,对应的是 -1。
待排期 有 1 个,对应的是 0。
待分发 有 2 个,对应的是 1 和 10。
部署中 有 13 个,对应的是 2, 6, 13, 14, 15, 18, 20, 21, 28, 29, 30, 31, 32。
**已生效** 有 1 个,对应的是 3。
**部署失败** 有 1 个,对应的是 4。
**已停用** 有 1 个,对应的是 5。
删除中 有 8 个,对应的是 7, 11, 12, 16, 17, 22, 27, 33。
停用中 有 2 个,对应的是 8 和 23。
启用中 有 2 个,对应的是 9 和 24。
待配置 有 1 个,对应的是 19。
已保存 有 1 个,对应的是 25。
待确认 有 1 个,对应的是 26。
## 首页主要逻辑
com.cmcc.cdn.platform.portal.controller.DashboardController#index
获取域名的**核心 SQL**
```sql
SELECT state, COUNT(*) as count
FROM self_service_domain_config
WHERE tenant_id IN (:tenantIds)
GROUP BY state;
```
对于 tenantIds
集团运营经理 获取所有企业 id。
省运营经理 只获取名下企业 identerprise_manager_table 有关联关系)
通过上方 sql 获取域名的状态分组集合后根据状态对域名进行分类。
normalNum(正常运行):已生效 (库中的 4)
disabledNum(已禁用): 已停用 (库中的 6)
deployfailureNum(部署失败):部署失败(库中的 5)
deployingNum(部署中):去除上边 3 种状态都是部署中
对测试账号**验证**符合梳理逻辑
```sql
SELECT state, COUNT(*) as count
FROM self_service_domain_config
WHERE tenant_id IN (select enterprise_id from enterprise_info)
GROUP BY state;
SELECT SUM(count) as total_count
FROM (
SELECT state, COUNT(*) as count
FROM self_service_domain_config
WHERE tenant_id IN (select enterprise_id from enterprise_info)
GROUP BY state
) as subquery;
```
## 控制台主要逻辑
### 集团运营经理查全部
控制台点播:31840
控制台直播:299
控制台总数:32139
未统计 product 为 4 的 106 个
数据库总量:32245
集团运营经理首页全部:32243
差两个是因为这个两个域名的企业信息没有了。
### 省运营经理
获取所属省份下的 cache+ 和 esop 企业的域名。
# 总结
代码修改:
```java
public List<Tuple> groupByState(List<String> tenantIds) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createTupleQuery();
Root<SelfServiceDomainConfigPO> root = cq.from(SelfServiceDomainConfigPO.class);
// 因数据库中product为4的业务已下线,为保持首页查询逻辑和域名列表一致,进行过滤,product参考ProductsEnums。
Predicate productNotEqual4 = cb.notEqual(root.get("product"), cb.literal(4));
cq.multiselect(root.get("state"), cb.count(root))
.where(cb.and(root.get("tenantId").in(tenantIds), productNotEqual4))
.groupBy(root.get("state"));
return em.createQuery(cq).getResultList();
}
```
```
生产
2,2待分发
3,123部署中
4,9327已生效
5,30部署失败
6,263已停用
7,2部署中
8,43删除中
9,2停用中
13,30删除中
17,1删除中
20,2待配置
21,48部署中
```
1. 关于首页
集团运营经理依据所有的企业 id 获取对应的域名。通过状态分类,正常运行(库中的 4 已生效)、已禁用(库中的 6 已停用)、部署失败(库中的 5 部署失败)、部署中(除上边 3 种状态均归类为部署中)
省运营经理只获取名下企业 id 对应的域名(enterprise_manager_table 为依据)。分类如上。
2. 关于控制台
集团运营经理取全部,省运营经理获取所属省份下的 cache+ 和 esop 企业的域名。同时均未获取库中产品为 4(直播流媒体加速)的域名。
## 以 jira 单中测试环境账号为例
测试库中:15466 个域名
**首页**
域名总数:15465 (正常运行 + 已禁用 + 部署中 + 部署失败)(与库差一个域名是因为 www.myl0705.com 这个域名没了企业信息属于脏数据)
正常运行:7160
已禁用:353
部署中:7540
部署失败:412
**控制台**
点播:14890
直播:544
总数:15434(与域名库差 32 是因为未统计 produt 为 4 直播流媒体 32 个加速域名)
**已生效**
域名列表总数:7141
首页总数:7160
差 19 个是因为存在 19 个 product 是 4 的。
**部署失败**
域名列表总数:411
首页总数:412
差 1 个是因为存在 1 个 product 是 4 的。
**已停用**
域名列表:349
首页总数:353
差 4 个是因为存在 4 个 product 是 4 的。
**部署中**
域名列表:6252
首页总数:7540
差 1288 是因为首页的部署中为库中剩余的所有状态的域名:初始化、待排期、待分发、部署中、删除中、停用中、启用中、待配置、已保存、待确认
已生效、部署失败、已停用对不上均是由于 product 是 4 的域名造成的。
部署中 是因为首页的部署中为库中剩余的所有状态的域名:初始化、待排期、待分发、部署中、删除中、停用中、启用中、待配置、已保存、待确认。域名列表的只是部署中。
这边对首页进行处理 1.过滤掉 product 是 4 的域名;2.部署中过滤为只是部署中状态的域名个数。可以吗?
可以的。
## 自测
库中一共:32245
域名列表:32139 + product 为 4106 符合 32245
直播:299
点播:31840
首页
首页:
总数:4274
正常:2680
禁用:70
部署失败:159
列表:
总数:4274
正常:2646+34
禁用:55+15
部署失败:159
域名总数 31779
正常运行 13564
已禁用 274
部署失败 1793
列表:
总数:31570+227=31797-18
正常:13414+159=13573-9
禁用:254+20=274
部署失败:1791+3=1794-1
域名总数 20107
正常运行 5424
已禁用 20
部署失败 1445
列表:
总数:20089+18=
正常:5409+15=
禁用:19+1=
部署失败:1445