Explorar el Código

Merge remote-tracking branch 'origin/hehuoren' into hehuoren

Qchen hace 1 año
padre
commit
419aa1600d

+ 9 - 0
src/main/java/com/ydtech/modules/admin/controller/APPPartnerController.java

@@ -144,6 +144,15 @@ public class APPPartnerController extends BaseController {
 
         return HttpResult.ok(this.sysPartnerService.getCommissionInfo(commissionInfoDto));
     }
+    /**
+     *  新增人员统计
+     */
+    @PostMapping("/getCountUser")
+    @ApiOperation(value = "总佣金组成明细")
+    public HttpResult getCountUser(@RequestBody CountUserDto countUserDto) {
+
+        return HttpResult.ok(this.sysPartnerService.getCountUser(countUserDto));
+    }
 
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -122,7 +122,7 @@ public class SysAgencyLeaderController extends BaseController {
      */
     @PostMapping("/editAll")
     @ApiOperation(value = "批量修改配置")
-    public HttpResult editAll(@RequestBody List<SysAgencyLeaderDto> sysAgencyLeaderDto) {
+    public HttpResult editAll(@RequestBody SysAgencyLeaderListDto sysAgencyLeaderDto) {
         return HttpResult.ok(this.sysAgencyLeaderService.editAll(sysAgencyLeaderDto));
     }
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.dto.AgencyUserInsAreaDto;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderListDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
 import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
@@ -48,5 +49,7 @@ public interface SysAgencyLeaderMapper extends BaseMapper<SysAgencyLeader> {
      * @return
      */
     IPage<SysAgencyLeader> queryLeaderPage(Page page,@Param("dto") SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
+
+    int updateByIds(@Param("dto") SysAgencyLeaderListDto sysAgencyLeaderDto);
 }
 

+ 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);
 }
 

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

@@ -0,0 +1,15 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CountUserDto {
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+    @ApiModelProperty(value = "类型:1:团队 2:代理人")
+    private int type;
+}

+ 13 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysAgencyLeaderListDto.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.admin.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SysAgencyLeaderListDto {
+
+    private String proportional;
+
+    private List<Integer> ids;
+}

+ 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;
+}

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

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CountUserVo {
+
+    @ApiModelProperty(value = "总的前线人数")
+    private Integer countSum;
+    @ApiModelProperty(value = "团队数")
+    private Integer deptSum;
+    @ApiModelProperty(value = "团队长数")
+    private Integer deptLeaderSum;
+
+    private List<CountUserNumVo> countUserNumVoList;
+
+}

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java

@@ -31,7 +31,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
 
 
     boolean edit(SysAgencyLeaderDto sysAgencyLeaderDto);
-    boolean editAll(List<SysAgencyLeaderDto> sysAgencyLeaderDto);
+    boolean editAll(SysAgencyLeaderListDto sysAgencyLeaderDto);
     void editInfo(SysAgencyLeaderDeptDto sysAgencyLeaderDeptDto);
 
     boolean delById(Integer id);

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -61,4 +61,6 @@ public interface SysPartnerService extends IService<SysPartner> {
     PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo);
 
     List<SysPartnerVo> getRelationInfo(String userId);
+
+    CountUserVo getCountUser(CountUserDto countUserDto);
 }

+ 35 - 41
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -345,36 +345,36 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         sysDeptService.updateDept(sysDept);
 
         //不修改负责人userId传null
-        String userId = sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserId();
-        String loginId = BaseController.getUserId();
-        SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeaderDeptDto.getSysAgencyLeader().getId());
-        //修改管理员
-        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
-        List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
-        if (userIdList.contains(userId)) {
-            throw new DescribeException(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserName() + "已是工作室管理员,不可重复配置");
-        }
-        List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
-        if (sysPartners.size() > 0) {
-            List<String> list = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
-            if (list.contains(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserId())) {
-                throw new DescribeException(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserName() + "已是合伙人,不可设置为机构负责人");
-            }
-        }
-
-        //修改负责人时解除合伙人或者推荐人与机构负责人的关系
-        List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-                .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader1.getUserId())
-                .eq(SysRelationPerson::getDelFlag, 1)
-                .eq(SysRelationPerson::getType, 1));
-        if (sysRelationPeople.size() > 0) {
-            throw new DescribeException(sysAgencyLeader1.getUserName() + "有推荐关系,不允许修改");
-        }
-
-        SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDeptDto.getSysAgencyLeader(), SysAgencyLeader.class);
-        sysAgencyLeader.setUpdateTime(new Date());
-        sysAgencyLeader.setUpdateBy(loginId);
-        sysAgencyLeaderMapper.updateById(sysAgencyLeader);
+//        String userId = sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserId();
+//        String loginId = BaseController.getUserId();
+//        SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeaderDeptDto.getSysAgencyLeader().getId());
+//        //修改管理员
+//        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
+//        List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
+//        if (userIdList.contains(userId)) {
+//            throw new DescribeException(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserName() + "已是工作室管理员,不可重复配置");
+//        }
+//        List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
+//        if (sysPartners.size() > 0) {
+//            List<String> list = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+//            if (list.contains(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserId())) {
+//                throw new DescribeException(sysAgencyLeaderDeptDto.getSysAgencyLeader().getUserName() + "已是合伙人,不可设置为机构负责人");
+//            }
+//        }
+//
+//        //修改负责人时解除合伙人或者推荐人与机构负责人的关系
+//        List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+//                .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader1.getUserId())
+//                .eq(SysRelationPerson::getDelFlag, 1)
+//                .eq(SysRelationPerson::getType, 1));
+//        if (sysRelationPeople.size() > 0) {
+//            throw new DescribeException(sysAgencyLeader1.getUserName() + "有推荐关系,不允许修改");
+//        }
+//
+//        SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDeptDto.getSysAgencyLeader(), SysAgencyLeader.class);
+//        sysAgencyLeader.setUpdateTime(new Date());
+//        sysAgencyLeader.setUpdateBy(loginId);
+//        sysAgencyLeaderMapper.updateById(sysAgencyLeader);
     }
 
     @Override
@@ -1080,20 +1080,14 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     }
 
     @Override
-    public boolean editAll(List<SysAgencyLeaderDto> sysAgencyLeaderDto) {
+    public boolean editAll(SysAgencyLeaderListDto sysAgencyLeaderDto) {
         String loginId = BaseController.getUserId();
-        if (CollectionUtil.isEmpty(sysAgencyLeaderDto)) {
+        if (sysAgencyLeaderDto ==null) {
             throw new DescribeException( "批量修改参数不能为空");
         }
-        for (SysAgencyLeaderDto agencyLeaderDto : sysAgencyLeaderDto) {
-            SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
-            sysAgencyLeader.setId(agencyLeaderDto.getId());
-            sysAgencyLeader.setProportional(agencyLeaderDto.getProportional());
-            sysAgencyLeader.setUpdateBy(loginId);
-            return sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
-        }
 
-        return false;
+
+        return sysAgencyLeaderMapper.updateByIds(sysAgencyLeaderDto)>0;
     }
 
     @Override
@@ -1101,7 +1095,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         SysAgencyLeaderDeptVo sysAgencyLeaderDeptVo = new SysAgencyLeaderDeptVo();
         SysAgencyLeader sysAgencyLeader = baseMapper.selectById(id);
         SysUser sysUser = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
-        sysAgencyLeader.setSuggestName(sysUser.getSuggestName());
+        sysAgencyLeader.setSuggestName(sysUser.getName());
         sysAgencyLeaderDeptVo.setSysAgencyLeader(sysAgencyLeader);
 
         SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeader.getDeptId());

+ 55 - 3
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -179,6 +179,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
         if (sysUserPartners.size() > 0) {
             for (SysUserPartner user : sysUserPartners) {
+                SysUser sysUser1 = sysUserMapper.selectById(user.getId());
+                user.setName(sysUser1.getName());
                 SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getId, user.getDeptId()).eq(SysDept::getDelFlag, 0));
                 user.setParentId(sysDept.getParentId());
                 user.setDeptName(sysDept.getName());
@@ -554,11 +556,17 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                             historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
                         }
                     }
-                    agencyExtractFee.setHistoryFee(historyFee);
+                    agencyExtractFee.setHistoryFee(Optional.ofNullable(extractFee.subtract(historyFee)).orElse(BigDecimal.ZERO));
                     //可提现 = 总抽成-已提现
                     agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
 
+                }else {
+                    agencyExtractFee.setSumpremium(BigDecimal.ZERO);
+                    agencyExtractFee.setExtractFee(BigDecimal.ZERO);
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(BigDecimal.ZERO);
                 }
+
                 agencyExtractFeeList.add(agencyExtractFee);
 
             }
@@ -1588,13 +1596,13 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
                             SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
                     .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
-            BigDecimal sumPremium1 = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
             teamUserInfosVo.setSumPremium(sumPremium1);
             List<SysUserAccountHistory> sysUserAccountHistorie = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
                     .in(SysUserAccountHistory::getUserId, sysUser.getId()).eq(SysUserAccountHistory::getProperty, 3)
                     .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
 
-            BigDecimal extractFee1 = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal extractFee1 = sysUserAccountHistorie.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             teamUserInfosVo.setExtractFee(extractFee1);
 
             userInfosVoList.add(teamUserInfosVo);
@@ -1872,5 +1880,49 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return sysPartnerVoList;
     }
 
+    @Override
+    public CountUserVo getCountUser(CountUserDto countUserDto) {
+        CountUserVo countUserVo = new CountUserVo();
+        String userId = BaseController.getUserId();
+
+        List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getReferrerId,userId)
+                .eq(SysUser::getType,3)
+                .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) {
+            countUserVo.setDeptSum(sysUsers.size());
+
+            List<String> deptIds = sysUsers.stream().map(SysUser::getDeptId).collect(Collectors.toList());
+            int deptManNum=0;
+            for (String deptId : deptIds) {
+                List<SysUser> sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                        .likeRight(SysUser::getId,deptId)
+                        .in(SysUser::getStatus,Arrays.asList(1, 4, 5, 6, 7)));
+                deptManNum=deptManNum+sysUserList.size();
+
+            }
+            countUserVo.setDeptLeaderSum(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;
+    }
+
 
 }

+ 18 - 0
src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml

@@ -23,6 +23,24 @@
         dept_id,dept_name,comlevel,
         source,proportional,create_time,create_by,update_time,update_by,del_flag
     </sql>
+    <update id="updateByIds">
+        update sys_agency_leader
+        <set>
+            <if test="dto.proportional != null and dto.proportional != ''">
+                proportional = #{dto.proportional}
+            </if>
+        </set>
+        <where>
+            <if test="dto.ids != null and dto.ids != '' and dto.ids.size() > 0">
+                and id in
+                <foreach collection="dto.ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+
+
+    </update>
     <select id="getByUserIdList" resultType="com.ydtech.modules.admin.model.SysAgencyLeader">
         select *
         from sys_agency_leader sal

+ 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>