helixiao 1 سال پیش
والد
کامیت
d460586458

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

@@ -986,6 +986,7 @@ public class SysUserController extends BaseController {
         sysDeptVo.setManagementSource(sysDept.getManagementSource()); //机构来源
         sysDeptVo.setOrderNum(0);
         sysDeptVo.setCreateTime(new Date());
+        log.info("------------------团队长添加部门-----------------------");
         sysDeptService.addDept(sysDeptVo);
 
 

+ 4 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -27,6 +27,7 @@ import com.ydtech.modules.admin.service.SysUserTreeShowLevelService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -39,6 +40,7 @@ import java.util.stream.Collectors;
 
 
 @Service
+@Slf4j
 public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         implements SysDeptService {
 
@@ -205,6 +207,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
     @Override
     @Transactional
     public SysDeptVo addDept(SysDeptVo sysDeptVo) {
+
         SysDept sysDept = new SysDept();
         BeanUtils.copyProperties(sysDeptVo, sysDept);
         String comlevel = ObjectUtils.isEmpty(sysDept.getComlevel()) ? "" : sysDept.getComlevel();
@@ -296,7 +299,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
                 updateById(i);
             });
         }
-
+        log.info("------------------添加部门-----------------------");
         boolean b = save(sysDept);
         AssertionUtils.isSucceed(b, "删除失败");
         sysDeptVo.setId(sysDept.getId());

+ 277 - 45
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -692,10 +692,10 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
             List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
                     .in(SysUserAccountHistory::getUserId, userIdList).eq(SysUserAccountHistory::getProperty, 3));
-            if ( CollectionUtil.isNotEmpty(sysUserAccountHistories)) {
+            if (CollectionUtil.isNotEmpty(sysUserAccountHistories)) {
                 BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
                 appPartnerInfo.setExtractFee(extractFee);
-            }else {
+            } else {
                 appPartnerInfo.setExtractFee(BigDecimal.ZERO);
             }
 
@@ -723,7 +723,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         if (CollectionUtil.isNotEmpty(sysUserAccountHistories)) {
             BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             appPartnerInfoFreeVo.setExtractFee(extractFee);
-        }else {
+        } else {
             appPartnerInfoFreeVo.setExtractFee(BigDecimal.ZERO);
         }
 
@@ -957,11 +957,11 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         int type = sysPartner.getType();
         if (type == 1) {
             start = start + 2;
-        }else if (type == 2) {
+        } else if (type == 2) {
             start = start + 3;
-        }else if (type == 3) {
+        } else if (type == 3) {
             start = start + 4;
-        }else if (type == 4) {
+        } else if (type == 4) {
             start = start + 5;
         }
 
@@ -1077,7 +1077,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                             extracted(partnerInfoDto, appSysPartnerVo, BigDecimal.ZERO, BigDecimal.ZERO, 0, list);
                         }
                     }
-                }else if (type == 2) {
+                } else if (type == 2) {
                     if (i == 3) {
                         //一级获取登陆人的之际工作室
                         list.add(userId);
@@ -1092,7 +1092,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                             extracted(partnerInfoDto, appSysPartnerVo, BigDecimal.ZERO, BigDecimal.ZERO, 0, list);
                         }
                     }
-                }else if (type == 3) {
+                } else if (type == 3) {
                     if (i == 4) {
                         //一级获取登陆人的之际工作室
                         list.add(userId);
@@ -1107,7 +1107,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                             extracted(partnerInfoDto, appSysPartnerVo, BigDecimal.ZERO, BigDecimal.ZERO, 0, list);
                         }
                     }
-                }else if (type == 4) {
+                } else if (type == 4) {
                     if (i == 5) {
                         //一级获取登陆人的之际工作室
                         list.add(userId);
@@ -1426,7 +1426,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         if (CollectionUtil.isNotEmpty(sysUserAccountHistories)) {
             BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             teamUserInfosFreeVo.setExtractFee(extractFee);
-        }else {
+        } else {
             teamUserInfosFreeVo.setExtractFee(BigDecimal.ZERO);
         }
 
@@ -1458,7 +1458,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             if (CollectionUtil.isNotEmpty(sysUserAccountHistorie)) {
                 BigDecimal extractFee1 = sysUserAccountHistorie.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
                 teamUserInfosVo.setExtractFee(extractFee1);
-            }else {
+            } else {
                 teamUserInfosVo.setExtractFee(BigDecimal.ZERO);
             }
 
@@ -1750,53 +1750,285 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         String startTime1 = countUserDto.getBeginTime();
         String endTime1 = countUserDto.getEndTime();
 
-        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) return countUserVo;
-        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();
+        int deptSum=0;
+        int deptManSum=0;
+        List<String> deptIds =new ArrayList<>();
+        //查工作室下的团队
+        SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
+                .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, userId));
 
+        //根据机构id查下面团队
+        List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+        deptSum = deptSum + sysDeptList.size();
+        if (sysDeptList.size() > 0) {
+            for (SysDept sysDept : sysDeptList) {
+                deptIds.add(sysDept.getId());
+                //团队下的人数
+                List<SysUser> sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                        .likeRight(SysUser::getId, sysDept.getId())
+                        .in(SysUser::getStatus, Arrays.asList(1, 4, 5, 6, 7)));
+                deptManSum = deptManSum + sysUserList.size();
+            }
+
+            countUserVo.setDeptSum(deptSum);
+            countUserVo.setDeptManSum(deptManSum);
+
+            countUserVo.setCountSum(deptSum + deptManSum);
+
+            //曲线图
+            List<CountUserNumVo> countUserNumVoList = null;
+            int type = countUserDto.getType();
+
+            //类型:1:团队 2:代理人
+            if (type == 1) {
+                if (StringUtils.isNotEmpty(startTime1)) {
+                    String s = startTime1.split(" ")[0];
+                    String s1 = endTime1.split(" ")[0];
+                    if (s.equals(s1)) {
+                        //查一天的数据
+                        countUserNumVoList = sysPartnerMapper.queryDeptByTimes(deptIds, countUserDto);
+                    }else {
+                        countUserNumVoList = sysPartnerMapper.queryDeptByTime(deptIds, countUserDto);
+                    }
+                }else {
+                    countUserNumVoList = sysPartnerMapper.queryDeptByTime(deptIds, countUserDto);
+                }
+
+            } else {
+                if (StringUtils.isNotEmpty(startTime1)) {
+                    String s = startTime1.split(" ")[0];
+                    String s1 = endTime1.split(" ")[0];
+                    if (s.equals(s1)) {
+                        countUserNumVoList = sysPartnerMapper.queryUserByTimes(deptIds, countUserDto);
+                    }else {
+                        countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds, countUserDto);
+                    }
+                }else {
+                    countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds, countUserDto);
+                }
+
+            }
+            countUserVo.setCountUserNumVoList(countUserNumVoList);
         }
-        countUserVo.setDeptLeaderSum(deptManNum);
 
-        countUserVo.setCountSum(countUserVo.getDeptSum() + deptManNum);
 
-        //曲线图
-        List<CountUserNumVo> countUserNumVoList = null;
-        int type = countUserDto.getType();
-        String s = startTime1.split(" ")[0];
-        String s1 = endTime1.split(" ")[0];
+        return countUserVo;
+    }
+
+    @Override
+    public PartnerCountVo getPartnerCount(PartnerCountDto partnerCountDto) {
+        PartnerCountVo partnerCountVo = new PartnerCountVo();
+        String userId = BaseController.getUserId();
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        int type = sysPartner.getType();
+        partnerCountDto.setType(type+partnerCountDto.getType());
+        //查询登陆人下所有合伙人
+        List<SysPartner> sysPartnerList = sysPartnerMapper.queryPartnerById(userId, partnerCountDto);
+        if (CollectionUtil.isEmpty(sysPartnerList)) return partnerCountVo;
+
+
+        //统计每一个等级的合伙人数
         if (type == 1) {
-            if (StringUtils.isNotEmpty(s) && s.equals(s1)) {
+            //1
+            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+            partnerCountVo.setOnePartnerNum(onePartners.size());
+            //2
+            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+            partnerCountVo.setTwoPartnerNum(twoPartners.size());
+            //3
+            List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
+            partnerCountVo.setThreePartnerNum(threePartners.size());
+            //4
+            List<SysPartner> fourPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 4).collect(Collectors.toList());
+            partnerCountVo.setFourPartnerNum(fourPartners.size());
 
-                countUserNumVoList = sysPartnerMapper.queryDeptByTimes(userId, countUserDto);
-            } else {
-                countUserNumVoList = sysPartnerMapper.queryDeptByTime(userId, countUserDto);
+        }else if (type == 2) {
+            //1
+            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+            partnerCountVo.setOnePartnerNum(onePartners.size());
+            //2
+            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+            partnerCountVo.setTwoPartnerNum(twoPartners.size());
+            //3
+            List<SysPartner> threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList());
+            partnerCountVo.setThreePartnerNum(threePartners.size());
+
+        }else if (type == 3) {
+            //1
+            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+            partnerCountVo.setOnePartnerNum(onePartners.size());
+            //2
+            List<SysPartner> twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList());
+            partnerCountVo.setTwoPartnerNum(twoPartners.size());
+
+        }else if (type == 4) {
+            //1
+            List<SysPartner> onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList());
+            partnerCountVo.setOnePartnerNum(onePartners.size());
+        }
+        //工作室
+        List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getSuggestId, userId)
+                .eq(SysRelationPerson::getDelFlag, 1)
+                .eq(SysRelationPerson::getType, 1));
+        partnerCountVo.setWorkSum(sysRelationPersonList.size());
+        if (CollectionUtil.isNotEmpty(sysRelationPersonList)) {
+            List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+            //查工作室下的团队
+            List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .eq(SysAgencyLeader::getDelFlag,1).in(SysAgencyLeader::getUserId,collect));
+            int deptSum=0;
+            int deptManSum=0;
+
+            for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                //根据机构id查下面团队
+                List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                        .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                        .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                        .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                deptSum = deptSum + sysDeptList.size();
+                if (sysDeptList.size() > 0) {
+                    for (SysDept sysDept : sysDeptList) {
+                        //团队下的人数
+                        List<SysUser> sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                .likeRight(SysUser::getId, sysDept.getId())
+                                .in(SysUser::getStatus, Arrays.asList(1, 4, 5, 6, 7)));
+                        deptManSum = deptManSum + sysUserList.size();
+                    }
+                }
             }
+
+            partnerCountVo.setDeptSum(deptSum);
+            partnerCountVo.setDeptManSum(deptManSum);
+
+        }
+        //曲线图
+        List<CountUserNumVo> countUserNumVoList;
+        String beginTime = partnerCountDto.getBeginTime();
+        String s = "";
+        String s1 = "";
+        if (StringUtils.isNotEmpty(beginTime)) {
+            s = partnerCountDto.getBeginTime().split(" ")[0];
+            s1 = partnerCountDto.getEndTime().split(" ")[0];
+        }
+
+        if (StringUtils.isNotEmpty(s)) {
+            if (s.equals(s1)) {
+                //查一天的数据
+                countUserNumVoList = sysPartnerMapper.queryPartnerByTimes(userId, partnerCountDto);
+            }else {
+                countUserNumVoList = sysPartnerMapper.queryPartnerByTime(userId, partnerCountDto);
+            }
+
         } else {
-//            List<String> deptIds = sysUsers.stream().map(SysUser::getDeptId).collect(Collectors.toList());
-            if (StringUtils.isNotEmpty(s) && s.equals(s1)) {
+            countUserNumVoList = sysPartnerMapper.queryPartnerByTime(userId, partnerCountDto);
+        }
 
-                countUserNumVoList = sysPartnerMapper.queryUserByTimes(deptIds, countUserDto);
-            } else {
-                countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds, countUserDto);
+        partnerCountVo.setCountUserNumVoList(countUserNumVoList);
+
+        return partnerCountVo;
+    }
+
+    @Override
+    public PartnerProportionVo getPartnerProportion(PartnerCountDto partnerCountDto) {
+        PartnerProportionVo partnerProportionVo = new PartnerProportionVo();
+        String userId = BaseController.getUserId();
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        int level = sysPartner.getType() + partnerCountDto.getType();
+        List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
+
+        List<SysPartner> collectNum = sysPartnerList.stream().filter(SysPartner -> SysPartner.getCreateTime().after(new Date(partnerCountDto.getBeginTime()))
+                        && SysPartner.getCreateTime().before(new Date(partnerCountDto.getEndTime())) && SysPartner.getType()==level)
+                .collect(Collectors.toList());
+
+        List<SysPartner> collectSum = sysPartnerList.stream().filter(SysPartner ->SysPartner.getType()==level)
+                .collect(Collectors.toList());
+
+        partnerProportionVo.setNewNum(collectNum.size());
+        partnerProportionVo.setNumber(collectSum.size());
+        if (CollectionUtil.isNotEmpty(collectSum)) {
+            int i = collectSum.size() - collectNum.size();
+            partnerProportionVo.setOldNum(i);
+        }
+        if (CollectionUtil.isNotEmpty(collectNum)) {
+            double v = (float)collectNum.size() / (float) collectSum.size() * 100;
+            partnerProportionVo.setNewProportion(v);
+        }
+        int oldNum = partnerProportionVo.getOldNum();
+        if (oldNum != 0) {
+            double v = (float)oldNum / (float) collectSum.size() * 100;
+            partnerProportionVo.setOldProportion(v);
+        }
+
+        return partnerProportionVo;
+    }
+
+    @Override
+    public List<LevelPartnerVo> getLevelPartner(Integer type) {
+        List<LevelPartnerVo> partnerVoList = new ArrayList<>();
+        String userId = BaseController.getUserId();
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        int level = sysPartner.getType() +type;
+
+        List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
+
+        List<SysPartner> collect = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType()==level)
+                .collect(Collectors.toList());
+        if (CollectionUtil.isEmpty(collect)) return partnerVoList;
+
+        for (SysPartner partner : collect) {
+            LevelPartnerVo levelPartnerVo = new LevelPartnerVo();
+
+            levelPartnerVo.setId(partner.getId());
+            SysUser sysUser = sysUserMapper.selectById(partner.getUserId());
+            levelPartnerVo.setUserName(sysUser.getName());
+            //查合伙人下的工作室下团队的所有人
+            List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                    .eq(SysRelationPerson::getSuggestId, partner.getUserId())
+                    .eq(SysRelationPerson::getDelFlag, 1)
+                    .eq(SysRelationPerson::getType, 1));
+            if (CollectionUtil.isNotEmpty(sysRelationPersonList)) {
+                List<String> collects = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                //查工作室下的团队
+                List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                        .eq(SysAgencyLeader::getDelFlag,1).in(SysAgencyLeader::getUserId,collects));
+                int deptSum=0;
+                int deptManSum=0;
+                for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                    //根据机构id查下面团队
+                    List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                            .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                            .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                            .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                    deptSum = deptSum + sysDeptList.size();
+                    if (sysDeptList.size() > 0) {
+                        for (SysDept sysDept : sysDeptList) {
+                            //团队下的人数
+                            List<SysUser> sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                    .likeRight(SysUser::getId, sysDept.getId())
+                                    .in(SysUser::getStatus, Arrays.asList(1, 4, 5, 6, 7)));
+                            deptManSum = deptManSum + sysUserList.size();
+                        }
+                    }
+                }
+
+                levelPartnerVo.setDeptManNum(deptManSum);
+
+            }else {
+                levelPartnerVo.setDeptManNum(0);
             }
 
+            partnerVoList.add(levelPartnerVo);
         }
-        countUserVo.setCountUserNumVoList(countUserNumVoList);
 
-        return countUserVo;
+
+        return partnerVoList.stream().sorted(Comparator.comparingInt(LevelPartnerVo::getDeptManNum).reversed()).collect(Collectors.toList());
     }