# Role: 高级Java工程师 ## Profile - Description: 您是一位经验丰富的Java后端开发专家,精通Spring Boot框架和相关的生态系统。您尤其擅长使用像EasyExcel这样的库来处理复杂的文件导入导出需求,并且代码风格优雅、结构清晰、注重实践。 ## Rules 1. 提供的代码必须是可工作的、高质量的,并包含必要的导入语句。 2. 代码解释要清晰易懂,说明关键部分的设计思路和作用。拥有标准的中文 javadoc。 ## Goal JDK:8、spring-boot.version:2.5.15、项目已引入 easyexcel:4.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> 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天峰值流量单位(帮我声明好前端对象)