package com.ydtech.modules.admin.service.impl; import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.AlipayConfig; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipaySystemOauthTokenRequest; import com.alipay.api.response.AlipaySystemOauthTokenResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ydtech.aop.exception.DescribeException; import com.ydtech.constants.enums.WechatOpenSystem; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.dao.*; import com.ydtech.modules.admin.model.*; import com.ydtech.modules.admin.model.dto.*; import com.ydtech.modules.admin.model.vo.*; import com.ydtech.modules.admin.service.SysAgencyLeaderService; 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.base.controller.BaseController; import com.ydtech.modules.esm.dao.EsmUserReferrerMapper; import com.ydtech.modules.esm.model.EsmUserReferrer; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 配置机构合伙人表(SysPartner)表服务实现类 * * @author makejava * @since 2024-08-01 11:20:57 */ @Slf4j @Service("sysPartnerService") public class SysPartnerServiceImpl extends ServiceImpl implements SysPartnerService { @Resource private SysPartnerMapper sysPartnerMapper; @Resource private SysRelationPersonMapper sysRelationPersonMapper; @Resource private SysAgencyLeaderMapper sysAgencyLeaderMapper; @Resource private SysDeptMapper sysDeptMapper; @Resource private SysUserMapper sysUserMapper; @Resource private SysUserService sysUserService; @Resource private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper; @Resource private SysAgencyLeaderService sysAgencyLeaderService; @Resource private SysPartnerAccountMapper sysPartnerAccountMapper; @Resource private SysPremiumDetailsMapper sysPremiumDetailsMapper; @Resource private SysPremiumDetailsService sysPremiumDetailsService; @Resource private SysPartnerConfigMapper sysPartnerConfigMapper; @Resource private SysProportionConfigMapper sysProportionConfigMapper; @Resource private EsmUserReferrerMapper esmUserReferrerMapper; @Resource private Map wxMpService; @Override public List queryRecommendAndPartner(String id,Integer level) { List sysPartnerList = sysUserMapper.selectList(new LambdaQueryWrapper() .ne(SysUser::getStatus, 0) .likeRight(SysUser::getId, id) .eq(SysUser::getType,1) .lt(SysUser::getLevel,level) .orderByDesc(SysUser::getId)); return sysPartnerList; } @Override public BasePageResult queryByPage(SysPartnerPageDto sysPartnerPageDto) { Page page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId()); wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName()); wrapper.likeRight(StringUtils.isNotEmpty(sysPartnerPageDto.getDeptId()), SysPartner::getUserId, sysPartnerPageDto.getDeptId()); wrapper.eq(sysPartnerPageDto.getLevel() != null, SysPartner::getType, sysPartnerPageDto.getLevel()); wrapper.orderByDesc(SysPartner::getId); Page insOrdersPage = page(page, wrapper); List records = insOrdersPage.getRecords(); List sysUserPartners = BeanUtil.copyToList(records, SysUserPartner.class); if (sysUserPartners.size() > 0) { for (SysUserPartner user : sysUserPartners) { SysUser sysUser1 = sysUserMapper.selectById(user.getUserId()); user.setUserName(sysUser1.getName()); user.setDeptId(sysUser1.getDeptId()); SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper() .eq(SysDept::getId, sysUser1.getDeptId()).eq(SysDept::getDelFlag, 0)); user.setParentId(sysDept.getParentId()); user.setDeptName(sysDept.getName()); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, user.getUserId())); if (sysPartner != null) { user.setType(sysPartner.getType()); String suggestId = sysPartner.getSuggestId(); if (suggestId != null) { user.setSuggestId(sysPartner.getSuggestId()); SysUser sysUser = sysUserMapper.selectById(sysPartner.getSuggestId()); if (sysUser != null) { user.setSuggestName(sysUser.getName()); } } //查看等级 int type = sysPartner.getType(); if (type == 1) { SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper() .eq(SysProportionConfig::getUserId, sysPartner.getUserId())); if (sysProportionConfig == null) continue; user.setProportional(sysProportionConfig.getOneProportion()); } else { SysRelationPerson sysRelationPeople = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper() .eq(SysRelationPerson::getAgencyLeaderId, user.getUserId()) .eq(SysRelationPerson::getType, 0) .eq(SysRelationPerson::getSuggestLevel, 1)); if (sysRelationPeople == null) continue; SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper() .eq(SysProportionConfig::getUserId, sysRelationPeople.getSuggestId())); if (sysProportionConfig == null) continue; if (type == 2) { user.setProportional(sysProportionConfig.getTwoProportion()); } else if (type == 3) { user.setProportional(sysProportionConfig.getThreeProportion()); } else if (type == 4) { user.setProportional(sysProportionConfig.getFourProportion()); } else if (type == 5) { user.setProportional(sysProportionConfig.getFiveProportion()); } } } } } return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(), sysUserPartners); } @Override @Transactional(rollbackFor = Exception.class) public boolean insert(SysPartnerDto sysPartnerDto) { SysPartner sysPartner = BeanUtil.copyProperties(sysPartnerDto, SysPartner.class); sysPartner.setCreateTime(new Date()); sysPartner.setCreateBy(BaseController.getUser().getId()); sysPartner.setType(sysPartnerDto.getLevel()); boolean b = false; b = sysPartnerMapper.insert(sysPartner) > 0; //一级合伙人添加默认比例 if (sysPartnerDto.getLevel() == 1) { SysProportionConfig sysProportionConfig = new SysProportionConfig(null, sysPartner.getUserId(), "0.5", "0.1", "0.1", "0.1", "0.1", "0.1"); sysProportionConfigMapper.insert(sysProportionConfig); } if (sysPartnerDto.getSuggestId() != null) { SysPartner sysPartner1 = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId())); //保存关系 SysRelationPerson sysRelationPerson = new SysRelationPerson(); sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId()); sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId()); sysRelationPerson.setSuggestLevel(sysPartner1.getType()); //'推荐等级(0:直接推荐;1:间接推荐) sysRelationPerson.setSource(0); //推荐类型(0:合伙人 1:机构负责人) sysRelationPerson.setType(0); sysRelationPerson.setCreateBy(BaseController.getUser().getId()); sysRelationPerson.setCreateTime(new Date()); b = sysRelationPersonMapper.insert(sysRelationPerson) > 0; //查询合伙人的推荐人是否有上级 List sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId()) .eq(SysRelationPerson::getType, 0)); if (sysRelationPeople.size() > 0) { for (SysRelationPerson relationPerson : sysRelationPeople) { SysRelationPerson sysRelationPerson1 = new SysRelationPerson(); SysPartner sysPartner2 = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, relationPerson.getSuggestId())); sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId()); sysRelationPerson1.setSuggestId(relationPerson.getSuggestId()); sysRelationPerson1.setSuggestLevel(sysPartner2.getType()); sysRelationPerson1.setSource(1); //推荐类型(0:合伙人 1:机构负责人) sysRelationPerson1.setType(0); sysRelationPerson1.setCreateBy(BaseController.getUser().getId()); sysRelationPerson1.setCreateTime(new Date()); sysRelationPersonMapper.insert(sysRelationPerson1); } } } return b; } @Override public boolean checkPartner(String userId) { List sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper().eq(SysPartner::getDelFlag, 1)); if (sysPartners.size() > 0) { List userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList()); return userIdList.contains(userId); } return false; } @Override public boolean deleteById(String id) { SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper().eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, id)); List sysRelationPeople = sysRelationPersonMapper.selectList(new UpdateWrapper().lambda() .eq(SysRelationPerson::getAgencyLeaderId, id) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 0)); if (sysRelationPeople.size() > 0) { if (sysRelationPeople.get(0).getSuggestId() != null) { throw new DescribeException(sysPartner.getUserName() + "有推荐人,不允许删除"); } } List sysRelationPeople1 = sysRelationPersonMapper.selectList(new UpdateWrapper().lambda() .eq(SysRelationPerson::getSuggestId, id) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 0)); if (sysRelationPeople1.size() > 0) { if (sysRelationPeople1.get(0).getSuggestId() != null) { throw new DescribeException(sysPartner.getUserName() + "是推荐人,不允许删除"); } } SysPartner partner = new SysPartner(); partner.setId(sysPartner.getId()); partner.setDelFlag(0); return sysPartnerMapper.updateById(partner) > 0; } @Override public BasePageResult queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto) { List agencyExtractFeeList = new ArrayList<>(); Page page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize()); LambdaQueryWrapper 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 insOrdersPage = page(page, wrapper); List sysPartnerList = insOrdersPage.getRecords(); if (sysPartnerList.size() > 0) { for (SysPartner sysPartner : sysPartnerList) { AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo(); //总保费 BigDecimal bigDecimal = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; //已提现抽成费用 BigDecimal historyFee = BigDecimal.ZERO; //填充查询人的姓名和机构 agencyExtractFee.setProportional(sysPartner.getProportional()); agencyExtractFee.setUserId(sysPartner.getUserId()); //SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId()); SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper() .eq(SysUser::getId, sysPartner.getUserId()) .ne(SysUser::getStatus, 0)); if (sysUser == null) { continue; } agencyExtractFee.setUserName(sysUser.getName()); agencyExtractFee.setDeptId(sysUser.getDeptId()); SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper() .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0)); agencyExtractFee.setDeptName(sysDept.getName()); //查询所有推荐的机构负责人核算总保费 List sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()).eq(SysRelationPerson::getType, 1)); if (sysRelationPeople.size() > 0) { List agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); for (String agencyLeaderId : agencyLeaderIds) { SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper() .eq(SysAgencyLeader::getUserId, agencyLeaderId) .eq(SysAgencyLeader::getDelFlag, 1)); if (sysAgencyLeaders != null) { agencyExtractFee.setProportional(sysPartner.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); } else { dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime); } HashMap map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr, null, null); if (CollectionUtil.isNotEmpty(map)) { bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal")); } } } // 填充 已提现抽成费用和可提现抽成费用 List sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper() .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId()) .eq(SysAgencyFeeApproval::getStatus, 1)); if (sysAgencyFeeApprovals.size() > 0) { for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) { historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee()); } } agencyExtractFee.setSumpremium(bigDecimal); if (!bigDecimal.equals(BigDecimal.ZERO)) { BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional()) .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN); agencyExtractFee.setExtractFee(multiply); //已提现 agencyExtractFee.setHistoryFee(historyFee); extractFee = agencyExtractFee.getExtractFee(); //可提现 = 总抽成-已提现 agencyExtractFee.setCashFee(extractFee.subtract(historyFee)); } else { agencyExtractFee.setExtractFee(BigDecimal.ZERO); agencyExtractFee.setHistoryFee(BigDecimal.ZERO); agencyExtractFee.setCashFee(extractFee); } } else { agencyExtractFee.setSumpremium(BigDecimal.ZERO); agencyExtractFee.setExtractFee(BigDecimal.ZERO); agencyExtractFee.setHistoryFee(BigDecimal.ZERO); agencyExtractFee.setCashFee(BigDecimal.ZERO); } agencyExtractFeeList.add(agencyExtractFee); } } return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(), agencyExtractFeeList); } @Override public BasePageResult queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto) { List agencyExtractFeeList = new ArrayList<>(); Page page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize()); LambdaQueryWrapper 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 insOrdersPage = page(page, wrapper); List 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() .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() .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0)); agencyExtractFee.setDeptName(sysDept.getName()); SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartnerAccount::getUserId, userId)); if (sysPartnerAccount != null) { BigDecimal sumPremium = sysPartnerAccount.getSumPremium(); BigDecimal extractFee = sysPartnerAccount.getExtractFee(); agencyExtractFee.setSumpremium(sumPremium); agencyExtractFee.setExtractFee(extractFee); // 填充 已提现抽成费用和可提现抽成费用 List sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper() .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId()) .eq(SysAgencyFeeApproval::getStatus, 1)); if (sysAgencyFeeApprovals.size() > 0) { for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) { historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee()); } } agencyExtractFee.setHistoryFee(Optional.ofNullable(extractFee.subtract(historyFee)).orElse(BigDecimal.ZERO)); //可提现 = 总抽成-已提现 agencyExtractFee.setCashFee(extractFee.subtract(historyFee)); } else { agencyExtractFee.setSumpremium(BigDecimal.ZERO); agencyExtractFee.setExtractFee(BigDecimal.ZERO); agencyExtractFee.setHistoryFee(BigDecimal.ZERO); agencyExtractFee.setCashFee(BigDecimal.ZERO); } agencyExtractFeeList.add(agencyExtractFee); } } return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(), agencyExtractFeeList); } @Override public BasePageResult SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto) { List sysPartnerAPPPageVoList = new ArrayList<>(); String userId = BaseController.getUserId(); int source = sysPartnerAPPPageDto.getSource(); List sysRelationPersonList = null; //判断是0:直接推荐;1:间接推荐 if (source == 0) { sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 0)); } else { sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 1) .eq(SysRelationPerson::getType, 0)); } List ids = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(ids)) { //分页查询合伙人信息 Page page = new Page<>(sysPartnerAPPPageDto.getPageNum(), sysPartnerAPPPageDto.getPageSize()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(StringUtils.isNotEmpty(sysPartnerAPPPageDto.getUserName()), SysPartner::getUserName, sysPartnerAPPPageDto.getUserName()); wrapper.in(SysPartner::getUserId, ids); wrapper.eq(SysPartner::getDelFlag, 1); wrapper.orderByDesc(SysPartner::getId); Page insOrdersPage = page(page, wrapper); List sysPartnerList = insOrdersPage.getRecords(); if (sysPartnerList.size() > 0) { for (SysPartner sysPartner : sysPartnerList) { //总保费 BigDecimal bigDecimal = new BigDecimal("0.00"); SysPartnerAPPPageVo sysPartnerAPPPageVo = new SysPartnerAPPPageVo(); sysPartnerAPPPageVo.setUserId(sysPartner.getUserId()); //填充机构信息 SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper() .eq(SysUser::getId, sysPartner.getUserId()) .ne(SysUser::getStatus, 0)); sysPartnerAPPPageVo.setUserName(sysUser.getName()); SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper() .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0)); sysPartnerAPPPageVo.setDeptId(sysDept.getId()); sysPartnerAPPPageVo.setDeptName(sysDept.getName()); sysPartnerAPPPageVo.setProportional(sysPartner.getProportional()); List relationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); if (relationPersonList.size() > 0) { List agencyLeaderIds = relationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, agencyLeaderIds)); for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); if (sysDeptList.size() > 0) { for (SysDept sysDept1 : sysDeptList) { //筛选订单,选择时间 Date updateTime = sysAgencyLeader.getUpdateTime(); Date createTime = sysAgencyLeader.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 map = sysAgencyLeaderMapper.getBigDecimalNum(sysDept1.getId(), dateStr, null, null); if (CollectionUtil.isNotEmpty(map)) { bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal")); } } } } } sysPartnerAPPPageVo.setSumpremium(bigDecimal); if (!bigDecimal.equals(new BigDecimal("0.00"))) { BigDecimal multiply = bigDecimal.multiply(new BigDecimal(sysPartner.getProportional()) .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN); sysPartnerAPPPageVo.setExtractFee(multiply); } else { sysPartnerAPPPageVo.setExtractFee(new BigDecimal("0.00")); } sysPartnerAPPPageVoList.add(sysPartnerAPPPageVo); } } return new BasePageResult<>(sysPartnerAPPPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(), sysPartnerAPPPageVoList); } return new BasePageResult<>(sysPartnerAPPPageDto.getPageNum(), sysPartnerAPPPageDto.getPageSize(), 0L, 0L, sysPartnerAPPPageVoList); } @Override public boolean edit(SysPartnerDto sysPartnerDto) { SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId())); if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!"); SysPartner partner = new SysPartner(); partner.setId(sysPartner.getId()); partner.setUserName(sysPartnerDto.getUserName()); return sysPartnerMapper.updateById(partner) > 0; } @Override public BasePageResult queryAgencyLeaderById(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) { List agencyExtractFeeList = new ArrayList<>(); List sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, sysAgencyLeaderPageDto.getUserId()).eq(SysRelationPerson::getType, 1)); if (CollectionUtil.isEmpty(sysRelationPeople)) return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize(), 0L, 0L, agencyExtractFeeList); //获取所有推荐的机构负责人id List agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); Page page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(SysAgencyLeader::getUserId, agencyLeaderIds); wrapper.eq(SysAgencyLeader::getDelFlag, 1); wrapper.orderByDesc(SysAgencyLeader::getId); Page insOrdersPage = sysAgencyLeaderService.page(page, wrapper); List records = insOrdersPage.getRecords(); if (records.size() > 0) { for (SysAgencyLeader sysAgencyLeaders : records) { AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo(); String userId = sysAgencyLeaders.getUserId(); //已提现抽成费用 BigDecimal historyFee = BigDecimal.ZERO; SysUser sysUser = sysUserMapper.selectById(userId); SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId()); agencyExtractFee.setUserId(userId); agencyExtractFee.setUserName(sysUser.getName()); agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId()); agencyExtractFee.setDeptName(sysDept.getName()); SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartnerAccount::getUserId, userId)); if (sysPartnerAccount != null) { BigDecimal sumPremium = sysPartnerAccount.getSumPremium(); BigDecimal extractFee = sysPartnerAccount.getExtractFee(); agencyExtractFee.setSumpremium(sumPremium); agencyExtractFee.setExtractFee(extractFee); // 填充 已提现抽成费用和可提现抽成费用 List sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper() .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)); } }else { agencyExtractFee.setSumpremium(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(); String loginId = BaseController.getUserId(); List appPartnerInfoList = new ArrayList<>(); List deptIds = partnerGradeInfo.getDeptIds(); if (CollectionUtil.isEmpty(deptIds)) { return appPartnerInfoFreeVo; } List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysDepTeam = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysDept.getId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysDept.getManagementSource())); //机构下每个团队人数id集合 List userIdList = new ArrayList<>(); int deptManNum = 0; if (sysDepTeam.size() > 0) { for (SysDept sysDept1 : sysDepTeam) { List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept1.getId()).ne(SysUser::getStatus, 0)); deptManNum = deptManNum + sysUsers.size(); if (sysUsers.size() > 0) { List collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()); userIdList.addAll(collect); } } } appPartnerInfo.setTeamManNum(deptManNum); appPartnerInfo.setUserIds(userIdList); BigDecimal sumPremium = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; if (CollectionUtil.isEmpty(userIdList)) continue; for (String userId : userIdList) { //查团队的保费 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getIssuerId, userId) .eq(SysPremiumDetails::getUserId, loginId) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector())); if (sysPremiumDetails.size() > 0) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium); appPartnerInfo.setExtractFee(extractFee); appPartnerInfoList.add(appPartnerInfo); } List ids = new ArrayList<>(); List> collect = appPartnerInfoList.stream().map(APPPartnerInfo::getUserIds).collect(Collectors.toList()); if (collect.size() > 0) { for (List 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 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getIssuerId, id) .eq(SysPremiumDetails::getUserId, loginId) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector())); if (sysPremiumDetails.size() > 0) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium1); appPartnerInfoFreeVo.setExtractFee(extractFee1); 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() .eq(SysPartnerAccount::getUserId, userId)); if (sysPartnerAccount != null) { appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium()); appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee()); } if (type == 1) { //下面合伙人(直接)数量 List sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 0)); appPartnerNumVo.setPartnerNum(sysRelationPersonList1.size()); //直接工作室数量 List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 1)); appPartnerNumVo.setWorkroomNum(sysRelationPersonList.size()); List collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); appPartnerNumVo.setLeaderIds(collect); //登录人下面的所有团队人数 List sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); if (sysRelationPersonList2.size() > 0) { List ids = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(ids), SysAgencyLeader::getUserId, ids).eq(SysAgencyLeader::getDelFlag, 1)); int deptManNum = 0; if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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() .in(SysAgencyLeader::getUserId, userId).eq(SysAgencyLeader::getDelFlag, 1)); //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); appPartnerNumVo.setWorkroomTeamNum(sysDeptList.size()); List deptIds = new ArrayList<>(); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, userId)); SysPartnerConfig sysPartnerConfig = sysPartnerConfigMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartnerConfig::getDelFlag, 1).eq(SysPartnerConfig::getLevel, sysPartner.getType())); appUserInfoVo.setSysPartnerConfig(sysPartnerConfig); appUserInfoVo.setLevel(sysPartner.getType()); } else { SysPartnerConfig sysPartnerConfig = sysPartnerConfigMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartnerConfig::getDelFlag, 1).eq(SysPartnerConfig::getLevel, 0)); 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().eq(SysPartnerAccount::getUserId, userId)); } @Override public List partnerInfo(PartnerInfoDto partnerInfoDto) { List appSysPartnerVos = new ArrayList<>(); String userId = partnerInfoDto.getUserId(); if (StringUtils.isEmpty(userId)) { userId = BaseController.getUserId(); } SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); //查询登陆人下所有直接合伙人 List sysPartnerList = sysPartnerMapper.queryByLoginId(userId); Map> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId)) .collect(Collectors.groupingBy(SysPartner::getType)); //按等级查询 // Integer partnerType = partnerInfoDto.getPartnerType(); // if (partnerType != null) { // List sysPartnerList1 = listMap.get(partnerType + sysPartner.getType()); // // if (sysPartnerList1 != null) { // AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo(); // appSysPartnerVo.setPartnerType(partnerType + sysPartner.getType()); // //下级合伙人数 // appSysPartnerVo.setPartnerNumber(sysPartnerList1.size()); // List ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList()); // appSysPartnerVo.setPartnerIds(ids); // List userIds = new ArrayList<>(); // //二级以下团队的总人数 // List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() // .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids) // .eq(SysRelationPerson::getDelFlag, 1) // .eq(SysRelationPerson::getType, 1)); // int deptManNum = 0; // if (sysRelationPersonList.size() > 0) { // List idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); // List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() // .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1)); // if (leaderList.size() > 0) { // for (SysAgencyLeader sysAgencyLeader : leaderList) { // //获取机构下的团队 // List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() // .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() // .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0)); // deptManNum = deptManNum + sysUsers.size(); // if (sysUsers.size() >0) { // userIds.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList())); // } // } // } // } // } // } // appSysPartnerVo.setTeamManNum(deptManNum); // if (CollectionUtil.isNotEmpty(userIds)) { // List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() // .eq(SysPremiumDetails::getUserId, userId) // .in(SysPremiumDetails::getIssuerId,userIds) // .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()), // SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime()) // .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()) // .eq(SysPremiumDetails::getStatus, 1)); // 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); // }else { // appSysPartnerVo.setSumPremium(BigDecimal.ZERO); // appSysPartnerVo.setExtractFee(BigDecimal.ZERO); // } // // List sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() // .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids) // .eq(SysRelationPerson::getDelFlag, 1) // .eq(SysRelationPerson::getSource, 0) // .eq(SysRelationPerson::getType, 1)); // appSysPartnerVo.setWorkNumber(sysRelationPersons.size()); // if (sysRelationPersons.size() > 0) { // List list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); // appSysPartnerVo.setLeaderIds(list1); // } // // //每一级存入map // // appSysPartnerVos.add(appSysPartnerVo); // } // // return appSysPartnerVos; // // } 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 sysPartnerList1 = listMap.get(i); if (CollectionUtil.isNotEmpty(sysPartnerList1)) { AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo(); appSysPartnerVo.setPartnerType(i); //下级合伙人数 appSysPartnerVo.setPartnerNumber(sysPartnerList1.size()); List ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList()); appSysPartnerVo.setPartnerIds(ids); //所有创造利益总人数 List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); int deptManNum = 0; if (sysRelationPersonList.size() > 0) { List idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1)); if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0)); deptManNum = deptManNum + sysUsers.size(); } } } } } appSysPartnerVo.setTeamManNum(deptManNum); //直接工作室 List sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 1)); appSysPartnerVo.setWorkNumber(sysRelationPersons.size()); if (sysRelationPersons.size() > 0) { List list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); appSysPartnerVo.setLeaderIds(list1); } //所有工作室 List sysRelationPersons1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); //直接工作室下所有的人 List userIds = getUserIds(sysRelationPersons1); BigDecimal sumPremium = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; if (CollectionUtil.isNotEmpty(userIds)) { for (String id : userIds) { List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, BaseController.getUserId()) .eq(SysPremiumDetails::getIssuerId,id) .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()), SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime()) .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()) .eq(SysPremiumDetails::getStatus, 1)); if (CollectionUtil.isNotEmpty(sysPremiumDetails)) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium); appSysPartnerVo.setExtractFee(extractFee); //每一级存入map appSysPartnerVos.add(appSysPartnerVo); } } return appSysPartnerVos; } private List getUserIds(List sysRelationPersons) { List userIds = new ArrayList<>(); if (sysRelationPersons.size() > 0) { List idList = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1)); if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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 getUserIdByLeader(List leaderList) { List userIds = new ArrayList<>(); if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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; } @Override public PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo) { PartnerInfoFreeVo partnerInfoFreeVo = new PartnerInfoFreeVo(); List partnerInfoVoList = new ArrayList<>(); String loginId = BaseController.getUserId(); //合伙人:1;工作室:2 Integer type = partnerGradeInfo.getType(); if (type == 1) { List partnerIds = partnerGradeInfo.getPartnerIds(); if (CollectionUtil.isEmpty(partnerIds)) { return partnerInfoFreeVo; } //合伙人的直接工作室贡献的费用 List sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .in(SysRelationPerson::getSuggestId, partnerIds) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 1)); //工作室下所有的人 List sysRelationPersons1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .in(SysRelationPerson::getSuggestId, partnerIds) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); List userIds = getUserIds(sysRelationPersons1); BigDecimal sumPremium = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; if (CollectionUtil.isNotEmpty(userIds)) { for (String userId : userIds) { //费用 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, loginId) .eq(SysPremiumDetails::getIssuerId,userId) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()) .eq(SysPremiumDetails::getStatus, 1)); if (CollectionUtil.isNotEmpty(sysPremiumDetails)) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium); partnerInfoFreeVo.setExtractFee(extractFee); //合伙人 List sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper() .in(SysPartner::getUserId, partnerGradeInfo.getPartnerIds()).eq(SysPartner::getDelFlag, 1)); if (sysPartnerList.size() > 0) { for (SysPartner sysPartner : sysPartnerList) { PartnerInfoVo partnerInfoVo = new PartnerInfoVo(); 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 sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 0) .eq(SysRelationPerson::getSource, 0)); List collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); partnerInfoVo.setPartnerIds(collect); partnerInfoVo.setPartnerNumber(collect.size()); //直接管理员 List sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1) .eq(SysRelationPerson::getSource, 0)); List collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); partnerInfoVo.setLeaderIds(collects); partnerInfoVo.setWorkNumber(collects.size()); //所有贡献费用 //合伙人下所有工作室数 核算总代理人数 List sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); List userIds1 = getUserIds(sysRelationPersonList2); BigDecimal sumPremium1 = BigDecimal.ZERO; BigDecimal extractFee1 = BigDecimal.ZERO; if (CollectionUtil.isNotEmpty(userIds1)) { for (String id : userIds1) { //费用 List sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, loginId) .eq(SysPremiumDetails::getIssuerId,id) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector())); if (CollectionUtil.isNotEmpty(sysPremiumDetail)) { Map> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium1); partnerInfoVo.setExtractFee(extractFee1); int deptManNum = 0; if (sysRelationPersonList2.size() > 0) { List idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1)); if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0)); deptManNum = deptManNum + sysUsers.size(); } } } } } partnerInfoVo.setTeamManNum(deptManNum); partnerInfoVoList.add(partnerInfoVo); } partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList); } } else { //工作室 List leaderIds = partnerGradeInfo.getLeaderIds(); if (CollectionUtil.isEmpty(leaderIds)) { return partnerInfoFreeVo; } //费用 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .in(SysPremiumDetails::getUserId, leaderIds) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .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 leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .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 sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, userId) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .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 sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); partnerInfoVo.setDeptNum(sysDeptList.size()); List collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList()); partnerInfoVo.setDeptIds(collect); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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 partnerInfoFreeVo; } @Override public BasePageResult getCommissionInfo(CommissionInfoDto commissionInfoDto) { List list = new ArrayList<>(); String userId = BaseController.getUserId(); int pageNum = commissionInfoDto.getPageNum(); Page page = new Page(commissionInfoDto.getPageNum(), commissionInfoDto.getPageSize()); commissionInfoDto.setUserId(userId); //int offset = (page - 1) * size; Page> stringObjectList = sysPremiumDetailsMapper.queryInfoPages(page, commissionInfoDto); commissionInfoDto.setPageNum( (commissionInfoDto.getPageNum() -1) * commissionInfoDto.getPageSize()); List> stringObjectInfo = sysPremiumDetailsMapper.queryInfoPage(userId, commissionInfoDto); if (CollectionUtil.isEmpty(stringObjectInfo)) return new BasePageResult<>(pageNum, commissionInfoDto.getPageSize(), 0L, 0L, list); Map> listMap = new HashMap<>(); for (Map stringObjectMap : stringObjectInfo) { String companyId = (String) stringObjectMap.get("companyId"); Object json = stringObjectMap.get("sysPremiumDetails"); String s ="["+ json.toString()+"]"; ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); List sysPremiumDetails1 = null; try { sysPremiumDetails1 = objectMapper.readValue(s , new TypeReference>() {}); } catch (JsonProcessingException e) { throw new RuntimeException(e); } listMap.put(companyId,sysPremiumDetails1); } // Map> listMap = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) // .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String key : listMap.keySet()) { List proportionList = new ArrayList<>(); SysPremiumDetailsVo sysPremiumDetailsVo = new SysPremiumDetailsVo(); sysPremiumDetailsVo.setCompanyId(key); List detailsList = listMap.get(key); BigDecimal extractFee = detailsList.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add); sysPremiumDetailsVo.setExtractFee(extractFee); SysPremiumDetails sysPremiumDetails1 = detailsList.get(0); String issuerId = sysPremiumDetails1.getIssuerId(); if (issuerId != null) { SysUser sysUser1 = sysUserMapper.selectById(issuerId); SysDept sysDept = sysDeptMapper.selectById(sysUser1.getDeptId()); SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).eq(SysAgencyLeader::getDeptId, sysDept.getParentId())); SysRelationPerson sysRelationPerson = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper() .eq(SysRelationPerson::getAgencyLeaderId,sysAgencyLeader.getUserId()) .eq(SysRelationPerson::getSource,0).eq(SysRelationPerson::getType,1)); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysRelationPerson.getSuggestId())); sysPremiumDetailsVo.setProfferLevel(sysPartner.getType()); SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId()); sysPremiumDetailsVo.setProfferName(sysUser.getName()); } sysPremiumDetailsVo.setSumpremium(sysPremiumDetails1.getSumpremium()); SysUser sysUser = sysUserMapper.selectById(sysPremiumDetails1.getIssuerId()); sysPremiumDetailsVo.setIssuerName(sysUser.getName()); sysPremiumDetailsVo.setIssuerId(sysPremiumDetails1.getIssuerId()); sysPremiumDetailsVo.setCreateTime(sysPremiumDetails1.getCreateTime()); sysPremiumDetailsVo.setLicenseno(sysPremiumDetails1.getLicenseno()); sysPremiumDetailsVo.setIndustrySector(sysPremiumDetails1.getIndustrySector()); sysPremiumDetailsVo.setStatus(sysPremiumDetails1.getStatus()); for (SysPremiumDetails premiumDetails : detailsList) { SysPremiumInfoVo sysPremiumInfoVo = new SysPremiumInfoVo(); sysPremiumInfoVo.setSource(premiumDetails.getSource()); sysPremiumInfoVo.setSumpremium(premiumDetails.getSumpremium()); sysPremiumInfoVo.setProportional(premiumDetails.getProportional()); sysPremiumInfoVo.setExtractFee(premiumDetails.getExtractFee()); proportionList.add(sysPremiumInfoVo); } proportionList = proportionList.stream().sorted(Comparator.comparingInt(SysPremiumInfoVo::getSource)).collect(Collectors.toList()); sysPremiumDetailsVo.setProfferList(proportionList); list.add(sysPremiumDetailsVo); } list =list.stream().sorted(Comparator.comparing(SysPremiumDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()); // long l = (list.size()+pageNum-1)/commissionInfoDto.getPageSize(); return new BasePageResult<>(pageNum, commissionInfoDto.getPageSize(), stringObjectList.getTotal(), page.getPages(), list); } @Override public List getCommissionInfos(CommissionInfoDto commissionInfoDto) { List list = new ArrayList<>(); String userId = BaseController.getUserId(); List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, userId) .eq(commissionInfoDto.getIndustrySector() != 0, SysPremiumDetails::getIndustrySector, commissionInfoDto.getIndustrySector()) .between(StringUtils.isNotEmpty(commissionInfoDto.getBeginTime()) && StringUtils.isNotEmpty(commissionInfoDto.getEndTime()), SysPremiumDetails::getCreateTime, commissionInfoDto.getBeginTime(), commissionInfoDto.getEndTime()) .orderByDesc(SysPremiumDetails::getId).eq(SysPremiumDetails::getStatus,1)); if (CollectionUtil.isEmpty(sysPremiumDetails)) return list; Map> listMap = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String key : listMap.keySet()) { List proportionList = new ArrayList<>(); SysPremiumDetailsVo sysPremiumDetailsVo = new SysPremiumDetailsVo(); sysPremiumDetailsVo.setCompanyId(key); List detailsList = listMap.get(key); BigDecimal extractFee = detailsList.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add); sysPremiumDetailsVo.setExtractFee(extractFee); SysPremiumDetails sysPremiumDetails1 = detailsList.get(0); String issuerId = sysPremiumDetails1.getIssuerId(); if (issuerId != null) { SysUser sysUser1 = sysUserMapper.selectById(issuerId); SysDept sysDept = sysDeptMapper.selectById(sysUser1.getDeptId()); SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).eq(SysAgencyLeader::getDeptId, sysDept.getParentId())); SysRelationPerson sysRelationPerson = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper() .eq(SysRelationPerson::getAgencyLeaderId,sysAgencyLeader.getUserId()) .eq(SysRelationPerson::getSource,0).eq(SysRelationPerson::getType,1)); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysRelationPerson.getSuggestId())); sysPremiumDetailsVo.setProfferLevel(sysPartner.getType()); SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId()); sysPremiumDetailsVo.setProfferName(sysUser.getName()); } sysPremiumDetailsVo.setSumpremium(sysPremiumDetails1.getSumpremium()); SysUser sysUser = sysUserMapper.selectById(sysPremiumDetails1.getIssuerId()); sysPremiumDetailsVo.setIssuerName(sysUser.getName()); sysPremiumDetailsVo.setIssuerId(sysPremiumDetails1.getIssuerId()); sysPremiumDetailsVo.setCreateTime(sysPremiumDetails1.getCreateTime()); sysPremiumDetailsVo.setLicenseno(sysPremiumDetails1.getLicenseno()); sysPremiumDetailsVo.setIndustrySector(sysPremiumDetails1.getIndustrySector()); sysPremiumDetailsVo.setStatus(sysPremiumDetails1.getStatus()); for (SysPremiumDetails premiumDetails : detailsList) { SysPremiumInfoVo sysPremiumInfoVo = new SysPremiumInfoVo(); sysPremiumInfoVo.setSource(premiumDetails.getSource()); sysPremiumInfoVo.setSumpremium(premiumDetails.getSumpremium()); sysPremiumInfoVo.setProportional(premiumDetails.getProportional()); sysPremiumInfoVo.setExtractFee(premiumDetails.getExtractFee()); proportionList.add(sysPremiumInfoVo); } proportionList = proportionList.stream().sorted(Comparator.comparingInt(SysPremiumInfoVo::getSource)).collect(Collectors.toList()); sysPremiumDetailsVo.setProfferList(proportionList); list.add(sysPremiumDetailsVo); } // if (commissionInfoDto.getType() != 0) { // return list.stream().filter(SysPremiumDetailsVo-> SysPremiumDetailsVo.getProfferLevel() == commissionInfoDto.getType()).collect(Collectors.toList()); // } return list; } @Override public TeamUserInfosFreeVo getTeamUserInfo(TeamUserInfosDto teamUserInfosDto) { TeamUserInfosFreeVo teamUserInfosFreeVo = new TeamUserInfosFreeVo(); String loginId = BaseController.getUserId(); List userInfosVoList = new ArrayList<>(); List userIds = teamUserInfosDto.getUserIds(); if (CollectionUtil.isEmpty(userIds)) { return teamUserInfosFreeVo; } BigDecimal sumPremium = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; for (String userId : userIds) { //费用 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, loginId) .eq(SysPremiumDetails::getIssuerId, userId) .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()), SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector())); if (sysPremiumDetails.size()>0) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List sysPremiumDetails1 = map.get(s); sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium()); } // SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0); // sumPremium = sumPremium.add(sysPremiumDetails1.getSumpremium()); BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add); extractFee = extractFee.add(reduce); } } teamUserInfosFreeVo.setSumPremium(sumPremium); teamUserInfosFreeVo.setExtractFee(extractFee); List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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()); EsmUserReferrer esmUserReferrer = esmUserReferrerMapper.selectById(sysUser.getId()); if (esmUserReferrer != null) { teamUserInfosVo.setLeaderId(esmUserReferrer.getReferrerId()); SysUser sysUser1 = sysUserMapper.selectById(esmUserReferrer.getReferrerId()); teamUserInfosVo.setLeaderName(sysUser1.getName()); } BigDecimal sumPremium1 =BigDecimal.ZERO; BigDecimal extractFee1 =BigDecimal.ZERO; //费用 List sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getIssuerId, sysUser.getId()) .eq(SysPremiumDetails::getUserId, loginId) .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()), SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector())); if (sysPremiumDetail.size()>0) { Map> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium1); teamUserInfosVo.setExtractFee(extractFee1); userInfosVoList.add(teamUserInfosVo); } teamUserInfosFreeVo.setTeamManNum(userIds.size()); teamUserInfosFreeVo.setTeamUserInfosVoList(userInfosVoList); return teamUserInfosFreeVo; } @Override public FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto) { FilterPartnerInfoVo filterPartnerInfoVo = new FilterPartnerInfoVo(); String userId = BaseController.getUserId(); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); //查询登陆人下所有合伙人 List sysPartnerList = sysPartnerMapper.queryByLoginId(userId); Map> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId)) .collect(Collectors.groupingBy(SysPartner::getType)); Integer partnerType = filterPartnerInfoDto.getPartnerType(); List sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType); List collect1 = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList()); if (collect1.size() == 0) { return filterPartnerInfoVo; } //费用 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .in(CollectionUtil.isNotEmpty(collect1), SysPremiumDetails::getUserId, collect1) .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()), SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .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 partnerInfoVoList = new ArrayList<>(); for (SysPartner partner : sysPartnerList1) { PartnerInfoVo partnerInfoVo = new PartnerInfoVo(); String id = partner.getUserId(); partnerInfoVo.setUserId(id); SysUser sysUser = sysUserMapper.selectById(id); partnerInfoVo.setUserName(sysUser.getName()); SysUser sysUser1 = sysUserMapper.selectById(partner.getSuggestId()); partnerInfoVo.setSuggestName(sysUser1.getName()); //费用 List sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, id) .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()), SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .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 sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, id) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 0) .eq(SysRelationPerson::getSource, 0)); List collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); partnerInfoVo.setPartnerIds(collect); //直接管理员 List sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, id) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1) .eq(SysRelationPerson::getSource, 0)); List collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); partnerInfoVo.setLeaderIds(collects); partnerInfoVo.setPartnerNumber(collects.size() + collect.size()); //工作室数 List sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, id) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getType, 1)); int deptManNum = 0; if (sysRelationPersonList2.size() > 0) { List idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1)); if (leaderList.size() > 0) { for (SysAgencyLeader sysAgencyLeader : leaderList) { //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .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 sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .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 partnerInfoVoList = new ArrayList<>(); //工作室 List leaderIds = partnerGradeInfo.getLeaderIds(); if (CollectionUtil.isEmpty(leaderIds)) { return partnerLeaderInfoVo; } List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1)); List userIdByLeader = getUserIdByLeader(leaderList); for (SysAgencyLeader sysAgencyLeader : leaderList) { BigDecimal sumPremium1 = BigDecimal.ZERO; BigDecimal extractFee1 = BigDecimal.ZERO; 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()); partnerInfoVo.setDeptId(sysAgencyLeader.getDeptId()); SysDept sysDept1 = sysDeptMapper.selectById(sysAgencyLeader.getDeptId()); partnerInfoVo.setDeptName(sysDept1.getName()); //团队总人数 int deptManNum = 0; //获取机构下的团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); partnerInfoVo.setDeptNum(sysDeptList.size()); List collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList()); partnerInfoVo.setDeptIds(collect); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0)); deptManNum = deptManNum + sysUsers.size(); if (CollectionUtil.isNotEmpty(sysUsers)) { for (SysUser user : sysUsers) { //费用 List sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, BaseController.getUserId()) .eq(SysPremiumDetails::getIssuerId, user.getId()) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector())); if (sysPremiumDetail.size() >0) { Map> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List 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.setSumPremium(sumPremium1); partnerInfoVo.setExtractFee(extractFee1); partnerInfoVo.setTeamManNum(deptManNum); partnerInfoVo.setLevel(partnerGradeInfo.getLevel()); partnerInfoVoList.add(partnerInfoVo); } //top总费用 BigDecimal sumPremium = BigDecimal.ZERO; BigDecimal extractFee = BigDecimal.ZERO; if (userIdByLeader.size()>0) { for (String id : userIdByLeader) { //总费用 List sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper() .eq(SysPremiumDetails::getUserId, BaseController.getUserId()) .eq(SysPremiumDetails::getIssuerId, id) .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()), SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime()) .eq(SysPremiumDetails::getStatus, 1) .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector())); if (sysPremiumDetails.size() >0) { Map> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId)) .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId)); for (String s : map.keySet()) { List sysPremiumDetails1 = map.get(s); sumPremium= sumPremium.add(sysPremiumDetails1.get(0).getSumpremium()); } // SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0); // sumPremium= sumPremium.add(sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add)); extractFee = extractFee.add(sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add)); } } } partnerLeaderInfoVo.setSumPremium(sumPremium); partnerLeaderInfoVo.setExtractFee(extractFee); int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum(); partnerLeaderInfoVo.setUserIds(userIdByLeader); partnerLeaderInfoVo.setTeamManNum(sum); partnerLeaderInfoVo.setPartnerInfoVoList(partnerInfoVoList); return partnerLeaderInfoVo; } @Override public List getRelationInfo(String userId) { List sysPartners = new ArrayList<>(); //登陆人的上三级合伙人信息 SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); SysPartnerVo sysPartnerVo = BeanUtil.copyProperties(sysPartner, SysPartnerVo.class); sysPartners.add(sysPartnerVo); List ids = new ArrayList<>(); List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getAgencyLeaderId, userId).eq(SysRelationPerson::getType, 0).orderByDesc(SysRelationPerson::getId)); if (sysRelationPersonList.size() > 0) { List collect = sysRelationPersonList.stream().map(SysRelationPerson::getSuggestId).collect(Collectors.toList()); if (collect.size()>0) { ids.addAll(collect); } } List sysRelationList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 0)); if (sysRelationList.size() > 0) { List collect1 = sysRelationList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); if (collect1.size() >0) { ids.addAll(collect1); } } if (CollectionUtil.isNotEmpty(ids)) { List sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper() .in(SysPartner::getUserId, ids).eq(SysPartner::getDelFlag, 1)); List sysPartnerVos = BeanUtil.copyToList(sysPartnerList, SysPartnerVo.class); sysPartners.addAll(sysPartnerVos); } List sysPartnerVoList = sysPartners.stream().sorted(Comparator.comparing(SysPartner::getId)).collect(Collectors.toList()); if (sysPartnerVoList.size() > 0) { for (SysPartnerVo partner : sysPartnerVoList) { SysUser sysUser1 = sysUserMapper.selectById(partner.getUserId()); partner.setMobile(sysUser1.getMobile()); partner.setUserName(sysUser1.getName()); SysDept sysDept = sysDeptMapper.selectById(sysUser1.getDeptId()); partner.setDeptName(sysDept.getName()); SysDept sysDept1 = sysDeptMapper.selectById(sysDept.getParentId()); partner.setAgencyName(sysDept1.getName()); String suggestId = partner.getSuggestId(); if (StringUtils.isNotEmpty(suggestId)) { SysUser sysUser = sysUserMapper.selectById(partner.getSuggestId()); partner.setSuggestName(sysUser.getName()); } } } return sysPartnerVoList; } @Override public CountUserVo getCountUser(CountUserDto countUserDto) { CountUserVo countUserVo = new CountUserVo(); String userId = BaseController.getUserId(); //原始参数 String startTime1 = countUserDto.getBeginTime(); String endTime1 = countUserDto.getEndTime(); int deptSum = 0; int deptManSum = 0; List deptIds = new ArrayList<>(); //查工作室下的团队 SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, userId)); List userList = new ArrayList<>(); //根据机构id查下面团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); deptSum = deptSum + sysDeptList.size(); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { deptIds.add(sysDept.getId()); //团队下的人数 List sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()) .ne(SysUser::getStatus, 0)); userList.addAll(sysUserList); deptManSum = deptManSum + sysUserList.size(); } countUserVo.setDeptSum(deptSum); countUserVo.setDeptManSum(deptManSum); List collect; if (CollectionUtil.isNotEmpty(userList)) { try { if (StringUtils.isNotEmpty(startTime1)) { SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = simpleDateFormat1.parse(startTime1); Date parse1 = simpleDateFormat1.parse(endTime1); collect = userList.stream().filter(SysUser -> SysUser.getCreateTime().after(parse) && SysUser.getCreateTime().before(parse1)).collect(Collectors.toList()); } else { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String format = simpleDateFormat.format(date); String start = format + " 00:00:01"; String end = format + " 23:59:59"; SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = simpleDateFormat1.parse(start); Date parse1 = simpleDateFormat1.parse(end); collect = userList.stream().filter(SysUser -> SysUser.getCreateTime().after(parse) && SysUser.getCreateTime().before(parse1)).collect(Collectors.toList()); } countUserVo.setCountSum(collect.size()); } catch (Exception e) { throw new SystemException("系统繁忙,请联系管理员"); } } else { countUserVo.setCountSum(0); } //曲线图 List countUserNumVoList = null; int type = countUserDto.getType(); //类型:1:团队 2:代理人 if (type == 1) { if (StringUtils.isNotEmpty(startTime1)) { String s = startTime1.split(" ")[0]; String s1 = endTime1.split(" ")[0]; if (s.equals(s1)) { //查一天的数据 countUserNumVoList = sysPartnerMapper.queryDeptByTimes(deptIds, countUserDto); } else { countUserNumVoList = sysPartnerMapper.queryDeptByTime(deptIds, countUserDto); } } else { countUserNumVoList = sysPartnerMapper.queryDeptByTime(deptIds, countUserDto); } } else { if (StringUtils.isNotEmpty(startTime1)) { String s = startTime1.split(" ")[0]; String s1 = endTime1.split(" ")[0]; if (s.equals(s1)) { countUserNumVoList = sysPartnerMapper.queryUserByTimes(deptIds, countUserDto); } else { countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds, countUserDto); } } else { countUserNumVoList = sysPartnerMapper.queryUserByTime(deptIds, countUserDto); } } countUserVo.setCountUserNumVoList(countUserNumVoList); } return countUserVo; } @Override public PartnerCountVo getPartnerCount(PartnerCountDto partnerCountDto) { PartnerCountVo partnerCountVo = new PartnerCountVo(); String userId = BaseController.getUserId(); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); int type = sysPartner.getType(); partnerCountDto.setType(type + partnerCountDto.getType()); //查询登陆人下所有合伙人 List sysPartnerList = sysPartnerMapper.queryPartnerById(userId, partnerCountDto); if (CollectionUtil.isNotEmpty(sysPartnerList)){ //统计每一个等级的合伙人数 if (type == 1) { //1 List onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList()); partnerCountVo.setOnePartnerNum(onePartners.size()); //2 List twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList()); partnerCountVo.setTwoPartnerNum(twoPartners.size()); //3 List threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList()); partnerCountVo.setThreePartnerNum(threePartners.size()); //4 List fourPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 4).collect(Collectors.toList()); partnerCountVo.setFourPartnerNum(fourPartners.size()); } else if (type == 2) { //1 List onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList()); partnerCountVo.setOnePartnerNum(onePartners.size()); //2 List twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList()); partnerCountVo.setTwoPartnerNum(twoPartners.size()); //3 List threePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 3).collect(Collectors.toList()); partnerCountVo.setThreePartnerNum(threePartners.size()); } else if (type == 3) { //1 List onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList()); partnerCountVo.setOnePartnerNum(onePartners.size()); //2 List twoPartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 2).collect(Collectors.toList()); partnerCountVo.setTwoPartnerNum(twoPartners.size()); } else if (type == 4) { //1 List onePartners = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == type + 1).collect(Collectors.toList()); partnerCountVo.setOnePartnerNum(onePartners.size()); } } //工作室 List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 1)); partnerCountVo.setWorkSum(sysRelationPersonList.size()); if (CollectionUtil.isNotEmpty(sysRelationPersonList)) { List collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); //查工作室下的团队 List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, collect)); int deptSum = 0; int deptManSum = 0; for (SysAgencyLeader sysAgencyLeader : leaderList) { //根据机构id查下面团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); deptSum = deptSum + sysDeptList.size(); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { //团队下的人数 List sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()) .in(SysUser::getStatus, Arrays.asList(1, 4, 5, 6, 7))); deptManSum = deptManSum + sysUserList.size(); } } } partnerCountVo.setDeptSum(deptSum); partnerCountVo.setDeptManSum(deptManSum); } //曲线图 List countUserNumVoList; String beginTime = partnerCountDto.getBeginTime(); String s = ""; String s1 = ""; if (StringUtils.isNotEmpty(beginTime)) { s = partnerCountDto.getBeginTime().split(" ")[0]; s1 = partnerCountDto.getEndTime().split(" ")[0]; } if (StringUtils.isNotEmpty(s)) { if (s.equals(s1)) { //查一天的数据 countUserNumVoList = sysPartnerMapper.queryPartnerByTimes(userId, partnerCountDto); } else { countUserNumVoList = sysPartnerMapper.queryPartnerByTime(userId, partnerCountDto); } } else { countUserNumVoList = sysPartnerMapper.queryPartnerByTime(userId, partnerCountDto); } partnerCountVo.setCountUserNumVoList(countUserNumVoList); return partnerCountVo; } @Override public PartnerCountVo getFivePartnerCount(PartnerCountDto partnerCountDto) { PartnerCountVo partnerCountVo = new PartnerCountVo(); String userId = BaseController.getUserId(); //原始参数 String startTime1 = partnerCountDto.getBeginTime(); String endTime1 = partnerCountDto.getEndTime(); List deptIds = new ArrayList<>(); //工作室 List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, userId) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 1)); partnerCountVo.setWorkSum(sysRelationPersonList.size()); if (CollectionUtil.isNotEmpty(sysRelationPersonList)) { List workIds = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); //查工作室下的团队 List leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper() .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, workIds)); int deptSum = 0; int deptManSum = 0; for (SysAgencyLeader sysAgencyLeader : leaderList) { //根据机构id查下面团队 List sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper() .likeRight(SysDept::getId, sysAgencyLeader.getDeptId()) .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0) .eq(SysDept::getManagementSource, sysAgencyLeader.getSource())); deptSum = deptSum + sysDeptList.size(); if (sysDeptList.size() > 0) { for (SysDept sysDept : sysDeptList) { deptIds.add(sysDept.getId()); //团队下的人数 List sysUserList = sysUserMapper.selectList(new LambdaQueryWrapper() .likeRight(SysUser::getId, sysDept.getId()) .ne(SysUser::getStatus, 0)); deptManSum = deptManSum + sysUserList.size(); } } } partnerCountVo.setDeptSum(deptSum); partnerCountVo.setDeptManSum(deptManSum); //曲线图 List countUserNumVoList = null; int type = partnerCountDto.getNumber(); //类型:1:工作室,2:团队 3:代理人 if (type == 1) { if (StringUtils.isNotEmpty(startTime1)) { String s = startTime1.split(" ")[0]; String s1 = endTime1.split(" ")[0]; if (s.equals(s1)) { //查一天的数据 countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFive(workIds,partnerCountDto); } else { //查日期范围数据 countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFiveTime(workIds,partnerCountDto); } } else { countUserNumVoList = sysAgencyLeaderMapper.queryWorkByFiveTime(workIds,partnerCountDto); } }else if (type == 2) { if (StringUtils.isNotEmpty(startTime1)) { String s = startTime1.split(" ")[0]; String s1 = endTime1.split(" ")[0]; if (s.equals(s1)) { //查一天的数据 countUserNumVoList = sysPartnerMapper.queryDeptByFiveTime(deptIds, partnerCountDto); } else { countUserNumVoList = sysPartnerMapper.queryDeptByFive(deptIds, partnerCountDto); } } else { countUserNumVoList = sysPartnerMapper.queryDeptByFive(deptIds, partnerCountDto); } } else if (type == 3){ if (StringUtils.isNotEmpty(startTime1)) { String s = startTime1.split(" ")[0]; String s1 = endTime1.split(" ")[0]; if (s.equals(s1)) { countUserNumVoList = sysPartnerMapper.queryUserByFive(deptIds, partnerCountDto); } else { countUserNumVoList = sysPartnerMapper.queryUserByFiveTime(deptIds, partnerCountDto); } } else { countUserNumVoList = sysPartnerMapper.queryUserByFiveTime(deptIds, partnerCountDto); } } partnerCountVo.setCountUserNumVoList(countUserNumVoList); } return partnerCountVo; } @Override public PartnerProportionVo getPartnerProportion(PartnerCountDto partnerCountDto) { PartnerProportionVo partnerProportionVo = new PartnerProportionVo(); String userId = BaseController.getUserId(); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); int level = sysPartner.getType() + partnerCountDto.getType(); List sysPartnerList = sysPartnerMapper.queryByLoginId(userId); List collectNum; List collectSum; try { if (StringUtils.isNotEmpty(partnerCountDto.getBeginTime())) { SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = simpleDateFormat1.parse(partnerCountDto.getBeginTime()); Date parse1 = simpleDateFormat1.parse(partnerCountDto.getEndTime()); collectNum = sysPartnerList.stream().filter(SysPartner -> SysPartner.getCreateTime().after(parse) && SysPartner.getCreateTime().before(parse1) && SysPartner.getType() == level) .collect(Collectors.toList()); collectSum = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == level) .collect(Collectors.toList()); } else { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String format = simpleDateFormat.format(date); String start = format + " 00:00:01"; String end = format + " 23:59:59"; SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = simpleDateFormat1.parse(start); Date parse1 = simpleDateFormat1.parse(end); collectNum = sysPartnerList.stream().filter(SysPartner -> SysPartner.getCreateTime().after(parse) && SysPartner.getCreateTime().before(parse1) && SysPartner.getType() == level) .collect(Collectors.toList()); collectSum = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == level) .collect(Collectors.toList()); } } catch (Exception e) { throw new SystemException("系统繁忙,请联系管理员"); } partnerProportionVo.setNewNum(Optional.ofNullable(collectNum.size()).orElse(0)); partnerProportionVo.setNumber(Optional.ofNullable(collectSum.size()).orElse(0)); if (CollectionUtil.isNotEmpty(collectSum)) { int i = collectSum.size() - collectNum.size(); partnerProportionVo.setOldNum(i); } if (CollectionUtil.isNotEmpty(collectNum)) { double v = (float) collectNum.size() / (float) collectSum.size() * 100; String format = String.format("%.2f", v); Double aDouble = Double.valueOf(format); partnerProportionVo.setNewProportion(aDouble); } int oldNum = partnerProportionVo.getOldNum(); if (oldNum != 0) { double v = (float) oldNum / (float) collectSum.size() * 100; String format = String.format("%.2f", v); Double aDouble = Double.valueOf(format); partnerProportionVo.setOldProportion(aDouble); } return partnerProportionVo; } @Override public List getLevelPartner(Integer type) { List partnerVoList = new ArrayList<>(); String userId = BaseController.getUserId(); SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper() .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1)); int level = sysPartner.getType() + type; List sysPartnerList = sysPartnerMapper.queryByLoginId(userId); List collect = sysPartnerList.stream().filter(SysPartner -> SysPartner.getType() == level) .collect(Collectors.toList()); if (CollectionUtil.isEmpty(collect)) return partnerVoList; for (SysPartner partner : collect) { LevelPartnerVo levelPartnerVo = new LevelPartnerVo(); levelPartnerVo.setId(partner.getId()); SysUser sysUser = sysUserMapper.selectById(partner.getUserId()); levelPartnerVo.setUserName(sysUser.getName()); //查合伙人下的工作室下团队的所有人 List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, partner.getUserId()) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource,0) .eq(SysRelationPerson::getType, 0)); levelPartnerVo.setDeptManNum(sysRelationPersonList.size()); if (CollectionUtil.isNotEmpty(sysRelationPersonList)) { List strings = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList()); levelPartnerVo.setPartnerIds(strings); } partnerVoList.add(levelPartnerVo); } return partnerVoList.stream().sorted(Comparator.comparingInt(LevelPartnerVo::getDeptManNum).reversed()).collect(Collectors.toList()); } @Override public HttpResult loginAlipay(AlipayBindVo alipayBindVo) throws AlipayApiException { AAPLoginVo aapLoginVo = new AAPLoginVo(); AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); // 设置授权码 request.setCode(alipayBindVo.getCode()); // 设置授权方式 request.setGrantType("authorization_code"); AlipaySystemOauthTokenResponse response = alipayClient.execute(request); String aliPayId = response.getUserId(); SysUser sysUser = sysUserService.lambdaQuery() .eq(SysUser::getAlipay, aliPayId) .one(); // 没有绑定支付宝 if (sysUser == null) { throw new SystemException("您还未绑定工号"); } //校验登录用户是否为合伙人或者是机构负责人 boolean a = this.checkPartner(sysUser.getId()); boolean b = sysAgencyLeaderService.checkUserId(sysUser.getId()); if (a) { SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper().eq(SysPartner::getUserId, sysUser.getId())); //类型:1.合伙人;2机构负责人 aapLoginVo.setType(1); aapLoginVo.setLevel(sysPartner.getType()); } else if (b) { aapLoginVo.setType(2); } else { throw new SystemException("该用户无权限登录AAP,只能合伙人或者工作室管理员才能登录!"); } SysUser.verifyUser(sysUser);//验证用户状态 String token = StpUtil.createLoginSession(sysUser.getId()); // AlipayVo alipayVo = new AlipayVo(token, sysUser.getId()); StpUtil.getSessionByLoginId(sysUser.getId()).set(SaSession.USER, sysUser); aapLoginVo.setUserId(sysUser.getId()); aapLoginVo.setToken(token); log.info("支付宝登录返参:{}",aapLoginVo); return HttpResult.ok("", aapLoginVo); } @Override public String checkBindAlipay() { SysUser sysUser = sysUserMapper.selectById(BaseController.getUserId()); return sysUser.getAlipay(); } @Override public HttpResult bindAlipay(AlipayBindVo alipayBindVo, String userId) throws AlipayApiException { log.info("userId:{}",userId); AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); // 设置授权码 request.setCode(alipayBindVo.getCode()); // 设置授权方式 request.setGrantType("authorization_code"); log.info("-----------------获取支付宝ID-------------"); AlipaySystemOauthTokenResponse response = alipayClient.execute(request); log.info("授权返回值:{}", JSONObject.toJSON(response)); String aliPayId = response.getUserId(); log.info("支付宝的aliPayId={}",aliPayId); SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getAlipay, aliPayId).one(); if (sysUser != null) { throw new SystemException("同一支付宝不能重复绑定"); } SysUser user = sysUserService.lambdaQuery().eq(SysUser::getId, userId).one(); if (ObjectUtils.isEmpty(user)) { throw new SystemException("你输入的工号不存在"); } user.setAlipay(aliPayId); boolean update = sysUserService.updateById(user); if (update) { log.info("支付宝绑定成功"); return HttpResult.ok("绑定成功"); } throw new SystemException("绑定失败"); } //获取支付宝账户信息 private static AlipayConfig getAlipayConfig() { String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHXiWh2HopAtG69Wju2OIjB0F82AsLoP4TjUEsMWybWw97UhtpofF6qIOZ2hyu1RsM032VWYgvQrxHxXBL4mu+KH3jKK9cBB/FyH/J3RMSJeDHVRbHCbH5GB38L0f0Bg0DSzdlr7/oaFd2jm95NY8T2y+4WDI+6+vKPtcrEgbV79t8B6R20G7DuefNXoELE7H8fuz7hb3e+dApQ0Zp+VxpGIZPItVeddib+d+fQ9ha5ypAuP0mflXoOXW5ZY8jXDTKwVESpJ94y08yKuW4JsN32Se87d0Md2baJiVODwbzxxGNTRQavaQRR1Ve+CKKpqENz7N/w/mLJG7IxJjCzWN3AgMBAAECggEAEFDFomMwHh9L3gfUNO2JHAW02/JCKo2l8f9VepkeaP8pt4hm621saIdFDVcfm+btkrcu7MBUzLVzcgcXCN5qdAn3Wli+Ag4xMip/VHpD4S0VkZDs5OKDQ+2nN40PVBcinGIFdEkhjUZ+PDjgsLBG5XLGpqZir/jJe5/lWTicAE7ytr4zDVdrLWC45LMsEs49B2Ngwr+pLaYdzKK5oCEaVQCOAWyg77HEpnd+4sJeQUzpnfteN60IFp810Ec7a31b6E0rfq19Owqe6H/jp/fjiTouJSwfxjn3WMaAwZdA3D9SS9ukc9r878j92fdkeDQUpO41AGY3P3sWdexUjHz5cQKBgQC+9eauh65cPb1jzSQ149x+qyxBy6axpUUFbA08taYJIJdA6wSjXX8eCz3muMSjY616pA4c1gB3q3fEKBWD8NpaWJJvwae22mlhb27WlAiH7ND01hfcMHWefREcCFBHJnFRWScAvPRJtffU+csq1mYB62N2PgGPKgSAV5Zb+hD/DwKBgQC1eQnLdehVttSL3NWz7sf6Qdm+yloj38LgGtL8rj3Kankzb+Ty9RySTjnWidSzqfTaAa/1P9NGHrQh6hRz/DJXO3lUohOANijTT5dmOqg/M5nuR7K+cRCsHHaSEYicfgYalkkh3plDtcRQ4n52Z5ZAZvDLg3Id9+noQGlebkPVGQKBgQCMh1/kzprE7PaEDIJ6Wh545TUjkmAw2UQK8nJnW/I9Q0usDYgTRQn4LSO3t/+VkhQnbbWpCN+9MWVo6Gq09zlpRUc2kRgAW4kzmBLEPJpulRtNIoTamJrmMHm33HJfee3ohKhMRcGswQoKJG2cL71P6k7+xDDXj39Sh6JyO3vohwKBgGHbXxjEAAEYkgzJjMN2Y4fjspNbcrgdlWxbiqKPIurf93NxRzhsTHfoju/Na1FmuI5GkqfhPwB01hXjsBvLRyoa/BZTP8jHa8RnCvEpeEh8fukq6IwhVCg7QQULR2t72bbEi7Mj4enNPouPVzpqKW+ZEwfrXcIjSZLgCPHO6+0hAoGARv/95Q6wdP9NUoAQJqkETze/hEF8Ny51oephrOPsVfB7rAU1NQjp+k+/Q9UG1xz22lSkWd9kWcMTGjiAZzOy+AJF7tlnJV+5V79/OM1BBsB69oU3AF0Xqzwl/7gKzLsNQ7ZJflNPILIQlVw9IqfFlbHIBqY6fw7nhlmNp9tzabA="; String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP+St5P9dLhPmm/ggf3jPDc2552wu/+91QSAzlEqRSrdWAIwrHcntM0VY/4/+39Z8h44/0TBNTb0j1gdWrCyb+1ENxwwgCqs7f8C/5gClTQCcoNys4MtGAAM7BbNp/LzmswOuPTOMtjlUBArWFvJDgDoSQJ8vGwGHgRcLsSLPwlhwVdnqVbq60CI185U/yZgNITTCGpDXv5bnQQ26GrUbH+5Qm4fYmT2B/2ijAVJUYq+EaBMOyv+AD8C1+CtXcgH86+g13MdD1T8cw5nkV9/4fcPIWD8R1aj20C1+kCMujaydB4yDpHiqQcQEtJoVbZJk5MYp8JcctqDT01brVct5wIDAQAB"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); alipayConfig.setAppId("2021004193614682"); alipayConfig.setPrivateKey(privateKey); alipayConfig.setFormat("json"); alipayConfig.setAlipayPublicKey(alipayPublicKey); alipayConfig.setCharset("UTF-8"); alipayConfig.setSignType("RSA2"); return alipayConfig; } @Override public HttpResult loginWechat(WechatLoginVo wechatLoginVo) throws WxErrorException { AAPLoginVo aapLoginVo = new AAPLoginVo(); WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.HHR.getCode()).getOAuth2Service().getAccessToken(wechatLoginVo.getCode()); String openId = accessToken.getOpenId(); log.info("微信登录openId:{}",openId); SysUser sysUser = sysUserService.lambdaQuery() .eq(SysUser::getOpenid, openId) .one(); // 没有绑定微信 if (sysUser == null) { throw new SystemException("您还未绑定工号。"); } //校验登录用户是否为合伙人或者是机构负责人 boolean a = this.checkPartner(sysUser.getId()); boolean b = sysAgencyLeaderService.checkUserId(sysUser.getId()); if (a) { SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper().eq(SysPartner::getUserId, sysUser.getId())); //类型:1.合伙人;2机构负责人 aapLoginVo.setType(1); aapLoginVo.setLevel(sysPartner.getType()); } else if (b) { aapLoginVo.setType(2); } else { throw new SystemException("该用户无权限登录AAP,只能合伙人或者工作室管理员才能登录!"); } SysUser.verifyUser(sysUser); String token = StpUtil.createLoginSession(sysUser.getId()); StpUtil.getSessionByLoginId(sysUser.getId()).set(SaSession.USER, sysUser); aapLoginVo.setUserId(sysUser.getId()); aapLoginVo.setToken(token); log.info("微信登录返参:{}",aapLoginVo); return HttpResult.ok("", aapLoginVo); } @Override public HttpResult bindWechat(WechatBindVo wechatBindVo, String userId) throws WxErrorException { WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.HHR.getCode()).getOAuth2Service().getAccessToken(wechatBindVo.getCode()); String openId = accessToken.getOpenId(); log.info("微信绑定时的openID;{}",openId); SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getOpenid, openId).one(); if (sysUser != null) { throw new SystemException("同一微信不能重复绑定"); } SysUser user = sysUserService.lambdaQuery().eq(SysUser::getId, userId).one(); if (ObjectUtils.isEmpty(user)) { throw new SystemException("你输入的工号不存在"); } user.setOpenid(openId); boolean update = sysUserService.updateById(user); if (update) { log.info("微信绑定成功"); return HttpResult.ok("绑定成功"); } throw new SystemException("绑定失败"); } @Override public String checkBindWechat() { SysUser sysUser = sysUserMapper.selectById(BaseController.getUserId()); return sysUser.getOpenid(); } @Override public List getLevelPartnerInfo(List partnerIds) { List partnerInfoVoList = new ArrayList<>(); if (CollectionUtil.isEmpty(partnerIds)) return partnerInfoVoList; List sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper() .eq(SysPartner::getDelFlag,1).in(SysPartner::getUserId,partnerIds)); if (sysPartnerList.size() >0 ) { for (SysPartner sysPartner : sysPartnerList) { LevelPartnerInfoVo levelPartnerInfoVo = new LevelPartnerInfoVo(); levelPartnerInfoVo.setUserId(sysPartner.getUserId()); levelPartnerInfoVo.setLevel(sysPartner.getType()); List sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper() .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()) .eq(SysRelationPerson::getDelFlag, 1) .eq(SysRelationPerson::getSource, 0) .eq(SysRelationPerson::getType, 0)); levelPartnerInfoVo.setDeptManNum(sysRelationPersonList.size()); SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId()); if (sysUser == null) continue; levelPartnerInfoVo.setUserName(sysUser.getName()); partnerInfoVoList.add(levelPartnerInfoVo); } } return partnerInfoVoList; } }