helixiao 1 жил өмнө
parent
commit
bbc820c492

+ 49 - 0
src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java

@@ -1,8 +1,10 @@
 package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.dao.SysProportionConfigMapper;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
+import com.ydtech.modules.admin.model.SysProportionConfig;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
@@ -12,11 +14,13 @@ import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.service.SysPartnerService;
+import com.ydtech.modules.admin.service.SysProportionConfigService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -37,6 +41,11 @@ public class SysPartnerController extends BaseController {
      */
     @Resource
     private SysPartnerService sysPartnerService;
+    @Resource
+    private SysProportionConfigService sysProportionConfigService;
+
+    @Resource
+    private SysProportionConfigMapper sysProportionConfigMapper;
 
     /**
      * 分页查询
@@ -176,6 +185,46 @@ public class SysPartnerController extends BaseController {
         return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(sysAgencyLeaderPageDto));
     }
 
+    /**
+     * 比例配置
+     *
+     * @param sysProportionConfig 实体
+     * @return 新增结果
+     */
+    @PostMapping("/addProportionConfig")
+    @ApiOperation(value = "比例配置")
+    public HttpResult add(@RequestBody SysProportionConfig sysProportionConfig) {
+        Long id = sysProportionConfig.getId();
+        boolean b =false;
+        if (id == null) {
+            b = sysProportionConfigMapper.insert(sysProportionConfig)>0;
+        }else {
+            b = sysProportionConfigMapper.updateWithNull(sysProportionConfig);
+        }
+        return HttpResult.ok(b);
+    }
+
+    /**
+     * 编辑查询
+     * @param id
+     * @return
+     */
+    @GetMapping("/getProportionConfig")
+    @ApiOperation(value = "根据用户id查看比例配置")
+    public HttpResult getProportionConfig(@RequestParam("id") String id) {
+        return HttpResult.ok(sysProportionConfigService.getProportionConfig(id));
+    }
+    /**
+     * 血缘关系
+     */
+    @GetMapping("/getRelationInfo/{userId}")
+    @ApiOperation(value = "血缘关系")
+    public HttpResult getRelationInfo(@PathVariable("userId") String userId) {
+        return HttpResult.ok(sysPartnerService.getRelationInfo(userId));
+    }
+
+
+
 
 
 

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

@@ -18,6 +18,7 @@ import com.ydtech.modules.admin.components.request.UnionPayRequest;
 import com.ydtech.modules.admin.components.response.UnionPayResponse;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.constants.UserWorkStatus;
+import com.ydtech.modules.admin.dao.SysPartnerMapper;
 import com.ydtech.modules.admin.dao.SysUserRecordMapper;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.*;
@@ -56,6 +57,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.*;
 
@@ -101,6 +103,14 @@ public class SysUserController extends BaseController {
     private final SysUserTrackService sysUserTrackService;
 
     private final UnionPayRequestApiComponent unionPayRequestApiComponent;
+
+    private final SysPartnerService sysPartnerService;
+
+    private final SysPartnerMapper sysPartnerMapper;
+
+
+
+
     //    @PreAuthorize("hasAuthority('sys:user:delete')")
     @ApiOperation(value = "逻辑删除")
     @PostMapping(value = "/deleteFlag")
@@ -473,6 +483,20 @@ public class SysUserController extends BaseController {
         SysUserTrack sysUserTrack = new SysUserTrack(sysUser);
 
         sysUserTrackService.save(sysUserTrack);
+        Integer type = sysUser.getType();
+        if (type == 1) {
+            SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getUserId, sysUser.getId()));
+            if (sysPartner == null) {
+                //保存合伙人信息
+                SysPartnerDto sysPartnerDto = new SysPartnerDto();
+                sysPartnerDto.setUserId(sysUser.getId());
+                sysPartnerDto.setUserName(sysUser.getName());
+                sysPartnerDto.setSuggestId(sysUser.getSuggestId());
+                sysPartnerDto.setLevel(sysUser.getLevel());
+                sysPartnerService.insert(sysPartnerDto);
+            }
+        }
+
         return HttpResult.ok(sysUserService.updateById(sysUser));
 
 

+ 20 - 0
src/main/java/com/ydtech/modules/admin/dao/SysProportionConfigMapper.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysProportionConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * (SysPortionalConfiguration)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-10-21 10:02:25
+ */
+@Mapper
+public interface SysProportionConfigMapper extends BaseMapper<SysProportionConfig> {
+
+    boolean updateWithNull(SysProportionConfig sysProportionConfig);
+
+
+}
+

+ 54 - 0
src/main/java/com/ydtech/modules/admin/model/SysProportionConfig.java

@@ -0,0 +1,54 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * (SysPortionalConfiguration)实体类
+ *
+ * @author makejava
+ * @since 2024-10-21 10:02:25
+ */
+@Data
+public class SysProportionConfig implements Serializable {
+    private static final long serialVersionUID = -52994380963075044L;
+    /**
+     * 自增id
+     */
+    @TableId(value = "id", type= IdType.AUTO)
+    private Long id;
+    /**
+     * 一级合伙人
+     */
+    private String userId;
+    /**
+     * 总比例
+     */
+    private String proportion;
+    /**
+     * 一级比例
+     */
+    private String oneProportion;
+    /**
+     * 二级比例
+     */
+    private String twoProportion;
+    /**
+     * 三级比例
+     */
+    private String threeProportion;
+    /**
+     * 四级比例
+     */
+    private String fourProportion;
+    /**
+     * 五级比例
+     */
+    private String fiveProportion;
+
+
+}
+

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/SysRelationPerson.java

@@ -33,6 +33,10 @@ public class SysRelationPerson implements Serializable {
      * 推荐人id
      */
     private String suggestId;
+    /**
+     * 推荐人level
+     */
+    private int suggestLevel;
     /**
      * '推荐等级(0:直接推荐;1:间接推荐)'
      */

+ 14 - 0
src/main/java/com/ydtech/modules/admin/model/SysUser.java

@@ -225,6 +225,20 @@ public class SysUser extends BaseEntity {
     @ApiModelProperty("电销管理人名称")
     private String managerName;
 
+    @ApiModelProperty(value = "用户类型:0:普通用户 1:合伙人 2:工作室管理员")
+    private Integer type;
+
+    @ApiModelProperty(value = "合伙人等级;1,2,3,4,5")
+    private Integer level;
+
+    @ApiModelProperty(value = "推荐人id")
+    @TableField(exist = false)
+    private String suggestId;
+
+    @ApiModelProperty(value = "推荐人name")
+    @TableField(exist = false)
+    private String suggestName;
+
     /**
      * 验证用户
      *

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerDto.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.model.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -34,6 +35,9 @@ public class SysPartnerDto {
     @ApiModelProperty(value = "推荐人name")
     private String suggestName;
 
+    @ApiModelProperty(value = "合伙人等级;1,2,3,4,5")
+    private Integer level;
+
 
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerPageDto.java

@@ -40,4 +40,11 @@ public class SysPartnerPageDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "结束时间")
     private String endTime;
+
+    @ApiModelProperty(value = "合伙人等级;1,2,3,4,5")
+    private Integer level;
+    @ApiModelProperty(value = "状态  1:正常   0:删除 2:新注册 3:审批不通过")
+    private Integer status;
+
+
 }

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -59,4 +59,6 @@ public interface SysPartnerService extends IService<SysPartner> {
     FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto);
 
     PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo);
+
+    List<SysPartner> getRelationInfo(String userId);
 }

+ 17 - 0
src/main/java/com/ydtech/modules/admin/service/SysProportionConfigService.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysProportionConfig;
+
+/**
+ * (SysPortionalConfiguration)表服务接口
+ *
+ * @author makejava
+ * @since 2024-10-21 10:02:25
+ */
+public interface SysProportionConfigService extends IService<SysProportionConfig> {
+
+
+    SysProportionConfig getProportionConfig(String id);
+}

+ 310 - 135
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -80,6 +80,9 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     @Resource
     private SysPartnerConfigMapper sysPartnerConfigMapper;
 
+    @Resource
+    private SysProportionConfigMapper sysProportionConfigMapper;
+
 
     @Override
     public List<SysPartner> queryRecommendAndPartner(String id) {
@@ -95,36 +98,78 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return sysPartnerList;
     }
 
+//    @Override
+//    public BasePageResult<SysUserPartner> queryByPage(SysPartnerPageDto sysPartnerPageDto) {
+//        Page<SysUser> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
+//        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
+//        List<String> stringList = null;
+//        if (sysAgencyLeaders.size() > 0) {
+//            stringList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
+//
+//        }
+//        List<String> idList = null;
+//        List<SysDept> sysDeptLists = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().eq(SysDept::getComlevel, 4).eq(SysDept::getDelFlag, 0));
+//        if (sysDeptLists.size() > 0) {
+//            List<String> collect = sysDeptLists.stream().map(SysDept::getId).collect(Collectors.toList());
+//
+//            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+//                    .in(SysDept::getParentId, collect)
+//                    .eq(SysDept::getDelFlag, 0).isNull(SysDept::getComlevel).eq(SysDept::getDeptType, "D"));
+//            if (sysDeptList.size() > 0) {
+//                idList = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
+//            }
+//        }
+//        LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.ne(SysUser::getStatus, 0);
+//        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysUser::getId, sysPartnerPageDto.getUserId());
+//        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysUser::getName, sysPartnerPageDto.getUserName());
+//        wrapper.likeRight(StringUtils.isNotEmpty(sysPartnerPageDto.getDeptId()), SysUser::getId, sysPartnerPageDto.getDeptId());
+//        wrapper.notLike(SysUser::getId, "M");
+//        wrapper.notIn(CollectionUtil.isNotEmpty(stringList), SysUser::getId, stringList);
+//        wrapper.in(CollectionUtil.isNotEmpty(idList), SysUser::getDeptId, idList);
+//        wrapper.orderByDesc(SysUser::getCreateTime);
+//
+//        Page<SysUser> insOrdersPage = sysUserService.page(page, wrapper);
+//        List<SysUser> records = insOrdersPage.getRecords();
+//
+//        List<SysUserPartner> sysUserPartners = BeanUtil.copyToList(records, SysUserPartner.class);
+//
+//        if (sysUserPartners.size() > 0) {
+//            for (SysUserPartner user : sysUserPartners) {
+//                SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getId, user.getDeptId()).eq(SysDept::getDelFlag, 0));
+//                user.setParentId(sysDept.getParentId());
+//                user.setDeptName(sysDept.getName());
+//                SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+//                        .eq(SysPartner::getUserId, user.getId()).eq(SysPartner::getDelFlag, 1));
+//                if (sysPartner != null) {
+//                    user.setType("1");
+//                    user.setSuggestId(sysPartner.getSuggestId());
+//                    SysUser sysUser = sysUserMapper.selectById(sysPartner.getSuggestId());
+//                    if (sysUser != null) {
+//                        user.setSuggestName(sysUser.getName());
+//                    }
+//                    user.setProportional(sysPartner.getProportional());
+//                }
+//            }
+//
+//        }
+//
+//
+//        return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+//                sysUserPartners);
+//    }
+
     @Override
     public BasePageResult<SysUserPartner> queryByPage(SysPartnerPageDto sysPartnerPageDto) {
         Page<SysUser> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
-        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
-        List<String> stringList = null;
-        if (sysAgencyLeaders.size() > 0) {
-            stringList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
 
-        }
-        List<String> idList = null;
-        List<SysDept> sysDeptLists = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().eq(SysDept::getComlevel, 4).eq(SysDept::getDelFlag, 0));
-        if (sysDeptLists.size() > 0) {
-            List<String> collect = sysDeptLists.stream().map(SysDept::getId).collect(Collectors.toList());
-
-            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
-                    .in(SysDept::getParentId, collect)
-                    .eq(SysDept::getDelFlag, 0).isNull(SysDept::getComlevel).eq(SysDept::getDeptType, "D"));
-            if (sysDeptList.size() > 0) {
-                idList = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
-            }
-        }
         LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
-        wrapper.ne(SysUser::getStatus, 0);
         wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysUser::getId, sysPartnerPageDto.getUserId());
         wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysUser::getName, sysPartnerPageDto.getUserName());
-        wrapper.likeRight(StringUtils.isNotEmpty(sysPartnerPageDto.getDeptId()), SysUser::getId, sysPartnerPageDto.getDeptId());
-        wrapper.notLike(SysUser::getId, "M");
-        wrapper.notIn(CollectionUtil.isNotEmpty(stringList), SysUser::getId, stringList);
-        wrapper.in(CollectionUtil.isNotEmpty(idList), SysUser::getDeptId, idList);
-        wrapper.orderByDesc(SysUser::getCreateTime);
+        wrapper.eq(SysUser::getType,1);
+        wrapper.eq(sysPartnerPageDto.getLevel() !=null, SysUser::getLevel, sysPartnerPageDto.getLevel());
+        wrapper.in(SysUser::getStatus,Arrays.asList(1,4,5,6,7));
+
 
         Page<SysUser> insOrdersPage = sysUserService.page(page, wrapper);
         List<SysUser> records = insOrdersPage.getRecords();
@@ -137,15 +182,44 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 user.setParentId(sysDept.getParentId());
                 user.setDeptName(sysDept.getName());
                 SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-                        .eq(SysPartner::getUserId, user.getId()).eq(SysPartner::getDelFlag, 1));
+                        .eq(SysPartner::getUserId, user.getId()));
                 if (sysPartner != null) {
                     user.setType("1");
-                    user.setSuggestId(sysPartner.getSuggestId());
-                    SysUser sysUser = sysUserMapper.selectById(sysPartner.getSuggestId());
-                    if (sysUser != null) {
-                        user.setSuggestName(sysUser.getName());
+                    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<SysProportionConfig>()
+                                .eq(SysProportionConfig::getUserId,sysPartner.getUserId()));
+                        if (sysProportionConfig == null) continue;
+                        user.setProportional(sysProportionConfig.getOneProportion());
+
+                    }else {
+                        SysRelationPerson sysRelationPeople = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper<SysRelationPerson>()
+                                .eq(SysRelationPerson::getAgencyLeaderId, user.getId())
+                                .eq(SysRelationPerson::getType, 0)
+                                .eq(SysRelationPerson::getSuggestLevel,1));
+                        if (sysRelationPeople == null) continue;
+                        SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper<SysProportionConfig>()
+                                .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());
+                        }
                     }
-                    user.setProportional(sysPartner.getProportional());
                 }
             }
 
@@ -156,42 +230,103 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 sysUserPartners);
     }
 
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public boolean insert(SysPartnerDto sysPartnerDto) {
+//        List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
+//        if (sysPartners.size() > 0) {
+//            List<String> userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+//            if (userIdList.contains(sysPartnerDto.getUserId())) {
+//                throw new DescribeException(sysPartnerDto.getUserName() + "已是合伙人,不可重复设置");
+//            }
+//
+//        }
+//        //机构负责人不能配置为合伙人
+//        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
+//        if (sysAgencyLeaders.size() > 0) {
+//            //校验用户是否已经机构负责人
+//            List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
+//            if (userIdList.contains(sysPartnerDto.getUserId())) {
+//                throw new DescribeException(sysPartnerDto.getUserName() + "已是机构负责人,不可配置为合伙人");
+//            }
+//
+//        }
+//        SysPartner sysPartner = BeanUtil.copyProperties(sysPartnerDto, SysPartner.class);
+//        sysPartner.setCreateTime(new Date());
+//        sysPartner.setCreateBy(BaseController.getUser().getId());
+//        boolean b = false;
+//        if (sysPartnerDto.getSuggestId() != null) {
+//            SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+//                    .eq(SysPartner::getUserId, sysPartnerDto.getSuggestId())
+//                    .eq(SysPartner::getDelFlag, 1));
+//            if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
+//            sysPartner.setType(sysPartnerSuggest.getType() + 1);
+//            b = sysPartnerMapper.insert(sysPartner) > 0;
+//            //保存关系
+//            SysRelationPerson sysRelationPerson = new SysRelationPerson();
+//            sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
+//            sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
+//            //'推荐等级(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<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+//                    .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
+//                    .eq(SysRelationPerson::getType, 0));
+//            if (sysRelationPeople.size() > 0) {
+//                for (SysRelationPerson relationPerson : sysRelationPeople) {
+//                    SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
+//                    sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
+//                    sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
+//                    sysRelationPerson1.setSource(1);
+//                    //推荐类型(0:合伙人  1:机构负责人)
+//                    sysRelationPerson1.setType(0);
+//                    sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
+//                    sysRelationPerson1.setCreateTime(new Date());
+//                    sysRelationPersonMapper.insert(sysRelationPerson1);
+//                }
+//            }
+//        } else {
+//            //无推荐人,等级为一级
+//            sysPartner.setType(1);
+//            b = sysPartnerMapper.insert(sysPartner) > 0;
+//        }
+//        //添加抽层比例,一个月只能设置一次
+//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+//        String format = simpleDateFormat.format(new Date());
+//        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+//        sysPartnerTime.setType(1);
+//        sysPartnerTime.setCreateTime(format);
+//        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
+//        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
+//        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
+//
+//        sysPartnerTimeMapper.insert(sysPartnerTime);
+//        return b;
+//    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insert(SysPartnerDto sysPartnerDto) {
-        List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
-        if (sysPartners.size() > 0) {
-            List<String> userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
-            if (userIdList.contains(sysPartnerDto.getUserId())) {
-                throw new DescribeException(sysPartnerDto.getUserName() + "已是合伙人,不可重复设置");
-            }
-
-        }
-        //机构负责人不能配置为合伙人
-        List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
-        if (sysAgencyLeaders.size() > 0) {
-            //校验用户是否已经机构负责人
-            List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
-            if (userIdList.contains(sysPartnerDto.getUserId())) {
-                throw new DescribeException(sysPartnerDto.getUserName() + "已是机构负责人,不可配置为合伙人");
-            }
 
-        }
         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.getSuggestId() != null) {
-            SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-                    .eq(SysPartner::getUserId, sysPartnerDto.getSuggestId())
-                    .eq(SysPartner::getDelFlag, 1));
-            if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
-            sysPartner.setType(sysPartnerSuggest.getType() + 1);
-            b = sysPartnerMapper.insert(sysPartner) > 0;
+            SysPartner sysPartner1 = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                    .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:机构负责人)
@@ -206,8 +341,11 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             if (sysRelationPeople.size() > 0) {
                 for (SysRelationPerson relationPerson : sysRelationPeople) {
                     SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
+                    SysPartner sysPartner2 = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                            .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
                     sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
                     sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
+                    sysRelationPerson1.setSuggestLevel(sysPartner2.getType());
                     sysRelationPerson1.setSource(1);
                     //推荐类型(0:合伙人  1:机构负责人)
                     sysRelationPerson1.setType(0);
@@ -216,22 +354,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     sysRelationPersonMapper.insert(sysRelationPerson1);
                 }
             }
-        } else {
-            //无推荐人,等级为一级
-            sysPartner.setType(1);
-            b = sysPartnerMapper.insert(sysPartner) > 0;
         }
-        //添加抽层比例,一个月只能设置一次
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String format = simpleDateFormat.format(new Date());
-        SysPartnerTime sysPartnerTime = new SysPartnerTime();
-        sysPartnerTime.setType(1);
-        sysPartnerTime.setCreateTime(format);
-        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
-        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
-        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
-
-        sysPartnerTimeMapper.insert(sysPartnerTime);
         return b;
     }
 
@@ -553,81 +676,94 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 sysPartnerAPPPageVoList);
     }
 
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public boolean edit(SysPartnerDto sysPartnerDto) {
+//        //判断本月是否已修改比例
+//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+//        String format = simpleDateFormat.format(new Date());
+//        List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
+//                .eq(SysPartnerTime::getCreateTime, format).eq(SysPartnerTime::getUserId, sysPartnerDto.getUserId()));
+//        if (sysPartnerTimes.size() > 0) {
+//            throw new DescribeException(format + "已设置过抽成比例,每月只能修改一次");
+//        }
+//        boolean b;
+//        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+//                .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
+//        if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
+//
+//        if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
+//            SysPartner partner = new SysPartner();
+//            partner.setId(sysPartner.getId());
+//            partner.setProportional(sysPartnerDto.getProportional());
+//
+//            partner.setSuggestId(sysPartnerDto.getSuggestId());
+//            partner.setSuggestName(sysPartnerDto.getSuggestName());
+//            SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+//                    .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
+//            if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
+//            partner.setType(sysPartnerSuggest.getType() + 1);
+//            b = sysPartnerMapper.updateById(partner) > 0;
+//
+//            SysRelationPerson sysRelationPerson = new SysRelationPerson();
+//            sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
+//            sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
+//            //'推荐等级(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<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+//                    .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
+//                    .eq(SysRelationPerson::getType, 0));
+//            if (sysRelationPeople.size() > 0) {
+//                for (SysRelationPerson relationPerson : sysRelationPeople) {
+//                    SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
+//                    sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
+//                    sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
+//                    sysRelationPerson1.setSource(1);
+//                    //推荐类型(0:合伙人  1:机构负责人)
+//                    sysRelationPerson1.setType(0);
+//                    sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
+//                    sysRelationPerson1.setCreateTime(new Date());
+//                    sysRelationPersonMapper.insert(sysRelationPerson1);
+//                }
+//            }
+//        } else {
+//            SysPartner partner = new SysPartner();
+//            partner.setId(sysPartner.getId());
+//            partner.setProportional(sysPartnerDto.getProportional());
+//
+//            b = sysPartnerMapper.updateById(partner) > 0;
+//        }
+//        //修改抽成比例记录改变过程
+//        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+//        sysPartnerTime.setType(1);
+//        sysPartnerTime.setCreateTime(format);
+//        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
+//        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
+//        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
+//        sysPartnerTime.setOldProportional(sysPartner.getProportional());
+//
+//        sysPartnerTimeMapper.insert(sysPartnerTime);
+//
+//        return b;
+//    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean edit(SysPartnerDto sysPartnerDto) {
-        //判断本月是否已修改比例
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String format = simpleDateFormat.format(new Date());
-        List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
-                .eq(SysPartnerTime::getCreateTime, format).eq(SysPartnerTime::getUserId, sysPartnerDto.getUserId()));
-        if (sysPartnerTimes.size() > 0) {
-            throw new DescribeException(format + "已设置过抽成比例,每月只能修改一次");
-        }
-        boolean b;
         SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
                 .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());
 
-        if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
-            SysPartner partner = new SysPartner();
-            partner.setId(sysPartner.getId());
-            partner.setProportional(sysPartnerDto.getProportional());
-
-            partner.setSuggestId(sysPartnerDto.getSuggestId());
-            partner.setSuggestName(sysPartnerDto.getSuggestName());
-            SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-                    .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
-            if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
-            partner.setType(sysPartnerSuggest.getType() + 1);
-            b = sysPartnerMapper.updateById(partner) > 0;
-
-            SysRelationPerson sysRelationPerson = new SysRelationPerson();
-            sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
-            sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
-            //'推荐等级(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<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-                    .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
-                    .eq(SysRelationPerson::getType, 0));
-            if (sysRelationPeople.size() > 0) {
-                for (SysRelationPerson relationPerson : sysRelationPeople) {
-                    SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
-                    sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
-                    sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
-                    sysRelationPerson1.setSource(1);
-                    //推荐类型(0:合伙人  1:机构负责人)
-                    sysRelationPerson1.setType(0);
-                    sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
-                    sysRelationPerson1.setCreateTime(new Date());
-                    sysRelationPersonMapper.insert(sysRelationPerson1);
-                }
-            }
-        } else {
-            SysPartner partner = new SysPartner();
-            partner.setId(sysPartner.getId());
-            partner.setProportional(sysPartnerDto.getProportional());
-
-            b = sysPartnerMapper.updateById(partner) > 0;
-        }
-        //修改抽成比例记录改变过程
-        SysPartnerTime sysPartnerTime = new SysPartnerTime();
-        sysPartnerTime.setType(1);
-        sysPartnerTime.setCreateTime(format);
-        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
-        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
-        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
-        sysPartnerTime.setOldProportional(sysPartner.getProportional());
-
-        sysPartnerTimeMapper.insert(sysPartnerTime);
-
-        return b;
+        return sysPartnerMapper.updateById(partner) > 0;
     }
 
     @Override
@@ -1612,5 +1748,44 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return partnerLeaderInfoVo;
     }
 
+    @Override
+    public List<SysPartner> getRelationInfo(String userId) {
+        List<SysPartner> sysPartners = new ArrayList<>();
+        //登陆人的上三级合伙人信息
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        sysPartners.add(sysPartner);
+        List<String> ids =new ArrayList<>();
+        List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getAgencyLeaderId,userId).eq(SysRelationPerson::getType,0));
+        if (sysRelationPersonList.size()>0) {
+            List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getSuggestId).collect(Collectors.toList());
+            if (collect.size()>0) {
+                ids.addAll(collect);
+            }
+
+        }
+
+
+
+        List<SysRelationPerson> sysRelationList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getSuggestId,userId).eq(SysRelationPerson::getType,0));
+        if (sysRelationList.size()>0) {
+
+            List<String> collect1 = sysRelationList.stream().map(SysRelationPerson::getSuggestId).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(collect1)) {
+                ids.addAll(collect1);
+            }
+        }
+        if (CollectionUtil.isNotEmpty(ids)) {
+            List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
+                    .in(SysPartner::getUserId, ids).eq(SysPartner::getDelFlag, 1));
+            sysPartners.addAll(sysPartnerList);
+        }
+        List<SysPartner> list = sysPartners.stream().sorted(Comparator.comparing(SysPartner::getId)).collect(Collectors.toList());
+
+        return list;
+    }
+
 
 }

+ 18 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysProportionConfigServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysProportionConfigMapper;
+import com.ydtech.modules.admin.model.SysProportionConfig;
+import com.ydtech.modules.admin.service.SysProportionConfigService;
+import org.springframework.stereotype.Service;
+
+@Service("sysProportionConfigService")
+public class SysProportionConfigServiceImpl extends ServiceImpl<SysProportionConfigMapper, SysProportionConfig> implements SysProportionConfigService {
+
+    @Override
+    public SysProportionConfig getProportionConfig(String id) {
+
+        return baseMapper.selectOne(new LambdaQueryWrapper<SysProportionConfig>().eq(SysProportionConfig::getUserId,id));
+    }
+}

+ 12 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -94,6 +95,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private SysUserLinkAreaMapper sysUserLinkAreaMapper;
     @Autowired
     private SysDeptMapper sysDeptMapper;
+    @Resource
+    private SysPartnerService sysPartnerService;
 
     @Override
     public IPage<SysUserBaseVO> findUserList(PageDto<SysUserDto> pageDto) {
@@ -836,6 +839,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysUserTrackService.save(sysUserTrack);
         }
         SpringUtil.getBean(RecordUserUtils.class).recordUser(sysUserVo, BaseController.getUserName());
+        Integer type = sysUser.getType();
+        if (type != null && type == 1) {
+            //编辑合伙人
+            SysPartnerDto sysPartnerDto = new SysPartnerDto();
+            sysPartnerDto.setUserName(sysUser.getName());
+            sysPartnerDto.setUserId(sysUser.getId());
+            sysPartnerService.edit(sysPartnerDto);
+        }
+
         return HttpResult.ok("修改成功");
     }
 

+ 19 - 0
src/main/resources/mapper/modules/admin/SysProportionConfigMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysProportionConfigMapper">
+
+    <resultMap type="com.ydtech.modules.admin.model.SysProportionConfig" id="SysPortionalConfigurationMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+        <result property="proportion" column="proportion" jdbcType="VARCHAR"/>
+        <result property="oneProportion" column="one_proportion" jdbcType="VARCHAR"/>
+        <result property="twoProportion" column="two_proportion" jdbcType="VARCHAR"/>
+        <result property="threeProportion" column="three_proportion" jdbcType="VARCHAR"/>
+        <result property="fourProportion" column="four_proportion" jdbcType="VARCHAR"/>
+        <result property="fiveProportion" column="five_proportion" jdbcType="VARCHAR"/>
+    </resultMap>
+
+
+
+</mapper>
+