diff --git a/src/main/java/com/example/demo/domain/vo/ConsumeUser.java b/src/main/java/com/example/demo/domain/vo/ConsumeUser.java index 9b6f364..1ef7d45 100644 --- a/src/main/java/com/example/demo/domain/vo/ConsumeUser.java +++ b/src/main/java/com/example/demo/domain/vo/ConsumeUser.java @@ -1,5 +1,7 @@ package com.example.demo.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.PositiveOrZero; import lombok.AllArgsConstructor; @@ -25,27 +27,44 @@ public class ConsumeUser implements Serializable { private static final long serialVersionUID = 1L; + @ExcelProperty("客户姓名") private String name; // 客户姓名 + @ExcelProperty("精网号") private Integer jwcode; // 精网号 + @ExcelProperty("所属地区") private String market; // 所属地区 + @ExcelProperty("商品名称") private String goodsName; // 商品名称 + @ExcelProperty("消费平台") private String payPlatform; // 消费平台 + @ExcelProperty("金币总数") private Integer sumGold; // 金币总数 + @ExcelProperty("永久金币") private Integer permanentGold; // 永久金币 + @ExcelProperty("免费金币") private Integer freeGold; // 免费金币 + @ExcelProperty("任务金币") private Integer taskGold; // 任务金币 + @ExcelProperty("备注") private String remark; // 备注 + @ExcelProperty("提交人ID") private Integer adminId; //提交人Id + @ExcelProperty("提交人姓名") private String adminName; //提交人姓名 + @ExcelProperty("是否退款") private Integer isRefund; //是否退款 - + @ExcelProperty("消费时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 消费时间 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date startTime; // 开始时间 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date endTime; // 结束时间 + @ExcelIgnore private String sortField; //排序字段 + @ExcelIgnore private String sortOrder; //排序顺序 } diff --git a/src/main/java/com/example/demo/domain/vo/GoldDetail.java b/src/main/java/com/example/demo/domain/vo/GoldDetail.java index 7ed07e8..77bac75 100644 --- a/src/main/java/com/example/demo/domain/vo/GoldDetail.java +++ b/src/main/java/com/example/demo/domain/vo/GoldDetail.java @@ -1,5 +1,7 @@ package com.example.demo.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.NoArgsConstructor; @@ -20,24 +22,41 @@ import java.util.Date; public class GoldDetail { private static final long serialVersionUID = 1L; + @ExcelIgnore private String token; + @ExcelProperty("名称") private String name; // 名称 + @ExcelProperty("精网号") private Integer jwcode; // 精网号 + @ExcelProperty("所属地区") private String market; // 所属地区 + @ExcelProperty("支付平台") private String payPlatform; // 支付平台 + @ExcelProperty("类型") private Integer type; // 类型 + @ExcelProperty("总金币") private Integer sumGold; // 总金币 + @ExcelProperty("永久金币") private Integer permanentGold; //永久金币 + @ExcelProperty("免费金币六月到期") private Integer freeJune; // 免费金币六月到期 - private Integer freeDecember; // 免费金币七月到期 + @ExcelProperty("免费金币十二月到期") + private Integer freeDecember; // 免费金币十二月到期 + @ExcelProperty("任务金币") private Integer taskGold; // 任务金币 + @ExcelProperty("提交人") private String adminName; //提交人 + @ExcelProperty("开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date startTime; // 开始时间 + @ExcelProperty("结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date endTime; // 结束时间 + @ExcelIgnore private String sortField; //排序字段 + @ExcelIgnore private String sortOrder; //排序顺序 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date auditTime; diff --git a/src/main/java/com/example/demo/domain/vo/GoldUser.java b/src/main/java/com/example/demo/domain/vo/GoldUser.java index bf84eae..1971d53 100644 --- a/src/main/java/com/example/demo/domain/vo/GoldUser.java +++ b/src/main/java/com/example/demo/domain/vo/GoldUser.java @@ -1,5 +1,6 @@ package com.example.demo.domain.vo; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; @@ -20,21 +21,37 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor public class GoldUser { + @ExcelProperty("客户姓名") private String name; // 客户姓名 + @ExcelProperty("精网号") private Integer jwcode; // 精网号 + @ExcelProperty("所属地区") private String market; // 所属地区 + @ExcelProperty("当前金币总数") private Integer NowSumGold; // 当前金币总数 + @ExcelProperty("当前永久金币") private Integer NowPermanentGold; // 当前永久金币 + @ExcelProperty("当前免费金币") private Integer NowFreeGold; // 当前免费金币 + @ExcelProperty("当前免费金币6月") private Integer NowFreeJune; // 免费金币6月 + @ExcelProperty("当前免费金币12月") private Integer NowFreeDecember; // 免费金币12月 + @ExcelProperty("当前任务金币") private Integer NowTaskGold; // 当前任务金币 + @ExcelProperty("历史金币总数") private Integer historySumGold; // 历史金币总数 + @ExcelProperty("历史永久金币") private Integer historyPermanentGold; // 历史永久金币 + @ExcelProperty("历史免费金币") private Integer historyFreeGold; // 历史免费金币 + @ExcelProperty("历史任务金币") private Integer historyTaskGold; // 历史任务金币 + @ExcelProperty("充值次数") private Integer rechargeNum; // 充值次数 + @ExcelProperty("消费次数") private Integer consumeNum; // 消费次数 + @ExcelProperty("首充日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private Date firstRecharge; // 首充日期 diff --git a/src/main/java/com/example/demo/domain/vo/Page.java b/src/main/java/com/example/demo/domain/vo/Page.java index 72b26bf..7a30778 100644 --- a/src/main/java/com/example/demo/domain/vo/Page.java +++ b/src/main/java/com/example/demo/domain/vo/Page.java @@ -17,6 +17,7 @@ import lombok.NoArgsConstructor; public class Page { private static final long serialVersionUID = 1L; + private Integer pageNum; private Integer pageSize; private GoldDetail goldDetail; diff --git a/src/main/java/com/example/demo/domain/vo/RechargeUser.java b/src/main/java/com/example/demo/domain/vo/RechargeUser.java index 3310d7c..d9f015c 100644 --- a/src/main/java/com/example/demo/domain/vo/RechargeUser.java +++ b/src/main/java/com/example/demo/domain/vo/RechargeUser.java @@ -1,5 +1,7 @@ package com.example.demo.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; @@ -22,29 +24,62 @@ public class RechargeUser { private static final long serialVersionUID = 1L; + @ExcelProperty("客户姓名") private String name; // 客户姓名 + + @ExcelProperty("精网号") private Integer jwcode; // 精网号 + + @ExcelProperty("所属地区") private String market; // 所属地区 + + @ExcelProperty("活动名称") private String activity; // 活动名称 + + @ExcelProperty("汇率ID") private Integer rateId; // 汇率ID + + @ExcelProperty("汇率名称") private String rateName; // 汇率名称 + + @ExcelProperty("金额[分]") private Integer money; // 金额[分] + + @ExcelProperty("永久金币") private Integer permanentGold; // 永久金币 + + @ExcelProperty("免费金币") private Integer freeGold; // 免费金币 + + @ExcelProperty("支付方式") private String payModel; // 支付方式 + + @ExcelProperty("支付平台") private String payPlatform; // 支付平台 + + @ExcelProperty("支付凭证") private String voucher; // 支付凭证 + + @ExcelProperty("备注") private String remark; // 备注 - private Integer adminId; //提交人Id - private String adminName; //提交人姓名 + + @ExcelProperty("提交人Id") + private Integer adminId; // 提交人Id + + @ExcelProperty("提交人姓名") + private String adminName; // 提交人姓名 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + @ExcelProperty("创建时间") private Date payTime; // 创建时间 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + @ExcelIgnore private Date startTime; // 开始时间 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date endTime; // 结束时间 - + @ExcelIgnore private String sortField; //排序字段 + @ExcelIgnore private String sortOrder; //排序顺序 } diff --git a/src/main/java/com/example/demo/domain/vo/RefundUser.java b/src/main/java/com/example/demo/domain/vo/RefundUser.java index e0e42f6..d80c0dd 100644 --- a/src/main/java/com/example/demo/domain/vo/RefundUser.java +++ b/src/main/java/com/example/demo/domain/vo/RefundUser.java @@ -1,5 +1,7 @@ package com.example.demo.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; @@ -23,28 +25,46 @@ public class RefundUser { private static final long serialVersionUID = 1L; + @ExcelProperty("订单号") private String orderCode; // 订单号 + @ExcelProperty("客户姓名") private String name; // 客户姓名 + @ExcelProperty("精网号") private Integer jwcode; // 精网号 + @ExcelProperty("所属地区") private String market; // 所属地区 + @ExcelProperty("商品名称") private String goodsName; // 商品名称 + @ExcelProperty("退款类型") private String refundType; // 退款类型 + @ExcelProperty("退款方式") private Byte refundModel; // 退款方式(0全部/1部分退款) + @ExcelProperty("金币总数") private Integer sumGold; // 金币总数 + @ExcelProperty("永久金币") private Integer permanentGold; // 永久金币 + @ExcelProperty("免费金币") private Integer freeGold; // 免费金币 + @ExcelProperty("任务金币") private Integer taskGold; // 任务金币 + @ExcelProperty("退款原因") private String remark; // 退款原因 + @ExcelProperty("提交人ID") private Integer adminId; //提交人Id + @ExcelProperty("提交人姓名") private String adminName; //提交人姓名 + @ExcelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 创建时间 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + @ExcelIgnore private Date startTime; // 开始时间 + @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date endTime; // 结束时间 - + @ExcelIgnore private String sortField; //排序字段 + @ExcelIgnore private String sortOrder; //排序顺序 } diff --git a/src/main/java/com/example/demo/mapper/ExportMapper.java b/src/main/java/com/example/demo/mapper/ExportMapper.java index 4bb7cd6..09a268d 100644 --- a/src/main/java/com/example/demo/mapper/ExportMapper.java +++ b/src/main/java/com/example/demo/mapper/ExportMapper.java @@ -2,6 +2,7 @@ package com.example.demo.mapper; import com.example.demo.domain.entity.Export; import com.example.demo.domain.vo.ExportVo; +import io.lettuce.core.StrAlgoArgs; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -18,6 +19,6 @@ import java.util.List; public interface ExportMapper { ExportVo getExportData(Integer id); int updateExportData(Long recordId, Integer state, String url, String reason, Integer dataNum); - List getExportRecord(Integer account); + List getExportRecord(Integer account, Byte type); } diff --git a/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java index 56dc0e6..0b304a5 100644 --- a/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java @@ -27,6 +27,7 @@ import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +44,8 @@ public class ExportExcelServiceImpl implements ExportExcelService { private static final ObjectMapper objectMapper = new ObjectMapper(); + @Value("${file.upload.url}") + private String uploadUrl; //注入AiEmotionService @Autowired private AiEmotionService aiEmotionService; @@ -132,7 +135,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { // 7. 分页查询并写入数据 Page page = new Page(); page.setPageNum(1); - page.setPageSize(1000); + page.setPageSize(5000); Integer totalCount = 0; page.setGoldDetail(goldDetail); boolean hasMore = true; @@ -184,7 +187,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { if (tempFile != null && tempFile.exists() && tempFile.length() > 0) { // 8. 上传到OSS(读取本地临时文件) // 获取接口的基础 URL - String uploadUrl = "http://39.101.133.168:8828/hljw/api/aws/upload"; + String uploadUrl = this.uploadUrl; try { // 1. 创建上传工具实例 ExcelUploadUtil uploadUtil = new ExcelUploadUtil(uploadUrl); @@ -337,7 +340,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { // 7. 分页查询并写入数据 Page page = new Page(); page.setPageNum(1); - page.setPageSize(1000); + page.setPageSize(5000); page.setUser(user); Integer totalCount = 0; boolean hasMore = true; @@ -389,7 +392,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { if (tempFile != null && tempFile.exists() && tempFile.length() > 0) { // 8. 上传到OSS(读取本地临时文件) // 获取接口的基础 URL - String uploadUrl = "http://39.101.133.168:8828/hljw/api/aws/upload"; + String uploadUrl = this.uploadUrl; try { // 1. 创建上传工具实例 ExcelUploadUtil uploadUtil = new ExcelUploadUtil(uploadUrl); @@ -534,12 +537,17 @@ public class ExportExcelServiceImpl implements ExportExcelService { try { // 6. 初始化Excel写入器(指向本地文件流) - excelWriter = RechargeExcelWriter(outputStream, "user"); + try { + excelWriter = EasyExcel.write(outputStream, GoldDetail.class).build(); + } catch (Exception e) { + log.error("Excel 写入器初始化失败", e); + throw new RuntimeException("Excel 写入器初始化失败", e); + } WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); // 7. 分页查询并写入数据 Page page = new Page(); page.setPageNum(1); - page.setPageSize(1000); + page.setPageSize(5000); Integer totalCount = 0; page.setRechargeUser(rechargeUser); boolean hasMore = true; @@ -591,7 +599,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { if (tempFile != null && tempFile.exists() && tempFile.length() > 0) { // 8. 上传到OSS(读取本地临时文件) // 获取接口的基础 URL - String uploadUrl = "http://39.101.133.168:8828/hljw/api/aws/upload"; + String uploadUrl = this.uploadUrl; try { // 1. 创建上传工具实例 ExcelUploadUtil uploadUtil = new ExcelUploadUtil(uploadUrl); @@ -725,14 +733,12 @@ public class ExportExcelServiceImpl implements ExportExcelService { aiEmotionService.updateStatus(recordId, 1, "", "", 0); // 5. 准备Excel文件 fileName = record.getFileName(); + log.info("到这了---------------------------------------------"); // 初始化临时文件(保存到本地临时目录) tempFile = File.createTempFile("export_", ".xlsx"); outputStream = new FileOutputStream(tempFile); // 使用文件输出流 // 从JSON中提取单个值 - String text = requestDataNode.has("text") ? requestDataNode.get("text").asText() : null; - Integer sort = requestDataNode.has("sort") ? requestDataNode.get("sort").asInt() : null; - String field = requestDataNode.has("field") ? requestDataNode.get("field").asText() : null; - String deptId = requestDataNode.has("deptId") ? requestDataNode.get("deptId").asText() : null; + try { // 6. 初始化Excel写入器(指向本地文件流) @@ -741,7 +747,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { // 7. 分页查询并写入数据 Page page = new Page(); page.setPageNum(1); - page.setPageSize(1000); + page.setPageSize(5000); page.setConsumeUser(consumeUser); Integer totalCount = 0; boolean hasMore = true; @@ -793,7 +799,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { if (tempFile != null && tempFile.exists() && tempFile.length() > 0) { // 8. 上传到OSS(读取本地临时文件) // 获取接口的基础 URL - String uploadUrl = "http://39.101.133.168:8828/hljw/api/aws/upload"; + String uploadUrl = this.uploadUrl; try { // 1. 创建上传工具实例 ExcelUploadUtil uploadUtil = new ExcelUploadUtil(uploadUrl); @@ -943,7 +949,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { // 7. 分页查询并写入数据 Page page = new Page(); page.setPageNum(1); - page.setPageSize(1000); + page.setPageSize(5000); page.setRefundUser(refundUser); Integer totalCount = 0; boolean hasMore = true; @@ -995,7 +1001,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { if (tempFile != null && tempFile.exists() && tempFile.length() > 0) { // 8. 上传到OSS(读取本地临时文件) // 获取接口的基础 URL - String uploadUrl = "http://39.101.133.168:8828/hljw/api/aws/upload"; + String uploadUrl = this.uploadUrl; try { // 1. 创建上传工具实例 ExcelUploadUtil uploadUtil = new ExcelUploadUtil(uploadUrl); @@ -1106,7 +1112,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { @Override public List getExcel(Export export) { - List list = exportMapper.getExportRecord(export.getAccount()); + List list = exportMapper.getExportRecord(export.getAccount(),export.getType()); System.out.println(list+"-------------------------------"); return list; } diff --git a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java index 1b08c1d..cb31373 100644 --- a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java @@ -158,10 +158,6 @@ public class GoldDetailServiceImpl implements GoldDetailService { // 手动构造请求数据(避免 toString() 只返回部分字段) Map requestData = new HashMap<>(); - requestData.put("text", dto.getText()); - requestData.put("sort", dto.getSort()); - requestData.put("field", dto.getField()); - requestData.put("deptId", dto.getDeptid()); requestData.put("goldDetail", dto.getGoldDetail()); exportData.put("requestData", requestData); @@ -216,10 +212,6 @@ public class GoldDetailServiceImpl implements GoldDetailService { // 手动构造请求数据(避免 toString() 只返回部分字段) Map requestData = new HashMap<>(); - requestData.put("text", dto.getText()); - requestData.put("sort", dto.getSort()); - requestData.put("field", dto.getField()); - requestData.put("deptId", dto.getDeptid()); requestData.put("user", dto.getUser()); exportData.put("requestData", requestData); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a550248..22523e2 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -95,7 +95,9 @@ mybatis: upload: path: D:\upload - +file: + upload: + url: http://39.101.133.168:8828/hljw/api/aws/upload server: diff --git a/src/main/resources/mapper/ExportMapper.xml b/src/main/resources/mapper/ExportMapper.xml index c9c85bd..361a9de 100644 --- a/src/main/resources/mapper/ExportMapper.xml +++ b/src/main/resources/mapper/ExportMapper.xml @@ -21,6 +21,9 @@ and account = #{account} + + and type = #{type} + order by create_time desc diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index 76ad21c..c827bbd 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -43,7 +43,7 @@