From bf9a238e4b6db75c28ee9efae265f36f33301d83 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 15 Jul 2021 16:15:04 +0800
Subject: [PATCH] 202107015

---
 gc-user/src/main/java/com/xzx/gc/user/dto/DistribInfoListDto.java            |    3 
 gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java            |    9 ++
 gc-user/src/main/resources/mapper/user/AccountMapper.xml                     |  144 +++++++++++++++++++++++++++--------
 gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java              |    8 +
 gc-user/src/main/java/com/xzx/gc/user/dto/DistribDataInfoDto.java            |    7 +
 gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java              |   20 +++++
 gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java |   22 +++++
 7 files changed, 178 insertions(+), 35 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 4769299..23bd701 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
@@ -7,10 +7,12 @@
 import com.xzx.gc.common.request.BaseController;
 import com.xzx.gc.entity.AccountInfo;
 import com.xzx.gc.entity.RedPaperRule;
+import com.xzx.gc.entity.UserHeadRelate;
 import com.xzx.gc.model.JsonResult;
 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 io.swagger.annotations.Api;
@@ -38,6 +40,9 @@
 
     @Autowired
     private AccountMapper accountMapper;
+
+    @Autowired
+    private UserHeadRelateMapper userHeadRelateMapper;
 
     /**
      * 查看分銷系統设置详情
@@ -108,6 +113,12 @@
                 || accountInfo.getIsProhibit() == "1"){
             return JsonResult.failMessage("账户已冻结!");
         }
+        //团员不能当团长
+        String userId = accountInfo.getUserId();
+        UserHeadRelate userHeadRelate = userHeadRelateMapper.selectMemberByUserId(userId);
+        if(ObjectUtil.isNotEmpty(userHeadRelate)){
+            return JsonResult.failMessage("账户不能申请成为团长!");
+        }
         distribService.adddistrib(model);
         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
                     .methodName(Constants.USER_MODUL_NAME).operateAction("分銷系統管理--新增团长-"+id).build();
@@ -176,7 +187,16 @@
         return  JsonResult.success("操作成功!");
     }
 
-    @ApiOperation(value = "团长数据")
+    @ApiOperation(value = "团长数据--头部")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "success", response = DistribDataInfoVo.class)
+    )
+    @PostMapping(value = Constants.ADMIN_VIEW_PREFIX + "/distrib/distribDataInfo.json")
+    public JsonResult<DistribDataInfoVo> distribDataInfo(@RequestBody DistribDataInfoDto distribDataInfoDto) {
+        return JsonResult.success(distribService.distribDataInfo(distribDataInfoDto));
+    }
+
+    @ApiOperation(value = "团长数据--列表")
     @ApiResponses(
             @ApiResponse(code = 200, message = "success", response = DistribDataListVo.class)
     )
diff --git a/gc-user/src/main/java/com/xzx/gc/user/dto/DistribDataInfoDto.java b/gc-user/src/main/java/com/xzx/gc/user/dto/DistribDataInfoDto.java
new file mode 100644
index 0000000..dd3d8ef
--- /dev/null
+++ b/gc-user/src/main/java/com/xzx/gc/user/dto/DistribDataInfoDto.java
@@ -0,0 +1,7 @@
+package com.xzx.gc.user.dto;
+
+import lombok.Data;
+
+@Data
+public class DistribDataInfoDto {
+}
diff --git a/gc-user/src/main/java/com/xzx/gc/user/dto/DistribInfoListDto.java b/gc-user/src/main/java/com/xzx/gc/user/dto/DistribInfoListDto.java
index 012e5a0..1a1ab2d 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/dto/DistribInfoListDto.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/dto/DistribInfoListDto.java
@@ -23,6 +23,9 @@
     @ApiModelProperty(value="结束时间")
     private Date reserveTimeEnd;
 
+    @ApiModelProperty(value = "是否禁用 0:未冻结,1:冻结")
+    private String isProhibit;
+
     @ApiModelProperty(value="第几页",required=true)
     private int page;
 
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 5029c4f..fddab8c 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
@@ -62,6 +62,12 @@
 
     List<JhyOrderItems> selectOrderById(@Param("orderId")Long orderId);
 
-    List<DistribDataListVo> distribDataList(DistribDataListDto distribDataListDto);
+    List<DistribDataListVo> distribDataList(@Param("record")DistribDataListDto distribDataListDto);
+
+    String selectOrderByHeadUserId(@Param("accountId")String accountId);
+
+    String selectJDSLByHeadUserId(@Param("accountId")String id);
+
+    DistribDataInfoVo selectDistribDataInfoVo();
 }
 
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 861f591..a2078b6 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
@@ -325,6 +325,11 @@
         if(CollUtil.isNotEmpty(distribDataListVos)){
             for(DistribDataListVo distribDataListVo : distribDataListVos){
                 if(ObjectUtil.isNotEmpty(distribDataListVo)){
+                    String id = distribDataListVo.getId();
+                    String kg = accountMapper.selectOrderByHeadUserId(id);
+                    distribDataListVo.setKg(kg);
+                    String jdsl = accountMapper.selectJDSLByHeadUserId(id);
+                    distribDataListVo.setJdsl(jdsl);
                 }
             }
         }
@@ -336,4 +341,8 @@
         data.put("code", 0);
         return data;
     }
+
+    public DistribDataInfoVo distribDataInfo(DistribDataInfoDto distribDataInfoDto) {
+        return accountMapper.selectDistribDataInfoVo();
+    }
 }
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
new file mode 100644
index 0000000..51813a9
--- /dev/null
+++ b/gc-user/src/main/java/com/xzx/gc/user/vo/DistribDataInfoVo.java
@@ -0,0 +1,20 @@
+package com.xzx.gc.user.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "DistribDataInfoVo", description = "返回参数类")
+public class DistribDataInfoVo {
+
+    @ApiModelProperty(value = "团长人数")
+    private Integer cnt;
+
+    @ApiModelProperty(value = "累计收益")
+    private String amount;
+
+    @ApiModelProperty(value = "累计交易订单")
+    private String orderCnt;
+
+}
diff --git a/gc-user/src/main/resources/mapper/user/AccountMapper.xml b/gc-user/src/main/resources/mapper/user/AccountMapper.xml
index 1d90ccf..41fcbc0 100644
--- a/gc-user/src/main/resources/mapper/user/AccountMapper.xml
+++ b/gc-user/src/main/resources/mapper/user/AccountMapper.xml
@@ -191,6 +191,9 @@
             <if test="record.phone != null and record.phone != ''">
                 and b.mobile_phone like concat('%',#{record.phone},'%')
             </if>
+            <if test="record.phone != null and record.phone != ''">
+                and  a.is_prohibit = #{record.isProhibit}
+            </if>
             <if test="record.reserveTimeStart != null">
                 and b.regist_time >= #{record.reserveTimeStart}
             </if>
@@ -237,7 +240,8 @@
             a.order_no orderNo,
             a.score scoreReward,
             a.amount amountReward,
-            sum(c.score) amount
+            sum(c.score) score,
+            sum(c.score/40) amount
         FROM
             xzx_user_head_details a
                 LEFT JOIN xzx_jhy_order b on a.order_no = b.order_no
@@ -256,38 +260,112 @@
     </select>
 
     <select id="distribDataList" 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.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>
-        <if test="record.reserveTimeStart != null">
-            and b.regist_time >= #{record.reserveTimeStart}
-        </if>
+        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.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>
+            <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>
+            <if test="record.reserveTimeEnd != null">
+                and b.regist_time &lt;= #{record.reserveTimeEnd}
+            </if>
+        </where>
+        order by id desc
+    </select>
+
+    <select id="selectOrderByHeadUserId" resultType="java.lang.String">
+        SELECT
+            IFNULL(SUM(weight),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
+                                head_user_id = (
+                                SELECT
+                                    user_id
+                                FROM
+                                    xzx_account_info
+                                WHERE
+                                    account_id =  #{accountId}
+                            )
+                    )
+            )
+    </select>
+
+    <select id="selectJDSLByHeadUserId" resultType="java.lang.String">
+        SELECT
+            IFNULL(SUM(a.weight),0) as jdsl
+        FROM
+            xzx_jhy_order_items a
+                left join xzx_sys_environmental_info b on a.item_type = b.id
+        WHERE
+            b.item_unit = '台' and
+                a.order_id in (
+                SELECT
+                    id
+                FROM
+                    xzx_jhy_order
+                WHERE
+                        order_no in (
+                        SELECT
+                            order_no
+                        FROM
+                            xzx_user_head_details
+                        WHERE
+                                head_user_id = (
+                                SELECT
+                                    user_id
+                                FROM
+                                    xzx_account_info
+                                WHERE
+                                    account_id = #{accountId}
+                            )
+                    )
+            )
+    </select>
+
+    <select id="selectDistribDataInfoVo" resultType="com.xzx.gc.user.vo.DistribDataInfoVo">
+        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
+        FROM
+        xzx_account_info a
+        where
+            1=1
+            and a.is_head = 1
+    </select>
 
 </mapper>

--
Gitblit v1.9.1