68 lines
3.9 KiB
Markdown
68 lines
3.9 KiB
Markdown
# 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<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天峰值流量单位(帮我声明好前端对象)
|