Răsfoiți Sursa

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

hxl13994548489 1 an în urmă
părinte
comite
2aa9f0b2ab

+ 66 - 0
src/main/java/com/ydtech/modules/admin/controller/deptBalance/DeptBalanceController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
+import com.ydtech.modules.admin.model.dto.SysPartnerInfoConsoleDto;
+import com.ydtech.modules.admin.model.vo.AppSysPartnerVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
 import com.ydtech.modules.admin.model.vo.PartnerBalanceVo;
@@ -82,6 +84,70 @@ public class DeptBalanceController {
     }
 
 
+    /**
+     * @version
+     * @author: whp
+     * @Description: 合伙人详情
+     */
+    @PostMapping("queryPartnerInfo")
+    @ApiOperation(value = "合伙人详情")
+    public HttpResult<List<SysPartnerConsoleDto>> queryPartnerInfo(@RequestBody DeptBalanceVo deptBalanceVo) {
+        List<SysPartnerConsoleDto> result = deptBalanceService.queryPartnerInfo(deptBalanceVo);
+        return HttpResult.ok(result);
+    }
+
+    /**
+     * @version
+     * @author: whp
+     * @Description: 工作室详情
+     */
+    @PostMapping("queryStudioInfo")
+    @ApiOperation(value = "工作室详情")
+    public HttpResult<List<SysPartnerConsoleDto>> queryStudioInfo(@RequestBody DeptBalanceVo deptBalanceVo) {
+        List<SysPartnerConsoleDto> result = deptBalanceService.queryPartnerInfo(deptBalanceVo);
+        return HttpResult.ok(result);
+    }
+
+
+
+    /**
+     * @version
+     * @author: whp
+     * @Description: 合伙人详情
+     */
+    @PostMapping("info")
+    @ApiOperation(value = "合伙人详情")
+    public HttpResult<SysPartnerInfoConsoleDto> queryInfo(@RequestBody DeptBalanceVo deptBalanceVo) {
+        SysPartnerInfoConsoleDto result = deptBalanceService.queryInfo(deptBalanceVo);
+        return HttpResult.ok(result);
+    }
+
+
+    /**
+     * @version
+     * @author: whp
+     * @Description: 查看机构下团队信息
+     */
+    @PostMapping("/getTeamInfo")
+    @ApiOperation(value = "查看机构下团队信息")
+    public HttpResult<SysPartnerInfoConsoleDto> getTeamInfo(@RequestBody DeptBalanceVo deptBalanceVo) {
+        SysPartnerInfoConsoleDto result = deptBalanceService.getTeamInfo(deptBalanceVo);
+        return HttpResult.ok(result);
+    }
+
+
+    /**
+     * @version
+     * @author: whp
+     * @Description: 查看团队下人员信息
+     */
+    @PostMapping("/getTeamUserInfo")
+    @ApiOperation(value = "查看团队下人员信息")
+    public HttpResult<SysPartnerInfoConsoleDto> getTeamUserInfo(@RequestBody DeptBalanceVo deptBalanceVo) {
+        SysPartnerInfoConsoleDto result = deptBalanceService.getTeamUserInfo(deptBalanceVo);
+        return HttpResult.ok(result);
+    }
+
     /**
      * @version
      * @author: whp

+ 67 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerConsoleDto.java

@@ -1,7 +1,9 @@
 package com.ydtech.modules.admin.model.dto;
 
+import com.ydtech.modules.admin.model.PartnerInfoVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -37,6 +39,9 @@ public class SysPartnerConsoleDto implements Serializable {
     @ApiModelProperty(value = "部门名称")
     private String deptName;
 
+    @ApiModelProperty(value = "部门id")
+    private String deptId;
+
 
     @ApiModelProperty(value = "机构管理费")
     private BigDecimal deptManagementFee;
@@ -53,6 +58,9 @@ public class SysPartnerConsoleDto implements Serializable {
     @ApiModelProperty(value = "是否合伙人 0 是  1 否")
     private String type;
 
+    @ApiModelProperty(value = "合伙人等级")
+    private Integer patnerLevel;
+
     @ApiModelProperty(value = "子级list")
     private List<SysPartnerConsoleDto> childrenList;
 
@@ -65,12 +73,62 @@ public class SysPartnerConsoleDto implements Serializable {
     @ApiModelProperty(value = "性别")
     private String sex;
 
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+
+    @ApiModelProperty(value = "会员人数")
+    private Integer memberShip;
+
+
+    @ApiModelProperty(value = "总佣金")
+    private BigDecimal commission;
+
+
+    @ApiModelProperty(value = "直接合伙人")
+    private Integer numberPartners;
+
+
+    @ApiModelProperty(value = "直接工作室")
+    private Integer directStudio;
+
+
+    @ApiModelProperty(value = "间接工作室")
+    private Integer indirectStudio;
+
+    @ApiModelProperty(value = "间接工作室")
+    private Integer level;
+
+
+    @ApiModelProperty(value = "管理员ids")
+    private List<String> leaderIds;
+
+
+    @ApiModelProperty(value = "管理员")
+    private String LeaderId;
+
+    @ApiModelProperty(value = "管理员名称")
+    private String leaderName;
+
+
+    @ApiModelProperty(value = "合伙人ids")
+    private List<String> partnerIds;
+
+    @ApiModelProperty(value = "部门id集合")
+    private List<String> deptIds;
+
+
+    @ApiModelProperty(value = "用户ids")
+    private List<String> userIds;
+
     //用户创建时间
     private String createTime;
 
     @ApiModelProperty(value = "提现中")
     private BigDecimal withdrawingAmount;
 
+    List<PartnerInfoVo> partnerInfoVoList;
+
     /***
      * 角色id
      */
@@ -79,4 +137,13 @@ public class SysPartnerConsoleDto implements Serializable {
      * 机构来源
      */
     private String managementSource;
+
+    @ApiModelProperty(value = "工作室下级团队个数")
+    private Integer deptNum;
+
+    /**
+     * 存入以及合伙人id
+     */
+    @ApiModelProperty(value = "存入以及合伙人id")
+    private String loginUserId;
 }

+ 34 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerInfoConsoleDto.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.modules.admin.model.PartnerInfoVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class SysPartnerInfoConsoleDto {
+
+
+    @ApiModelProperty(value = "总保费")
+    private BigDecimal totalIncome;
+
+    @ApiModelProperty(value = "总佣金")
+    private BigDecimal commission;
+
+    @ApiModelProperty(value = "会员人数")
+    private Integer memberShip;
+
+    @ApiModelProperty(value = "推荐人")
+    private String suggestName;
+
+    @ApiModelProperty(value = "下级团队")
+    private Integer deptNum;
+
+
+    List<SysPartnerConsoleDto> partnerInfoVoList;
+
+
+    List<String> userIds;
+}

+ 23 - 0
src/main/java/com/ydtech/modules/admin/model/vo/DeptBalanceVo.java

@@ -67,5 +67,28 @@ public class DeptBalanceVo implements Serializable {
     private List<String> userIds;
 
 
+    @ApiModelProperty(value = "用户ids")
+    private Integer level;
+
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+    @ApiModelProperty(value = "合伙人:1;工作室:2")
+    private Integer type;
+
+    @ApiModelProperty(value = "合伙人ids")
+    private List<String> partnerIds;
+
+    @ApiModelProperty(value = "工作室ids")
+    private List<String> leaderIds;
+
+
+    @ApiModelProperty(value = "存入以及合伙人id")
+    private String loginUserId;
+
 
 }

+ 27 - 0
src/main/java/com/ydtech/modules/admin/service/DeptBalanceService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
+import com.ydtech.modules.admin.model.dto.SysPartnerInfoConsoleDto;
+import com.ydtech.modules.admin.model.vo.AppSysPartnerVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import com.ydtech.modules.admin.model.vo.PartnerBalanceVo;
 
@@ -46,4 +48,29 @@ public interface DeptBalanceService {
      */
     IPage<SysPartnerConsoleDto> getWalletAgent(DeptBalanceVo deptBalanceVo);
 
+    /**
+     *
+     * @param deptBalanceVo
+     * @return   合伙人详情
+     */
+    List<SysPartnerConsoleDto> queryPartnerInfo(DeptBalanceVo deptBalanceVo);
+
+    /**
+     *
+     * @param deptBalanceVo
+     * @return  合伙人 工作室 详情
+     */
+    SysPartnerInfoConsoleDto queryInfo(DeptBalanceVo deptBalanceVo);
+    /**
+     * @version
+     * @author: whp
+     * @Description: 查看机构下团队信息
+     */
+    SysPartnerInfoConsoleDto getTeamInfo(DeptBalanceVo deptBalanceVo);
+    /**
+     * @version
+     * @author: whp
+     * @Description: 查看团队下人员信息
+     */
+    SysPartnerInfoConsoleDto getTeamUserInfo(DeptBalanceVo deptBalanceVo);
 }

+ 753 - 48
src/main/java/com/ydtech/modules/admin/service/impl/DeptBalanceServiceImpl.java

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

+ 5 - 3
src/main/resources/mapper/modules/admin/SysPartnerMapper.xml

@@ -16,7 +16,7 @@
         select
         sp.id as "id",
         sp.user_id as "userId",
-        sp.user_name as "userName",
+        su.name as "userName",
         sp.type as "type",
         sp.proportional as "proportional",
         sp.suggest_id as "suggestId",
@@ -24,15 +24,17 @@
         sp.create_time as "createTime",
         sp.create_by as "createBy",
         sp.del_flag as "delFlag",
-        sp.del_flag as "delFlag",
         sd.name as "deptName",
-        sd.comlevel as "comlevel"
+        sd.comlevel as "comlevel",
+        su.mobile as "mobile",
+        sp.type as  "patnerLevel"
         from sys_partner sp
         left join  sys_user su on  su.id =  sp.user_id
         left join  sys_dept sd on  sd.id =  su.dept_id
         <where>
             1=1
             and sp.del_flag ='1'
+            and  sp.type ='1'
             <if test="vo.deptId !=null and  vo.deptId!=''  ">
                 and sd.id  LIKE concat('%', #{vo.deptId}, '%')
             </if>