From b3ba3fc9fbc0407ffc350f7b229a166960d6b8e2 Mon Sep 17 00:00:00 2001 From: "382696293@qq.com" <382696293@qq.com> Date: Wed, 27 Dec 2023 16:52:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E9=87=8F=E5=AF=BC=E5=87=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/export/WxUserMemberExport.java | 230 ++++++++++++++++++ .../core/domain/req/WxUserMemberVm.java | 14 ++ .../resources/mapper/WxUserMemberMapper.xml | 4 +- .../controller/WxUserMemberController.java | 33 ++- 4 files changed, 273 insertions(+), 8 deletions(-) create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/export/WxUserMemberExport.java diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/export/WxUserMemberExport.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/export/WxUserMemberExport.java new file mode 100644 index 0000000..a2ffc98 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/export/WxUserMemberExport.java @@ -0,0 +1,230 @@ +package com.flossom.common.core.domain.export; + +import com.flossom.common.core.annotation.Excel; + +import java.util.Date; +import java.util.List; + +public class WxUserMemberExport { + + /** + * id + */ + @Excel(name = "用户编号") + private Long id; + + /** + * 昵称 + */ + @Excel(name = "会员昵称") + private String nickname; + + /** + * 积分 + */ + @Excel(name = "积分") + private Integer credit; + + /** + * 即将过期积分 + */ + @Excel(name = "即将过期积分") + private Integer expireCredit; + + /** + * unionid + */ + @Excel(name = "unionid") + private String unionid; + + /** + * 手机 + */ + @Excel(name = "手机号") + private String mobile; + + /** + * 省 + */ + @Excel(name = "省") + private String province; + + /** + * 市 + */ + @Excel(name = "市") + private String city; + + /** + * 区 + */ + @Excel(name = "区") + private String area; + + /** + * 生日 + */ + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private Date birthday; + + + /** + * 绑定的仪器数量 + */ + @Excel(name = "仪器数量") + private Integer devicesNum; + +// @Excel(name = "仪器名称") + private List devicesName; + + /** + * 创建时间 + */ + @Excel(name = "用户注册时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @Excel(name = "企微标签") + String wecomTags; + + @Excel(name = "小程序标签") + String miniProgramTags; + + + public WxUserMemberExport() { + } + + public WxUserMemberExport(Long id, String nickname, Integer credit, Integer expireCredit, String unionid, String mobile, String province, String city, String area, Date birthday, Integer devicesNum, Date createTime) { + this.id = id; + this.nickname = nickname; + this.credit = credit; + this.expireCredit = expireCredit; + this.unionid = unionid; + this.mobile = mobile; + this.province = province; + this.city = city; + this.area = area; + this.birthday = birthday; + this.devicesNum = devicesNum; + this.createTime = createTime; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Integer getCredit() { + return credit; + } + + public void setCredit(Integer credit) { + this.credit = credit; + } + + public Integer getExpireCredit() { + return expireCredit; + } + + public void setExpireCredit(Integer expireCredit) { + this.expireCredit = expireCredit; + } + + public String getUnionid() { + return unionid; + } + + public void setUnionid(String unionid) { + this.unionid = unionid; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public Integer getDevicesNum() { + return devicesNum; + } + + public void setDevicesNum(Integer devicesNum) { + this.devicesNum = devicesNum; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getWecomTags() { + return wecomTags; + } + + public void setWecomTags(String wecomTags) { + this.wecomTags = wecomTags; + } + + public String getMiniProgramTags() { + return miniProgramTags; + } + + public void setMiniProgramTags(String miniProgramTags) { + this.miniProgramTags = miniProgramTags; + } + + public List getDevicesName() { + return devicesName; + } + + public void setDevicesName(List devicesName) { + this.devicesName = devicesName; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java index ccacfaf..a63a516 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java @@ -2,6 +2,7 @@ package com.flossom.common.core.domain.req; import com.flossom.common.core.web.domain.BaseEntity; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -106,6 +107,11 @@ public class WxUserMemberVm extends BaseEntity { */ List miniProgramTags; + /** + * 自定导出字段 + */ + List exportFields = new ArrayList<>(); + public WxUserMemberVm() { } @@ -259,4 +265,12 @@ public class WxUserMemberVm extends BaseEntity { public void setMiniProgramTags(List miniProgramTags) { this.miniProgramTags = miniProgramTags; } + + public List getExportFields() { + return exportFields; + } + + public void setExportFields(List exportFields) { + this.exportFields = exportFields; + } } diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml index a932c1c..c0ff94b 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml @@ -115,10 +115,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and member.city_id = #{cityId} and member.area_id = #{areaId} and member.birthday = #{birthday} - + and member.create_time >= #{params.beginTime} - + and member.create_time <= #{params.endTime} and member.devices_num >= #{deviceNumStart} and member.devices_num <= #{deviceNumEnd} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java index d4c5ce0..d4476e1 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java @@ -4,6 +4,8 @@ import javax.servlet.http.HttpServletResponse; import com.flossom.common.core.domain.R; import com.flossom.common.core.domain.entity.WxUserMember; +import com.flossom.common.core.domain.entity.WxUserTag; +import com.flossom.common.core.domain.export.WxUserMemberExport; import com.flossom.common.core.domain.req.AllChangIntegralOperateReq; import com.flossom.common.core.domain.req.WxUserIntegralVm; import com.flossom.common.core.domain.req.WxUserMemberReq; @@ -20,10 +22,14 @@ import com.flossom.common.log.annotation.Log; import com.flossom.common.log.enums.BusinessType; import com.flossom.common.security.annotation.RequiresPermissions; import com.flossom.system.service.IWxUserMemberService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.lang.reflect.Array; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -61,15 +67,30 @@ public class WxUserMemberController extends BaseController { } /** - * 导出用户列表 + * 全量导出用户列表 */ @RequiresPermissions("system:member:export") @Log(title = "用户", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, WxUserMember wxUserMember) { - List list = wxUserMemberService.selectWxUserMemberList(wxUserMember); - ExcelUtil util = new ExcelUtil(WxUserMember.class); - util.exportExcel(response, list, "用户数据"); + @PostMapping("/allExport") + public void export(HttpServletResponse response, @RequestBody WxUserMemberVm wxUserMemberVm) { + List list = wxUserMemberService.selectWxUserMemberRetList(wxUserMemberVm); + List exportList = new ArrayList<>(); + WxUserMemberExport export; + for (WxUserMemberRet wxUserMemberRet : list) { + export = new WxUserMemberExport(); + BeanUtils.copyProperties(wxUserMemberRet, export); + List miniProgramTags = wxUserMemberRet.getMiniProgramTags(); + if (miniProgramTags != null && miniProgramTags.size() > 0) { + export.setMiniProgramTags(miniProgramTags.stream().map(WxUserTag::getTagName).collect(Collectors.joining(","))); + } + List wecomTags = wxUserMemberRet.getWecomTags(); + if (wecomTags != null && wecomTags.size() > 0) { + export.setWecomTags(wecomTags.stream().map(WxUserTag::getTagName).collect(Collectors.joining(","))); + } + exportList.add(export); + } + ExcelUtil util = new ExcelUtil(WxUserMemberExport.class); + util.exportExcel(response, exportList, "用户数据", wxUserMemberVm.getExportFields() == null ? null : wxUserMemberVm.getExportFields()); } /**