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 &lt;= #{record.reserveTimeEnd}
+        </if>
+    </where>
+    order by id desc
+</select>
+
 </mapper>

--
Gitblit v1.9.1