|
@@ -1,25 +1,28 @@
|
|
|
package com.ydtech.modules.admin.service.impl;
|
|
package com.ydtech.modules.admin.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.modules.admin.dao.*;
|
|
import com.ydtech.modules.admin.dao.*;
|
|
|
-import com.ydtech.modules.admin.model.SysAgencyFeeApproval;
|
|
|
|
|
-import com.ydtech.modules.admin.model.SysAgencyLeader;
|
|
|
|
|
-import com.ydtech.modules.admin.model.SysRelationPerson;
|
|
|
|
|
|
|
+import com.ydtech.modules.admin.model.*;
|
|
|
import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
|
|
import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
|
|
|
import com.ydtech.modules.admin.model.dto.MySumAmountQueryDto;
|
|
import com.ydtech.modules.admin.model.dto.MySumAmountQueryDto;
|
|
|
import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
|
|
import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
|
|
|
|
|
+import com.ydtech.modules.admin.model.dto.SysPartnerInfoConsoleDto;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
|
-import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
|
|
|
|
|
-import com.ydtech.modules.admin.model.vo.PartnerBalanceVo;
|
|
|
|
|
|
|
+import com.ydtech.modules.admin.model.vo.*;
|
|
|
import com.ydtech.modules.admin.service.*;
|
|
import com.ydtech.modules.admin.service.*;
|
|
|
|
|
+import com.ydtech.modules.base.controller.BaseController;
|
|
|
import com.ydtech.modules.base.model.vo.PageVo;
|
|
import com.ydtech.modules.base.model.vo.PageVo;
|
|
|
|
|
+import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
|
|
|
|
|
+import com.ydtech.modules.esm.model.EsmUserReferrer;
|
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
import com.ydtech.utils.StringUtils;
|
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -27,10 +30,7 @@ import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -61,6 +61,24 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
|
|
private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPartnerAccountMapper sysPartnerAccountMapper;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysDeptMapper sysDeptMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysUserMapper sysUserMapper;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPremiumDetailsMapper sysPremiumDetailsMapper;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private EsmUserReferrerMapper esmUserReferrerMapper;
|
|
|
/**
|
|
/**
|
|
|
* @version
|
|
* @version
|
|
|
* @author: whp
|
|
* @author: whp
|
|
@@ -145,50 +163,83 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
|
|
|
|
|
List<SysPartnerConsoleDto> sysPartners = sysPartnersPage.getRecords();
|
|
List<SysPartnerConsoleDto> sysPartners = sysPartnersPage.getRecords();
|
|
|
for (SysPartnerConsoleDto item : sysPartners) {
|
|
for (SysPartnerConsoleDto item : sysPartners) {
|
|
|
- BigDecimal allTotalIncome = BigDecimal.ZERO; // 总保费
|
|
|
|
|
- BigDecimal allDeptManagementFee = BigDecimal.ZERO;//机构管理费
|
|
|
|
|
- BigDecimal allWithdrawn = BigDecimal.ZERO;//已体现
|
|
|
|
|
- BigDecimal allNotWithdrawn = BigDecimal.ZERO;//未提现
|
|
|
|
|
-
|
|
|
|
|
- List<SysAgencyLeader> deptLeader = sysRelationPersonMapper.selectListByLeaderId(item.getUserId(),1);
|
|
|
|
|
-// 机构负责人
|
|
|
|
|
- for (SysAgencyLeader itemLeader : deptLeader) {
|
|
|
|
|
- String deptId = itemLeader.getDeptId();
|
|
|
|
|
- if (StringUtils.isNotEmpty(deptId)) {
|
|
|
|
|
- String proportional = item.getProportional();
|
|
|
|
|
- Date updateTime = itemLeader.getUpdateTime();
|
|
|
|
|
- Date createTime = itemLeader.getCreateTime();
|
|
|
|
|
- String dateStr="";
|
|
|
|
|
- if(updateTime!=null){
|
|
|
|
|
- dateStr= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
|
|
|
|
|
- }else{
|
|
|
|
|
- dateStr= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
|
|
|
|
|
- }
|
|
|
|
|
- HashMap<String, BigDecimal> orderAmount = deptBalanceMapper.getByDeptId(deptId,dateStr,deptBalanceVo.getBeginDate(),deptBalanceVo.getEndDate());
|
|
|
|
|
|
|
+ String userId = item.getUserId();
|
|
|
|
|
+ item.setLoginUserId(userId);
|
|
|
|
|
+ SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
|
|
|
|
|
+ .eq(SysPartnerAccount::getUserId, item.getUserId()));
|
|
|
|
|
+ if(ObjectUtils.isNotEmpty(sysPartnerAccount)){
|
|
|
|
|
+ if(sysPartnerAccount.getSumPremium() !=null ){
|
|
|
|
|
+ item.setTotalIncome(sysPartnerAccount.getSumPremium());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(sysPartnerAccount.getExtractFee()!=null){
|
|
|
|
|
+ item.setCommission(sysPartnerAccount.getExtractFee());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(sysPartnerAccount.getHistoryFee()!=null){
|
|
|
|
|
+ item.setWithdrawn(sysPartnerAccount.getHistoryFee());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(sysPartnerAccount.getCashFee() !=null){
|
|
|
|
|
+ item.setNotWithdrawn(sysPartnerAccount.getCashFee());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //下面合伙人(直接)数量
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 0));
|
|
|
|
|
|
|
|
- if (orderAmount != null && !orderAmount.isEmpty()) {
|
|
|
|
|
- BigDecimal totalIncome = orderAmount.get("totalIncome")==null ? BigDecimal.ZERO : orderAmount.get("totalIncome");
|
|
|
|
|
- allTotalIncome = totalIncome.multiply(new BigDecimal(proportional))
|
|
|
|
|
- .divide(new BigDecimal("100")).setScale(2, RoundingMode.DOWN);
|
|
|
|
|
- allDeptManagementFee = this.calculateTotal(orderAmount.get("deptManagementFee"), allDeptManagementFee, null);
|
|
|
|
|
- }
|
|
|
|
|
- // 填充 已提现抽成费用和可提现抽成费用
|
|
|
|
|
- List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
|
|
- .eq(SysAgencyFeeApproval::getUserId, item.getUserId())
|
|
|
|
|
- .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
|
|
- if (!sysAgencyFeeApprovals.isEmpty()) {
|
|
|
|
|
- for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
|
|
- allWithdrawn = allWithdrawn.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
|
|
|
|
+ item.setNumberPartners(sysRelationPersonList1.size());
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //直接工作室数量
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ item.setDirectStudio(sysRelationPersonList.size());
|
|
|
|
|
+ List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ item.setLeaderIds(collect);
|
|
|
|
|
+ //登录人下面的所有团队人数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //间接工作室
|
|
|
|
|
+ List<SysRelationPerson> indirectStudioList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ item.setIndirectStudio(indirectStudioList.size());
|
|
|
|
|
+
|
|
|
|
|
+ if (sysRelationPersonList2.size() > 0) {
|
|
|
|
|
+ List<String> ids = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysAgencyLeader::getUserId, ids).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ if (leaderList.size() > 0) {
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- //可提现 = 总抽成-已提现
|
|
|
|
|
- allNotWithdrawn = allTotalIncome.subtract(allWithdrawn);
|
|
|
|
|
|
|
+ item.setMemberShip(deptManNum);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
- item.setTotalIncome(allDeptManagementFee);
|
|
|
|
|
- item.setDeptManagementFee(allTotalIncome);
|
|
|
|
|
- item.setWithdrawn(allWithdrawn);
|
|
|
|
|
- item.setNotWithdrawn(allNotWithdrawn);
|
|
|
|
|
}
|
|
}
|
|
|
return HttpResult.ok(sysPartnersPage);
|
|
return HttpResult.ok(sysPartnersPage);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -346,6 +397,660 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
|
|
|
|
|
return sysUserListPage;
|
|
return sysUserListPage;
|
|
|
}
|
|
}
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<SysPartnerConsoleDto> queryPartnerInfo(DeptBalanceVo deptBalanceVo) {
|
|
|
|
|
+ List<SysPartnerConsoleDto> appSysPartnerVos = new ArrayList<>();
|
|
|
|
|
+ String userId = deptBalanceVo.getUserId();
|
|
|
|
|
+ if (StringUtils.isEmpty(userId)) {
|
|
|
|
|
+ userId = BaseController.getUserId();
|
|
|
|
|
+ }
|
|
|
|
|
+ SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
|
|
|
+ .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
|
|
|
|
|
+
|
|
|
|
|
+ //查询登陆人下所有直接合伙人
|
|
|
|
|
+ List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
|
|
|
|
|
+
|
|
|
|
|
+ Map<Integer, List<SysPartner>> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPartner::getType));
|
|
|
|
|
+ //按等级查询
|
|
|
|
|
+ int start = 0;
|
|
|
|
|
+ int type = sysPartner.getType();
|
|
|
|
|
+ if (type == 1) {
|
|
|
|
|
+ start = start + 2;
|
|
|
|
|
+ } else if (type == 2) {
|
|
|
|
|
+ start = start + 3;
|
|
|
|
|
+ } else if (type == 3) {
|
|
|
|
|
+ start = start + 4;
|
|
|
|
|
+ } else if (type == 4) {
|
|
|
|
|
+ start = start + 5;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = start; i < 6; i++) {
|
|
|
|
|
+ //二级
|
|
|
|
|
+ List<SysPartner> sysPartnerList1 = listMap.get(i);
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(sysPartnerList1)) {
|
|
|
|
|
+ SysPartnerConsoleDto appSysPartnerVo = new SysPartnerConsoleDto();
|
|
|
|
|
+ appSysPartnerVo.setPatnerLevel(i);
|
|
|
|
|
+ //下级合伙人数
|
|
|
|
|
+ appSysPartnerVo.setNumberPartners(sysPartnerList1.size());
|
|
|
|
|
+ List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setPartnerIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+ //所有创造利益总人数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ if (sysRelationPersonList.size() > 0) {
|
|
|
|
|
+ List<String> idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ if (leaderList.size() > 0) {
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ appSysPartnerVo.setMemberShip(deptManNum);
|
|
|
|
|
+ //直接工作室
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ appSysPartnerVo.setDirectStudio(sysRelationPersons.size());
|
|
|
|
|
+
|
|
|
|
|
+ if (sysRelationPersons.size() > 0) {
|
|
|
|
|
+ List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ appSysPartnerVo.setLeaderIds(list1);
|
|
|
|
|
+ }
|
|
|
|
|
+ //所有工作室
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersons1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ //直接工作室下所有的人
|
|
|
|
|
+ List<String> userIds = getUserIds(sysRelationPersons1);
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee = BigDecimal.ZERO;
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(userIds)) {
|
|
|
|
|
+ for (String id : userIds) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, userId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId,id)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+// .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1));
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(sysPremiumDetails)) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee = extractFee.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ appSysPartnerVo.setTotalIncome(sumPremium);
|
|
|
|
|
+ appSysPartnerVo.setCommission(extractFee);
|
|
|
|
|
+ appSysPartnerVo.setUserId(deptBalanceVo.getUserId());
|
|
|
|
|
+ //每一级存入map
|
|
|
|
|
+ appSysPartnerVos.add(appSysPartnerVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return appSysPartnerVos;
|
|
|
|
|
+ }
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SysPartnerInfoConsoleDto queryInfo(DeptBalanceVo deptBalanceVo) {
|
|
|
|
|
+ SysPartnerInfoConsoleDto partnerInfoFreeVo = new SysPartnerInfoConsoleDto();
|
|
|
|
|
+ List<SysPartnerConsoleDto> partnerInfoVoList = new ArrayList<>();
|
|
|
|
|
+ String loginId = deptBalanceVo.getUserId();
|
|
|
|
|
+ //合伙人:1;工作室:2
|
|
|
|
|
+ Integer type = deptBalanceVo.getType();
|
|
|
|
|
+ if(type == 1){
|
|
|
|
|
+ List<String> partnerIds = deptBalanceVo.getPartnerIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(partnerIds)) {
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //工作室下所有的人
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersons1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(SysRelationPerson::getSuggestId, partnerIds)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ List<String> userIds = getUserIds(sysRelationPersons1);
|
|
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee = BigDecimal.ZERO;
|
|
|
|
|
+
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(userIds)) {
|
|
|
|
|
+ for (String userId : userIds) {
|
|
|
|
|
+
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId,userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1));
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(sysPremiumDetails)) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// sumPremium = sumPremium.add(sysPremiumDetails.get(0).getSumpremium());
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee = extractFee.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ partnerInfoFreeVo.setTotalIncome(sumPremium);
|
|
|
|
|
+ partnerInfoFreeVo.setCommission(extractFee);
|
|
|
|
|
+ //合伙人
|
|
|
|
|
+ List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
|
|
|
|
|
+ .in(SysPartner::getUserId, deptBalanceVo.getPartnerIds()).eq(SysPartner::getDelFlag, 1));
|
|
|
|
|
+
|
|
|
|
|
+ if (sysPartnerList.size() > 0) {
|
|
|
|
|
+ for (SysPartner sysPartner : sysPartnerList) {
|
|
|
|
|
+ SysPartnerConsoleDto partnerInfoVo = new SysPartnerConsoleDto();
|
|
|
|
|
+ partnerInfoVo.setLevel(sysPartner.getType());
|
|
|
|
|
+ String userId = sysPartner.getUserId();
|
|
|
|
|
+ partnerInfoVo.setUserId(userId);
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
|
|
+ partnerInfoVo.setUserName(sysUser.getName());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
|
|
|
|
|
+ partnerInfoVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+ //直接合伙人
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0));
|
|
|
|
|
+ List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ partnerInfoVo.setPartnerIds(collect);
|
|
|
|
|
+ partnerInfoVo.setNumberPartners(collect.size());
|
|
|
|
|
+
|
|
|
|
|
+ //直接管理员
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0));
|
|
|
|
|
+
|
|
|
|
|
+ List<String> collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ partnerInfoVo.setLeaderIds(collects);
|
|
|
|
|
+ partnerInfoVo.setDirectStudio(collects.size());
|
|
|
|
|
+ //所有贡献费用
|
|
|
|
|
+ //合伙人下所有工作室数 核算总代理人数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ List<String> userIds1 = getUserIds(sysRelationPersonList2);
|
|
|
|
|
+ BigDecimal sumPremium1 = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee1 = BigDecimal.ZERO;
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(userIds1)) {
|
|
|
|
|
+ for (String id : userIds1) {
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId,id)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(sysPremiumDetail)) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium1 = sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// sumPremium1 = sumPremium1.add(sysPremiumDetail.get(0).getSumpremium());
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee1 = extractFee1.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ partnerInfoVo.setTotalIncome(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setCommission(extractFee1);
|
|
|
|
|
+
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ if (sysRelationPersonList2.size() > 0) {
|
|
|
|
|
+ List<String> idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ if (leaderList.size() > 0) {
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ partnerInfoVo.setMemberShip(deptManNum);
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ //工作室
|
|
|
|
|
+ List<String> leaderIds = deptBalanceVo.getLeaderIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(leaderIds)) {
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<String> userIdByLeader = getUserIdByLeader(leaderList);
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ BigDecimal sumPremium1 = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee1 = BigDecimal.ZERO;
|
|
|
|
|
+ SysPartnerConsoleDto partnerInfoVo = new SysPartnerConsoleDto();
|
|
|
|
|
+
|
|
|
|
|
+ String userId = sysAgencyLeader.getUserId();
|
|
|
|
|
+ partnerInfoVo.setUserId(userId);
|
|
|
|
|
+ partnerInfoVo.setLoginUserId(deptBalanceVo.getUserId());
|
|
|
|
|
+
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
|
|
+ partnerInfoVo.setUserName(sysUser.getName());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
|
|
|
|
|
+ partnerInfoVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+ partnerInfoVo.setDeptId(sysAgencyLeader.getDeptId());
|
|
|
|
|
+ SysDept sysDept1 = sysDeptMapper.selectById(sysAgencyLeader.getDeptId());
|
|
|
|
|
+ partnerInfoVo.setDeptName(sysDept1.getName());
|
|
|
|
|
+ //团队总人数
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ partnerInfoVo.setDeptNum(sysDeptList.size());
|
|
|
|
|
+ List<String> collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVo.setDeptIds(collect);
|
|
|
|
|
+ partnerInfoVo.setDeptNum(sysDeptList.size());
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(sysUsers)) {
|
|
|
|
|
+ for (SysUser user : sysUsers) {
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, user.getId())
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+ if (sysPremiumDetail.size() >0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium1= sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+// SysPremiumDetails sysPremiumDetails = sysPremiumDetail.get(0);
|
|
|
|
|
+// sumPremium1= sumPremium1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
|
|
+
|
|
|
|
|
+ extractFee1 = extractFee1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ partnerInfoVo.setTotalIncome(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setCommission(extractFee1);
|
|
|
|
|
+ partnerInfoVo.setMemberShip(deptManNum);
|
|
|
|
|
+ partnerInfoVo.setLevel(deptBalanceVo.getLevel());
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ //top总费用
|
|
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee = BigDecimal.ZERO;
|
|
|
|
|
+ if (userIdByLeader.size()>0) {
|
|
|
|
|
+ for (String id : userIdByLeader) {
|
|
|
|
|
+ //总费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, id)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+
|
|
|
|
|
+ if (sysPremiumDetails.size() >0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium= sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ extractFee = extractFee.add(sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoFreeVo.setTotalIncome(sumPremium);
|
|
|
|
|
+ partnerInfoFreeVo.setCommission(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ int sum = partnerInfoVoList.stream().mapToInt(SysPartnerConsoleDto::getMemberShip).sum();
|
|
|
|
|
+ partnerInfoFreeVo.setUserIds(userIdByLeader);
|
|
|
|
|
+ partnerInfoFreeVo.setMemberShip(sum);
|
|
|
|
|
+ partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+ }
|
|
|
|
|
+ int sum = partnerInfoVoList.stream().mapToInt(SysPartnerConsoleDto::getMemberShip).sum();
|
|
|
|
|
+ partnerInfoFreeVo.setMemberShip(sum);
|
|
|
|
|
+ partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SysPartnerInfoConsoleDto getTeamInfo(DeptBalanceVo deptBalanceVo) {
|
|
|
|
|
+ SysPartnerInfoConsoleDto appPartnerInfoFreeVo = new SysPartnerInfoConsoleDto();
|
|
|
|
|
+ String loginId = deptBalanceVo.getLoginUserId();
|
|
|
|
|
+ List<SysPartnerConsoleDto> appPartnerInfoList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<String> deptIds = deptBalanceVo.getDeptIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(deptIds)) {
|
|
|
|
|
+ return appPartnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
|
|
|
|
+ .in(SysDept::getId, deptIds).eq(SysDept::getDelFlag, 0));
|
|
|
|
|
+ if (sysDeptList.size() == 0) {
|
|
|
|
|
+ return appPartnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ SysUser byUserId = sysUserMapper.getByUserId(deptBalanceVo.getUserId());
|
|
|
|
|
+ appPartnerInfoFreeVo.setSuggestName(byUserId.getName());
|
|
|
|
|
+
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ SysPartnerConsoleDto appPartnerInfo = new SysPartnerConsoleDto();
|
|
|
|
|
+ appPartnerInfo.setDeptId(sysDept.getId());
|
|
|
|
|
+ appPartnerInfo.setDeptName(sysDept.getName());
|
|
|
|
|
+ String leaderId = sysDept.getLeaderId();
|
|
|
|
|
+ if (StringUtils.isNotEmpty(leaderId)) {
|
|
|
|
|
+ appPartnerInfo.setLeaderId(leaderId);
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(leaderId);
|
|
|
|
|
+ appPartnerInfo.setLeaderName(sysUser.getName());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ List<SysDept> sysDepTeam = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
|
|
|
|
+ .likeRight(SysDept::getId, sysDept.getId())
|
|
|
|
|
+ .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
|
|
|
|
|
+ .eq(SysDept::getManagementSource, sysDept.getManagementSource()));
|
|
|
|
|
+ //机构下每个团队人数id集合
|
|
|
|
|
+ List<String> userIdList = new ArrayList<>();
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ if (sysDepTeam.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept1 : sysDepTeam) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept1.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+ if (sysUsers.size() > 0) {
|
|
|
|
|
+ List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
|
|
|
|
|
+ userIdList.addAll(collect);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ appPartnerInfo.setMemberShip(deptManNum);
|
|
|
|
|
+ appPartnerInfo.setUserIds(userIdList);
|
|
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee = BigDecimal.ZERO;
|
|
|
|
|
+ if (CollectionUtil.isEmpty(userIdList)) continue;
|
|
|
|
|
+ for (String userId : userIdList) {
|
|
|
|
|
+ //查团队的保费
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, userId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+ if (sysPremiumDetails.size() > 0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee = extractFee.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ appPartnerInfo.setTotalIncome(sumPremium);
|
|
|
|
|
+ appPartnerInfo.setCommission(extractFee);
|
|
|
|
|
+ appPartnerInfo.setLoginUserId(loginId);
|
|
|
|
|
+ appPartnerInfoList.add(appPartnerInfo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<String> ids = new ArrayList<>();
|
|
|
|
|
+ List<List<String>> collect = appPartnerInfoList.stream().map(SysPartnerConsoleDto::getUserIds).collect(Collectors.toList());
|
|
|
|
|
+ if (collect.size() > 0) {
|
|
|
|
|
+ for (List<String> list : collect) {
|
|
|
|
|
+ ids.addAll(list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (CollectionUtil.isEmpty(ids)) return appPartnerInfoFreeVo;
|
|
|
|
|
+ BigDecimal sumPremium1 = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee1 = BigDecimal.ZERO;
|
|
|
|
|
+ for (String id : ids) {
|
|
|
|
|
+
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, id)
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+ if (sysPremiumDetails.size() > 0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium1 = sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+// SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
|
|
|
|
|
+// sumPremium1 = sumPremium1.add(sysPremiumDetails1.getSumpremium());
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee1 = extractFee1.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ appPartnerInfoFreeVo.setTotalIncome(sumPremium1);
|
|
|
|
|
+ appPartnerInfoFreeVo.setCommission(extractFee1);
|
|
|
|
|
+ int sum = appPartnerInfoList.stream().mapToInt(SysPartnerConsoleDto::getMemberShip).sum();
|
|
|
|
|
+ appPartnerInfoFreeVo.setMemberShip(sum);
|
|
|
|
|
+ appPartnerInfoFreeVo.setPartnerInfoVoList(appPartnerInfoList);
|
|
|
|
|
+ appPartnerInfoFreeVo.setDeptNum(appPartnerInfoList.size());
|
|
|
|
|
+ return appPartnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SysPartnerInfoConsoleDto getTeamUserInfo(DeptBalanceVo deptBalanceVo) {
|
|
|
|
|
+ SysPartnerInfoConsoleDto teamUserInfosFreeVo = new SysPartnerInfoConsoleDto();
|
|
|
|
|
+ String loginId = deptBalanceVo.getLoginUserId();
|
|
|
|
|
+ List<SysPartnerConsoleDto> userInfosVoList = new ArrayList<>();
|
|
|
|
|
+ List<String> userIds = deptBalanceVo.getUserIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(userIds)) {
|
|
|
|
|
+ return teamUserInfosFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee = BigDecimal.ZERO;
|
|
|
|
|
+ for (String userId : userIds) {
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+ if (sysPremiumDetails.size()>0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ extractFee = extractFee.add(reduce);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ teamUserInfosFreeVo.setTotalIncome(sumPremium);
|
|
|
|
|
+ teamUserInfosFreeVo.setCommission(extractFee);
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .ne(SysUser::getStatus, 0).in(SysUser::getId, deptBalanceVo.getUserIds()));
|
|
|
|
|
+ for (SysUser sysUser : sysUsers) {
|
|
|
|
|
+ SysPartnerConsoleDto teamUserInfosVo = new SysPartnerConsoleDto();
|
|
|
|
|
+ teamUserInfosVo.setUserId(sysUser.getId());
|
|
|
|
|
+ teamUserInfosVo.setUserName(sysUser.getName());
|
|
|
|
|
+ EsmUserReferrer esmUserReferrer = esmUserReferrerMapper.selectById(sysUser.getId());
|
|
|
|
|
+ if (esmUserReferrer != null) {
|
|
|
|
|
+ teamUserInfosVo.setLeaderId(esmUserReferrer.getReferrerId());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(esmUserReferrer.getReferrerId());
|
|
|
|
|
+ teamUserInfosVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal sumPremium1 =BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal extractFee1 =BigDecimal.ZERO;
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getIssuerId, sysUser.getId())
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, loginId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(deptBalanceVo.getBeginDate()) && StringUtils.isNotEmpty(deptBalanceVo.getEndDate()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, deptBalanceVo.getBeginDate(), deptBalanceVo.getEndDate())
|
|
|
|
|
+ .eq(SysPremiumDetails::getStatus, 1)
|
|
|
|
|
+ .eq(deptBalanceVo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, deptBalanceVo.getIndustrySector()));
|
|
|
|
|
+ if (sysPremiumDetail.size()>0) {
|
|
|
|
|
+ Map<String, List<SysPremiumDetails>> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
|
|
|
|
|
+ for (String s : map.keySet()) {
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
|
|
|
|
|
+ sumPremium1 = sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
|
|
|
|
|
+ }
|
|
|
|
|
+ extractFee1 =extractFee1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add)) ;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ teamUserInfosVo.setTotalIncome(sumPremium1);
|
|
|
|
|
+ teamUserInfosVo.setCommission(extractFee1);
|
|
|
|
|
+ userInfosVoList.add(teamUserInfosVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ teamUserInfosFreeVo.setMemberShip(userIds.size());
|
|
|
|
|
+ teamUserInfosFreeVo.setPartnerInfoVoList(userInfosVoList);
|
|
|
|
|
+ return teamUserInfosFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private List<String> getUserIds(List<SysRelationPerson> sysRelationPersons) {
|
|
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
|
|
+ if (sysRelationPersons.size() > 0) {
|
|
|
|
|
+ List<String> idList = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ if (leaderList.size() > 0) {
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ if (sysUsers.size()>0) {
|
|
|
|
|
+ userIds.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return userIds;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private List<String> getUserIdByLeader(List<SysAgencyLeader> leaderList) {
|
|
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
|
|
+ if (leaderList.size() > 0) {
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
+ if (sysUsers.size()>0) {
|
|
|
|
|
+ userIds.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return userIds;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|