|
@@ -11,13 +11,12 @@ import com.ydtech.aop.exception.DescribeException;
|
|
|
import com.ydtech.exception.SystemException;
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.admin.dao.*;
|
|
import com.ydtech.modules.admin.dao.*;
|
|
|
import com.ydtech.modules.admin.model.*;
|
|
import com.ydtech.modules.admin.model.*;
|
|
|
-import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
|
|
|
|
|
-import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
|
|
|
|
|
-import com.ydtech.modules.admin.model.dto.SysPartnerDto;
|
|
|
|
|
-import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
|
|
|
|
|
|
|
+import com.ydtech.modules.admin.model.dto.*;
|
|
|
|
|
+import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
|
|
|
import com.ydtech.modules.admin.model.vo.*;
|
|
import com.ydtech.modules.admin.model.vo.*;
|
|
|
import com.ydtech.modules.admin.service.SysAgencyLeaderService;
|
|
import com.ydtech.modules.admin.service.SysAgencyLeaderService;
|
|
|
import com.ydtech.modules.admin.service.SysPartnerService;
|
|
import com.ydtech.modules.admin.service.SysPartnerService;
|
|
|
|
|
+import com.ydtech.modules.admin.service.SysPremiumDetailsService;
|
|
|
import com.ydtech.modules.admin.service.SysUserService;
|
|
import com.ydtech.modules.admin.service.SysUserService;
|
|
|
import com.ydtech.modules.base.controller.BaseController;
|
|
import com.ydtech.modules.base.controller.BaseController;
|
|
|
import com.ydtech.modules.order.entity.BasePageResult;
|
|
import com.ydtech.modules.order.entity.BasePageResult;
|
|
@@ -29,10 +28,10 @@ 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.time.LocalDate;
|
|
|
|
|
+import java.time.ZoneId;
|
|
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -64,6 +63,23 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
@Resource
|
|
@Resource
|
|
|
private SysAgencyLeaderService sysAgencyLeaderService;
|
|
private SysAgencyLeaderService sysAgencyLeaderService;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPartnerTimeMapper sysPartnerTimeMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPartnerAccountMapper sysPartnerAccountMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPremiumDetailsMapper sysPremiumDetailsMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPremiumDetailsService sysPremiumDetailsService;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysUserAccountHistoryMapper sysUserAccountHistoryMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysPartnerConfigMapper sysPartnerConfigMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<SysPartner> queryRecommendAndPartner(String id) {
|
|
public List<SysPartner> queryRecommendAndPartner(String id) {
|
|
@@ -205,8 +221,17 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
sysPartner.setType(1);
|
|
sysPartner.setType(1);
|
|
|
b = sysPartnerMapper.insert(sysPartner) > 0;
|
|
b = sysPartnerMapper.insert(sysPartner) > 0;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ //添加抽层比例,一个月只能设置一次
|
|
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
+ String format = simpleDateFormat.format(new Date());
|
|
|
|
|
+ SysPartnerTime sysPartnerTime = new SysPartnerTime();
|
|
|
|
|
+ sysPartnerTime.setType(1);
|
|
|
|
|
+ sysPartnerTime.setCreateTime(format);
|
|
|
|
|
+ sysPartnerTime.setUserId(sysPartnerDto.getUserId());
|
|
|
|
|
+ sysPartnerTime.setUserName(sysPartnerDto.getUserName());
|
|
|
|
|
+ sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
|
|
|
|
|
+
|
|
|
|
|
+ sysPartnerTimeMapper.insert(sysPartnerTime);
|
|
|
return b;
|
|
return b;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -355,6 +380,71 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto) {
|
|
|
|
|
+ List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
|
|
|
|
|
+ LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(SysPartner::getDelFlag, 1);
|
|
|
|
|
+ wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
|
|
|
|
|
+ wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
|
|
|
|
|
+ wrapper.orderByDesc(SysPartner::getId);
|
|
|
|
|
+
|
|
|
|
|
+ Page<SysPartner> insOrdersPage = page(page, wrapper);
|
|
|
|
|
+ List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
|
|
|
|
|
+ if (sysPartnerList.size() > 0) {
|
|
|
|
|
+ for (SysPartner sysPartner : sysPartnerList) {
|
|
|
|
|
+ String userId = sysPartner.getUserId();
|
|
|
|
|
+
|
|
|
|
|
+ AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
|
|
|
|
|
+ //已提现抽成费用
|
|
|
|
|
+ BigDecimal historyFee = BigDecimal.ZERO;
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .eq(SysUser::getId, userId)
|
|
|
|
|
+ .ne(SysUser::getStatus, 0));
|
|
|
|
|
+ //填充查询人的姓名和机构
|
|
|
|
|
+ agencyExtractFee.setUserId(userId);
|
|
|
|
|
+ agencyExtractFee.setUserName(sysUser.getName());
|
|
|
|
|
+ agencyExtractFee.setDeptId(sysUser.getDeptId());
|
|
|
|
|
+ SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
|
|
|
|
|
+ .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
|
|
|
|
|
+ agencyExtractFee.setDeptName(sysDept.getName());
|
|
|
|
|
+
|
|
|
|
|
+ SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
|
|
|
|
|
+ .eq(SysPartnerAccount::getUserId, userId));
|
|
|
|
|
+ if (sysPartnerAccount != null) {
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
|
|
|
|
|
+ BigDecimal extractFee = sysPartnerAccount.getExtractFee();
|
|
|
|
|
+ agencyExtractFee.setSumpremium(sumPremium);
|
|
|
|
|
+ agencyExtractFee.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
|
|
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
|
|
+ historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ agencyExtractFee.setHistoryFee(historyFee);
|
|
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
|
|
+ agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ agencyExtractFeeList.add(agencyExtractFee);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
|
|
+ agencyExtractFeeList);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto) {
|
|
public BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto) {
|
|
|
List<SysPartnerAPPPageVo> sysPartnerAPPPageVoList = new ArrayList<>();
|
|
List<SysPartnerAPPPageVo> sysPartnerAPPPageVoList = new ArrayList<>();
|
|
@@ -466,12 +556,20 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean edit(SysPartnerDto sysPartnerDto) {
|
|
public boolean edit(SysPartnerDto sysPartnerDto) {
|
|
|
|
|
+ //判断本月是否已修改比例
|
|
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
+ String format = simpleDateFormat.format(new Date());
|
|
|
|
|
+ List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
|
|
|
|
|
+ .eq(SysPartnerTime::getCreateTime, format).eq(SysPartnerTime::getUserId, sysPartnerDto.getUserId()));
|
|
|
|
|
+ if (sysPartnerTimes.size() > 0) {
|
|
|
|
|
+ throw new DescribeException(format + "已设置过抽成比例,每月只能修改一次");
|
|
|
|
|
+ }
|
|
|
boolean b;
|
|
boolean b;
|
|
|
SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
|
.eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
|
|
.eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
|
|
|
if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
|
|
if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
|
|
|
|
|
|
|
|
- if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
|
|
|
|
|
|
|
+ if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
|
|
|
SysPartner partner = new SysPartner();
|
|
SysPartner partner = new SysPartner();
|
|
|
partner.setId(sysPartner.getId());
|
|
partner.setId(sysPartner.getId());
|
|
|
partner.setProportional(sysPartnerDto.getProportional());
|
|
partner.setProportional(sysPartnerDto.getProportional());
|
|
@@ -481,7 +579,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
|
.eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
|
|
.eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
|
|
|
if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
|
|
if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
|
|
|
- partner.setType(sysPartnerSuggest.getType()+1);
|
|
|
|
|
|
|
+ partner.setType(sysPartnerSuggest.getType() + 1);
|
|
|
b = sysPartnerMapper.updateById(partner) > 0;
|
|
b = sysPartnerMapper.updateById(partner) > 0;
|
|
|
|
|
|
|
|
SysRelationPerson sysRelationPerson = new SysRelationPerson();
|
|
SysRelationPerson sysRelationPerson = new SysRelationPerson();
|
|
@@ -515,11 +613,19 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
SysPartner partner = new SysPartner();
|
|
SysPartner partner = new SysPartner();
|
|
|
partner.setId(sysPartner.getId());
|
|
partner.setId(sysPartner.getId());
|
|
|
partner.setProportional(sysPartnerDto.getProportional());
|
|
partner.setProportional(sysPartnerDto.getProportional());
|
|
|
- //判断本月是否已修改比例 TODO
|
|
|
|
|
|
|
|
|
|
b = sysPartnerMapper.updateById(partner) > 0;
|
|
b = sysPartnerMapper.updateById(partner) > 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ //修改抽成比例记录改变过程
|
|
|
|
|
+ SysPartnerTime sysPartnerTime = new SysPartnerTime();
|
|
|
|
|
+ sysPartnerTime.setType(1);
|
|
|
|
|
+ sysPartnerTime.setCreateTime(format);
|
|
|
|
|
+ sysPartnerTime.setUserId(sysPartnerDto.getUserId());
|
|
|
|
|
+ sysPartnerTime.setUserName(sysPartnerDto.getUserName());
|
|
|
|
|
+ sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
|
|
|
|
|
+ sysPartnerTime.setOldProportional(sysPartner.getProportional());
|
|
|
|
|
|
|
|
|
|
+ sysPartnerTimeMapper.insert(sysPartnerTime);
|
|
|
|
|
|
|
|
return b;
|
|
return b;
|
|
|
}
|
|
}
|
|
@@ -544,138 +650,967 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
|
|
|
if (records.size() > 0) {
|
|
if (records.size() > 0) {
|
|
|
for (SysAgencyLeader sysAgencyLeaders : records) {
|
|
for (SysAgencyLeader sysAgencyLeaders : records) {
|
|
|
AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
|
|
AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
|
|
|
- //总保费
|
|
|
|
|
- BigDecimal bigDecimal = BigDecimal.ZERO;
|
|
|
|
|
|
|
+ String userId = sysAgencyLeaders.getUserId();
|
|
|
//已提现抽成费用
|
|
//已提现抽成费用
|
|
|
BigDecimal historyFee = BigDecimal.ZERO;
|
|
BigDecimal historyFee = BigDecimal.ZERO;
|
|
|
- SysUser sysUser = sysUserMapper.selectById(sysAgencyLeaders.getUserId());
|
|
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
|
|
SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
|
|
|
- agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
|
|
|
|
|
|
|
+ agencyExtractFee.setUserId(userId);
|
|
|
agencyExtractFee.setUserName(sysUser.getName());
|
|
agencyExtractFee.setUserName(sysUser.getName());
|
|
|
agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
|
|
agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
|
|
|
agencyExtractFee.setDeptName(sysDept.getName());
|
|
agencyExtractFee.setDeptName(sysDept.getName());
|
|
|
- agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
|
|
|
|
|
- //筛选订单,选择时间
|
|
|
|
|
- Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
|
|
- Date createTime = sysAgencyLeaders.getCreateTime();
|
|
|
|
|
- String dateStr = "";
|
|
|
|
|
- if (updateTime != null) {
|
|
|
|
|
- dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
|
|
|
|
|
- agencyExtractFee.setStartTime(updateTime);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
|
|
|
|
|
+ .eq(SysPartnerAccount::getUserId, userId));
|
|
|
|
|
+ if (sysPartnerAccount != null) {
|
|
|
|
|
+ BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
|
|
|
|
|
+ BigDecimal extractFee = sysPartnerAccount.getExtractFee();
|
|
|
|
|
+ agencyExtractFee.setSumpremium(sumPremium);
|
|
|
|
|
+ agencyExtractFee.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
|
|
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
|
|
+ historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!extractFee.equals(BigDecimal.ZERO)) {
|
|
|
|
|
+ //已提现
|
|
|
|
|
+ agencyExtractFee.setHistoryFee(historyFee);
|
|
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
|
|
+ agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
|
|
|
|
|
+ agencyExtractFee.setCashFee(extractFee.subtract(BigDecimal.ZERO));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ agencyExtractFeeList.add(agencyExtractFee);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
|
|
+ agencyExtractFeeList);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public APPPartnerInfoFreeVo getTeamInfo(PartnerGradeInfo partnerGradeInfo) {
|
|
|
|
|
+ APPPartnerInfoFreeVo appPartnerInfoFreeVo = new APPPartnerInfoFreeVo();
|
|
|
|
|
+
|
|
|
|
|
+ List<APPPartnerInfo> appPartnerInfoList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ List<String> deptIds = partnerGradeInfo.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;
|
|
|
|
|
+ }
|
|
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
|
|
+ APPPartnerInfo appPartnerInfo = new APPPartnerInfo();
|
|
|
|
|
+ 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.setTeamManNum(deptManNum);
|
|
|
|
|
+ appPartnerInfo.setUserIds(userIdList);
|
|
|
|
|
+
|
|
|
|
|
+ //查团队的保费
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, userIdList)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ appPartnerInfo.setSumPremium(sumPremium);
|
|
|
|
|
+
|
|
|
|
|
+ List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
|
|
|
|
|
+ .in(SysUserAccountHistory::getUserId, userIdList).eq(SysUserAccountHistory::getProperty, 3));
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ appPartnerInfo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ appPartnerInfoList.add(appPartnerInfo);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<String> ids = new ArrayList<>();
|
|
|
|
|
+ List<List<String>> collect = appPartnerInfoList.stream().map(APPPartnerInfo::getUserIds).collect(Collectors.toList());
|
|
|
|
|
+ if (collect.size() > 0) {
|
|
|
|
|
+ for (List<String> list : collect) {
|
|
|
|
|
+ ids.addAll(list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, ids)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ appPartnerInfoFreeVo.setSumPremium(sumPremium);
|
|
|
|
|
+
|
|
|
|
|
+ List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
|
|
|
|
|
+ .in(SysUserAccountHistory::getUserId, ids).eq(SysUserAccountHistory::getProperty, 3));
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ appPartnerInfoFreeVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ int sum = appPartnerInfoList.stream().mapToInt(APPPartnerInfo::getTeamManNum).sum();
|
|
|
|
|
+ appPartnerInfoFreeVo.setTeamManNum(sum);
|
|
|
|
|
+
|
|
|
|
|
+ appPartnerInfoFreeVo.setAppPartnerInfos(appPartnerInfoList);
|
|
|
|
|
+
|
|
|
|
|
+ return appPartnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AppPartnerNumVo getHomePage(Integer type) {
|
|
|
|
|
+ AppPartnerNumVo appPartnerNumVo = new AppPartnerNumVo();
|
|
|
|
|
+ //合伙人:1 ;工作室管理员:2
|
|
|
|
|
+ String userId = BaseController.getUserId();
|
|
|
|
|
+ SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
|
|
|
|
|
+ .eq(SysPartnerAccount::getUserId, userId));
|
|
|
|
|
+ appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium());
|
|
|
|
|
+ appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee());
|
|
|
|
|
+ if (type == 1) {
|
|
|
|
|
+ //下面合伙人(直接+间接)数量
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 0));
|
|
|
|
|
+
|
|
|
|
|
+ appPartnerNumVo.setPartnerNum(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));
|
|
|
|
|
+ appPartnerNumVo.setWorkroomNum(sysRelationPersonList.size());
|
|
|
|
|
+ List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ appPartnerNumVo.setLeaderIds(collect);
|
|
|
|
|
+ //登录人下面的所有团队人数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ 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();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ appPartnerNumVo.setTeamManNum(deptManNum);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ int deptManNum = 0;
|
|
|
|
|
+ SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, userId).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ //获取机构下的团队
|
|
|
|
|
+ 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()));
|
|
|
|
|
+ appPartnerNumVo.setWorkroomTeamNum(sysDeptList.size());
|
|
|
|
|
+ List<String> deptIds = new ArrayList<>();
|
|
|
|
|
+ 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();
|
|
|
|
|
+ deptIds.add(sysDept.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ appPartnerNumVo.setWorkroomManNum(deptManNum);
|
|
|
|
|
+ appPartnerNumVo.setTeamManNum(deptManNum);
|
|
|
|
|
+ appPartnerNumVo.setDeptIds(deptIds);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return appPartnerNumVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AppUserInfoVo getUserInfo(Integer type) {
|
|
|
|
|
+ String userId = BaseController.getUserId();
|
|
|
|
|
+ AppUserInfoVo appUserInfoVo = sysUserMapper.queryByUserId(userId);
|
|
|
|
|
+ if (type == 1) {
|
|
|
|
|
+ SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
|
|
|
+ .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, userId));
|
|
|
|
|
+ SysPartnerConfig sysPartnerConfig = sysPartnerConfigMapper.selectOne(new LambdaQueryWrapper<SysPartnerConfig>()
|
|
|
|
|
+ .eq(SysPartnerConfig::getDelFlag,1).eq(SysPartnerConfig::getLevel,sysPartner.getType()));
|
|
|
|
|
+
|
|
|
|
|
+ appUserInfoVo.setSysPartnerConfig(sysPartnerConfig);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取当前日期
|
|
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
|
|
+ ZoneId zoneId = ZoneId.systemDefault();
|
|
|
|
|
+ Date entryTime = appUserInfoVo.getEntryTime();
|
|
|
|
|
+ if (entryTime != null) {
|
|
|
|
|
+ LocalDate localDate = entryTime.toInstant().atZone(zoneId).toLocalDate();
|
|
|
|
|
+ // 计算年数
|
|
|
|
|
+ long years = ChronoUnit.YEARS.between(localDate, currentDate);
|
|
|
|
|
+ appUserInfoVo.setYears(years);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return appUserInfoVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SysPartnerAccount getFee() {
|
|
|
|
|
+ String userId = BaseController.getUserId();
|
|
|
|
|
+
|
|
|
|
|
+ return sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>().eq(SysPartnerAccount::getUserId, userId));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<AppSysPartnerVo> partnerInfo(PartnerInfoDto partnerInfoDto) {
|
|
|
|
|
+ List<AppSysPartnerVo> appSysPartnerVos = new ArrayList<>();
|
|
|
|
|
+ String 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));
|
|
|
|
|
+ //按等级查询
|
|
|
|
|
+ Integer partnerType = partnerInfoDto.getPartnerType();
|
|
|
|
|
+ if (partnerType != null) {
|
|
|
|
|
+ List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType);
|
|
|
|
|
+
|
|
|
|
|
+ if (sysPartnerList1 != null) {
|
|
|
|
|
+ AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
|
|
|
|
|
+ //下级合伙人数
|
|
|
|
|
+ appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
|
|
|
|
|
+ List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+ appSysPartnerVo.setPartnerIds(ids);
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+
|
|
|
|
|
+// appSysPartnerVo.setSumPremium(sumPremium);
|
|
|
|
|
+// appSysPartnerVo.setExtractFee(extractFee);
|
|
|
|
|
+ //二级以下团队的总人数
|
|
|
|
|
+ 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(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));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+// appSysPartnerVo.setTeamManNum(deptManNum);
|
|
|
|
|
+
|
|
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
|
|
+ if (partnerType == 1) {
|
|
|
|
|
+ //一级获取登陆人的之际工作室
|
|
|
|
|
+ list.add(userId);
|
|
|
} else {
|
|
} else {
|
|
|
- dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
|
|
|
|
|
- agencyExtractFee.setStartTime(createTime);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //获取上一级合伙人,查询工作室数量
|
|
|
|
|
+ List<SysPartner> sysPartners = listMap.get(sysPartner.getType() + partnerType - 1);
|
|
|
|
|
+ //上一级直接推荐的工作室数量
|
|
|
|
|
+ List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+ list.addAll(list1);
|
|
|
}
|
|
}
|
|
|
- HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr, null, null);
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(map)) {
|
|
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
|
|
|
|
|
+ List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ appSysPartnerVo.setLeaderIds(list1);
|
|
|
|
|
+
|
|
|
|
|
+ //直接工作室保费
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, list1)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
|
|
|
|
|
+ appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
|
|
|
|
|
+ int leaderManNum=0;
|
|
|
|
|
+ //直接工作室总
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).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));
|
|
|
|
|
+ leaderManNum = leaderManNum + sysUsers.size();
|
|
|
|
|
|
|
|
- bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- agencyExtractFee.setSumpremium(bigDecimal);
|
|
|
|
|
- BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
|
|
|
|
|
- .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
|
|
|
|
|
- agencyExtractFee.setExtractFee(multiply);
|
|
|
|
|
- // 填充 已提现抽成费用和可提现抽成费用
|
|
|
|
|
- List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
|
|
- .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
|
|
|
|
|
- .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
|
|
- if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
|
|
- for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
|
|
- historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setTeamManNum(deptManNum+leaderManNum);
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
|
|
|
|
|
+
|
|
|
|
|
+ //每一级存入map
|
|
|
|
|
+ appSysPartnerVo.setPartnerType(partnerType);
|
|
|
|
|
+ appSysPartnerVos.add(appSysPartnerVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return appSysPartnerVos;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 1; i <= listMap.size(); i++) {
|
|
|
|
|
+ //二级
|
|
|
|
|
+ List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + i);
|
|
|
|
|
+ if (sysPartnerList1.size() > 0) {
|
|
|
|
|
+ AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
|
|
|
|
|
+ //下级合伙人数
|
|
|
|
|
+ appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
|
|
|
|
|
+ List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+ appSysPartnerVo.setPartnerIds(ids);
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+
|
|
|
|
|
+ //同等级合伙人团队的总人数:
|
|
|
|
|
+ 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(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));
|
|
|
|
|
+ deptManNum = deptManNum + sysUsers.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (!bigDecimal.equals(BigDecimal.ZERO)) {
|
|
|
|
|
- //已提现
|
|
|
|
|
- agencyExtractFee.setHistoryFee(historyFee);
|
|
|
|
|
- //可提现 = 总抽成-已提现
|
|
|
|
|
- agencyExtractFee.setCashFee(multiply.subtract(historyFee));
|
|
|
|
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
|
|
+ if (i == 1) {
|
|
|
|
|
+ //一级获取登陆人的之际工作室
|
|
|
|
|
+ list.add(userId);
|
|
|
} else {
|
|
} else {
|
|
|
- agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
|
|
|
|
|
- agencyExtractFee.setCashFee(multiply.subtract(BigDecimal.ZERO));
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //获取上一级合伙人,查询工作室数量
|
|
|
|
|
+ List<SysPartner> sysPartners = listMap.get(sysPartner.getType() + i - 1);
|
|
|
|
|
+ //上一级直接推荐的工作室数量
|
|
|
|
|
+ List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+ list.addAll(list1);
|
|
|
}
|
|
}
|
|
|
- agencyExtractFeeList.add(agencyExtractFee);
|
|
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getSource, 0)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+ appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
|
|
|
|
|
+ List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
+ appSysPartnerVo.setLeaderIds(list1);
|
|
|
|
|
+ //直接工作室保费
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, list1)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
|
|
|
|
|
+ appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
|
|
|
|
|
+ int leaderManNum=0;
|
|
|
|
|
+ //直接工作室总
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).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));
|
|
|
|
|
+ leaderManNum = leaderManNum + sysUsers.size();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setTeamManNum(deptManNum+leaderManNum);
|
|
|
|
|
+
|
|
|
|
|
+ appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
|
|
|
|
|
+ appSysPartnerVo.setPartnerType(i);
|
|
|
|
|
+ //每一级存入map
|
|
|
|
|
+ appSysPartnerVos.add(appSysPartnerVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return appSysPartnerVos;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo) {
|
|
|
|
|
+ PartnerInfoFreeVo partnerInfoFreeVo = new PartnerInfoFreeVo();
|
|
|
|
|
+ List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
|
|
|
|
|
+ //合伙人:1;工作室:2
|
|
|
|
|
+ Integer type = partnerGradeInfo.getType();
|
|
|
|
|
+ if (type == 1) {
|
|
|
|
|
+ List<String> partnerIds = partnerGradeInfo.getPartnerIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(partnerIds)) {
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, partnerIds)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoFreeVo.setSumPremium(sumPremium);
|
|
|
|
|
+ partnerInfoFreeVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ //合伙人
|
|
|
|
|
+ List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
|
|
|
|
|
+ .in(SysPartner::getUserId, partnerGradeInfo.getPartnerIds()).eq(SysPartner::getDelFlag, 1));
|
|
|
|
|
+ if (sysPartnerList.size() > 0) {
|
|
|
|
|
+ for (SysPartner sysPartner : sysPartnerList) {
|
|
|
|
|
+ PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
|
|
|
|
|
+ partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
|
|
|
|
|
+ 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<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoVo.setSumPremium(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setExtractFee(extractFee1);
|
|
|
|
|
+ //直接合伙人
|
|
|
|
|
+ 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.setPartnerNumber(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.setWorkNumber(collects.size());
|
|
|
|
|
|
|
|
|
|
+ //合伙人下所有工作室数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ 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.setTeamManNum(deptManNum);
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //工作室
|
|
|
|
|
+ List<String> leaderIds = partnerGradeInfo.getLeaderIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(leaderIds)) {
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, leaderIds)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoFreeVo.setSumPremium(sumPremium);
|
|
|
|
|
+ partnerInfoFreeVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
|
|
|
|
|
+
|
|
|
|
|
+ String userId = sysAgencyLeader.getUserId();
|
|
|
|
|
+ partnerInfoVo.setUserId(userId);
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
|
|
+ partnerInfoVo.setUserName(sysUser.getName());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
|
|
|
|
|
+ partnerInfoVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoVo.setSumPremium(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setExtractFee(extractFee1);
|
|
|
|
|
+
|
|
|
|
|
+ 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);
|
|
|
|
|
+ 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.setTeamManNum(deptManNum);
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
|
|
|
|
|
+ partnerInfoFreeVo.setTeamManNum(sum);
|
|
|
|
|
+ partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
|
|
|
- return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
|
|
- agencyExtractFeeList);
|
|
|
|
|
|
|
+ return partnerInfoFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public BasePageResult<SysPremiumDetails> getCommissionInfo(CommissionInfoDto commissionInfoDto) {
|
|
|
|
|
+ String userId = BaseController.getUserId();
|
|
|
|
|
+
|
|
|
|
|
+ Page<SysPremiumDetails> page = new Page<>(commissionInfoDto.getPageNum(), commissionInfoDto.getPageSize());
|
|
|
|
|
+
|
|
|
|
|
+ LambdaQueryWrapper<SysPremiumDetails> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(SysPremiumDetails::getUserId, userId);
|
|
|
|
|
+ wrapper.eq(commissionInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, commissionInfoDto.getIndustrySector());
|
|
|
|
|
+ wrapper.between(StringUtils.isNotEmpty(commissionInfoDto.getBeginTime()) && StringUtils.isNotEmpty(commissionInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, commissionInfoDto.getBeginTime(), commissionInfoDto.getEndTime());
|
|
|
|
|
+ wrapper.orderByDesc(SysPremiumDetails::getId);
|
|
|
|
|
+
|
|
|
|
|
+ Page<SysPremiumDetails> insOrdersPage = sysPremiumDetailsService.page(page, wrapper);
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
|
|
+ insOrdersPage.getRecords());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public List<SysPartner> partnerInfo(String beginTime, String endTime) {
|
|
|
|
|
|
|
+ public TeamUserInfosFreeVo getTeamUserInfo(TeamUserInfosDto teamUserInfosDto) {
|
|
|
|
|
+ TeamUserInfosFreeVo teamUserInfosFreeVo = new TeamUserInfosFreeVo();
|
|
|
|
|
|
|
|
- List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
- .eq(StringUtils.isNotEmpty(BaseController.getUserId()), SysRelationPerson::getSuggestId, BaseController.getUserId())
|
|
|
|
|
- .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
- .eq(SysRelationPerson::getType, 0));
|
|
|
|
|
- if (sysRelationPersonList.size() == 0) return null;
|
|
|
|
|
- List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
- List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
|
|
|
|
|
- .eq(SysPartner::getDelFlag, 1).in(CollectionUtil.isNotEmpty(collect), SysPartner::getUserId, collect)
|
|
|
|
|
- .between(StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)
|
|
|
|
|
- ,SysPartner::getCreateTime,beginTime,endTime));
|
|
|
|
|
|
|
+ List<TeamUserInfosVo> userInfosVoList = new ArrayList<>();
|
|
|
|
|
+ List<String> userIds = teamUserInfosDto.getUserIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(userIds)) {
|
|
|
|
|
+ return teamUserInfosFreeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, userIds)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
|
|
|
|
|
+ .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ teamUserInfosFreeVo.setSumPremium(sumPremium);
|
|
|
|
|
+ List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
|
|
|
|
|
+ .in(SysUserAccountHistory::getUserId, userIds).eq(SysUserAccountHistory::getProperty, 3)
|
|
|
|
|
+ .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ teamUserInfosFreeVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .ne(SysUser::getStatus, 0).in(SysUser::getId, teamUserInfosDto.getUserIds()));
|
|
|
|
|
+ for (SysUser sysUser : sysUsers) {
|
|
|
|
|
+ TeamUserInfosVo teamUserInfosVo = new TeamUserInfosVo();
|
|
|
|
|
+ teamUserInfosVo.setUserId(sysUser.getId());
|
|
|
|
|
+ teamUserInfosVo.setUserName(sysUser.getName());
|
|
|
|
|
+ String leaderId = sysUser.getLeaderId();
|
|
|
|
|
+ if (StringUtils.isNotEmpty(leaderId)) {
|
|
|
|
|
+ teamUserInfosVo.setLeaderId(sysUser.getLeaderId());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysUser.getLeaderId());
|
|
|
|
|
+ teamUserInfosVo.setLeaderName(sysUser1.getName());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- return sysPartnerList;
|
|
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, sysUser.getId())
|
|
|
|
|
+ .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);
|
|
|
|
|
+ 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);
|
|
|
|
|
+ teamUserInfosVo.setExtractFee(extractFee1);
|
|
|
|
|
+
|
|
|
|
|
+ userInfosVoList.add(teamUserInfosVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ teamUserInfosFreeVo.setTeamManNum(userIds.size());
|
|
|
|
|
+ teamUserInfosFreeVo.setTeamUserInfosVoList(userInfosVoList);
|
|
|
|
|
+
|
|
|
|
|
+ return teamUserInfosFreeVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public APPPartnerInfo getLeaderInfo(String userId) {
|
|
|
|
|
- APPPartnerInfo appPartnerInfo = new APPPartnerInfo();
|
|
|
|
|
- //查询合伙人有关系的工作室管理员
|
|
|
|
|
- List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
- .eq(StringUtils.isNotEmpty(userId), SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
- .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
- .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
- if (sysRelationPersonList.size() == 0) return null;
|
|
|
|
|
|
|
+ public FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto) {
|
|
|
|
|
+ FilterPartnerInfoVo filterPartnerInfoVo = new FilterPartnerInfoVo();
|
|
|
|
|
|
|
|
- List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
|
|
|
|
|
- List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
- .eq(SysAgencyLeader::getDelFlag, 1).in(CollectionUtil.isNotEmpty(collect), SysAgencyLeader::getUserId, collect));
|
|
|
|
|
-
|
|
|
|
|
- List<AgencyLeaderInfo> agencyLeaderInfos = BeanUtil.copyToList(leaderList, AgencyLeaderInfo.class);
|
|
|
|
|
- for (AgencyLeaderInfo agencyLeaderInfo : agencyLeaderInfos) {
|
|
|
|
|
-
|
|
|
|
|
- SysUser sysUser = sysUserMapper.selectById(agencyLeaderInfo.getUserId());
|
|
|
|
|
- agencyLeaderInfo.setUserName(sysUser.getName());
|
|
|
|
|
- SysUser sysUser1 = sysUserMapper.selectById(agencyLeaderInfo.getSuggestId());
|
|
|
|
|
- agencyLeaderInfo.setSuggestName(sysUser1.getName());
|
|
|
|
|
- SysDept sysDept = sysDeptMapper.selectById(agencyLeaderInfo.getDeptId());
|
|
|
|
|
- agencyLeaderInfo.setDeptName(sysDept.getName());
|
|
|
|
|
- //填充费用
|
|
|
|
|
- AgencyExtractFee agencyExtractFee = sysAgencyLeaderService.queryExtractFee(agencyLeaderInfo.getUserId());
|
|
|
|
|
- BigDecimal sumpremium = agencyExtractFee.getSumpremium();
|
|
|
|
|
- agencyLeaderInfo.setSumPremium(sumpremium);
|
|
|
|
|
- BigDecimal percentage = new BigDecimal(agencyLeaderInfo.getProportional()).divide(new BigDecimal("100"));
|
|
|
|
|
- agencyLeaderInfo.setProportional(percentage.toString());
|
|
|
|
|
- BigDecimal extractFee = sumpremium.multiply(percentage).setScale(2, RoundingMode.DOWN);
|
|
|
|
|
- agencyLeaderInfo.setExtractFee(extractFee);
|
|
|
|
|
-
|
|
|
|
|
- List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
- .likeRight(SysUser::getId, agencyLeaderInfo.getDeptId()).ne(SysUser::getStatus, 0));
|
|
|
|
|
- agencyLeaderInfo.setNumber(sysUsers.size());
|
|
|
|
|
- }
|
|
|
|
|
- appPartnerInfo.setAgencyLeaderInfo(agencyLeaderInfos);
|
|
|
|
|
- //机构总人数
|
|
|
|
|
- long count = agencyLeaderInfos.stream().mapToInt(AgencyLeaderInfo::getNumber).count();
|
|
|
|
|
- appPartnerInfo.setNumber(count);
|
|
|
|
|
- //总保费
|
|
|
|
|
- BigDecimal reduce = agencyLeaderInfos.stream().map(AgencyLeaderInfo::getSumPremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
- appPartnerInfo.setSumpremium(reduce);
|
|
|
|
|
-
|
|
|
|
|
- SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getUserId, userId));
|
|
|
|
|
- BigDecimal percentage = new BigDecimal(sysPartner.getProportional()).divide(new BigDecimal("100"));
|
|
|
|
|
- appPartnerInfo.setExtractFee(reduce.multiply(percentage).setScale(2, RoundingMode.DOWN));
|
|
|
|
|
-
|
|
|
|
|
- return appPartnerInfo;
|
|
|
|
|
|
|
+ String 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));
|
|
|
|
|
+ Integer partnerType = filterPartnerInfoDto.getPartnerType();
|
|
|
|
|
+
|
|
|
|
|
+ List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType);
|
|
|
|
|
+ List<String> collect1 = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
|
|
+ if (collect1.size() == 0) {
|
|
|
|
|
+ return filterPartnerInfoVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(CollectionUtil.isNotEmpty(collect1), SysPremiumDetails::getUserId, collect1)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ filterPartnerInfoVo.setSumPremium(sumPremium);
|
|
|
|
|
+ filterPartnerInfoVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ if (sysPartnerList1.size() > 0) {
|
|
|
|
|
+
|
|
|
|
|
+ List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
|
|
|
|
|
+ for (SysPartner partner : sysPartnerList1) {
|
|
|
|
|
+
|
|
|
|
|
+ PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
|
|
|
|
|
+
|
|
|
|
|
+ String id = sysPartner.getUserId();
|
|
|
|
|
+ partnerInfoVo.setUserId(id);
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(id);
|
|
|
|
|
+ partnerInfoVo.setUserName(sysUser.getName());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
|
|
|
|
|
+ partnerInfoVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
|
|
|
|
|
+ .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoVo.setSumPremium(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setExtractFee(extractFee1);
|
|
|
|
|
+ //直接合伙人
|
|
|
|
|
+ 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);
|
|
|
|
|
+
|
|
|
|
|
+ //直接管理员
|
|
|
|
|
+ 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.setPartnerNumber(collects.size() + collect.size());
|
|
|
|
|
+
|
|
|
|
|
+ //工作室数
|
|
|
|
|
+ List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId)
|
|
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
|
|
+
|
|
|
|
|
+ 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.setTeamManNum(deptManNum);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
|
|
|
|
|
+ filterPartnerInfoVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+ filterPartnerInfoVo.setTeamManNum(sum);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return filterPartnerInfoVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo) {
|
|
|
|
|
+ PartnerLeaderInfoVo partnerLeaderInfoVo = new PartnerLeaderInfoVo();
|
|
|
|
|
+
|
|
|
|
|
+ List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
|
|
|
|
|
+ //工作室
|
|
|
|
|
+ List<String> leaderIds = partnerGradeInfo.getLeaderIds();
|
|
|
|
|
+ if (CollectionUtil.isEmpty(leaderIds)) {
|
|
|
|
|
+ return partnerLeaderInfoVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .in(SysPremiumDetails::getUserId, leaderIds)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerLeaderInfoVo.setSumPremium(sumPremium);
|
|
|
|
|
+ partnerLeaderInfoVo.setExtractFee(extractFee);
|
|
|
|
|
+
|
|
|
|
|
+ List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
|
|
|
|
|
+ .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ for (SysAgencyLeader sysAgencyLeader : leaderList) {
|
|
|
|
|
+ PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
|
|
|
|
|
+
|
|
|
|
|
+ String userId = sysAgencyLeader.getUserId();
|
|
|
|
|
+ partnerInfoVo.setUserId(userId);
|
|
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
|
|
+ partnerInfoVo.setUserName(sysUser.getName());
|
|
|
|
|
+ SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
|
|
|
|
|
+ partnerInfoVo.setSuggestName(sysUser1.getName());
|
|
|
|
|
+
|
|
|
|
|
+ //费用
|
|
|
|
|
+ List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
|
|
|
|
|
+ .eq(SysPremiumDetails::getUserId, userId)
|
|
|
|
|
+ .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
|
|
|
|
|
+ SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
|
|
|
|
|
+ .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
|
|
|
|
|
+ BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ partnerInfoVo.setSumPremium(sumPremium1);
|
|
|
|
|
+ partnerInfoVo.setExtractFee(extractFee1);
|
|
|
|
|
+
|
|
|
|
|
+ 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);
|
|
|
|
|
|
|
|
|
|
+ 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 (sysUsers.size() > 0) {
|
|
|
|
|
+
|
|
|
|
|
+ List<String> collect1 = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
|
|
|
|
|
+ userIds.addAll(collect1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ partnerInfoVo.setTeamManNum(deptManNum);
|
|
|
|
|
+ partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
|
|
|
|
|
+
|
|
|
|
|
+ partnerInfoVoList.add(partnerInfoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
|
|
|
|
|
+ partnerLeaderInfoVo.setUserIds(userIds);
|
|
|
|
|
+ partnerLeaderInfoVo.setTeamManNum(sum);
|
|
|
|
|
+ partnerLeaderInfoVo.setPartnerInfoVoList(partnerInfoVoList);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return partnerLeaderInfoVo;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|