Initial commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
---
|
||||
日期: 2024-05-06 11:19
|
||||
来源: 鹏豪
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
域名配置需求计费字段刷新异常
|
||||
|
||||
# 处理过程
|
||||
|
||||
问题已复现。
|
||||
|
||||
标记位刷新地方:
|
||||
|
||||
com.cmcc.cdn.platform.selfservice.service.impl.BBossAndDssInteractiveServiceImpl#startCommercialCDR
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
首先怀疑是外层的大事务导致的后边去掉事务后依旧存在此问题。
|
||||
|
||||
逐步分析后发现是其后方存在一个实体查询存储逻辑。
|
||||
|
||||

|
||||
|
||||
应该是 JPA 的一级缓存问题了。
|
||||
|
||||
# 总结
|
||||
|
||||
`selfServiceDomainConfigDao.setChargeFlagAndChargeTime()` 方法更新了数据库中的值,但是后续通过 `selfServiceDomainConfigDao.findByDomain()` 方法查询时,返回的结果不是更新后的值。这可能是由于缓存导致的。您可以尝试以下解决方案:
|
||||
|
||||
1. 清除缓存:在更新操作后,可以手动清除缓存,以确保后续查询操作能够获取到最新的数据。您可以在更新方法后添加一行代码来清除缓存,如下所示:
|
||||
|
||||
```
|
||||
selfServiceDomainConfigDao.setChargeFlagAndChargeTime(DomainChargeProcessEnum.SUCCESS.getIndex(), chargeTime, domain);
|
||||
entityManager.clear(); // 清除缓存
|
||||
```
|
||||
|
||||
2. 更新操作后延迟查询:为了避免缓存导致的数据不一致,您可以在更新操作后加入一段延迟,然后再进行查询操作。例如,您可以在更新后等待几毫秒后再进行查询操作,如下所示:
|
||||
|
||||
```
|
||||
selfServiceDomainConfigDao.setChargeFlagAndChargeTime(DomainChargeProcessEnum.SUCCESS.getIndex(), chargeTime, domain);
|
||||
Thread.sleep(100); // 延迟100毫秒
|
||||
Optional<SelfServiceDomainConfigPO> daoByDomain = selfServiceDomainConfigDao.findByDomain(speedDomain.getDomain());
|
||||
```
|
||||
|
||||
请注意,这些解决方案仅适用于缓存引起的数据不一致问题。如果问题仍然存在,可能需要进一步检查代码逻辑或数据库事务设置。
|
||||
|
||||
在 Spring Data JPA 中,`EntityManager` 是 JPA 的核心类,用于实体的创建、查询、更新和删除操作。如果您在使用 Spring 框架,可以通过依赖注入(DI)的方式获取 `EntityManager` 的实例。这里有一个简单的示例说明如何在您的 Repository 或 Service 中注入 `EntityManager`:
|
||||
|
||||
```java
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.PersistenceContext;
|
||||
|
||||
@Service
|
||||
public class YourService {
|
||||
|
||||
@PersistenceContext
|
||||
private EntityManager entityManager;
|
||||
|
||||
public void yourMethod() {
|
||||
selfServiceDomainConfigDao.setChargeFlagAndChargeTime(DomainChargeProcessEnum.SUCCESS.getIndex(), chargeTime, domain);
|
||||
entityManager.clear(); // 使用EntityManager清除一级缓存
|
||||
// 其他逻辑...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
在这个例子中,我们使用了 `@PersistenceContext` 注解来自动注入 `EntityManager`。这样,您就可以在需要的时候调用 `entityManager.clear()` 来清除 JPA 的一级缓存。
|
||||
|
||||
请注意,直接操作 `EntityManager` 是比较低级的操作,通常我们希望尽量避免直接使用它,除非在处理复杂的业务逻辑或性能优化时确实需要。在大多数情况下,Spring Data JPA 提供的接口已经足够满足常规的数据访问需求。
|
||||
|
||||
`entityManager.refresh(po)` 和 `entityManager.clear()` 在 JPA 中都用于管理实体和缓存,但它们的用途和影响是不同的:
|
||||
|
||||
1. **entityManager.refresh(po)**:
|
||||
- 这个方法用于从数据库中重新读取实体的当前状态,并刷新缓存中的实体对象。如果实体在数据库中被外部修改(例如,通过其他应用或直接在数据库中修改),使用 `refresh()` 可以确保您的实体状态与数据库保持一致。
|
||||
- 使用 `refresh()` 方法时,您需要传递一个特定的实体对象作为参数。这个方法只影响传递的实体对象,不会影响持久化上下文中的其他实体。
|
||||
|
||||
2. **entityManager.clear()**:
|
||||
- `clear()` 方法用于清除持久化上下文中的所有缓存。这意味着所有被管理的实体都会从持久化上下文中移除,之后的任何操作都需要重新从数据库中加载实体。
|
||||
- 使用 `clear()` 可以帮助避免内存泄漏,特别是在处理大量数据时。它也有助于确保数据的一致性,因为它强制应用从数据库重新加载实体数据,而不是使用可能已经过时的缓存数据。
|
||||
|
||||
总结来说,`refresh()` 是针对单个实体的局部刷新操作,而 `clear()` 是对整个持久化上下文的全局清除操作。选择使用哪一个取决于您的具体需求:如果需要更新特定实体的状态,使用 `refresh()`;如果需要重置整个持久化上下文,使用 `clear()`。
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
日期: 2024-05-07 09:57
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[[NRWLXT-28182] 【cache+域名配置工单】企业账号提交定制化配置BPM驳回,企业从待办事项审批为空 - ZYHY JIRA (komect.net)](http://jira.komect.net/browse/NRWLXT-28182)
|
||||
|
||||
# 处理过程
|
||||
|
||||
代办按钮触发接口:
|
||||
|
||||
/approve/index
|
||||
|
||||
代办接口:
|
||||
|
||||
/workorder/get/agency/task
|
||||
|
||||
前端反馈此接口中的 modifying 会影响点击代办处理按钮的去处,只有 true 才是修改。
|
||||
|
||||
BPM 退回接口位置:
|
||||
|
||||
com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl#bpmOrderReject
|
||||
|
||||
原代码逻辑
|
||||
|
||||

|
||||
|
||||
但是犹豫代码逻辑中的 history 只是查的 ops_user_id 字段不为空的,所以查不到退回记录。
|
||||
|
||||
思路一:填充 BPM 退回接口中的记录位置的 ops_user_id ,但是不符合逻辑,BPM 为平台回调。
|
||||
|
||||
思路二:修改此处逻辑,增加判断
|
||||
|
||||
# 总结
|
||||
|
||||
在和鹏豪沟通后,将此标记位的设置和工单列表的那个按钮做同步。
|
||||
|
||||

|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
日期: 2024-05-07 09:57
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[[NRWLXT-28165] 【cache+域名配置工单】批量域名审批终止后工单详情的域名展示为空 - ZYHY JIRA (komect.net)](http://jira.komect.net/browse/NRWLXT-28165)
|
||||
|
||||
# 处理过程
|
||||
|
||||

|
||||
|
||||
/workorder/approvedecision
|
||||
|
||||
```
|
||||
id: 46690
|
||||
option: kill
|
||||
optionDetail:
|
||||
type: CACHE_DOMAIN_CONFIG
|
||||
secondCheck: true
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
运营经理结束工单删除了 batch_self_domain 表。导致详情页无法显示。
|
||||
|
||||
排期优化。
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
日期: 2024-05-07 09:56
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[[NRWLXT-28164] 【cache+域名配置工单】省区域经理退回到省业务管理员待办审批,企业展示为空 - ZYHY JIRA (komect.net)](http://jira.komect.net/browse/NRWLXT-28164)
|
||||
|
||||
# 处理过程
|
||||
|
||||
# 总结
|
||||
|
||||
Bug 单延迟修复,通过修复企业侧问题,此问题已经同步解决。
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
日期: 2024-05-07 14:53
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[[NRWLXT-28214] 【cache+需求变更工单】集团企业账号变更部署失败域名后查看工单展示空白页面 - ZYHY JIRA (komect.net)](http://jira.komect.net/browse/NRWLXT-28214)
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||
脏数据导致页面查询问题。
|
||||
|
||||
定位到对 `adapt_work_order_domain_info` 存在查询结果为两条。
|
||||
|
||||
进行复现查看产生原因。按照测试流程当第一次验收被信安校验后不应该出现入库动作。
|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
程序编写一定要做到校验严谨。不应在业务逻辑中掺杂过多的校验。控制事务范围。
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
日期: 2024-05-08 10:42
|
||||
来源: 客响
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
meetingzt-pull.125339.com.cn
|
||||
|
||||
# 处理过程
|
||||
|
||||
```
|
||||
5Z0yOX4dOfFoUsBQ,中国移动通信有限公司政企客户分公司,2023-06-19 18:00:32
|
||||
oVwwnwr76C89iYDT,中国移动通信有限公司政企客户分公司,2023-06-16 18:00:37
|
||||
yutdqb7AWbhVqZW2,中国移动通信有限公司政企客户分公司,2023-06-15 18:00:53
|
||||
seSHquqkpIw08aPt,中国移动通信有限公司政企客户分公司,2023-06-14 18:00:37
|
||||
JvDMU7t0uNnnxLmV,中国移动通信有限公司政企客户分公司,2023-06-14 18:00:37
|
||||
cWhCWs5uu56xlD3c,中国移动通信有限公司政企客户分公司,2023-06-13 18:00:34
|
||||
hJqUcqqnRtwKPK6p,中国移动通信有限公司政企客户分公司,2023-06-12 18:00:36
|
||||
```
|
||||
|
||||
触发停用原因:
|
||||
|
||||
通过时间推测为定时任务触发。
|
||||
|
||||
```log
|
||||
2023-06-20 at 02:00:32 CST [schedulerFactoryBean_Worker-3] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 2565 sendLiveDomainOperateToBpm - triggerMode:auto_trigger,自动触发运维单,code:5Z0yOX4dOfFoUsBQ
|
||||
|
||||
2023-06-20 at 02:00:32 CST [schedulerFactoryBean_Worker-3] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 2600 sendLiveDomainOperateToBpm - 试用单直播域名:meetingzt-pull.125339.com.cn到期停用,startTime:2023-03-14 15:53:26,actualEndTime:null,taskTime:2023-06-13T15:53:26
|
||||
```
|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
推测有人工介入处理,之前是工单因在 BPM 侧无法处理二回调终止。
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
日期: 2024-05-09 17:33
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
005-20240507003
|
||||
|
||||
这个单子阶段反馈失败了 域名状态是回滚的不是部署失败
|
||||
|
||||
# 处理过程
|
||||
|
||||
工单审批:
|
||||
|
||||
724 598
|
||||
|
||||
工单流程:
|
||||
|
||||

|
||||
|
||||
下发 BPM 为部署中
|
||||
|
||||
www.lry04150950.com 存的 8,
|
||||
|
||||
WWW.LRY06261554.COM 存的 4,
|
||||
|
||||
```sql
|
||||
select *
|
||||
from work_order
|
||||
where code = '005-20240507003';
|
||||
|
||||
select domains,old_domain_state
|
||||
from work_order_adaptconfig_change_domains
|
||||
where order_id = 933;
|
||||
|
||||
select *
|
||||
from work_order_adaptconfig_change where id = 932;
|
||||
|
||||
select *
|
||||
from work_order where id = '192572';
|
||||
|
||||
select *
|
||||
from work_order where code = '005-20240507002';
|
||||
|
||||
select *
|
||||
from work_order_adaptconfig_change where work_order_id = 192571;
|
||||
|
||||
|
||||
www.lry04150950.com 存的8,
|
||||
WWW.LRY06261554.COM 存的4,
|
||||
```
|
||||
|
||||
com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl#bpmDomainAdaptChange
|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
下发 BPM 会存储域名状态,阶段反馈以记录的域名状态进行回滚
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
日期: 2024-05-10 11:13
|
||||
来源: 客响
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
www.kmwh.gov.cn
|
||||
|
||||
云南有个域名客户说已经提交删除工单了
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||
```
|
||||
"domain_id_cdnsys" : "kmQtUZIVK_IqimSn"
|
||||
"domain_id_cdnsys" : "JQFPkNjeu_asuSTb"
|
||||
"domain_id_cdnsys" : "vihrMBFok_cGQVHS"
|
||||
|
||||
kmQtUZIVK
|
||||
JQFPkNjeu
|
||||
vihrMBFok
|
||||
```
|
||||
|
||||
单位名:昆明市五华区科学技术和信息化局
|
||||
|
||||
配管回调
|
||||
|
||||
```
|
||||
2024-03-29 11:29:35 [ibs-portal:sh-lgcmcc06.shlg.cmcdn.net:8080,,,,] [http-nio-8080-exec-16225] INFO com.cmcc.cdn.platform.selfservice.controller.pm.PmPipeCallbackController 47 addBpmContents - 蓝鲸配管 管道配置回调报文,request:{"data":[{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"pl.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"xs.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"m.fzjz.km.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kmgjjx.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kmwh.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"yunnanzuche.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"jn.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"m.rsj.km.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"sthjj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"scjd.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"rd.km.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kunzhongyao.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.ynzldk.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.lawlingyun.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.gemmy.com.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kmhhz.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"rsj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"wjw.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"zjj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.gymzhotel.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.dlkji.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.yunagile.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"sm.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.jadi.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"pxdpc.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"yl.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.yntec.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.ynrealtop.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.ynzhuobo.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"kmkaoyan.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.iwenet.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"jyj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"tyjr.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"gd.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.kmdc.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"nyncj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"gzw.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"kmzhbsq.kunming.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"gxs.ganzhou.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.yunhongyaoye.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.yancaozp.com"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"sfj.pingxiang.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"m.kmsl.gov.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"an.kmrd.cn"},{"percent":1.0,"process":false,"reqType":"SELF_DOMAIN_DELETE","targetName":"www.jcu.edu.cn"}],"messageId":"pm8c1ba2e14c8d4c369b216287263f0e4b"}
|
||||
```
|
||||
|
||||
```
|
||||
【请求信安接口】
|
||||
param:{"delete_user_info_list":[{"user_id_cdn":"rRLkrQOcH"}]},
|
||||
|
||||
返回结果:{resp={"status": 0, "code": 0, "chk_fail_dict_l": [], "success_num": 1}, status=200}
|
||||
```
|
||||
|
||||
https://inte.p.cdn.10086.cn/workorder/kill
|
||||
|
||||
msg: 退回
|
||||
|
||||
id: 46705
|
||||
|
||||
type: cache 域名配置
|
||||
|
||||
# 总结
|
||||
|
||||
因企业实体下只存在一个域名信息,发起企业信安信息删除动作。
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
日期: 2024-05-11 14:06
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
1、省客户经理提交域名配置需求工单 - 批量域名
|
||||
|
||||
上传两个需求附件
|
||||
|
||||
2、集团客户经理管理员退回
|
||||
|
||||
3、省客户经理修改
|
||||
|
||||
重新上传批量域名信安附件和需求附件后提交
|
||||
|
||||
4、集团客户经理管理员查看工单详情
|
||||
|
||||
# 处理过程
|
||||
|
||||
后端有返回附件详情,但是前端未渲染处理。
|
||||
|
||||
当然也可以在退回的时候进行删除, 但是产品沟通后不符合逻辑。
|
||||
|
||||
# 总结
|
||||
|
||||
前端延迟修复。
|
||||
@@ -0,0 +1,328 @@
|
||||
---
|
||||
日期: 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。
|
||||
|
||||
省运营经理 只获取名下企业 id(enterprise_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 为 4:106 符合 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
|
||||
@@ -0,0 +1,135 @@
|
||||
---
|
||||
日期: 2024-05-16 14:33
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[NRWLXT-28252 【域名配置记录-删除】调度删除下发失败](http://jira.komect.net/browse/NRWLXT-28252?filter=36311)
|
||||
|
||||
# 处理过程
|
||||
|
||||
日志
|
||||
|
||||

|
||||
|
||||
联系测试:
|
||||
|
||||
@陶陶 http://jira.komect.net/browse/NRWLXT-28252?filter=36311
|
||||
|
||||
目前看日志是服务问题。这个是不是测试的服务器,能帮忙看看服务还可用吗?
|
||||
|
||||

|
||||
|
||||
写入 mock
|
||||
|
||||

|
||||
|
||||
发现测试响应的不是 ng 写定的 mock 的东西。指向了 8888mock 服务(202 服务器上。)
|
||||
|
||||
此时存在调度节点。
|
||||
|
||||
进行调度回调:
|
||||
|
||||
```
|
||||
/v1/itcm/callback
|
||||
|
||||
{
|
||||
"configIds": [
|
||||
1200
|
||||
],
|
||||
"operate": "DELETE",
|
||||
"success": true
|
||||
}
|
||||
```
|
||||
|
||||
回调后生成了管道化任务,对管道化任务进行回调。即可。
|
||||
|
||||
# 总结
|
||||
|
||||
对 Ng 转发进行总结。
|
||||
|
||||
ng 日志
|
||||
|
||||
```log
|
||||
20240516T080004Z|172.21.16.202:8888|172.21.16.92|172.21.16.68|POST|HTTP/1.1|mock.p.cdn.10086.cn|/ibs/v1/dnsconfig/deldomain|Java/1.8.0_261|-|application/json|200|-|443|236|20240516T080004.117Z|20240516T080004.124Z|20240516T080004.124Z|-|-|200|chiqingguo92.cmp11428.openpf|-|||
|
||||
```
|
||||
|
||||
这条日志记录了关于一个 HTTP 请求的详细信息,包括请求的时间、源 IP 地址、目标 IP 地址、请求方法、HTTP 协议版本、请求的 URL、使用的编程语言和版本、请求头、响应状态码、响应长度、请求和响应的时间戳等。下面是对日志内容的逐项解释:
|
||||
|
||||
- `$record_end_time_utc`:请求记录结束的 UTC 时间。
|
||||
- `$upstream_addr`:上游服务器的地址,即处理请求的后端服务器的地址。
|
||||
- `$remote_addr`:客户端的 IP 地址。
|
||||
- `$server_addr`:服务器监听的地址。
|
||||
- `$request_method`:HTTP 请求方法,例如 GET、POST 等。
|
||||
- `$server_protocol`:服务器使用的协议版本,例如 HTTP/1.1。
|
||||
- `$host`:请求中的主机头字段。
|
||||
- `$request_uri`:请求的 URI,不包括主机和端口信息。
|
||||
- `$http_user_agent`:客户端的 User-Agent 头,包含了客户端的浏览器和操作系统信息。
|
||||
- `$http_referer`:HTTP referer 头,指示请求的来源页面。
|
||||
- `$sent_http_content_type`:发送给客户端的 Content-Type 头,指示响应内容的类型。
|
||||
- `$status`:HTTP 响应状态码,例如 200 表示成功,404 表示未找到等。
|
||||
- `|-`:一个分隔符,可能是为了分隔或标记。
|
||||
- `$server_port`:服务器监听的端口。
|
||||
- `$bytes_sent`:发送给客户端的总字节数,包括 HTTP 头和响应体。
|
||||
- `$request_start_time_utc`:请求开始的 UTC 时间。
|
||||
- `$request_end_time_utc`:请求结束的 UTC 时间。
|
||||
- `$header_response_time_utc`:响应头发送的 UTC 时间。
|
||||
- `|-|-`:多个分隔符,可能是为了分隔或标记。
|
||||
- `$upstream_status`:上游服务器的响应状态码。
|
||||
- `$hostnamex`:可能是服务器的 hostname 或一个自定义字段。
|
||||
- `$http_CMCDN_Auth_Token`:一个自定义的 HTTP 头,可能是 CDN 认证令牌。
|
||||
- `$cp_id`:可能是 CDN 提供商的 ID 或一个自定义字段。
|
||||
- `$sub_action_type`:可能是子操作类型或一个自定义字段。
|
||||
- `$action_type`:可能是操作类型或一个自定义字段。
|
||||
|
||||
1. **`20240516T080004Z`**:`$record_end_time_utc` 请求记录结束的 UTC 时间。
|
||||
2. **`172.21.16.202:8888`**:`$upstream_addr` 上游服务器的地址。
|
||||
3. **`172.21.16.92`**:`$remote_addr` 客户端的 IP 地址。
|
||||
4. **`172.21.16.68`**:`$server_addr` 服务器监听的地址。
|
||||
5. **`POST`**:`$request_method` HTTP 请求方法。
|
||||
6. **`HTTP/1.1`**:`$server_protocol` 服务器使用的协议版本。
|
||||
7. **`mock.p.cdn.10086.cn`**:`$host` 请求中的主机头字段。
|
||||
8. **`/ibs/v1/dnsconfig/deldomain`**:`$request_uri` 请求的 URI。
|
||||
9. **`Java/1.8.0_261`**:`$http_user_agent` 客户端的 User-Agent 头。
|
||||
10. **`-`**:`$http_referer` HTTP referer 头,这里为空。
|
||||
11. **`application/json`**:`$sent_http_content_type` 发送给客户端的 Content-Type 头。
|
||||
12. **`200`**:`$status` HTTP 响应状态码。
|
||||
13. **`-`**:一个分隔符。
|
||||
14. **`443`**:`$server_port` 服务器监听的端口。
|
||||
15. **`236`**:`$bytes_sent` 发送给客户端的总字节数。
|
||||
16. **`20240516T080004.117Z`**:`$request_start_time_utc` 请求开始的 UTC 时间。
|
||||
17. **`20240516T080004.124Z`**:`$request_end_time_utc` 请求结束的 UTC 时间。
|
||||
18. **`20240516T080004.124Z`**:`$header_response_time_utc` 响应头发送的 UTC 时间。
|
||||
19. **`-`**:一个分隔符。
|
||||
20. **`-`**:一个分隔符。
|
||||
21. **`200`**:`$upstream_status` 上游服务器的响应状态码。
|
||||
22. **`chiqingguo92.cmp11428.openpf`**:`$hostnamex` 服务器 hostname 或自定义字段。
|
||||
23. **`-`**:`$http_CMCDN_Auth_Token` 自定义的 HTTP 头,这里为空。
|
||||
24. **`-`**:`$cp_id` CDN 提供商的 ID 或自定义字段,这里为空。
|
||||
25. **`-`**:`$sub_action_type` 子操作类型或自定义字段,这里为空。
|
||||
26. **`-`**:`$action_type` 操作类型或自定义字段,这里为空。
|
||||
|
||||
这三个最重要:
|
||||
|
||||
**`172.21.16.202:8888`**:`$upstream_addr` 上游服务器的地址。
|
||||
**`172.21.16.92`**:`$remote_addr` 客户端的 IP 地址。
|
||||
**`172.21.16.68`**:`$server_addr` 服务器监听的地址。
|
||||
|
||||
```
|
||||
location / {
|
||||
proxy_pass http://bpm-live-upstream;
|
||||
proxy_read_timeout 90;
|
||||
proxy_connect_timeout 10;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-From-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
upstream bpm-live-upstream {
|
||||
keepalive 100;
|
||||
server 172.21.16.202:8888 fail_timeout=10s;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
日期: 2024-05-17 10:19
|
||||
来源: 客响
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
bpm 工单:046-20240412-0030 无法点击现网部署验收,这种该如何处理
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||
工单号:005-20240412001
|
||||
|
||||
企业信息:nvqln09g-gct6z6ueir1naotw
|
||||
|
||||
域名:video.cmcc-cs.cn
|
||||
|
||||
com.cmcc.cdn.platform.selfservice.service.impl.PortalInformationServiceImpl#updateDomainInformation
|
||||
|
||||
# 总结
|
||||
|
||||
域名无省份信息
|
||||
|
||||
```sql
|
||||
INSERT INTO domain_config_province (domain_id, province_id)
|
||||
VALUES (107, 1),
|
||||
(107, 2),
|
||||
(107, 3),
|
||||
(107, 4),
|
||||
(107, 5),
|
||||
(107, 6),
|
||||
(107, 7),
|
||||
(107, 8),
|
||||
(107, 9),
|
||||
(107, 10),
|
||||
(107, 11),
|
||||
(107, 12),
|
||||
(107, 13),
|
||||
(107, 14),
|
||||
(107, 15),
|
||||
(107, 16),
|
||||
(107, 17),
|
||||
(107, 18),
|
||||
(107, 19),
|
||||
(107, 20),
|
||||
(107, 21),
|
||||
(107, 22),
|
||||
(107, 23),
|
||||
(107, 24),
|
||||
(107, 25),
|
||||
(107, 26),
|
||||
(107, 27),
|
||||
(107, 28),
|
||||
(107, 29),
|
||||
(107, 30),
|
||||
(107, 31);
|
||||
```
|
||||
|
||||
最后工单不显示问题可参考:0926-005-20230705002
|
||||
|
||||
```sql
|
||||
# 代码位置com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl#saveAdaptWorkOrderDomainInfo
|
||||
|
||||
# 复现关联关系
|
||||
SELECT api.*
|
||||
from order_plain_info api
|
||||
LEFT JOIN adapt_work_order_domain_plain_info awodpi
|
||||
ON api.id = awodpi.order_plain_info_id
|
||||
LEFT JOIN adapt_work_order_domain_info awodi
|
||||
ON awodpi.adapt_work_order_domain_info_id = awodi.id
|
||||
where awodi.domain = 'video.cmcc-cs.cn'
|
||||
AND awodi.config_change_work_order_id = 877;
|
||||
|
||||
# 冗余信息
|
||||
select *
|
||||
from adapt_work_order_domain_plain_info
|
||||
where order_plain_info_id in (555461, 555462);
|
||||
|
||||
# 删除中间表
|
||||
delete
|
||||
from adapt_work_order_domain_plain_info
|
||||
where adapt_work_order_domain_info_id = 1067;
|
||||
```
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
日期: 2024-05-17 10:19
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
[[NRWLXT-28260] 【订购迁移工单】待办记录显示内容不完整 - ZYHY JIRA (komect.net)](http://jira.komect.net/browse/NRWLXT-28260?filter=36311)
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||

|
||||
|
||||
缺少信息
|
||||
|
||||
# 总结
|
||||
|
||||

|
||||
|
||||
【订购迁移工单】待办记录显示内容不完整
|
||||
|
||||
这个是提单的时候审批记录没有给 result,查询列表空指针。
|
||||
|
||||

|
||||
|
||||
我照着别的工单给了个 submit(null, " 提交 ")。
|
||||
|
||||

|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
日期: 2024-05-17 16:08
|
||||
来源: 客响
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||
```
|
||||
200
|
||||
250
|
||||
253
|
||||
255
|
||||
256
|
||||
262
|
||||
263
|
||||
311
|
||||
313
|
||||
314
|
||||
315
|
||||
319
|
||||
325
|
||||
333
|
||||
334
|
||||
336
|
||||
408
|
||||
410
|
||||
418
|
||||
419
|
||||
447
|
||||
457
|
||||
486
|
||||
|
||||
```
|
||||
|
||||
```html
|
||||
<div sec:authorize="hasAnyAuthority('NEW_QYGL')" th:if="!${role == 'CMA_GROUP' || role == 'GRP_ADMIN' || role == 'GRP_BS_LEADER' || role == 'GRP_BS_MEMBER' || roleWaf || role == 'CP' || role == 'CP_SUB'}" data-text="企业管理" data-icon="address-book-o" th:attr="data-link=@{/selfService/enterprise/infoList}" data-identify="subAdminDashboard"></div>
|
||||
```
|
||||
|
||||
# 总结
|
||||
|
||||
@李春良 良哥,有个客响:甘肃客户经理管理员,gs-manager,19893178795。登录后无企业管理。
|
||||
|
||||
目前看库排查是因为此人员缺少(NEW_QYGL,企业管理)权限。你能不能登录超管看一下对应运营人员的权限情况是不是企业管理没勾选。
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
日期: 2024-05-21 18:39
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||

|
||||
|
||||
# 处理过程
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
```java
|
||||
if (fileInfoDao.existsByFileName(name)) {
|
||||
throw new PlatformException("文件名重复,请修改文件名重新提交");
|
||||
}
|
||||
/**
|
||||
* 检查是否存在具有指定文件名的文件信息
|
||||
*
|
||||
* @param fileName 文件名
|
||||
* @return 如果存在具有指定文件名的文件信息,则返回true;否则返回false
|
||||
*/boolean existsByFileName(String fileName);
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
日期: 2024-05-22 17:45
|
||||
来源: 测试
|
||||
---
|
||||
|
||||
# 问题详情
|
||||
|
||||
二次重提报错。
|
||||
|
||||
# 处理过程
|
||||
|
||||
第一次:
|
||||
|
||||

|
||||
|
||||
# 总结
|
||||
|
||||
未复现
|
||||
Reference in New Issue
Block a user