308 lines
8.4 KiB
Markdown
308 lines
8.4 KiB
Markdown
# 相同CPID下冲突域名兼容
|
||
|
||
5 人天
|
||
|
||
## 需求评审
|
||
|
||
## 需求备注
|
||
|
||
重点完成:2、5、7。
|
||
|
||
## 需求开发
|
||
|
||
> [!WARNING]
|
||
> 注意企业子账号。
|
||
|
||
企业客户账号:
|
||
|
||
```
|
||
http://dev.p.cdn.10086.cn:8080/sso/login/sso_login?token=3075&env=test
|
||
```
|
||
|
||
第一版企业客户证书管理代码:
|
||
|
||
```java
|
||
if (RoleEnum.CP.getRole().equals(currentRole)) {
|
||
Object domainObject = selectResult.get("bindDomains");
|
||
List<String> domains = CollectionUtils.emptyIfNull(domainObject instanceof List<?> ? (List<?>) domainObject : null)
|
||
.stream()
|
||
.filter(Objects::nonNull)
|
||
.map(Object::toString)
|
||
.collect(Collectors.toList());
|
||
if (CollectionUtils.isNotEmpty(domains)) {
|
||
List<SelfServiceDomainConfigPO> bindDomains = selfServiceDomainConfigDao.findByDomainIn(domains);
|
||
List<String> bindDomainList = new ArrayList<>();
|
||
for (SelfServiceDomainConfigPO s : bindDomains) {
|
||
if (StringUtils.isEmpty(s.getCpDomain())) {
|
||
// 当前域名为真实配置。
|
||
bindDomainList.add(s.getDomain());
|
||
} else {
|
||
// 当前域名为冲突配置。
|
||
Long configCount = selfServiceDomainConfigDao.countByTenantIdAndDomainOrCpDomain(s.getTenantId(), s.getCpDomain());
|
||
// 关于 configCount 的相关场景在 countByTenantIdAndDomainOrCpDomain 中有说明。
|
||
bindDomainList.add(configCount == 1 ? s.getCpDomain() : s.getDomain());
|
||
}
|
||
}
|
||
selectResult.put("bindDomains", bindDomainList);
|
||
}
|
||
}
|
||
```
|
||
|
||
```java
|
||
private void replaceDomainForCP(List<CertDomainDeployVO> vos) {
|
||
SecurityUser user = SecurityUserUtil.getCurrentUser();
|
||
if (CollectionUtils.isEmpty(vos) || user == null || !RoleEnum.CP.getRole().equals(user.getRole().getRole())) {
|
||
return;
|
||
}
|
||
for (CertDomainDeployVO vo : vos) {
|
||
if (StringUtils.isEmpty(vo.getDomain())) {
|
||
continue;
|
||
}
|
||
List<SelfServiceDomainConfigPO> bindDomains = selfServiceDomainConfigDao.findByDomainIn(Lists.newArrayList(vo.getDomain()));
|
||
List<String> bindDomainList = new ArrayList<>();
|
||
for (SelfServiceDomainConfigPO s : bindDomains) {
|
||
if (StringUtils.isEmpty(s.getCpDomain())) {
|
||
// 当前域名为真实配置。
|
||
bindDomainList.add(s.getDomain());
|
||
} else {
|
||
// 当前域名为冲突配置。
|
||
Long configCount = selfServiceDomainConfigDao.countByTenantIdAndDomainOrCpDomain(s.getTenantId(), s.getCpDomain());
|
||
// 关于 configCount 的相关场景在 countByTenantIdAndDomainOrCpDomain 中有说明。
|
||
bindDomainList.add(configCount == 1 ? s.getCpDomain() : s.getDomain());
|
||
}
|
||
}
|
||
if (CollectionUtils.isEmpty(bindDomainList)) {
|
||
continue;
|
||
}
|
||
vo.setDomain(bindDomainList.get(0));
|
||
}
|
||
}
|
||
```
|
||
|
||
### 证书相关
|
||
|
||
```
|
||
已完成。
|
||
/crt/statis
|
||
?_=1740447840405
|
||
bindDomains
|
||
|
||
已完成。
|
||
/crt/list
|
||
?pageNum=1&pageSize=10&name=&domain=&search=&_=1740447469844
|
||
bindDomain
|
||
|
||
已完成。
|
||
/crt/detail
|
||
?uniqueId=20250224172158--c551-4982-8a35-a4ca3c5acaac&_=1740447537010
|
||
bindDomain
|
||
|
||
已完成。
|
||
/crt/list/unbindDomain
|
||
?enterpriseId=oe6cljyn-8xkwymbxps0pednz&certUniqueId=20250224172158--c551-4982-8a35-a4ca3c5acaac&_=1740447602214
|
||
bindDomain
|
||
unBindDomain
|
||
|
||
已完成。
|
||
/crt/domain/deploy/list
|
||
?crtUniqueId=20250224172158--c551-4982-8a35-a4ca3c5acaac&_=1740447680951
|
||
domain
|
||
```
|
||
|
||
信息准备。
|
||
|
||
ECName1740554572
|
||
|
||
15700197926
|
||
|
||
PRODUCTID1740554900
|
||
|
||
DevReq1740554572A.komect.com
|
||
|
||
```
|
||
http://dev.p.cdn.10086.cn:8080/sso/login/sso_login?token=3075&env=test
|
||
|
||
20250226154158--dc67-4225-bd2a-b17413dd9b13
|
||
|
||
3075-企业子账号
|
||
```
|
||
|
||
```
|
||
private List<String> transformDomainForCP(List<String> domains) {
|
||
String enterpriseId = SecurityUserUtil.getEnterpriseId();
|
||
List<String> list = new ArrayList<>();
|
||
for (String domain : domains) {
|
||
|
||
Long l = selfServiceDomainConfigDao.countByTenantIdAndDomainOrCpDomain(enterpriseId, domain);
|
||
if (l == 1){ // 这必然是一个冲突配置或者真实配置
|
||
Optional<SelfServiceDomainConfigPO> tenantIdAndDomain = selfServiceDomainConfigDao.findByTenantIdAndDomain(enterpriseId, domain);
|
||
if (tenantIdAndDomain.isPresent()) {
|
||
// 非冲突域名
|
||
list.add(domain);
|
||
}else {
|
||
// 冲突域名
|
||
Optional<SelfServiceDomainConfigPO> tenantIdAndCpDomain = selfServiceDomainConfigDao.findByTenantIdAndCpDomain(enterpriseId, domain);
|
||
tenantIdAndCpDomain.ifPresent(domainConfigPO -> list.add(domainConfigPO.getDomain()));
|
||
}
|
||
}else { // 由于不是唯一的前端传过来的肯定是域名表 domain 字段,直接用。
|
||
list.add(domain);
|
||
}
|
||
}
|
||
return list;
|
||
}
|
||
|
||
```
|
||
|
||
# 增加黑名单联合惩戒需求,不允许惩戒客户新增域名
|
||
|
||
2 人天
|
||
|
||
## 需求评审
|
||
|
||
## 需求备注
|
||
|
||
queryJointPunishFromBBoss
|
||
|
||
JointPunishContentVO
|
||
|
||
JointPunishVO
|
||
|
||
JointPunishFeedbackVO
|
||
|
||
JointPunishFeedbackResultVO
|
||
|
||
## 需求开发
|
||
|
||
# 月统计报表中平面筛选项变更为后端控制
|
||
|
||
0.5 人天
|
||
|
||
## 需求评审
|
||
|
||
(1)IBS-运营管理-月统计报表-企业月流量,
|
||
|
||
(2)IBS-运营管理-月统计报表-试商用客户峰值带宽
|
||
|
||
## 需求备注
|
||
|
||
企业月流量
|
||
|
||
华为平面:1
|
||
|
||
中兴平面:2
|
||
|
||
HCDN:3
|
||
|
||
自研2.0:8
|
||
|
||
试商用客户峰值带宽
|
||
|
||
华为平面:1
|
||
|
||
中兴平面:2
|
||
|
||
HCDN:3
|
||
|
||
自研2.0:4
|
||
|
||
## 需求开发
|
||
|
||
```json
|
||
{
|
||
"企业月流量": {
|
||
"华为平面": "1",
|
||
"中兴平面": "2",
|
||
"HCDN": "3",
|
||
"自研2.0": "8"
|
||
},
|
||
"试商用客户峰值带宽": {
|
||
"华为平面": "1",
|
||
"中兴平面": "2",
|
||
"HCDN": "3",
|
||
"自研2.0": "4"
|
||
}
|
||
}
|
||
```
|
||
|
||
# 企业白名单审批人员变更需求
|
||
|
||
0.5 人天
|
||
|
||
## 需求评审
|
||
|
||
1、二级域名白名单工单审批,审批人从政企客户经理管理员换成集团客户经理管理员。
|
||
|
||
2、企业白名单企业管理-企业白名单-TOP55企业&二级域名白名单,新增集团客户经理管理员编辑查看权限。
|
||
|
||
## 需求备注
|
||
|
||
## 需求开发
|
||
|
||
登录集团超级管理员,进入账户管理-角色权限管理,在企业管理下增加权限。
|
||
|
||
```
|
||
权限关键字:NEW_QYGL_TAB_WHITELISTING
|
||
权限名称:企业白名单
|
||
```
|
||
|
||
进入账户管理-角色管理,找到集团客户经理管理员、政企客户经理管理员。
|
||
|
||
进行编辑,勾选企业白名单。
|
||
|
||
# 用例评审
|
||
|
||
# 冒烟自测
|
||
|
||
## (完成)月统计报表中平面筛选项变更为后端控制
|
||
|
||
企业月流量
|
||
|
||
> 这个从芳造好数据后需要触发后端数据写入。
|
||
|
||
```
|
||
xcftest2025010403.com
|
||
xcftest2025010401.com
|
||
```
|
||
|
||
试商用
|
||
|
||
```
|
||
xcftest1119esop01.komect.com,gpnxknoh-mqewujpo0ofulamk,[1],2024-11-19 08:47:57,彭的企业,政企分公司,83526154
|
||
```
|
||
|
||
## (完成)企业白名单审批人员变更需求
|
||
|
||
> 确认白名单权限显示问题。
|
||
|
||
1、前提的 关闭惩戒功能。
|
||
|
||
2、第二部中的(2)调用esop企业客户调用新增自助域名接口,这一步除了 CMCDN-Auth-Token 还有一个 Accept 参数的。
|
||
|
||
验证点文案:
|
||
|
||
```
|
||
{
|
||
"err_desc":"请求校验通过,域名正在审核中,请等待集团客户经理管理员审核,审核通过后请在域名管理列表里查看域名信息。",
|
||
"status":"under_review",
|
||
"task_id":"7abc1faa3f324589a49380fdd1f12ea2"
|
||
}
|
||
```
|
||
|
||
3、第二步验证点 2.邮件提醒集团客户经理管理员审批【ESOP自助域名新增工单】
|
||
|
||

|
||
|
||
1.已存在esop企业:esop测试企业,企业中已存在点播域名
|
||
|
||
2.已在后台配置开启,域名列表页存在“新建域名”按钮
|
||
|
||
3.esop测试企业 配置为惩戒黑名单企业
|
||
|
||
4.开启惩戒功能
|
||
|
||
## (完成)相同CPID下冲突域名兼容
|
||
|
||
前提:1.已存在企业:xcf海外点播,企业下已存在域名test.com和冲突域名test.com.01.cdnhwcqir15.com
|
||
|
||
## (完成)增加黑名单联合惩戒需求,不允许惩戒客户新增域名
|