Bläddra i källkod

合伙人Pc编辑

helixiao 1 år sedan
förälder
incheckning
9dc2d12cc4

+ 6 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerMapper.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
+import com.ydtech.modules.admin.model.dto.CountUserDto;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
+import com.ydtech.modules.admin.model.vo.CountUserNumVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import com.ydtech.modules.admin.model.vo.PartnerBalanceVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -36,5 +38,9 @@ public interface SysPartnerMapper extends BaseMapper<SysPartner> {
     List<SysPartnerConsoleDto> getTreeDeptUser(PartnerBalanceVo partnerBalanceVo);
 
     List<SysPartner> queryByLoginId(@Param("userId") String userId);
+
+    List<CountUserNumVo> queryDeptByTime(@Param("userId") String userId, @Param("dto") CountUserDto countUserDto);
+
+    List<CountUserNumVo> queryUserByTime(@Param("deptIds") List<String> deptIds,@Param("dto") CountUserDto countUserDto);
 }
 

+ 2 - 0
src/main/java/com/ydtech/modules/admin/model/dto/CountUserDto.java

@@ -10,4 +10,6 @@ public class CountUserDto {
 
     @ApiModelProperty(value = "结束时间")
     private String endTime;
+    @ApiModelProperty(value = "类型:1:团队 2:代理人")
+    private int type;
 }

+ 14 - 0
src/main/java/com/ydtech/modules/admin/model/vo/CountUserNumVo.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CountUserNumVo {
+
+    @ApiModelProperty("时间段")
+    private String time;
+
+    @ApiModelProperty("人数")
+    private Long countNum;
+}

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/vo/CountUserVo.java

@@ -3,6 +3,8 @@ package com.ydtech.modules.admin.model.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class CountUserVo {
 
@@ -13,4 +15,6 @@ public class CountUserVo {
     @ApiModelProperty(value = "团队长数")
     private Integer deptLeaderSum;
 
+    private List<CountUserNumVo> countUserNumVoList;
+
 }

+ 14 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -1891,10 +1891,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 .in(SysUser::getStatus,Arrays.asList(1, 4, 5, 6, 7))
                 .between(StringUtils.isNotEmpty(countUserDto.getBeginTime()) && StringUtils.isNotEmpty(countUserDto.getEndTime())
                         ,SysUser::getCreateTime,countUserDto.getBeginTime(),countUserDto.getEndTime()));
-        if (sysUsers == null) {
-
+        if (sysUsers != null) {
             countUserVo.setDeptSum(sysUsers.size());
-            countUserVo.setDeptLeaderSum(sysUsers.size());
 
             List<String> deptIds = sysUsers.stream().map(SysUser::getDeptId).collect(Collectors.toList());
             int deptManNum=0;
@@ -1905,11 +1903,23 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 deptManNum=deptManNum+sysUserList.size();
 
             }
+            countUserVo.setDeptLeaderSum(deptManNum);
 
-            countUserVo.setCountSum(deptManNum);
+            countUserVo.setCountSum(countUserVo.getDeptSum()+deptManNum);
 
         }
+        List<CountUserNumVo> countUserNumVoList = null;
+        int type = countUserDto.getType();
+        if (type == 1) {
+            countUserNumVoList = sysPartnerMapper.queryDeptByTime(userId,countUserDto);
+            countUserVo.setCountUserNumVoList(countUserNumVoList);
+        }else {
+            List<String> deptIds = sysUsers.stream().map(SysUser::getDeptId).collect(Collectors.toList());
+
+            countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds,countUserDto);
 
+        }
+        countUserVo.setCountUserNumVoList(countUserNumVoList);
 
         return countUserVo;
     }

+ 45 - 0
src/main/resources/mapper/modules/admin/SysPartnerMapper.xml

@@ -75,6 +75,51 @@
         left join sys_relation_person srp on srp.agency_leader_id=sal.user_id
         where srp.type = 0 and srp.suggest_id = #{userId}
     </select>
+    <select id="queryDeptByTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.user_id) as countNum
+        from(
+        SELECT
+            s.user_id,DATE_FORMAT(s.operation_time, '%Y-%m-%d' ) as time
+        FROM sys_user  s
+        <where>
+            s.type = 3
+            <if test="userId != null ">
+                and s.referrer_id = #{userId}
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d'))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+    </select>
+    <select id="queryUserByTime" resultType="com.ydtech.modules.admin.model.vo.CountUserNumVo">
+        select spa.time, COUNT(spa.user_id) as countNum
+        from(
+        SELECT
+            s.user_id,DATE_FORMAT(s.operation_time, '%Y-%m-%d' ) as time
+        FROM sys_user  s
+        <where>
+            <if test="deptIds != null and deptIds != '' and deptIds.size() > 0">
+                AND s.dept_id  in
+                <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(s.create_time, '%Y-%m-%d') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d'))
+            </if>
+        </where>
+        ) as spa
+        GROUP BY
+        spa.time
+        ORDER BY
+        spa.time ASC
+
+    </select>
 
 
 </mapper>