xuqiang 5 месяцев назад
Родитель
Сommit
ecdb6edcc9

+ 2 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysRole.java

@@ -34,8 +34,9 @@ public class SysRole extends BaseModel {
     @TableField(exist = false)
     private String userId;
 
-    public SysRole(String systemCode){
+    public SysRole(String systemCode,String deptId){
         this.systemCode = systemCode;
         this.name = "管理员";
+        this.deptId = deptId;
     }
 }

+ 2 - 1
partner/src/main/java/com/jzg/client/OrganizationClient.java

@@ -5,7 +5,6 @@ import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(name = "jzg-organization")
@@ -23,4 +22,6 @@ public interface OrganizationClient {
     @GetMapping(value = "userInfo/selectByUserIdInfo")
     SysUserJzgInfo selectByUserIdInfo(@RequestParam String userId);
 
+    @GetMapping("userInfo/getPartUserInfoByMobile")
+    SysUserJzgInfo getPartUserInfoByMobile(@RequestParam String mobile);
 }

+ 3 - 6
partner/src/main/java/com/jzg/controller/DistributionController.java

@@ -2,27 +2,24 @@ package com.jzg.controller;
 
 
 import cn.hutool.extra.spring.SpringUtil;
-import com.jzg.commons.core.base.BaseController;
+import com.alibaba.fastjson2.JSONObject;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.vo.DistributionVo;
 import com.jzg.utils.DistributionUtils;
 import com.jzg.utils.UpdateRatioUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 @Slf4j
 @RestController
 @RequestMapping("/partnerDistribution")
-public class DistributionController extends BaseController {
-
-    @Autowired
-    private BaseController baseController;
+public class DistributionController{
 
 
     @PostMapping("generateDistributionData")
     public HttpResult distribution(@RequestBody DistributionVo vo) {
         try {
+            log.info("入参:{}", JSONObject.toJSONString(vo));
             DistributionUtils.newSaveFeeInfo(vo.getInsOrders(), vo.getOrdersCosts(), vo.getLicenseNo());
         } catch (Exception e) {
             e.printStackTrace();

+ 3 - 3
partner/src/main/java/com/jzg/controller/ExtractFeeController.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -32,9 +31,10 @@ public class ExtractFeeController {
 
 
     @GetMapping("save")
-    public void distribution(@RequestParam String orderNo){
+    public void distribution(@RequestParam String orderNo,@RequestParam String orderId){
         List<PartnerPremiumDetails> partnerPremiumDetails = partnerPremiumDetailsMapper.selectList(new LambdaQueryWrapper<PartnerPremiumDetails>()
-                .eq(PartnerPremiumDetails::getCompanyId,orderNo));
+                        .eq(PartnerPremiumDetails::getOrderno,orderNo)
+                .eq(PartnerPremiumDetails::getCompanyId,orderId));
         for (PartnerPremiumDetails detail : partnerPremiumDetails) {
             PartnerPartnerAccount account1 = partnerPartnerAccountMapper.selectOne(new LambdaQueryWrapper<PartnerPartnerAccount>()
                     .eq(PartnerPartnerAccount::getUserId, detail.getUserId()).eq(PartnerPartnerAccount::getGrade,detail.getSource()));

+ 7 - 7
partner/src/main/java/com/jzg/utils/DistributionUtils.java

@@ -4,7 +4,6 @@ package com.jzg.utils;
 import cn.hutool.extra.spring.SpringUtil;
 import com.esotericsoftware.minlog.Log;
 import com.jzg.client.OrganizationClient;
-import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
@@ -13,6 +12,7 @@ import com.jzg.entity.PartnerUser;
 import com.jzg.mapper.PartnerPremiumDetailsMapper;
 import com.jzg.service.PartnerUserService;
 import jakarta.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
+@Slf4j
 @Component
 public class DistributionUtils {
     private static final Integer[] VALID_GRADES = {1, 2, 3, 4};
@@ -64,12 +65,11 @@ public class DistributionUtils {
                 || Objects.isNull(insOrders.getRealQuoteUserId())) {
             throw new IllegalArgumentException("入参不能为空,订单信息与用户ID必须有效");
         }
-        HttpResult<SysUserJzgInfo> userInfoById = organizationClient.getUserInfoById(insOrders.getRealQuoteUserId());
-        if (200 != userInfoById.getCode()){
-            throw new RuntimeException("获取用户信息异常");
+        SysUserJzgInfo userInfoById = organizationClient.getPartUserInfoByMobile(insOrders.getRealQuoteUserId());
+        if (Objects.isNull(userInfoById)){
+            log.info("当前出单员不是合伙人用户:{}");
         }
-        SysUserJzgInfo data = userInfoById.getData();
-        String userId = data.getId();
+        String userId = userInfoById.getId();
         RequestContextUtil.setStringParam(userId);
         String userId3 = CalculateCommissionUtils.querySuperiorAndSubordinate(userId, GRADE_3);
         String userId4 = CalculateCommissionUtils.querySuperiorAndSubordinate(userId, GRADE_4);
@@ -125,7 +125,7 @@ public class DistributionUtils {
         details.setIssuerId(userId);
         details.setIssuerName("");
         details.setOrderno(insOrders.getQuoteNo());
-        details.setCompanyId(insOrders.getCompanyId());
+        details.setCompanyId(insOrders.getId());
         details.setDeptId(partnerUser.getDeptId());
         details.setLicenseno(licenseNo);
         details.setSumpremium(ordersCosts.getSumPremium());

+ 16 - 1
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -364,8 +364,9 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         if(CollUtil.isNotEmpty(roles)){
             role = roles.get(0);
         }else{
-            role = new SysRole(sysSystem.getSysCode());
+            role = new SysRole(sysSystem.getSysCode(),sysDept.getId());
             sysRoleMapper.insert(role);
+            addDefaultRoles(sysSystem.getSysCode(),sysDept.getId());
         }
         // 关联用户角色
         SysUserRole userRole = new SysUserRole();
@@ -386,6 +387,20 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         this.updateById(sysSystem);
     }
 
+
+    public void addDefaultRoles(String sysCode,String deptId){
+        List<SysRole> defaultRoleList = Arrays.asList(
+                buildRole(sysCode, deptId,"业务员")
+        );
+        sysRoleMapper.insert(defaultRoleList);
+    }
+
+    private SysRole buildRole(String sysCode,String deptId, String roleName) {
+        SysRole role = new SysRole(sysCode,deptId);
+        role.setName(roleName);
+        return role;
+    }
+
     private boolean isExistsUserName(String username) {
         long count = sysUserMapper.selectCount(new LambdaQueryWrapper<SysUser>()
                 .eq(SysUser::getUsername, username)

+ 16 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/client/PartnerClient.java

@@ -0,0 +1,16 @@
+package com.jzg.quotation.summary.client;
+
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(name = "jzg-partner")
+public interface PartnerClient {
+
+
+    @GetMapping("/extractFee/save")
+    void extractFeeSave(@RequestParam String orderNo,@RequestParam String orderId);
+
+
+}

+ 15 - 6
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -2,13 +2,10 @@ package com.jzg.quotation.summary.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.databind.JsonNode;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.StateResult;
 import com.jzg.commons.core.page.HttpResult;
@@ -25,7 +22,10 @@ import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.rights.po.InsOrderRights;
 import com.jzg.commons.entity.rights.po.InsOrderRightsPackage;
-import com.jzg.commons.entity.vo.*;
+import com.jzg.commons.entity.vo.AgreementInfoVo;
+import com.jzg.commons.entity.vo.AgreementVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.PDFUtil;
@@ -34,6 +34,7 @@ import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.summary.client.LocalLivingClient;
+import com.jzg.quotation.summary.client.PartnerClient;
 import com.jzg.quotation.summary.entity.Result;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantReceiverDTO;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantRecordDTO;
@@ -50,11 +51,9 @@ import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.math.BigDecimal;
-import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -72,6 +71,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private OrgClient orgClient;
 
+    @Autowired
+    private PartnerClient partnerClient;
+
     @Autowired
     private PlatformClient platformClient;
 
@@ -490,6 +492,13 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         audit.setIsProblem(0);
         this.updateById(audit);
 
+        //合伙人佣金比例
+        try {
+            partnerClient.extractFeeSave(orders.getQuoteNo(),orders.getId());
+        }catch (Exception e){
+            log.error("保存合伙人佣金计算异常:{}" + e.getMessage());
+            e.printStackTrace();
+        }
 
         // 增加账户的金额记录
         List<SysUserAccountIncomeLog>builderIncomeLog = this.builderIncomeLog(param.getOrderNo(),feeOrders,userAccount,distributor1,distributor2,distributor3);

+ 7 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -272,12 +272,16 @@ public class UserController extends BaseController {
 
 
     @Operation(summary = "通过用户ID查询infoID",description = "合伙人查询infoID")
-
-
-
     @GetMapping(value = "/selectByUserIdInfo")
     public SysUserJzgInfo selectByUserIdInfo(@RequestParam String userId){
         return sysUserService.selectByUserIdInfo(userId);
     }
 
+
+    @Operation(summary = "获取合伙人用户信息", description = "获取用户信息")
+    @GetMapping(value = "/getPartUserInfoByMobile")
+    public SysUserJzgInfo getPartUserInfoByMobile(@RequestParam String mobile) {
+        return sysUserService.getPartUserInfoByMobile(mobile);
+    }
+
 }

+ 10 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysRoleMapper.java

@@ -0,0 +1,10 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRole;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface SysRoleMapper extends BaseMapper<SysRole> {
+}

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java

@@ -41,4 +41,6 @@ public interface SysUserJzgInfoMapper extends BaseMapper<SysUserJzgInfo> {
     SysUserJzgInfo selectByUserIdInfo(@Param("userId") String userId);
 
     List<String> selectTypeAttrs(@Param("userId") String userId);
+
+    SysUserJzgInfo getPartUserInfoByMobile(String mobile);
 }

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -231,4 +231,6 @@ public interface SysUserService extends IService<SysUser> {
     HttpResult<SysUserJzgInfo> getUserInfoUserId(String userId);
 
     SysUserJzgInfo selectByUserIdInfo(String userId);
+
+    SysUserJzgInfo getPartUserInfoByMobile(String mobile);
 }

+ 20 - 4
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -22,10 +22,7 @@ import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.client.PartnerDistributionClient;
 import com.jzg.organization.consumer.templete.UserMessageTemplate;
-import com.jzg.organization.mapper.EsmUserReferrerMapper;
-import com.jzg.organization.mapper.SysUploadFilesMapper;
-import com.jzg.organization.mapper.SysUserJzgInfoMapper;
-import com.jzg.organization.mapper.SysUserMapper;
+import com.jzg.organization.mapper.*;
 import com.jzg.organization.service.*;
 import com.jzg.organization.state.UserState;
 import com.jzg.organization.state.listener.UserStateListener;
@@ -115,6 +112,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Autowired
     private SysMessageTemplateService messageTemplateService;
 
+    @Autowired
+    private SysRoleMapper roleMapper;
+
+    @Autowired
+    private SysUserRoleMapper sysUserRoleMapper;
+
     private String getCurrentAreaCode(String province, String city, String area) {
         String userWorkNumber = "";
         if (!area.isEmpty()) {
@@ -1230,6 +1233,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
            if (200 != result.getCode()){
                throw new SystemException(result.getMsg());
            }
+           // 关联用户角色
+           SysRole sysRole = roleMapper.selectOne(new LambdaQueryWrapper<>(SysRole.class).eq(SysRole::getName, "业务员").last("LIMIT 1"));
+           if (!Objects.isNull(sysRole)){
+               SysUserRole userRole = new SysUserRole();
+               userRole.setUserId(userByUserId.getUserId());
+               userRole.setRoleId(sysRole.getId());
+               sysUserRoleMapper.insert(userRole);
+           }
            return HttpResult.ok("添加业务员成功");
        }catch (Exception e){
            e.printStackTrace();
@@ -1247,6 +1258,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserJzgInfoMapper.selectByUserIdInfo(userId);
     }
 
+    @Override
+    public SysUserJzgInfo getPartUserInfoByMobile(String mobile) {
+        return sysUserJzgInfoMapper.getPartUserInfoByMobile(mobile);
+    }
+
 
     public void addPartner(SysUserVo sysUserVo){
         String referrerId = sysUserVo.getReferrerId();

+ 13 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -297,4 +297,17 @@
           AND sjis.sys_user_jzg_info_id IS NOT NULL
     </select>
 
+
+    <select id="getPartUserInfoByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
+        SELECT DISTINCT info.id
+        FROM sys_user_jzg_info info
+                 INNER JOIN partner_user p ON p.user_id = info.id
+                 INNER JOIN sys_user u ON u.id = info.user_id
+                 INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
+        WHERE
+            p.grade > 4
+          AND u.mobile = #{mobile}
+          AND sa.type_attr = 3
+    </select>
+
 </mapper>