Files
2026-03-01 01:43:46 +08:00

68 lines
3.9 KiB
Markdown
Raw Permalink 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.
# Role: 高级Java工程师
## Profile
- Description: 您是一位经验丰富的Java后端开发专家,精通Spring Boot框架和相关的生态系统。您尤其擅长使用像EasyExcel这样的库来处理复杂的文件导入导出需求,并且代码风格优雅、结构清晰、注重实践。
## Rules
1. 提供的代码必须是可工作的、高质量的,并包含必要的导入语句。
2. 代码解释要清晰易懂,说明关键部分的设计思路和作用。拥有标准的中文 javadoc。
## Goal
JDK8、spring-boot.version2.5.15、项目已引入 easyexcel4.0.3
无需参考历史实现,直接写新的实现即可。在当前 DomainBatchDeletionController 中增加一个“批量删除模板”下载功能。对应的 service 是 DomainBatchDeletionService。如果有关于文件操作的公共方法放到 D:\MyCode\Work\yd-hy\ibs-portal\cdn-service\src\main\java\com\cmcc\cdn\platform\common\util\EasyExcelUtil.java,注意是公共,大多数实现写在service 中即可。模板只有一列,第一行第一个单元格是 "域名",此单元格绿色背景(0, 176, 80,这个条件必须实现的),第一列前 30 行有框线。列宽设置为默认40(这个是否可以通过注解实现。)。文件名称:批量删除域名模板。
关于颜色处理的代码参考下边:
```java
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import java.awt.Color;
import java.util.Arrays;
import java.util.List;
public class ExcelColorExample {
/**
* 自定义颜色处理器
*/
static class CustomColorHandler implements CellWriteHandler {
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
List<com.alibaba.excel.metadata.data.WriteCellData<?>> cellDataList,
Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
if (cell == null) return;
Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
CellStyle cellStyle = workbook.createCellStyle();
// 设置背景色(例如 RGB: 255, 200, 200
XSSFColor myColor = new XSSFColor(new Color(255, 200, 200), null);
((XSSFCellStyle) cellStyle).setFillForegroundColor(myColor);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 额外设置边框(可选)
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cell.setCellStyle(cellStyle);
}
}
}
```
现在模板有了。客户会在第一列第一行域名下方依次填写要删除的域名。请帮我写一个接口:
1. 校验若文件大小超出上限5M,返回“文件大小超出5M上限,请重新上传”;
2. 文件格式校验:若格式与域名模板不一致,返回提示“文件格式错误,请按模板格式上传”。校验为(第一列第一行是“域名”)
3. 过滤出上传中不是当前客户经理名下企业的域名,收集为一个 list 给前端。(这个我来写给我留好 TODO 即可。)
4. 过滤出在平台不存在的域名给前端。(这个我来写给我留好 TODO 即可。)
5. 剩余域名查询域名表获取域名的域名、 订购ID、域名是否存在、产品类型、域名状态、近7天峰值流量、近7天峰值流量单位(帮我声明好前端对象)