Przeglądaj źródła

app合伙人添加

Qchen 1 rok temu
rodzic
commit
8e4983cd66

+ 45 - 3
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -18,7 +18,9 @@ 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.SysAgencyLeaderMapper;
 import com.ydtech.modules.admin.dao.SysPartnerMapper;
+import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.dao.SysUserRecordMapper;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.*;
@@ -49,6 +51,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -59,6 +62,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.time.LocalDate;
 import java.util.*;
 
 import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
@@ -108,6 +112,10 @@ public class SysUserController extends BaseController {
 
     private final SysPartnerMapper sysPartnerMapper;
 
+    private final SysAgencyLeaderService sysAgencyLeaderService;
+
+    private final SysUserMapper sysUserMapper;
+
 
 
 
@@ -495,11 +503,34 @@ public class SysUserController extends BaseController {
                 sysPartnerDto.setLevel(sysUser.getLevel());
                 sysPartnerService.insert(sysPartnerDto);
             }
-        }
+        } else if (type == 2){
+            SysDept sysDept = sysDeptService.getById(sysUser.getDeptId());
+            SysAgencyLeaderDto sysAgencyLeaderDto = new SysAgencyLeaderDto();
+            sysAgencyLeaderDto.setUserId(sysUser.getId());
+            sysAgencyLeaderDto.setUserName(sysUser.getName());
+            sysAgencyLeaderDto.setDeptId(sysUser.getDeptId());
+            sysAgencyLeaderDto.setDeptName(sysUser.getDeptName());
+            sysAgencyLeaderDto.setSource(sysDept.getManagementSource());
+            sysAgencyLeaderDto.setSuggestId(sysUser.getSuggestId());
+            sysAgencyLeaderDto.setSuggestName(sysUser.getSuggestName());
+            sysAgencyLeaderService.insert(sysAgencyLeaderDto);
+            SysDeptVo sysDeptVo = new SysDeptVo();
+            sysDeptVo.setComlevel("5"); // 默认机构等级为5级
+            sysDeptVo.setName(sysUser.getName() + "工作室"); // 以人名设置工作室名称
+            sysDeptVo.setDeptType("C"); // 默认为子公司
+            sysDeptVo.setParentId(sysDept.getParentId());
+            sysDeptVo.setManagementSource(sysUser.getDeptSource()); //机构来源
+            sysDeptVo.setLeaderId(sysUser.getId()); // 负责人ID
+            sysDeptVo.setOrderNum(0);
+            sysDeptVo.setComattribute("procar"); //机构性质 车险
+            sysDeptVo.setProvince(sysDept.getProvince()); // 默认省与负责人所在机构一样
+            sysDeptVo.setCity(sysDeptVo.getCity()); // 默认市与负责人所在机构一样
+            sysDeptVo.setArea(sysDeptVo.getArea()); // 默认区县与负责人所在机构一样
+            sysDeptVo.setAddress(""); // 工作室地址
+            sysDeptService.addDept(sysDeptVo);
 
+        }
         return HttpResult.ok(sysUserService.updateById(sysUser));
-
-
     }
 
     @ApiOperation(value = "(重构)审批不通过")
@@ -523,6 +554,8 @@ public class SysUserController extends BaseController {
         sysUserTrack.setApproveMess(reason);
         sysUserTrackService.save(sysUserTrack);
 
+
+
         return HttpResult.ok(sysUserService.updateById(sysUser));
 
     }
@@ -782,6 +815,15 @@ public class SysUserController extends BaseController {
         //by gws 21	团队长 20	代理人 必须归属团队
         // 22	后线人员 必须归属部门
         SysUser sysUser = sysUserVo.getSysUser();
+        SysUserInfo sysUserInfo = new SysUserInfo();
+        if (sysUserVo.getIsPartner().equals("1")) {
+            SysUser partnerId = sysUserService.getById(sysUserVo.getSysUser().getReferrerId());
+            sysUser.setDeptId(partnerId.getDeptId());
+            sysUser.setStatus(2); //直接默认为入司待审核
+            LocalDate birthday = LocalDate.parse(sysUser.getIdentity().substring(6, 10) + "-" + sysUser.getIdentity().substring(10, 12) + "-" + sysUser.getIdentity().substring(12, 14));
+            sysUserInfo.setBirthday(birthday);
+        }
+        sysUserVo.setSysUserInfo(sysUserInfo);
         if (StringUtils.isNullOrEmpty(sysUser)) {
             return HttpResult.error("用户信息不能为空");
         }

+ 5 - 1
src/main/java/com/ydtech/modules/admin/model/SysUser.java

@@ -178,7 +178,7 @@ public class SysUser extends BaseEntity {
     @TableField(value = "operatorCode")
     private String operatorCode;
 
-    @TableField(exist = false)
+    @TableField(value = "referrer_id")
     @Excel(name = "推荐人ID")
     private String referrerId;
 
@@ -239,6 +239,10 @@ public class SysUser extends BaseEntity {
     @TableField(exist = false)
     private String suggestName;
 
+    @ApiModelProperty(value = "申请机构来源 1 渠道 2 个代")
+    @TableField(value = "dept_source")
+    private String deptSource;
+
     /**
      * 验证用户
      *

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptVo.java

@@ -19,6 +19,8 @@ import java.util.List;
 public class SysDeptVo implements Serializable {
 
     private static final long serialVersionUID = 4759609045226731089L;
+    @ApiModelProperty(value = "机构id")
+    private String id;
 
     @ApiModelProperty(value = "机构名称")
     private String name;
@@ -53,6 +55,9 @@ public class SysDeptVo implements Serializable {
     @ApiModelProperty(value = "机构地址")
     private String address;
 
+    @ApiModelProperty(value = "负责人Id")
+    private String leaderId;
+
     @ApiModelProperty(value = "负责人姓名")
     private String leadername;
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUser2Vo.java

@@ -22,6 +22,11 @@ public class SysUser2Vo {
     @ApiModelProperty("用户详情信息")
     private SysUserInfo sysUserInfo;
 
+    @ApiModelProperty("是否是合伙人")
+    private String isPartner;
+
+    @ApiModelProperty("推荐人Id")
+    private String referrerId;
 
     @ApiModelProperty("影像信息")
     private List<EsmUserImageVo> esmUserImageVo;

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/SysDeptService.java

@@ -40,7 +40,7 @@ public interface SysDeptService extends IService<SysDept> {
      *
      * @param sysDeptVo 机构信息
      */
-    void addDept(SysDeptVo sysDeptVo);
+    SysDeptVo addDept(SysDeptVo sysDeptVo);
 
 
     /**

+ 109 - 81
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -112,14 +112,6 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             }
         }
 
-        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(sysAgencyLeaderDto.getUserId())) {
-                throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是合伙人,不可设置为机构负责人");
-            }
-        }
-
 
         SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
         sysAgencyLeader.setCreateTime(new Date());
@@ -155,17 +147,6 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
             }
         }
-//        //添加抽层比例,一个月只能设置一次
-//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-//        String format = simpleDateFormat.format(new Date());
-//        SysPartnerTime sysPartnerTime = new SysPartnerTime();
-//        sysPartnerTime.setType(2);
-//        sysPartnerTime.setCreateTime(format);
-//        sysPartnerTime.setUserId(sysAgencyLeaderDto.getUserId());
-//        sysPartnerTime.setUserName(sysAgencyLeaderDto.getUserName());
-//        sysPartnerTime.setNewProportional(sysAgencyLeaderDto.getProportional());
-//
-//        sysPartnerTimeMapper.insert(sysPartnerTime);
         return b;
     }
 
@@ -212,64 +193,34 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     }
 
 
-    @Override
-    public boolean edit(SysAgencyLeaderDto sysAgencyLeaderDto) {
-        String loginId = BaseController.getUserId();
-        SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
-        sysAgencyLeader.setId(sysAgencyLeaderDto.getId());
-        sysAgencyLeader.setProportional(sysAgencyLeaderDto.getProportional());
-        sysAgencyLeader.setUpdateBy(loginId);
-
-        return sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
-    }
-    @Override
-    public boolean editAll(List<SysAgencyLeaderDto> sysAgencyLeaderDto) {
-        String loginId = BaseController.getUserId();
-        if (CollectionUtil.isEmpty(sysAgencyLeaderDto)) {
-            throw new DescribeException( "批量修改参数不能为空");
-        }
-        for (SysAgencyLeaderDto agencyLeaderDto : sysAgencyLeaderDto) {
-            SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
-            sysAgencyLeader.setId(agencyLeaderDto.getId());
-            sysAgencyLeader.setProportional(agencyLeaderDto.getProportional());
-            sysAgencyLeader.setUpdateBy(loginId);
-            return sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
-        }
-
-        return false;
-    }
-
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void editInfo(SysAgencyLeaderDeptDto sysAgencyLeaderDeptDto) {
-        SysDept sysDept = sysAgencyLeaderDeptDto.getSysDept();
-        SysDept byId = sysDeptService.getById(sysDept.getId());
-        if (sysDept.getManagementSource() != null){
-            if (!sysDept.getManagementSource().equals(byId.getManagementSource())) {
-                throw new DescribeException("机构已被设置来源无法修改");
-            }
+    public boolean edit(SysAgencyLeaderDto sysAgencyLeaderDto) {
+        //判断本月是否已修改比例
+        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,sysAgencyLeaderDto.getUserId()));
+        if (sysPartnerTimes.size() > 0) {
+            throw new DescribeException(format+"已设置过抽成比例,每月只能修改一次");
         }
-        sysDeptService.updateDept(sysDept);
-
-        SysAgencyLeader sysAgencyLeader2 = sysAgencyLeaderDeptDto.getSysAgencyLeader();
-        if (sysAgencyLeader2 != null) {
-            //不修改负责人userId传null
-            String userId = sysAgencyLeader2.getUserId();
-            String loginId = BaseController.getUserId();
-            SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeader2.getId());
-
+        //不修改负责人userId传null
+        String userId = sysAgencyLeaderDto.getUserId();
+        String loginId = BaseController.getUserId();
+        boolean b = false;
+        SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeaderDto.getId());
+        if (!sysAgencyLeader1.getUserId().equals(userId)) {
             //修改管理员
-            List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>()
-                    .lambda().eq(SysAgencyLeader::getDelFlag, 1));
+            List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
             List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
-            if (userIdList.contains(userId)) {
-                throw new DescribeException(sysAgencyLeader2.getUserName() + "已是工作室管理员,不可重复配置");
+            if (userIdList.contains(sysAgencyLeaderDto.getUserId())) {
+                throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是机构负责人,不可重复配置");
             }
             List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
             if (sysPartners.size() > 0) {
                 List<String> list = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
-                if (list.contains(sysAgencyLeader2.getUserId())) {
-                    throw new DescribeException(sysAgencyLeader2.getUserName() + "已是合伙人,不可设置为机构负责人");
+                if (list.contains(sysAgencyLeaderDto.getUserId())) {
+                    throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是合伙人,不可设置为机构负责人");
                 }
             }
 
@@ -282,14 +233,103 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 throw new DescribeException(sysAgencyLeader1.getUserName() + "有推荐关系,不允许修改");
             }
 
-            SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeader2, SysAgencyLeader.class);
+            SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
             sysAgencyLeader.setUpdateTime(new Date());
             sysAgencyLeader.setUpdateBy(loginId);
             sysAgencyLeaderMapper.updateById(sysAgencyLeader);
+            if (!sysAgencyLeaderDto.getSuggestId().isEmpty()) {
+                //sysRelationPerson1为空是无上级
+                SysRelationPerson sysRelationPerson = new SysRelationPerson();
+                sysRelationPerson.setAgencyLeaderId(sysAgencyLeader.getUserId());
+                sysRelationPerson.setCreateBy(loginId);
+                sysRelationPerson.setCreateTime(new Date());
+                sysRelationPerson.setSuggestId(sysAgencyLeaderDto.getSuggestId());
+                sysRelationPerson.setSource(0);
+                sysRelationPerson.setType(1);
+                b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
+                //查询推荐人是否有上级 :满足合伙人有多层关系
+                List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeaderDto.getSuggestId())
+                        .eq(SysRelationPerson::getType, 0));
+
+                if (sysRelationPersonList.size() > 0) {
+                    for (SysRelationPerson sysRelation : sysRelationPersonList) {
+                        SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
+                        sysRelationPerson1.setAgencyLeaderId(sysAgencyLeader.getUserId());
+                        sysRelationPerson1.setCreateBy(loginId);
+                        sysRelationPerson1.setCreateTime(new Date());
+                        sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
+                        sysRelationPerson1.setSource(1);
+                        sysRelationPerson1.setType(1);
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
+                    }
+
+                }
+            }
+
+
+        } else {
+            if (StringUtils.isNullOrEmpty(sysAgencyLeader1.getSuggestId()) && !sysAgencyLeaderDto.getSuggestId().isEmpty()) {
+                //之前推荐人为空。可以修改
+                SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
+                sysAgencyLeader.setUpdateBy(loginId);
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
+
+                //sysRelationPerson1为空是无上级
+                SysRelationPerson sysRelationPerson = new SysRelationPerson();
+                sysRelationPerson.setAgencyLeaderId(sysAgencyLeader.getUserId());
+                sysRelationPerson.setCreateBy(loginId);
+                sysRelationPerson.setCreateTime(new Date());
+                sysRelationPerson.setSuggestId(sysAgencyLeaderDto.getSuggestId());
+                sysRelationPerson.setSource(0);
+                sysRelationPerson.setType(1);
+                b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
+                //查询推荐人是否有上级 :满足合伙人有多层关系
+                List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeaderDto.getSuggestId())
+                        .eq(SysRelationPerson::getType, 0));
+
+                if (sysRelationPersonList.size() > 0) {
+                    for (SysRelationPerson sysRelation : sysRelationPersonList) {
+                        SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
+                        sysRelationPerson1.setAgencyLeaderId(sysAgencyLeader.getUserId());
+                        sysRelationPerson1.setCreateBy(loginId);
+                        sysRelationPerson1.setCreateTime(new Date());
+                        sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
+                        sysRelationPerson1.setSource(1);
+                        sysRelationPerson1.setType(1);
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
+                    }
+
+                }
+
+            } else {
+
+                SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
+                sysAgencyLeader.setId(sysAgencyLeaderDto.getId());
+                sysAgencyLeader.setProportional(sysAgencyLeaderDto.getProportional());
+                sysAgencyLeader.setUpdateBy(loginId);
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
+            }
+
         }
+
+        //修改抽成比例记录改变过程
+        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+        sysPartnerTime.setType(2);
+        sysPartnerTime.setCreateTime(format);
+        sysPartnerTime.setUserId(sysAgencyLeaderDto.getUserId());
+        sysPartnerTime.setUserName(sysAgencyLeaderDto.getUserName());
+        sysPartnerTime.setNewProportional(sysAgencyLeaderDto.getProportional());
+        sysPartnerTime.setOldProportional(sysAgencyLeader1.getProportional());
+
+        sysPartnerTimeMapper.insert(sysPartnerTime);
+
+        return b;
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean delById(Integer id) {
         SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(id);
         List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new UpdateWrapper<SysRelationPerson>().lambda()
@@ -990,17 +1030,5 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
     }
 
-    @Override
-    public SysAgencyLeaderDeptVo queryInfoById(Integer id) {
-        SysAgencyLeaderDeptVo sysAgencyLeaderDeptVo = new SysAgencyLeaderDeptVo();
-        SysAgencyLeader sysAgencyLeader = baseMapper.selectById(id);
-        sysAgencyLeaderDeptVo.setSysAgencyLeader(sysAgencyLeader);
-
-        SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeader.getDeptId());
-        sysAgencyLeaderDeptVo.setSysDept(sysDept);
-
-        return sysAgencyLeaderDeptVo;
-    }
-
 
 }

+ 3 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -204,7 +204,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
 
     @Override
     @Transactional
-    public void addDept(SysDeptVo sysDeptVo) {
+    public SysDeptVo addDept(SysDeptVo sysDeptVo) {
         SysDept sysDept = new SysDept();
         BeanUtils.copyProperties(sysDeptVo, sysDept);
         String comlevel = ObjectUtils.isEmpty(sysDept.getComlevel()) ? "" : sysDept.getComlevel();
@@ -299,6 +299,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
 
         boolean b = save(sysDept);
         AssertionUtils.isSucceed(b, "删除失败");
+        sysDeptVo.setId(sysDept.getId());
+        return sysDeptVo;
     }
 
     @Override

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

@@ -590,7 +590,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult saveUserInfo(SysUser2Vo sysUserVo) {
         SysUser sysUser = sysUserVo.getSysUser();
         // 手机号