From d11d10f1bfaf8362f55ae856bb3e5eec4fba203e Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Sun, 21 Jul 2024 15:01:09 +0800 Subject: [PATCH] 1231123 --- .../cai/admin/AccountCashController.java | 32 +++++++++- .../vo/accountCash/AccountCashExportVo.java | 58 +++++++++++++++++++ .../ruoyi/cai/mapper/AccountCashMapper.java | 4 ++ .../mapper/cai/AccountCashMapper.xml | 32 +++++++++- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 6 +- 5 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/accountCash/AccountCashExportVo.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/AccountCashController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/AccountCashController.java index b813b8f1..b6248147 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/AccountCashController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/AccountCashController.java @@ -1,16 +1,22 @@ package com.ruoyi.web.controller.cai.admin; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.cai.domain.AccountCash; import com.ruoyi.cai.dto.admin.common.IdsReq; import com.ruoyi.cai.dto.admin.vo.AccountCashAdminVo; import com.ruoyi.cai.dto.admin.vo.account.ExportBatchAuditVo; +import com.ruoyi.cai.dto.admin.vo.accountCash.AccountCashExportVo; import com.ruoyi.cai.enums.AccountCashStatusEnum; +import com.ruoyi.cai.mapper.AccountCashMapper; import com.ruoyi.cai.service.AccountCashService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.convert.ExcelBigNumberConvert; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; @@ -25,8 +31,11 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotNull; +import java.io.IOException; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @@ -45,6 +54,8 @@ import java.util.stream.Collectors; public class AccountCashController extends BaseController { private final AccountCashService accountCashService; + @Resource + private AccountCashMapper accountCashMapper; /** * 查询用户提现记录列表 @@ -67,14 +78,31 @@ public class AccountCashController extends BaseController { query.setPageSize(Integer.MAX_VALUE); query.setPageNum(1); List list = accountCashService.pageAdmin(query,bo).getRecords(); - ExcelUtil.exportExcel(list, "用户提现记录", AccountCashAdminVo.class, response); + List mergeList = accountCashMapper.exportMerge(bo); + try { + ExcelUtil.resetResponse("用户提现", response); + ServletOutputStream os = response.getOutputStream(); + ExcelWriter excelWriter = EasyExcel.write(os).autoCloseStream(false) + // 自动适配 + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + // 添加下拉框操作 +// builder.registerWriteHandler(new ExcelDownHandler(null)); + // 大数值自动转换 防止失真 + .registerConverter(new ExcelBigNumberConvert()).build(); + excelWriter.write(mergeList, EasyExcel.writerSheet(0, "用户提现汇总").head(AccountCashExportVo.class).build()); + excelWriter.write(list, EasyExcel.writerSheet(1, "用户提现明细").head(AccountCashAdminVo.class).build()); + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("导出Excel异常"); + } +// ExcelUtil.exportExcel(list, "用户提现记录", AccountCashAdminVo.class, response); } @Log(title = "用户导入提现通过", businessType = BusinessType.IMPORT) @SaCheckPermission("cai:accountCash:edit") @PostMapping(value = "/importAudit", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file) throws Exception { - List result = ExcelUtil.importExcel(file.getInputStream(), AccountCashAdminVo.class); + List result = ExcelUtil.importExcel(file.getInputStream(), AccountCashAdminVo.class,"用户提现明细"); List ids = result.stream().map(AccountCash::getId).collect(Collectors.toList()); ExportBatchAuditVo audit = accountCashService.batchAudit(ids); return R.ok(audit); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/accountCash/AccountCashExportVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/accountCash/AccountCashExportVo.java new file mode 100644 index 00000000..eb00baa1 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/accountCash/AccountCashExportVo.java @@ -0,0 +1,58 @@ +package com.ruoyi.cai.dto.admin.vo.accountCash; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.ruoyi.cai.enums.AccountCashStatusEnum; +import com.ruoyi.cai.enums.IsAnchorEnum; +import com.ruoyi.common.annotation.ExcelEnumFormat; +import com.ruoyi.common.convert.ExcelEnumConvert; +import lombok.Data; +import org.springframework.format.annotation.NumberFormat; + +import java.math.BigDecimal; + +@Data +public class AccountCashExportVo { + @ExcelProperty(value = "提现次数") + private Integer cashNum; + + @ExcelProperty(value = "昵称") + private String nickname; + + @ExcelProperty(value = "手机号") + private String mobile; + + @ExcelProperty(value = "主播",converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = IsAnchorEnum.class,codeField = "code",textField = "message") + private Integer isAnchor; + + @ExcelProperty(value = "提现紫贝") + private Long withdrawCoin; + + @ExcelProperty(value = "提现金额") + @NumberFormat(pattern = "0.##") +// @ContentFontStyle(color = Font.COLOR_RED) + private BigDecimal cashMoney; + + /** + * 银行名称 + */ + @ExcelProperty(value = "银行名称") + private String bank; + /** + * 账户名称 + */ + @ExcelProperty(value = "账户名称") + private String cardName; + + @ExcelProperty(value = "账户") + private String cardAccount; + + @ExcelProperty(value = "状态",converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = AccountCashStatusEnum.class,codeField = "code",textField = "text") + private Integer status; + + @ExcelProperty(value = "ids") + @ColumnWidth(value = 20) + private String ids; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java index 7a5889da..2215d7de 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.cai.dto.admin.incomeStatis.AccountCashCountDTO; import com.ruoyi.cai.domain.AccountCash; import com.ruoyi.cai.dto.admin.vo.AccountCashAdminVo; +import com.ruoyi.cai.dto.admin.vo.accountCash.AccountCashExportVo; import org.apache.ibatis.annotations.Param; import java.time.LocalDateTime; +import java.util.List; /** * 用户提现记录Mapper接口 @@ -20,4 +22,6 @@ public interface AccountCashMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") AccountCashAdminVo bo); AccountCashCountDTO incomeStatistics(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); + + List exportMerge(@Param("bo") AccountCashAdminVo bo); } diff --git a/ruoyi-cai/src/main/resources/mapper/cai/AccountCashMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/AccountCashMapper.xml index 3a935f66..f04ebe68 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/AccountCashMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/AccountCashMapper.xml @@ -49,6 +49,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by t1.create_time desc + - diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 78cf0e72..4f1edf5e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -45,6 +45,10 @@ public class ExcelUtil { return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync(); } + public static List importExcel(InputStream is, Class clazz,String sheetName) { + return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet(sheetName).doReadSync(); + } + /** * 使用校验监听器 异步导入 同步返回 @@ -306,7 +310,7 @@ public class ExcelUtil { /** * 重置响应体 */ - private static void resetResponse(String sheetName, HttpServletResponse response) throws UnsupportedEncodingException { + public static void resetResponse(String sheetName, HttpServletResponse response) throws UnsupportedEncodingException { String filename = encodingFilename(sheetName); FileUtils.setAttachmentResponseHeader(response, filename); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");