From 9bc60c39ec05aa8f88b0273c974a7442fb4d07d4 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Tue, 20 Jun 2023 22:12:03 +0800 Subject: [PATCH] 会员列表导出 --- src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 18 +++++++- src/main/java/cc/mrbird/febs/mall/excel/LevelConverter.java | 30 +++++++++++++++ src/main/java/cc/mrbird/febs/mall/excel/SexConverter.java | 24 ++++++++++++ src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 15 +++++++ src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 9 ++++ 5 files changed, 93 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java index 6aeac21..f343339 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java @@ -15,6 +15,7 @@ import cc.mrbird.febs.system.entity.Dept; import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; @@ -507,4 +508,18 @@ EasyExcel.write(response.getOutputStream(),AdminMoneyFlowListVo.class).sheet("资金明细表").doWrite(list); } + @GetMapping("exportMemberList") + public void exportMemberList(MallMember mallMember, HttpServletResponse response) throws IOException { + QueryRequest request = new QueryRequest(); + request.setPageNum(1); + request.setPageSize(999999999); + List<MallMember> list = mallMemberService.getMallMemberList(mallMember, request).getRecords(); + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName= URLEncoder.encode("会员列表","UTF-8").replaceAll("\\+","%20"); + response.setHeader("Content-disposition","attachment;filename*=utf-8''"+fileName+".xlsx"); + EasyExcel.write(response.getOutputStream(),MallMember.class).sheet("会员列表").doWrite(list); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java index 8425235..e358523 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java @@ -4,6 +4,10 @@ import cc.mrbird.febs.common.entity.BaseEntity; import cc.mrbird.febs.common.entity.BaseEntity; import cc.mrbird.febs.common.enumerates.MemberLevelTagDicEnums; +import cc.mrbird.febs.mall.excel.LevelConverter; +import cc.mrbird.febs.mall.excel.SexConverter; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -15,17 +19,20 @@ * @date 2021-09-16 **/ @Data +@ExcelIgnoreUnannotated @TableName("mall_member") public class MallMember extends BaseEntity { /** * 姓名 */ + @ExcelProperty(value = "姓名") private String name; /** * 手机号 */ + @ExcelProperty(value = "手机号") private String phone; /** @@ -51,17 +58,24 @@ /** * 性别 */ + @ExcelProperty(value = "性别", converter = SexConverter.class) private Integer sex; /** * 邀请码 */ + @ExcelProperty(value = "邀请码") private String inviteId; /** * 父级邀请码 */ + @ExcelProperty(value = "父级邀请码") private String referrerId; + + @ExcelProperty(value = "父级名称") + @TableField(exist = false) + private String referrerName; /** * 邀请码链 @@ -71,6 +85,7 @@ /** * 代理级别 */ + @ExcelProperty(value = "会员级别", converter = LevelConverter.class) private String level; /** @@ -103,9 +118,6 @@ private String account; private String bindPhone; - - @TableField(exist = false) - private String referrerName; @TableField(exist = false) private BigDecimal balance; diff --git a/src/main/java/cc/mrbird/febs/mall/excel/LevelConverter.java b/src/main/java/cc/mrbird/febs/mall/excel/LevelConverter.java new file mode 100644 index 0000000..44ce0b7 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/excel/LevelConverter.java @@ -0,0 +1,30 @@ +package cc.mrbird.febs.mall.excel; + +import cc.mrbird.febs.common.enumerates.MemberLevelTagDicEnums; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + + +public class LevelConverter implements Converter<String> { + + @Override + public WriteCellData<?> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + Set<String> list = new HashSet<>(); + for (MemberLevelTagDicEnums type : MemberLevelTagDicEnums.values()) { + if (type.getCode().equals(value)) { + list.add(type.getDesc()); + } + } + + return new WriteCellData<>(CollUtil.join(list, "/")); + } +} diff --git a/src/main/java/cc/mrbird/febs/mall/excel/SexConverter.java b/src/main/java/cc/mrbird/febs/mall/excel/SexConverter.java new file mode 100644 index 0000000..b330ccf --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/excel/SexConverter.java @@ -0,0 +1,24 @@ +package cc.mrbird.febs.mall.excel; + +import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.converters.WriteConverterContext; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +public class SexConverter implements Converter<Integer> { + + @Override + public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { + + if (value == 1) { + return new WriteCellData<>("男"); + } + + if (value == 2) { + return new WriteCellData<>("女"); + } + return null; + } +} diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html index 4ef47be..1118bb2 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -53,6 +53,9 @@ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> <i class="layui-icon"></i> </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="exportExcel"> + 导出 + </div> </div> </div> </form> @@ -121,6 +124,7 @@ $query = $view.find('#query'), $reset = $view.find('#reset'), $searchForm = $view.find('form'), + $exportExcel = $view.find('#exportExcel'), sortObject = {field: 'phone', type: null}, tableIns; @@ -496,5 +500,10 @@ changeIdentityNo(4, data.value); } }) + + + $exportExcel.on('click', function() { + febs.download(ctx + 'admin/mallMember/exportMemberList', getQueryParams(), '会员列表.xlsx'); + }); }) </script> \ No newline at end of file -- Gitblit v1.9.1