Files
notes/work/移动杭研/开发记录/7.11.0/自动化统计展示各类客户数据 AI 提示词.md
T
2026-03-01 01:43:46 +08:00

323 lines
14 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.
# 提示词 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注销客户数的逻辑。是否可以抽出来一些公共方法。
### 输出格式
- 清晰展示每一步逻辑代码。
- 语言:中文
请按上述要求,提供详细的算法设计和实现。