From debe5f0c7882fe0b612d6e5c3af4805112d7c6e2 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 16 Jul 2021 15:20:20 +0800 Subject: [PATCH] Merge branch 'score-shop' of http://120.27.238.55:7000/r/xzx into score-shop --- gc-user/src/main/java/com/xzx/gc/user/vo/UserHeadInfoVo.java | 7 + gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java | 39 +++++++++ gc-user/src/main/resources/mapper/user/AccountMapper.xml | 62 +++++++++++++-- gc-user/src/main/java/com/xzx/gc/user/dto/ExportDistribDataListDto.java | 28 +++++++ gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java | 3 gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java | 3 gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java | 43 ++++++++++ 7 files changed, 173 insertions(+), 12 deletions(-) diff --git a/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java b/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java index 23bd701..da31405 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java +++ b/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java @@ -1,5 +1,6 @@ package com.xzx.gc.user.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; @@ -9,23 +10,31 @@ import com.xzx.gc.entity.RedPaperRule; import com.xzx.gc.entity.UserHeadRelate; import com.xzx.gc.model.JsonResult; +import com.xzx.gc.model.admin.ExportParamModel; +import com.xzx.gc.model.admin.PromoterModel; +import com.xzx.gc.model.admin.UserModel; import com.xzx.gc.user.dto.*; import com.xzx.gc.user.mapper.AccountMapper; import com.xzx.gc.user.mapper.RedPaperRuleMapper; import com.xzx.gc.user.mapper.UserHeadRelateMapper; import com.xzx.gc.user.service.DistribService; import com.xzx.gc.user.vo.*; +import com.xzx.gc.util.DoubleUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; import java.util.Map; @RestController @@ -205,6 +214,40 @@ return JsonResult.success(distribService.distribDataList(distribDataListDto)); } + @ApiOperation(value = "团长数据--列表导出") + @PostMapping(value = Constants.ADMIN_VIEW_PREFIX + "/distrib/distribDataExport.json") + public void distribDataExport(@RequestBody ExportDistribDataListDto distribDataListDto, HttpServletRequest request, HttpServletResponse response) { + List<List<String>> rows = new ArrayList<>(); + List<String> header=new ArrayList<>(); + //标题 + header=CollUtil.newArrayList( "团长名称", "手机号", "身份", "团员数量", "交易单数", "累计收益积分", "累计收益(元)", "累计订单重量(kg)","累计数量(家电)"); + rows.add(header); + Map<String, Object> stringObjectMap = distribService.distribDataExport(distribDataListDto); + List<DistribDataListVo> distribDataListVos = (List<DistribDataListVo>) stringObjectMap.get("data"); + if (CollUtil.isNotEmpty(distribDataListVos)) { + for(DistribDataListVo m : distribDataListVos){ + List<String> list = new ArrayList<>(); + list.add(m.getNickname()); + list.add(m.getPhone()); + list.add("团长"); + list.add(m.getCnt().toString()); + list.add(m.getOrderCnt()); + list.add(m.getScore()); + list.add(m.getAmount()); + list.add(m.getKg()); + list.add(m.getJdsl()); + rows.add(list); + } + } + //导出 + export(rows,response); + + OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) + .methodName(Constants.USER_MODUL_NAME).operateAction("用户导出-团长数据").build(); + mqUtil.sendApp(build); + + } + } diff --git a/gc-user/src/main/java/com/xzx/gc/user/dto/ExportDistribDataListDto.java b/gc-user/src/main/java/com/xzx/gc/user/dto/ExportDistribDataListDto.java new file mode 100644 index 0000000..59ad40c --- /dev/null +++ b/gc-user/src/main/java/com/xzx/gc/user/dto/ExportDistribDataListDto.java @@ -0,0 +1,28 @@ +package com.xzx.gc.user.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +@Data +@ApiModel(value = "ExportDistribDataListDto", description = "参数接收类") +public class ExportDistribDataListDto { + + @ApiModelProperty(value = "查询字段") + private String queryCol; + + @JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty(value="开始时间") + private Date reserveTimeStart; + + @JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty(value="结束时间") + private Date reserveTimeEnd; + + @ApiModelProperty(hidden = true) + private String name; + @ApiModelProperty(hidden = true) + private String Phone; +} diff --git a/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java b/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java index fddab8c..5f1d487 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java +++ b/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java @@ -9,6 +9,7 @@ import com.xzx.gc.user.dto.DistribDataListDto; import com.xzx.gc.user.dto.DistribInfoListDto; import com.xzx.gc.user.dto.DistribListDto; +import com.xzx.gc.user.dto.ExportDistribDataListDto; import com.xzx.gc.user.vo.*; import com.xzx.gc.util.GcMapper; import org.apache.ibatis.annotations.Param; @@ -69,5 +70,7 @@ String selectJDSLByHeadUserId(@Param("accountId")String id); DistribDataInfoVo selectDistribDataInfoVo(); + + List<DistribDataListVo> distribDataExport(@Param("record")ExportDistribDataListDto distribDataListDto); } diff --git a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java index d446fb7..b46eba3 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java +++ b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java @@ -332,11 +332,19 @@ public Map<String, Object> distribDataList(DistribDataListDto distribDataListDto) { + if(StrUtil.isNotEmpty(distribDataListDto.getQueryCol())){ + String decode = StringUtils.encode(distribDataListDto.getQueryCol()); + distribDataListDto.setName(decode); + distribDataListDto.setPhone(distribDataListDto.getQueryCol()); + } PageHelper.startPage(distribDataListDto.getPage(), distribDataListDto.getLimit()); List<DistribDataListVo> distribDataListVos = accountMapper.distribDataList(distribDataListDto); if(CollUtil.isNotEmpty(distribDataListVos)){ for(DistribDataListVo distribDataListVo : distribDataListVos){ if(ObjectUtil.isNotEmpty(distribDataListVo)){ + String nickname = distribDataListVo.getNickname(); + String decode = StringUtils.decode(nickname); + distribDataListVo.setNickname(decode); String id = distribDataListVo.getId(); String kg = accountMapper.selectOrderByHeadUserId(id); distribDataListVo.setKg(kg); @@ -357,4 +365,35 @@ public DistribDataInfoVo distribDataInfo(DistribDataInfoDto distribDataInfoDto) { return accountMapper.selectDistribDataInfoVo(); } + + public Map<String, Object> distribDataExport(ExportDistribDataListDto distribDataListDto) { + if(StrUtil.isNotEmpty(distribDataListDto.getQueryCol())){ + String decode = StringUtils.encode(distribDataListDto.getQueryCol()); + distribDataListDto.setName(decode); + distribDataListDto.setPhone(distribDataListDto.getQueryCol()); + } + List<DistribDataListVo> distribDataListVos = accountMapper.distribDataExport(distribDataListDto); + if(CollUtil.isNotEmpty(distribDataListVos)){ + for(DistribDataListVo distribDataListVo : distribDataListVos){ + if(ObjectUtil.isNotEmpty(distribDataListVo)){ + String nickname = distribDataListVo.getNickname(); + String decode = StringUtils.decode(nickname); + distribDataListVo.setNickname(decode); + String id = distribDataListVo.getId(); + String kg = accountMapper.selectOrderByHeadUserId(id); + distribDataListVo.setKg(kg); + String jdsl = accountMapper.selectJDSLByHeadUserId(id); + distribDataListVo.setJdsl(jdsl); + } + } + } + PageInfo<DistribDataListVo> pageInfo = new PageInfo<>(distribDataListVos); + Map<String, Object> data = new HashMap<>(); + int count = Convert.toInt(pageInfo.getTotal()); + data.put("data", distribDataListVos); + data.put("count", count); + data.put("code", 0); + return data; + } + } diff --git a/gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java b/gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java index 51813a9..c31e69d 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java +++ b/gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java @@ -14,6 +14,9 @@ @ApiModelProperty(value = "累计收益") private String amount; + @ApiModelProperty(value = "累计积分收益") + private String score; + @ApiModelProperty(value = "累计交易订单") private String orderCnt; diff --git a/gc-user/src/main/java/com/xzx/gc/user/vo/UserHeadInfoVo.java b/gc-user/src/main/java/com/xzx/gc/user/vo/UserHeadInfoVo.java index 5342f80..d857484 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/vo/UserHeadInfoVo.java +++ b/gc-user/src/main/java/com/xzx/gc/user/vo/UserHeadInfoVo.java @@ -19,12 +19,15 @@ @ApiModelProperty(value="绑定时间") private String createTime; - @ApiModelProperty(value="累计金额") + @ApiModelProperty(value="累计金额收益") private BigDecimal amount; - @ApiModelProperty(value="累计积分") + @ApiModelProperty(value="累计积分收益") private BigDecimal score; + @ApiModelProperty(value="累计积分") + private BigDecimal orderScore; + @ApiModelProperty(value="累计单数") private Integer orderCnt; diff --git a/gc-user/src/main/resources/mapper/user/AccountMapper.xml b/gc-user/src/main/resources/mapper/user/AccountMapper.xml index 980ac42..ef1568b 100644 --- a/gc-user/src/main/resources/mapper/user/AccountMapper.xml +++ b/gc-user/src/main/resources/mapper/user/AccountMapper.xml @@ -228,7 +228,18 @@ a.CREATED_TIME createTime, (select IFNULL(count(1), 0) from xzx_user_head_details where user_id = a.user_id and head_user_id = #{id}) orderCnt, (select IFNULL(sum(amount), 0) from xzx_user_head_details where user_id = a.user_id and head_user_id = #{id}) amount, - (select IFNULL(sum(score), 0) from xzx_user_head_details where user_id = a.user_id and head_user_id = #{id}) score + (select IFNULL(sum(score), 0) from xzx_user_head_details where user_id = a.user_id and head_user_id = #{id}) score, + (SELECT + IFNULL(SUM(score),0) as kg + FROM + xzx_jhy_order_items WHERE order_id in ( SELECT + id + FROM + xzx_jhy_order WHERE order_no in ( SELECT + order_no + FROM + xzx_user_head_details WHERE + user_id = a.user_id and head_user_id = #{id} ) )) orderScore FROM xzx_user_head_relate a LEFT JOIN xzx_user_info b on a.user_id = b.user_id @@ -278,11 +289,8 @@ <where> 1=1 and a.is_head = 1 - <if test="record.name != null and record.name != ''"> - and b.nick_name like concat('%',#{record.name},'%') - </if> - <if test="record.phone != null and record.phone != ''"> - and b.mobile_phone like concat('%',#{record.phone},'%') + <if test="record.queryCol != null and record.queryCol != ''"> + and (b.nick_name like concat('%',#{record.name},'%') or b.mobile_phone like concat('%',#{record.phone},'%')) </if> <if test="record.reserveTimeStart != null"> and b.regist_time >= #{record.reserveTimeStart} @@ -297,11 +305,12 @@ <select id="selectOrderByHeadUserId" resultType="java.lang.String"> SELECT - IFNULL(SUM(weight),0) as kg + IFNULL(SUM(a.weight),0) as kg FROM - xzx_jhy_order_items + xzx_jhy_order_items a + left join xzx_sys_environmental_info b on a.item_type = b.id WHERE - order_id in ( + b.item_unit = 'kg' and a.order_id in ( SELECT id FROM @@ -361,7 +370,8 @@ SELECT IFNULL(count(1), 0) cnt, SUM((select IFNULL(count(1), 0) from xzx_user_head_details where head_user_id = a.user_id) ) orderCnt, - SUM((select IFNULL(sum(amount), 0) from xzx_user_head_details where head_user_id = a.user_id) ) amount + SUM((select IFNULL(sum(amount), 0) from xzx_user_head_details where head_user_id = a.user_id) ) amount, + SUM((select IFNULL(sum(score), 0) from xzx_user_head_details where head_user_id = a.user_id) ) score FROM xzx_account_info a where @@ -369,4 +379,36 @@ and a.is_head = 1 </select> + <select id="distribDataExport" resultType="com.xzx.gc.user.vo.DistribDataListVo"> + SELECT + a.account_id id, + b.nick_name nickname, + b.mobile_phone phone, + b.regist_time registTime, + a.is_head isHead, + (select IFNULL(count(1), 0) from xzx_user_head_relate where head_user_id = a.user_id) cnt, + (select IFNULL(count(1), 0) from xzx_user_head_details where head_user_id = a.user_id) orderCnt, + (select IFNULL(sum(amount), 0) from xzx_user_head_relate where head_user_id = a.user_id) amount, + (select IFNULL(sum(score), 0) from xzx_user_head_relate where head_user_id = a.user_id ) score, + a.is_prohibit isProhibit + FROM + xzx_account_info a + LEFT JOIN xzx_user_info b on a.user_id = b.user_id + <where> + 1=1 + and a.is_head = 1 + <if test="record.queryCol != null and record.queryCol != ''"> + and (b.nick_name like concat('%',#{record.name},'%') or b.mobile_phone like concat('%',#{record.phone},'%')) + </if> + <if test="record.reserveTimeStart != null"> + and b.regist_time >= #{record.reserveTimeStart} + </if> + + <if test="record.reserveTimeEnd != null"> + and b.regist_time <= #{record.reserveTimeEnd} + </if> + </where> + order by id desc +</select> + </mapper> -- Gitblit v1.9.1