Initial commit
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
```
|
||||
数据看板
|
||||
|
||||
curl --location 'http://localhost:8080/customer-operation/analytics/homepage/dashboard' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"startTime": "",
|
||||
"endTime": "2025-05-31"
|
||||
}
|
||||
'
|
||||
|
||||
响应
|
||||
|
||||
{
|
||||
"data": {
|
||||
"cdnChurnedCustomers": 79,
|
||||
"cdnExistingCommercialCustomers": 260
|
||||
},
|
||||
"message": "ok",
|
||||
"retriable": false,
|
||||
"statusCode": "200",
|
||||
"success": true
|
||||
}
|
||||
|
||||
商用列表
|
||||
|
||||
curl --location 'http://localhost:8080/customer-operation/analytics/commercial/list' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"startTime": "2025-05-01",
|
||||
"endTime": "2025-05-31",
|
||||
"pageNum": 1,
|
||||
"pageSize": 10
|
||||
}'
|
||||
|
||||
响应
|
||||
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"commercialStartTime": "2018-08-13T09:16:15",
|
||||
"cpid": "80984882",
|
||||
"enterpriseName": "上海公共交通卡股份有限公司",
|
||||
"productType": "点播",
|
||||
"province": "上海",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2019-09-27T16:31:10",
|
||||
"cpid": "80997938",
|
||||
"enterpriseName": "上海市青浦区政务服务办公室",
|
||||
"productType": "点播",
|
||||
"province": "上海",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2018-12-01T00:21:52",
|
||||
"cpid": "83543303",
|
||||
"enterpriseName": "湖南快乐阳光互动娱乐传媒有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-02-12T00:00:00",
|
||||
"cpid": "81062033",
|
||||
"enterpriseName": "太仓市教育信息化中心",
|
||||
"productType": "点播",
|
||||
"province": "江苏",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2024-08-02T17:58:54",
|
||||
"cpid": "83526164",
|
||||
"enterpriseName": "北京百度网讯科技有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-03-12T15:24:15",
|
||||
"cpid": "81040133",
|
||||
"enterpriseName": "南京市秦淮区教师发展中心",
|
||||
"productType": "点播",
|
||||
"province": "江苏",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-05-22T18:00:00",
|
||||
"cpid": "83587521",
|
||||
"enterpriseName": "深圳市腾讯计算机系统有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-05-22T18:05:00",
|
||||
"cpid": "83538433",
|
||||
"enterpriseName": "北京金山云网络技术有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-10-22T14:40:08",
|
||||
"cpid": "81115066",
|
||||
"enterpriseName": "金华日报社",
|
||||
"productType": "点播",
|
||||
"province": "浙江",
|
||||
"status": "已开通"
|
||||
},
|
||||
{
|
||||
"commercialStartTime": "2020-07-01T21:00:00",
|
||||
"cpid": "83546349",
|
||||
"enterpriseName": "阿里云计算有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已开通"
|
||||
}
|
||||
],
|
||||
"pageNum": 1,
|
||||
"pageSize": 10,
|
||||
"total": 260
|
||||
}
|
||||
|
||||
商用列表导出
|
||||
|
||||
curl --location 'http://localhost:8080/customer-operation/analytics/commercial/export' \
|
||||
--data '{
|
||||
"startTime": "2025-05-01",
|
||||
"endTime": "2025-05-31",
|
||||
"pageNum": 1,
|
||||
"pageSize": 1000
|
||||
}'
|
||||
|
||||
注销列表
|
||||
|
||||
curl --location 'http://localhost:8080/customer-operation/analytics/churned/list' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"startTime": "2025-05-01",
|
||||
"endTime": "2025-05-31",
|
||||
"pageNum": 1,
|
||||
"pageSize": 10
|
||||
}'
|
||||
|
||||
响应
|
||||
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"cancelTime": "2022-01-30T16:30:32",
|
||||
"cpid": "80941354",
|
||||
"enterpriseName": "上海海思技术有限公司",
|
||||
"productType": "点播",
|
||||
"province": "上海",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2021-06-29T23:21:07",
|
||||
"cpid": "83532582",
|
||||
"enterpriseName": "贵州白山云科技股份有限公司",
|
||||
"productType": "点播",
|
||||
"province": "政企分公司",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2021-05-19T16:09:59",
|
||||
"cpid": "81594819",
|
||||
"enterpriseName": "中协通通信技术有限公司",
|
||||
"productType": "点播",
|
||||
"province": "山东",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2023-10-12T10:00:33",
|
||||
"cpid": "81262264",
|
||||
"enterpriseName": "杭州点智连科技有限公司",
|
||||
"productType": "点播",
|
||||
"province": "安徽",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2021-04-12T16:47:53",
|
||||
"cpid": "81186736",
|
||||
"enterpriseName": "深圳市云帆加速科技有限公司",
|
||||
"productType": "点播",
|
||||
"province": "浙江",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2024-05-29T11:08:38",
|
||||
"cpid": "81090226",
|
||||
"enterpriseName": "江苏常熟农村商业银行股份有限公司",
|
||||
"productType": "点播",
|
||||
"province": "江苏",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2023-02-01T15:23:48",
|
||||
"cpid": "81013775",
|
||||
"enterpriseName": "苏州市吴江区勤工俭学与装备管理办公室",
|
||||
"productType": "点播",
|
||||
"province": "江苏",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2025-02-12T23:59:00",
|
||||
"cpid": "83587521",
|
||||
"enterpriseName": "深圳市腾讯计算机系统有限公司",
|
||||
"productType": "直播",
|
||||
"province": "政企分公司",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2021-05-24T14:49:04",
|
||||
"cpid": "80172777",
|
||||
"enterpriseName": "北京品云科技有限公司",
|
||||
"productType": "点播",
|
||||
"province": "北京",
|
||||
"status": "已注销"
|
||||
},
|
||||
{
|
||||
"cancelTime": "2022-02-16T14:28:35",
|
||||
"cpid": "81647613",
|
||||
"enterpriseName": "河南省腾奈电子科技有限公司",
|
||||
"productType": "点播",
|
||||
"province": "河南",
|
||||
"status": "已注销"
|
||||
}
|
||||
],
|
||||
"pageNum": 1,
|
||||
"pageSize": 10,
|
||||
"total": 79
|
||||
}
|
||||
|
||||
|
||||
注销列表导出
|
||||
|
||||
curl --location 'http://localhost:8080/customer-operation/analytics/churned/list' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"startTime": "2025-05-01",
|
||||
"endTime": "2025-05-31",
|
||||
"pageNum": 1,
|
||||
"pageSize": 1000
|
||||
}'
|
||||
|
||||
|
||||
```
|
||||
@@ -0,0 +1,45 @@
|
||||
# 信安域名信息获取规则变更
|
||||
|
||||
工时:3
|
||||
|
||||
## 需求评审
|
||||
|
||||
1. 目前来看备案号查询接口是我们传什么信安校验什么。
|
||||
2. 以 a.b.c.gov.cn 举例。全域名查不到,我们就会拆分为所有子域名,b.c.gov.cn 和 c.gov.cn,最终以 c.gov.cn 为准,因为 b.c.gov.cn 会被覆盖。
|
||||
3. 但是 .gov.cn 的域名可能每一级别都可能备案,此时客户传的是 b.c.gov.cn 的备案号,但是我们程序会获得 c.gov.cn 的备案号进行比对。认为不合法。
|
||||
|
||||
背景:cdn.jiangsu.chinatax.gov.cn
|
||||
|
||||
## 需求备注
|
||||
|
||||
针对合法性字段。
|
||||
|
||||
cache+域名配置和域名配置需求工单,创单域名入库就有。
|
||||
|
||||
试用单、试用变更、开通单,域名会先入库,验收刷新此值。
|
||||
|
||||
## 需求开发
|
||||
|
||||
# ESOP分发范围及新增域名规则变更
|
||||
|
||||
工时:1
|
||||
|
||||
## 需求评审
|
||||
|
||||
## 需求备注
|
||||
|
||||
## 需求开发
|
||||
|
||||
# 订购迁移工单加审批超时的监控
|
||||
|
||||
工时:2
|
||||
|
||||
## 需求评审
|
||||
|
||||
是否和订购迁移工单有关系?无。
|
||||
|
||||
24 小时内也要发。
|
||||
|
||||
## 需求备注
|
||||
|
||||
## 需求开发
|
||||
@@ -0,0 +1,279 @@
|
||||
# cache+新增全站加速产品类型
|
||||
|
||||
工时:1
|
||||
|
||||
NRWLXT-29760
|
||||
|
||||
## 需求评审
|
||||
|
||||
## 需求备注
|
||||
|
||||
## 需求开发
|
||||
|
||||
```
|
||||
新建工单
|
||||
/workorder/custom/add
|
||||
|
||||
新建企业
|
||||
/cache/enterprise/order/submit
|
||||
|
||||
审批企业
|
||||
/workorder/approvedecision
|
||||
CACHE_ENTERPRISE
|
||||
com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl#decision
|
||||
```
|
||||
|
||||
省测运营经理:存在变更单,三个产品。
|
||||
|
||||
省测企业客户:无法新建工单
|
||||
|
||||
集团运营经理:没有相关工单单。
|
||||
|
||||
集团企业客户:存在新增单,变更单,四个产品。
|
||||
|
||||

|
||||
|
||||
集团:
|
||||
|
||||

|
||||
|
||||
# 自动化统计展示各类客户数据
|
||||
|
||||
工时:8
|
||||
|
||||
## 需求评审
|
||||
|
||||
> 如果相同 CpId 同时开通了点播跟直播则算两个,这个地方是点播直播还是具体到产品?
|
||||
|
||||
点播包含三个产品。
|
||||
|
||||
> 这次做的**正在商用的企业数**和**已注销的企业数**。这种可以具体到某一天,但是时间段内的是不是没有意义。
|
||||
|
||||
取时间段的 endTime。
|
||||
|
||||
> 前三个针对时间段的统计无意义。
|
||||
|
||||
需求会标注哪些是时间节点,哪些是时间段。
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
1)首页默认展示从记录以来截止到**昨天**的数据,用户可选择时间查询相关数据,最长查询时间为:**2025年01月01日**
|
||||
|
||||
2)**CDN存量商用客户数**,产品状态为已开通、已停用,如果相同cpid同时开通了点播跟直播则算两个。统计截止到选择的结束时间当天的累计数据。页面、视频、下载均算为点播。如果产品下有多个订购已开通,开通时间为最早的开通时间。
|
||||
|
||||
3)**CDN注销客户数**,业务订购均已注销,则定义为已注销。如果cpid+产品类型相同,但订购不同,都注销了才算注销。如果cpid+直播注销了,点播未注销,则统计直播的数据。统计截止到选择的结束时间当天的累计数据。
|
||||
|
||||
4)**CDN累计商用客户数**,产品状态为已开通、已停用、已注销,开通过相关产品的客户总数。统计截止到选择的结束时间当天的累计数据。
|
||||
|
||||
5)**CDN存量试用客户数**,产品状态为:试用暂停、试用中,统计截止到选择的结束时间当天的累计数据。去除历史脏数据。
|
||||
|
||||
6)**CDN累计客户总数**,产品状态为:试用暂停、试用中、已开通、已停用、已注销、试用结束、试用删除,统计截止到选择的结束时间当天的累计数据。既有试用又有商用需做合并。
|
||||
|
||||
7)**新增客户数**,开始跟结束时间段内,新增新产品(改产品类型未正在试用或者商用)且未驳回的试用单。需按照产品类型去重。
|
||||
|
||||
8)**新增商用客户数**,开始跟结束时间段内,产品转商的客户数(订购开始时间算)。需按照产品类型去重。
|
||||
|
||||
9)**新增试用转商客户数**,开始跟结束时间段内,产品转商的客户数(试用开始时间在这个时间段内,并首次开通该产品业务订购的)。需按照产品类型去重。
|
||||
|
||||
10)客户分省数据展示(本期不做)
|
||||
|
||||
11)本期做正在商用的企业数和已注销的企业数据统计及详细页面
|
||||
|
||||
12)点击方块框则跳转到相关页面
|
||||
|
||||
## 需求备注
|
||||
|
||||
【金山文档 | WPS云文档】 自动化统计展示各类客户数据
|
||||
|
||||
https://kdocs.cn/l/cnBESlz2y5yh
|
||||
|
||||
---
|
||||
|
||||
割接动作
|
||||
|
||||
1. 订购时间割接,存在为空的订购时间,以期望开通时间割接。(无需割接。)
|
||||
2. 工单状态割接,和主表保持一致。然后测试开通驳回是否未改。(已处理)
|
||||
3. 有历史企业没有 ECID(order_info有)(已处理)
|
||||
|
||||
---
|
||||
|
||||
权限关键字
|
||||
|
||||
CUSTOMER_OPERATIONS_DATA_STATISTICS
|
||||
|
||||
## 需求开发
|
||||
|
||||
工单数量统计
|
||||
|
||||
```
|
||||
试用时长耗尽 353 TestOrderResultEnum 试用工单
|
||||
|
||||
试用流量耗尽 19 TestOrderResultEnum 试用工单
|
||||
|
||||
试用可以承接 338 TestOrderResultEnum 试用工单
|
||||
|
||||
试用不可承接 21 TestOrderResultEnum 试用工单(可能是页面退回。)
|
||||
|
||||
不可承接,驳回工单 21 TestOrderResultEnum 试用工单
|
||||
|
||||
驳回工单 100 TestOrderResultEnum 试用工单
|
||||
|
||||
试用暂停 2 TestOrderResultEnum 试用工单
|
||||
|
||||
esop关闭工单 100 TestOrderResultEnum 试用工单
|
||||
|
||||
试用删除 8 TestOrderResultEnum 试用工单
|
||||
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
试用删除 8 TrialStatusUpdateOrderResultEnum 试用删除工单
|
||||
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
开通成功 411 DevelopStageEnum 业务受理工单
|
||||
|
||||
不可承接,驳回工单 3 DevelopStageEnum 业务受理工单
|
||||
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
注销完成 130 CancelStageEnum 业务注销工单
|
||||
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
待处理 39 试用工单、试用删除工单、业务受理工单、业务注销工单均存在
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
前后端接口定义
|
||||
|
||||
运营分析首页 html
|
||||
|
||||
GET /customer-operation/analytics/homepage
|
||||
|
||||
运营分析数据
|
||||
|
||||
POST /customer-operation/analytics/homepage/dashboard
|
||||
|
||||
运营分析列表页 html
|
||||
|
||||
GET /customer-operation/analytics/list
|
||||
|
||||
列表 接口:
|
||||
|
||||
POST /customer-operation/analytics/commercial/existing/list
|
||||
|
||||
POST /customer-operation/analytics/canceled/existing/list
|
||||
|
||||
导出
|
||||
|
||||
GET /customer-operation/analytics/commercial/existing/export
|
||||
|
||||
GET /customer-operation/analytics/canceled/existing/export
|
||||
|
||||
前端文件夹:statisticalAnalysis
|
||||
|
||||
dashboard.html 和 list.html
|
||||
|
||||
---
|
||||
|
||||
--- 我比她多的内容 ---
|
||||
|
||||
贵州白山云科技股份有限公司(库中有两个,这个是 83532582)
|
||||
|
||||
--- 她比我多的内容 ---
|
||||
|
||||
金华日报社(存在 网页加速 开通)
|
||||
|
||||
深圳市云帆加速科技有限公司(她写了两个,客户是网页加速和下载加速应该算一个。)
|
||||
|
||||
云之端网络(江苏)股份有限公司(修正业务但状态后统计正常。)
|
||||
|
||||
---
|
||||
|
||||
--- 我比她多的内容 (考虑重复) ---
|
||||
(无)
|
||||
|
||||
--- 她比我多的内容 (考虑重复) ---
|
||||
北京金山云网络技术有限公司【政企一个开通,广东所有开通都是点播应该算两个,她有四个。多两个。】
|
||||
北京金山云网络技术有限公司【政企一个开通,广东所有开通都是点播应该算两个,她有四个。多两个。】
|
||||
北京海山信息技术有限公司
|
||||
深圳华为云计算技术有限公司
|
||||
北京字跳网络技术有限公司
|
||||
黄山搜搜商业运营管理有限公司
|
||||
江苏运怡物联网有限公司
|
||||
江苏运怡物联网有限公司
|
||||
北京爱奇艺科技有限公司
|
||||
教育部教育技术与资源发展中心(中央电化教育馆)
|
||||
|
||||
# 域名自服务能力拓展至自有业务
|
||||
|
||||
工时:1
|
||||
|
||||
NRWLXT-29766
|
||||
|
||||
## 需求评审
|
||||
|
||||
## 需求备注
|
||||
|
||||
## 需求开发
|
||||
|
||||
主要是创单时可以筛选到对应的域名,验收反馈证书处理正常。
|
||||
|
||||
这里修复一个 BUG,Cache+ 证书验收反馈无法生效。
|
||||
|
||||
# 用例评审
|
||||
|
||||
1. 注销时间。
|
||||
2. 子雯的未来开通时间
|
||||
3. 权限问题。
|
||||
|
||||
cache+企业
|
||||
|
||||
登陆用户名:中国移动集团自有公司
|
||||
|
||||
手机号码:15771095179
|
||||
|
||||
邮箱: 15771095179@qq.com
|
||||
|
||||
rbemko4o-nhhhketi9w2xhgsy
|
||||
|
||||
中国移动集团自有公司
|
||||
|
||||
# 冒烟自测
|
||||
|
||||
前提:
|
||||
|
||||
存在集团 cache+ 企业
|
||||
|
||||
企业割接补充全站四层加速和全站七层加速
|
||||
|
||||
填写内容
|
||||
|
||||
产品类型:全站四层加速
|
||||
|
||||
OA申请号:123
|
||||
|
||||
分发区域:浙江
|
||||
|
||||
配置方式:定制化
|
||||
|
||||
上传信安信息附件(内容为域名test.com的信安信息)和需求附件
|
||||
|
||||
点击确定按钮
|
||||
|
||||
(1)提交成功,工单状态为配置中
|
||||
|
||||
(2)域名管理列表新增域名test.com,状态为部署中,产品类型为全站四层加速
|
||||
|
||||
(1)工单状态审批完成
|
||||
|
||||
(2)域名状态:已生效
|
||||
|
||||
---
|
||||
|
||||
前提:
|
||||
|
||||
1. 集团 cache+ 企业存在“全站四层加速”域名:test.com,状态为已生效,分发平面:自研2.0
|
||||
@@ -0,0 +1,97 @@
|
||||
# cache+新增全站加速产品类型
|
||||
|
||||
## 全站四层加速
|
||||
|
||||
### 新增域名
|
||||
|
||||

|
||||
|
||||
下发 BPM:
|
||||
|
||||
```log
|
||||
2025-07-08 06:34:24 [abcdefcde1234567] [abcdefcde1234567] [] [ibs-portal] [http-nio-8080-exec-6] INFO com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl 2414 bpmDomainAdapt - cache+定制化域名下发bpm, request:{"accessSystem":"IBS","account":"CDN-IBS","code":"004-20250708002","createDate":"2025-07-08 14:34:23","data":{"cacheOrderSource":"1","cdn_type":"wholeSiteFour","cpId":"80003254","domains":["20250708141239.komect.com"],"filelist":[{"fileId":"byuuvfmimbt3vpkt0iiplnkhm","name":"信安导入模板.xls"}],"nameOfClient":"龙的麦当劳","operMail":"18944180260@gmail.com","operTel":"18944180260","operUser":"18944180260cmcc","sourceBasis":"004-20250708002","sourceOfDemand":"Cache+(IBS平台)","summaryOfDemand":""},"processType":"6","userList":[{"userMail":"remaxob441@kamismail.comabc","userName":"15700197926cmcc","userTel":"15700197926"}]}
|
||||
|
||||
2025-07-08 06:34:29 [abcdefcde1234567] [abcdefcde1234567] [] [ibs-portal] [http-nio-8080-exec-6] INFO com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl 2416 bpmDomainAdapt - cache+定制化域名下发bpm, response:{"error_code":0,"error_msg":"success","instId":"046-20250708-0001"}
|
||||
```
|
||||
|
||||
BPM 反馈:
|
||||
|
||||
```log
|
||||
2025-07-08 06:43:16 [ce909a7b91ba2048] [ce909a7b91ba2048] [] [ibs-portal] [http-nio-8080-exec-5] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 946 orderCallback - callback from bpm:{"approve":0,"code":"004-20250708002","plain_info":[{"approve":0,"domain_pre_info":[{"domain":"20250708141239.komect.com","httpSelection":{"protocol":0},"plain_name":"1","provinces":["000"],"schedule_type":"Forward","server_domain":["1.1.1.1"],"source_protocol":{"protocol_port":{"http":1},"protocol_type":1},"sources":[{"back_addr":"1.1.1.1","back_protocol":0,"primary":true,"type":"ip","weight":1}]}],"plain_name":"1"}],"user_id":"921"}
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 需求变更
|
||||
|
||||

|
||||
|
||||
```log
|
||||
2025-07-08 06:46:39 [56789abcde456789] [56789abcde456789] [] [ibs-portal] [http-nio-8080-exec-7] INFO com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl 567 bpmDomainAdapt - send adaptation order to bpm:{"accessSystem":"IBS","account":"CDN-IBS","code":"005-20250708001","data":{"cacheOrderSource":"1","cdn_type":"wholeSiteFour","cpId":"80003254","domains":["20250708141239.komect.com"],"nameOfClient":"龙的麦当劳","operMail":"18944180260@gmail.com","operTel":"18944180260","operUser":"18944180260cmcc","sourceBasis":"005-20250708001","sourceOfDemand":"Cache+(IBS平台)","summaryOfDemand":""},"processType":"7","userList":[{"userMail":"remaxob441@kamismail.comabc","userName":"15700197926cmcc","userTel":"15700197926"}]}
|
||||
|
||||
2025-07-08 06:46:41 [56789abcde456789] [56789abcde456789] [] [ibs-portal] [http-nio-8080-exec-7] INFO com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl 569 bpmDomainAdapt - send adaptation order to bpm response:{"error_code":0,"error_msg":"success","instId":"046-20250708-0002"}
|
||||
```
|
||||
|
||||
BPM 反馈:
|
||||
|
||||
```
|
||||
2025-07-08 06:52:19 [6fdfe74d5defddf7] [6fdfe74d5defddf7] [] [ibs-portal] [http-nio-8080-exec-5] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 4046 adaptOrderCallback - callback from bpm:{"code":"005-20250708001","plains":["1"],"planeEvaluationInfo":[{"capacity":"可满足","estimatedCompletionDate":1751957272000,"plainName":"1","resultOfEstimate":"可支持"}],"resultOfPolicy":"1","userId":"921"}
|
||||
|
||||
2025-07-08 06:53:32 [83055e42ffd58171] [83055e42ffd58171] [] [ibs-portal] [http-nio-8080-exec-9] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 946 orderCallback - callback from bpm:{"approve":0,"code":"005-20250708001","plain_info":[{"approve":0,"domain_pre_info":[{"domain":"20250708141239.komect.com","httpSelection":{"protocol":0},"plain_name":"1","provinces":["000"],"schedule_type":"Forward","server_domain":["1.1.1.1"],"source_protocol":{"protocol_port":{"http":2},"protocol_type":1},"sources":[{"back_addr":"2.2.2.2","back_protocol":0,"primary":true,"type":"ip","weight":1}]}],"plain_name":"1"}],"user_id":"921"}
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 全站七层加速
|
||||
|
||||
### 新增域名
|
||||
|
||||

|
||||
|
||||
```log
|
||||
2025-07-08 06:55:23 [456789abcde12345] [456789abcde12345] [] [ibs-portal] [http-nio-8080-exec-6] INFO com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl 2414 bpmDomainAdapt - cache+定制化域名下发bpm, request:{"accessSystem":"IBS","account":"CDN-IBS","code":"004-20250708003","createDate":"2025-07-08 14:55:22","data":{"cacheOrderSource":"1","cdn_type":"wholeSiteseven","cpId":"80003254","domains":["20250708145040.komect.com"],"filelist":[{"fileId":"cya2snzcsqalqqveijapsig79","name":"信安导入模板.xls"}],"nameOfClient":"龙的麦当劳","operMail":"18944180260@gmail.com","operTel":"18944180260","operUser":"18944180260cmcc","sourceBasis":"004-20250708003","sourceOfDemand":"Cache+(IBS平台)","summaryOfDemand":""},"processType":"6","userList":[{"userMail":"remaxob441@kamismail.comabc","userName":"15700197926cmcc","userTel":"15700197926"}]}
|
||||
|
||||
2025-07-08 06:55:25 [456789abcde12345] [456789abcde12345] [] [ibs-portal] [http-nio-8080-exec-6] INFO com.cmcc.cdn.platform.selfservice.service.CacheWorkOrderServiceImpl 2416 bpmDomainAdapt - cache+定制化域名下发bpm, response:{"error_code":0,"error_msg":"success","instId":"046-20250708-0003"}
|
||||
```
|
||||
|
||||
```
|
||||
2025-07-08 07:00:31 [12935fd93320357e] [12935fd93320357e] [] [ibs-portal] [http-nio-8080-exec-7] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 4046 adaptOrderCallback - callback from bpm:{"code":"004-20250708003","plains":["1"],"planeEvaluationInfo":[{"capacity":"可满足","estimatedCompletionDate":1751957763000,"plainName":"1","resultOfEstimate":"可支持"}],"resultOfPolicy":"1","userId":"921"}
|
||||
|
||||
2025-07-08 07:05:36 [2274202ac706a7da] [2274202ac706a7da] [] [ibs-portal] [http-nio-8080-exec-8] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 946 orderCallback - callback from bpm:{"approve":0,"code":"004-20250708003","plain_info":[{"approve":0,"domain_pre_info":[{"domain":"20250708145040.komect.com","httpSelection":{"protocol":0},"plain_name":"1","provinces":["000"],"schedule_type":"Forward","server_domain":["1.1.1.1"],"source_protocol":{"protocol_port":{"http":1},"protocol_type":1},"sources":[{"back_addr":"1.1.1.1","back_protocol":0,"primary":true,"type":"ip","weight":1}]}],"plain_name":"1"}],"user_id":"921"}
|
||||
```
|
||||
|
||||

|
||||
|
||||
### 需求变更
|
||||
|
||||
```
|
||||
20250708145417--8cf6-4dde-ae4b-f62e7a8e9dfc
|
||||
```
|
||||
|
||||

|
||||
|
||||
```
|
||||
2025-07-08 07:08:49 [0123456789230123] [0123456789230123] [] [ibs-portal] [http-nio-8080-exec-4] INFO com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl 567 bpmDomainAdapt - send adaptation order to bpm:{"accessSystem":"IBS","account":"CDN-IBS","code":"005-20250708002","data":{"cacheOrderSource":"1","cdn_type":"wholeSiteseven","cpId":"80003254","domains":["20250708145040.komect.com"],"nameOfClient":"龙的麦当劳","operMail":"18944180260@gmail.com","operTel":"18944180260","operUser":"18944180260cmcc","sourceBasis":"005-20250708002","sourceOfDemand":"Cache+(IBS平台)","summaryOfDemand":""},"processType":"7","userList":[{"userMail":"remaxob441@kamismail.comabc","userName":"15700197926cmcc","userTel":"15700197926"}]}
|
||||
|
||||
2025-07-08 07:08:51 [0123456789230123] [0123456789230123] [] [ibs-portal] [http-nio-8080-exec-4] INFO com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl 569 bpmDomainAdapt - send adaptation order to bpm response:{"error_code":0,"error_msg":"success","instId":"046-20250708-0004"}
|
||||
```
|
||||
|
||||
```log
|
||||
2025-07-08 07:14:20 [4903a708ee137e89] [4903a708ee137e89] [] [ibs-portal] [http-nio-8080-exec-7] INFO com.cmcc.cdn.platform.selfservice.service.bpm.impl.BpmManageServiceImpl 946 orderCallback - callback from bpm:{"approve":0,"code":"005-20250708002","plain_info":[{"approve":0,"domain_pre_info":[{"domain":"20250708145040.komect.com","httpSelection":{"protocol":1,"unique_id":"20250708145417--8cf6-4dde-ae4b-f62e7a8e9dfc"},"plain_name":"1","provinces":["000"],"schedule_type":"Forward","server_domain":["1.1.1.1"],"source_protocol":{"protocol_port":{"http":1},"protocol_type":1},"sources":[{"back_addr":"1.1.1.1","back_protocol":0,"primary":true,"type":"ip","weight":1}]}],"plain_name":"1"}],"user_id":"921"}
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
@@ -0,0 +1,322 @@
|
||||
# 提示词 1
|
||||
|
||||
开发语言:JDK8
|
||||
|
||||
产品:页面、视频、下载、直播、超低时延直播、全站四层加速、全站七层加速
|
||||
|
||||
工单:试用单(试用开始时间、试用结束时间)、试用删除工单、开通单(开通时间)、非首次开通单(开通时间)、注销单(注销时间)。
|
||||
|
||||
对应两个概念:
|
||||
|
||||
试用:试用单、试用删除工单。
|
||||
|
||||
商用:开通单、非首次开通单、注销单。
|
||||
|
||||
一个企业必须要经过首次开通后才能进行非首次开通。
|
||||
|
||||
试用的时候会创建企业。
|
||||
|
||||
企业可以试用或商用多个产品,每个产品,也可以多个,用订购ID来进行区分。
|
||||
|
||||
工单也可能被驳回。
|
||||
|
||||
现在有一个需求,要统计客户数。
|
||||
|
||||
客户数定义:esop企业(cpid)+产品类型(点播(页面、下载、视频)、直播、超低时延直播、全站四层加速、全站七层加速)
|
||||
|
||||
也就是,cpid+点播 算一个数,点播包含了页面、下载、视频。cpid+直播算一个。cpid+超低时延直播算一个。cpid+全站四层加速算一个。cpid+全站七层加速算一个。
|
||||
|
||||
比如客户有两个订购是页面和1个订购是下载算一个企业数。
|
||||
|
||||
比如客户有两个订购是页面和1个订购是下载和1个订购是直播算两个企业数。
|
||||
|
||||
指标1)**CDN存量商用客户数**,如果产品下有多个订购已开通,开通时间为最早的开通时间。
|
||||
|
||||
指标2)**CDN注销客户数**业务订购均已注销,则定义为已注销。如果cpid+产品类型相同,但订购不同,都注销了才算注销。如果cpid+直播注销了,点播未注销,则统计直播的数据。
|
||||
|
||||
页面会传一个开始时间,一个结束时间,针对这两个指标只需要取结束时间进行计算。
|
||||
|
||||
有什么好的算法思维。
|
||||
|
||||
---
|
||||
|
||||
# 提示词 2
|
||||
|
||||
你是一位资深的算法工程师,精通数据统计和业务逻辑分析。我有一个需求,需要设计一种算法思维或逻辑来统计CDN服务的客户数,具体包括两个指标:**CDN存量商用客户数** 和 **CDN注销客户数**。以下是相关的业务背景和定义,请根据这些信息提供详细的算法思路或伪代码,使用JDK8相关的数据结构和逻辑。
|
||||
|
||||
### 业务背景
|
||||
|
||||
- **开发语言**:JDK8
|
||||
- **产品类型**:页面、视频、下载、直播、超低时延直播、全站四层加速、全站七层加速
|
||||
- **工单类型**:
|
||||
- 试用:试用单(可获取试用开始时间、试用结束时间)
|
||||
- 商用:开通单(包含开通时间)、非首次开通单(包含开通时间)、注销单(包含注销时间)
|
||||
- **概念**:
|
||||
- 试用:试用单
|
||||
- 商用:开通单、非首次开通单、注销单
|
||||
- 注:企业必须首次开通后才能进行非首次开通;试用时会创建企业
|
||||
- **企业与产品**:一个企业可以试用或商用多个产品,每个产品的订购用订购ID区分
|
||||
- **工单状态**:工单可能被驳回
|
||||
- **客户数定义**:以企业ID(cpid)+产品类型组合为单位计数,其中:
|
||||
- 点播(包含页面、下载、视频)算一个类型
|
||||
- 直播、超低时延直播、全站四层加速、全站七层加速各自算一个类型
|
||||
- 示例:cpid+点播(无论有几个订购)算1个客户数;cpid+点播+直播算2个客户数
|
||||
|
||||
### 指标定义
|
||||
|
||||
1. **CDN存量商用客户数**:对于某一企业(cpid)+产品类型组合,如果该组合下有多个订购已开通,则以最早的开通时间为准,判定为存量商用客户。
|
||||
2. **CDN注销客户数**:对于某一企业(cpid)+产品类型组合,如果该组合下的所有订购均已注销,则判定为已注销客户。如果同一cpid下,某产品类型(如直播)已注销,但另一类型(如点播)未注销,则只统计直播的注销数据。
|
||||
- **时间范围**:页面会传入一个开始时间和结束时间,但这两个指标仅基于结束时间进行计算。
|
||||
|
||||
### 任务
|
||||
|
||||
请提供一种算法思维或逻辑,用于计算上述两个指标。输出应包含:
|
||||
|
||||
- 数据处理步骤(如何分组、筛选、计算)
|
||||
- 如何处理产品类型分组(如点播包含页面、下载、视频)
|
||||
- 如何判定存量商用客户和注销客户
|
||||
- 可能用到的数据结构(如Map、List等,基于JDK8)
|
||||
- 对工单驳回等特殊情况的处理建议
|
||||
- 最终输出结果的格式建议(例如,按cpid和产品类型组合的统计结果)
|
||||
|
||||
### 输出格式
|
||||
|
||||
- 使用结构化的文本或伪代码,清晰展示每一步逻辑。
|
||||
- 如果可能,提供一个简单的示例,说明如何根据输入数据计算两个指标。
|
||||
- 语言:中文
|
||||
|
||||
请按上述要求,提供详细的算法设计思路。
|
||||
|
||||
```
|
||||
for (EnterpriseInfoDTO enterpriseInfo : enterpriseInfos) 的逻辑实现了获取每个企业下有多少产品,每个产品有多少订购,每个订购的,试用开始时间、试用结束时间、商用开始时间、商用结束时间、业务暂停时间、业务恢复时间。请用 List<EnterpriseProduct> enterpriseProducts 帮我收集。
|
||||
|
||||
|
||||
enterpriseProducts结构为:
|
||||
public class EnterpriseProduct {
|
||||
|
||||
private String enterpriseId;
|
||||
private List<ProductDTO> products;
|
||||
|
||||
}
|
||||
public class ProductDTO {
|
||||
|
||||
private String product;
|
||||
private List<ProductDetailsDTO> details;
|
||||
|
||||
}
|
||||
public class ProductDetailsDTO {
|
||||
|
||||
private String productId;
|
||||
private String productType;
|
||||
@Builder.Default
|
||||
private List<TrialPeriodDTO> trialPeriods = new ArrayList<>(); // 试用周期
|
||||
private LocalDateTime businessStartTime; // 商用开始时间。
|
||||
private LocalDateTime businessCancelTime; // 商用注销时间。
|
||||
@Builder.Default
|
||||
private List<BusinessPeriodDTO> businessPeriods = new ArrayList<>(); // 商用暂停恢复周期
|
||||
|
||||
|
||||
}
|
||||
public class TrialPeriodDTO {
|
||||
private LocalDateTime startTime;
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
public class BusinessPeriodDTO {
|
||||
private LocalDateTime pauseTime; // 商用暂停时间
|
||||
private LocalDateTime restoreTime; // 商用恢复时间
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 提示词 3
|
||||
|
||||
你是一位资深的算法工程师,精通数据统计和业务逻辑分析。我有一个需求,需要设计一种算法思维或逻辑来统计CDN服务的客户数,具体包括两个指标:**CDN存量商用客户数** 和 **CDN注销客户数**。以下是相关的业务背景和定义,请根据这些信息提供详细的算法思路或伪代码,使用JDK8相关的数据结构和逻辑。
|
||||
|
||||
### 业务背景
|
||||
|
||||
- **开发语言**:JDK8
|
||||
- **产品类型**:点播、直播、超低时延直播、全站四层加速、全站七层加速
|
||||
- **企业与产品**:一个企业可以试用或商用多个产品,每个产品的订购用订购ID区分
|
||||
- **客户数定义**:以企业ID(cpid)+产品类型组合为单位计数,其中:
|
||||
- 示例:cpid+点播(无论有几个订购)算1个客户数;
|
||||
- 有cpid+点播(无论有几个订购),cpid+直播(无论有几个订购)算2个客户数
|
||||
|
||||
### 指标定义
|
||||
|
||||
1. **CDN存量商用客户数**:对于某一企业(cpid)+产品类型组合,改查询时间是否在商用订购时间段内。
|
||||
2. **CDN注销客户数**:对于某一企业(cpid)+产品类型组合,如果该组合下的所有订购均已注销(也就是查询时间前所有订购均有商用开始时间和结束时间),则判定为已注销客户,但是如果该查询时间存在试用也不算注销。
|
||||
- **时间取值**:页面会传入一个开始时间和结束时间,但这两个指标仅基于结束时间进行计算(LocalDateTime requestEndTime = request.getEndTime();)。
|
||||
|
||||
### 任务
|
||||
|
||||
请提供一种算法思维逻辑,用于计算上述两个指标。输出应包含:
|
||||
|
||||
- 数据处理步骤(如何分组、筛选、计算)
|
||||
- 如何处理产品类型分组(如点播包含页面、下载、视频)
|
||||
- 如何判定存量商用客户和注销客户
|
||||
- 可能用到的数据结构(如Map、List等,基于JDK8)
|
||||
|
||||
### 输出格式
|
||||
|
||||
- 清晰展示每一步逻辑代码。
|
||||
- 语言:中文
|
||||
|
||||
请按上述要求,提供详细的算法设计思路。
|
||||
|
||||
---
|
||||
|
||||
# 提示词 4
|
||||
|
||||
你是一位资深的算法工程师,精通数据统计和业务逻辑分析。我有一个需求,需要设计一种算法思维或逻辑来统计CDN服务的客户数,具体包括两个指标:**CDN存量商用客户数** 和 **CDN注销客户数**。以下是相关的业务背景和定义,请根据这些信息提供详细的算法思路或伪代码,使用JDK8相关的数据结构和逻辑。
|
||||
|
||||
我现在有一个结构体 EnterpriseProduct:
|
||||
|
||||
```java
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EnterpriseProduct {
|
||||
|
||||
private String enterpriseId;
|
||||
|
||||
private List<ProductDTO> products;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProductDTO {
|
||||
|
||||
private String product;
|
||||
|
||||
private List<ProductDetailsDTO> details;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProductDetailsDTO {
|
||||
|
||||
private String productId;
|
||||
|
||||
private String productType;
|
||||
|
||||
@Builder.Default
|
||||
private List<TrialPeriodDTO> trialPeriods = new ArrayList<>(); // 试用周期
|
||||
|
||||
private LocalDateTime businessStartTime; // 商用开始时间。
|
||||
|
||||
private LocalDateTime businessCancelTime; // 商用注销时间。
|
||||
|
||||
@Builder.Default
|
||||
private List<BusinessPeriodDTO> businessPeriods = new ArrayList<>(); // 商用暂停恢复周期
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TrialPeriodDTO {
|
||||
|
||||
private LocalDateTime startTime;
|
||||
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class BusinessPeriodDTO {
|
||||
|
||||
/**
|
||||
* 商用暂停时间.
|
||||
*/ private LocalDateTime pauseTime;
|
||||
|
||||
/**
|
||||
* 商用恢复时间
|
||||
*/
|
||||
private LocalDateTime restoreTime;
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
相当于一个企业下有多个产品,每个产品有多个订购。每个订购又有商用开始时间和结束时间(商用中的结束时间可能为空)和多段的试用开始结束周期(试用中的结束时间可能为空)。和商用暂停恢复周期(暂停中的恢复时间可能为空)。
|
||||
|
||||
### 业务背景
|
||||
|
||||
- **开发语言**:JDK8
|
||||
- **产品类型**:点播、直播、超低时延直播、全站四层加速、全站七层加速
|
||||
- **企业与产品**:一个企业可以试用或商用多个产品,每个产品的订购用订购ID区分
|
||||
- **客户数定义**:以企业ID(cpid)+产品类型组合为单位计数,其中:
|
||||
- 示例:cpid+点播(无论有几个订购)算1个客户数;
|
||||
- 有cpid+点播(无论有几个订购),cpid+直播(无论有几个订购)算2个客户数
|
||||
|
||||
### 指标定义
|
||||
|
||||
1. **CDN存量商用客户数**:对于某一企业(cpid)+产品类型组合,改查询时间是否在商用订购时间段内。
|
||||
2. **CDN注销客户数**:对于某一企业(cpid)+产品类型组合,如果该组合下的所有订购均已注销(也就是查询时间前所有订购均有商用开始时间和结束时间),则判定为已注销客户,但是如果该查询时间存在试用也不算注销。
|
||||
- **时间取值**:页面会传入一个开始时间和结束时间,但这两个指标仅基于结束时间进行计算(LocalDateTime requestEndTime = request.getEndTime();)。
|
||||
|
||||
### 任务
|
||||
|
||||
请提供一种算法思维逻辑,用于计算上述两个指标。输出应包含:
|
||||
|
||||
- 数据处理步骤(如何分组、筛选、计算)
|
||||
- 如何处理产品类型分组(如点播包含页面、下载、视频)
|
||||
- 如何判定存量商用客户和注销客户
|
||||
- 可能用到的数据结构(如Map、List等,基于JDK8)
|
||||
|
||||
### 输出格式
|
||||
|
||||
- 清晰展示每一步逻辑代码。
|
||||
- 语言:中文
|
||||
|
||||
请按上述要求,提供详细的算法设计思路。
|
||||
|
||||
---
|
||||
|
||||
# 提示词 5
|
||||
|
||||
你是一位资深的算法工程师,精通数据统计和业务逻辑分析。我有一个需求,需要设计一种算法思维或逻辑来统计CDN服务的客户数对应详情列表,具体包括两个指标:**CDN存量商用客户数** 和 **CDN注销客户数**。以下是相关的业务背景和定义,请根据这些信息提供详细的算法思路和代码,使用 JDK8 相关的数据结构、逻辑和语法。
|
||||
|
||||
### 业务背景
|
||||
|
||||
- **开发语言**:JDK8
|
||||
- **产品类型**:点播、直播、超低时延直播、全站四层加速、全站七层加速
|
||||
- **企业与产品**:一个企业可以试用或商用多个产品,每个产品可以订购多个,用订购用订购ID区分
|
||||
- **客户数定义**:以企业ID(cpid)+产品类型组合为单位计数,其中:
|
||||
- cpid+点播(无论有几个订购)算1个客户数;
|
||||
- 有cpid+点播(无论有几个订购),cpid+直播(无论有几个订购)算2个客户数,相当于企业产品维度。
|
||||
|
||||
### 指标定义
|
||||
|
||||
1. **CDN存量商用客户数**:对于某一企业(cpid)+产品类型组合,改查询时间是否在商用订购时间段内。
|
||||
2. **CDN注销客户数**:对于某一企业(cpid)+产品类型组合,如果该组合下的所有订购均已注销(也就是查询时间前所有订购均有商用开始时间和结束时间),则判定为已注销客户,但是如果该查询时间存在试用也不算注销。
|
||||
- **时间取值**:页面会传入一个开始时间和结束时间,但这两个指标仅基于结束时间进行计算(LocalDateTime requestEndTime = request.getEndTime();)。
|
||||
|
||||
### 任务
|
||||
|
||||
请提供一种算法思维逻辑,用于根据现有计算路基,提供方案实现为前端提供上述两个指标详情列表(分页)。输出应包含:
|
||||
|
||||
CDN存量商用客户数:序号、CPID、企业名称、引入省份、状态、商用开通时间、类型
|
||||
|
||||
CDN注销客户数:序号、CPID、企业名称、引入省份、状态、注销时间、类型
|
||||
|
||||
关于状态:只要有开通就是已开通;全都注销是已注销;有已开通,对应的开通订购都处于暂停时间,算已暂停。
|
||||
|
||||
当前已有的逻辑时计算CDN存量商用客户数、CDN注销客户数的逻辑。是否可以抽出来一些公共方法。
|
||||
|
||||
### 输出格式
|
||||
|
||||
- 清晰展示每一步逻辑代码。
|
||||
- 语言:中文
|
||||
|
||||
请按上述要求,提供详细的算法设计和实现。
|
||||
Reference in New Issue
Block a user