Przeglądaj źródła

合伙人bug修改

xuqiang 5 miesięcy temu
rodzic
commit
4da68ef792

+ 4 - 0
authentication/src/main/java/com/jzg/controller/AppAuthController.java

@@ -98,6 +98,10 @@ public class AppAuthController extends BaseController {
             SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoMapper.selectOne(new LambdaQueryWrapper<>(SysUserJzgInfo.class)
                     .eq(SysUserJzgInfo::getUserId, sysUser.getId())
                     .eq(SysUserJzgInfo::getSystemCode, loginFormVo.getSystem()));
+            boolean isApproved = sysUserJzgInfoMapper.selectTypeAttr(sysUserJzgInfo.getId());
+            if (!isApproved){
+                throw new ServletException("当前用户未审核通过");
+            }
             HttpResult<Boolean> isTherePartner = partnerDistributionClient.isTherePartner(sysUserJzgInfo.getId(), loginFormVo.getSystem());
             if (200 == isTherePartner.getCode()) {
                 if (!isTherePartner.getData()) {

+ 3 - 0
authentication/src/main/java/com/jzg/mapper/SysUserJzgInfoMapper.java

@@ -3,8 +3,11 @@ package com.jzg.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 
 @Mapper
 public interface SysUserJzgInfoMapper extends BaseMapper<SysUserJzgInfo> {
 
+    @Select("SELECT IF(partner_status = 3, true, false) AS is_partner_status FROM sys_user_jzg_info_salesman WHERE sys_user_jzg_info_id = #{id} AND type_attr = 3")
+    boolean selectTypeAttr(String id);
 }

+ 3 - 0
authentication/src/main/java/com/jzg/service/impl/InitializePartnerCommissionServiceImpl.java

@@ -3,10 +3,12 @@ package com.jzg.service.impl;
 import com.jzg.client.PartnerDistributionClient;
 import com.jzg.service.InitializePartnerCommissionService;
 import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 
+@Slf4j
 @Service
 public class InitializePartnerCommissionServiceImpl implements InitializePartnerCommissionService {
 
@@ -20,6 +22,7 @@ public class InitializePartnerCommissionServiceImpl implements InitializePartner
         try {
             distributionClient.initializeCommissionDetails(userId);
         }catch (Exception e){
+            log.error("初始化用户佣金失败:{}", e.getMessage());
             e.printStackTrace();
         }
     }

+ 17 - 0
partner/src/main/java/com/jzg/controller/PartnerUserController.java

@@ -13,10 +13,12 @@ import com.jzg.entity.param.UserGradeParam;
 import com.jzg.service.PartnerUserService;
 import com.jzg.utils.ContactQrCodeUtils;
 import com.jzg.utils.TimedTaskUtils;
+import com.jzg.utils.UpdateRatioUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
 import java.util.Map;
 
 
@@ -32,6 +34,11 @@ public class PartnerUserController extends BaseController {
     @Autowired
     private PartnerUserService partnerUserService;
 
+    @PostMapping("commissionInitialization")
+    public void commissionInitialization(@RequestBody List<String> infoId){
+         partnerUserService.commissionInitialization(infoId);
+    }
+
     @PostMapping("teamInvitation")
     public boolean teamInvitation(@RequestBody SysUserJzgInfo info) {
         return partnerUserService.teamInvitation(info);
@@ -250,4 +257,14 @@ public class PartnerUserController extends BaseController {
     }
 
 
+    /**
+     * 联系客服
+     * @return
+     */
+    @GetMapping("aaaaa")
+    public void aaaaa() {
+        SpringUtil.getBean(UpdateRatioUtils.class).before("2034905418911121408",5);
+    }
+
+
 }

+ 1 - 1
partner/src/main/java/com/jzg/entity/PartnerKickbackChange.java

@@ -42,7 +42,7 @@ public class PartnerKickbackChange extends PartnerBaseModel {
     private String changeReason;
 
     @Schema(description = "变更时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date changeTime;
 
 

+ 2 - 0
partner/src/main/java/com/jzg/entity/param/QueryVo.java

@@ -32,6 +32,8 @@ public class QueryVo extends PageRequest {
     @Schema(description = "邀请人")
     private String referrerId;
 
+    private String typeAttr;
+
     private String isEnable;
 
     private String status;

+ 13 - 0
partner/src/main/java/com/jzg/entity/vo/SummaryStatisticsVo.java

@@ -0,0 +1,13 @@
+package com.jzg.entity.vo;
+
+
+import lombok.Data;
+
+@Data
+public class SummaryStatisticsVo {
+
+    private String createTime;
+
+    private String total;
+
+}

+ 1 - 1
partner/src/main/java/com/jzg/mapper/PartnerKickbackChangeMapper.java

@@ -18,7 +18,7 @@ public interface PartnerKickbackChangeMapper extends BaseMapper<PartnerKickbackC
     BigDecimal mostRecentRecord(@Param("userId") String userId,@Param("grade")String grade);
 
     @Select("SELECT " +
-            " c.user_id, " +
+            " c.id,c.user_id, " +
             " info.`name`, " +
             " u.mobile, " +
             " c.user_grade, " +

+ 2 - 3
partner/src/main/java/com/jzg/mapper/PartnerUserMapper.java

@@ -55,8 +55,7 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
 
     List<String> selectJuniorList(@Param("grade") Integer grade,@Param("ids") List<String> ids,@Param("params")AppHomeParams params);
 
-    @MapKey("createTime")
-    List<Map<String, String>> userCountVo2(@Param("userId")List<String> userId,@Param("params")AppHomeParams params);
+    List<SummaryStatisticsVo> userCountVo2(@Param("userId")List<String> userId,@Param("params")AppHomeParams params);
 
 
     List<PartnerUser> selectJuniorListUser(@Param("grade")Integer grade,@Param("ids") List<String> currentUserIds,@Param("params") AppHomeParams params);
@@ -141,7 +140,7 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id ${ew.customSqlSegment}")
     Page<PartnerUser> selectListVo(@Param("page") Page page ,@Param("ew") QueryWrapper<PartnerUser> queryWrapper);
 
-    @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user u ON u.id = p .user_id ${ew.customSqlSegment}")
+    @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id ${ew.customSqlSegment}")
     List<PartnerUser> selectListDb(@Param("ew") QueryWrapper<PartnerUser> queryWrapper);
 
     @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id ${ew.customSqlSegment}")

+ 1 - 0
partner/src/main/java/com/jzg/service/Impl/PartnerKickbackChangeImpl.java

@@ -47,6 +47,7 @@ public class PartnerKickbackChangeImpl extends ServiceImpl<PartnerKickbackChange
                 wrapper.le("c.change_time", endTime);
             }
         }
+        wrapper.orderByDesc("c.create_time");
         return baseMapper.queryPage(changeParam.getPage(),wrapper);
     }
 

+ 47 - 25
partner/src/main/java/com/jzg/service/Impl/PartnerUserServiceImpl.java

@@ -71,6 +71,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Autowired
     private OrganizationClient organizationClient;
 
+    @Autowired
+    private PartnerUserMapper partnerUserMapper;
+
+    @Autowired
+    private UpdateRatioUtils updateRatioUtils;
+
     @Value("${partner.expireDays}")
     private Long expireDays;
 
@@ -1026,6 +1032,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Override
     public HttpResult userCountStatisticsVo(AppHomeParams params) {
         SysUserJzgInfo sysUserJzgInfo = getSysUserJzgInfo(params.getUserId());
+        if (Objects.isNull(sysUserJzgInfo)){
+            return HttpResult.error("info人员不存在");
+        }
+        params.setUserId(sysUserJzgInfo.getId());
         Integer minGrade = baseMapper.selectGradeMin(sysUserJzgInfo.getId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
@@ -1040,6 +1050,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Override
     public HttpResult userCountProportionVo(AppHomeParams params) {
         SysUserJzgInfo sysUserJzgInfo = getSysUserJzgInfo(params.getUserId());
+        if (Objects.isNull(sysUserJzgInfo)){
+            return HttpResult.error("info人员不存在");
+        }
+        params.setUserId(sysUserJzgInfo.getId());
         Integer minGrade = baseMapper.selectGradeMin(sysUserJzgInfo.getId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
@@ -1052,6 +1066,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Override
     public HttpResult userCountRankingVo(AppHomeParams params) {
         SysUserJzgInfo sysUserJzgInfo = getSysUserJzgInfo(params.getUserId());
+        if (Objects.isNull(sysUserJzgInfo)){
+            return HttpResult.error("info人员不存在");
+        }
+        params.setUserId(sysUserJzgInfo.getId());
         Integer minGrade = baseMapper.selectGradeMin(sysUserJzgInfo.getId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
@@ -1120,11 +1138,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     public List<JSONObject> getLevelUserList(String userId, Integer grade, PartnerApp partnerApp, Map<Integer, String> rule) {
         Integer sort = grade + 1;
         QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("p.referrer_id", userId);
-        queryWrapper.eq("grade", sort);
-        queryWrapper.eq("u.`status`", 1);
-        if (!Objects.isNull(partnerApp)) {
-            if (StringUtils.isNotEmpty(partnerApp.getStartTime()) && StringUtils.isNotEmpty(partnerApp.getEndTime())) {
+        queryWrapper.eq("p.referrer_id",userId);
+        queryWrapper.eq("grade",sort);
+        queryWrapper.eq("sa.partner_status",3);
+        if (!Objects.isNull(partnerApp)){
+            if (StringUtils.isNotEmpty(partnerApp.getStartTime()) && StringUtils.isNotEmpty(partnerApp.getEndTime())){
                 queryWrapper.between("p.create_time", partnerApp.getStartTime() + " " + TimeConstants.START_TIME, partnerApp.getEndTime() + " " + TimeConstants.END_TIME);
             }
         }
@@ -1449,24 +1467,19 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         Map<String, Object> voMap = new HashMap<>();
         voMap.put("grade", grade);
         voMap.put("gradeName", rule.getOrDefault(grade, ""));
-        List<Map<String, String>> maps = new ArrayList<>(0);
-        if (CollectionUtil.isNotEmpty(currentUserIds)) {
+        List<SummaryStatisticsVo> maps = new ArrayList<>(0);
+        if (CollectionUtil.isNotEmpty(currentUserIds)){
             maps = baseMapper.userCountVo2(currentUserIds, params);
         }
-        List<String> keys = new ArrayList<>();
-        List<String> values = new ArrayList<>();
-        for (Map<String, String> map : maps) {
-            for (Map.Entry<String, String> entry : map.entrySet()) {
-                if ("total".equals(entry.getKey())) {
-                    keys.add(String.valueOf(entry.getValue()));
-                } else if ("createTime".equals(entry.getKey())) {
-                    values.add(String.valueOf(entry.getValue()));
-                }
-            }
+        List<String> keys = new ArrayList<>(maps.size());
+        List<String> values = new ArrayList<>(maps.size());
+        for (SummaryStatisticsVo vo : maps) {
+            keys.add(vo.getTotal());
+            values.add(vo.getCreateTime());
         }
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("dataTime", values);
-        jsonObject.put("data", keys);
+        jsonObject.put("dataTime",values);
+        jsonObject.put("data",keys);
         voMap.put("data", jsonObject);
         list.add(voMap);
     }
@@ -1627,9 +1640,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                 String referrerId = StringUtils.isNotEmpty(sysUserVo.getReferrerId()) ? sysUserVo.getReferrerId() : sysUserVo.getUserId();
                 partnerUser.setReferrerId(referrerId);
                 partnerUser.setCreateTime(LocalDateTime.now());
-                this.save(partnerUser);
-                SpringUtil.getBean(UpdateRatioUtils.class).before(partnerUser.getUserId(), partnerUser.getGrade());
-            } else {
+                partnerUserMapper.insert(partnerUser);
+                //updateRatioUtils.before(partnerUser.getUserId(),partnerUser.getGrade());
+            }else {
                 if (CollectionUtils.isEmpty(gradeList)) {
                     throw new SystemException("请选择合伙人等级");
                 }
@@ -1648,14 +1661,15 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                     if (4 == grade && hasDept) {
                         //deptId = addDeptUser(sysUserVo,String.valueOf(grade));
                     }
-                    PartnerUser partnerUser = createPartnerUser(sysUserVo, grade, minGrade, hasReferrer, deptId);
-                    this.save(partnerUser);
+                    PartnerUser partnerUser = createPartnerUser(sysUserVo, grade, minGrade, hasReferrer,deptId);
+                    partnerUserMapper.insert(partnerUser);
+                    //updateRatioUtils.before(partnerUser.getUserId(),partnerUser.getGrade());
                 }
             }
             return HttpResult.ok();
         } catch (Exception e) {
             e.printStackTrace();
-            return HttpResult.error("保存合伙人数据异常");
+            throw new SystemException("保存合伙人数据异常");
         }
     }
 
@@ -1707,6 +1721,14 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         }
     }
 
+    @Override
+    public void commissionInitialization(List<String> infoIds) {
+        for (String id : infoIds) {
+            updateRatioUtils.before(id,partnerUserMapper.selectByUserIdMax(id));
+        }
+
+    }
+
     @NotNull
     private static PartnerUser getPartnerUser(SysUserJzgInfo info, PartnerUser partnerUser) {
         PartnerUser user = new PartnerUser();

+ 2 - 0
partner/src/main/java/com/jzg/service/PartnerUserService.java

@@ -102,4 +102,6 @@ public interface PartnerUserService extends IService<PartnerUser> {
     PartnerUser searchUserStudios(String userId);
 
     boolean teamInvitation(SysUserJzgInfo info);
+
+    void commissionInitialization(List<String> infoId);
 }

+ 25 - 1
partner/src/main/java/com/jzg/utils/UpdateRatioUtils.java

@@ -68,7 +68,10 @@ public class UpdateRatioUtils {
 
 
     private void initializeCommissionRatio(PartnerUser value, BigDecimal latest) {
-        BigDecimal mostRecent = SpringUtil.getBean(PartnerKickbackChangeService.class).mostRecentRecord(value.getUserId(),String.valueOf(value.getGrade()));
+        if (value.getGrade() > 4){
+            return;
+        }
+        BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(value.getUserId(),String.valueOf(value.getGrade()));
         if (mostRecent ==  null){
             PartnerKickbackChange change = new PartnerKickbackChange();
             change.setUserId(value.getUserId());
@@ -78,9 +81,30 @@ public class UpdateRatioUtils {
             change.setDeptId(value.getDeptId());
             change.setChangeTime(new Date());
             kickbackChangeService.saveKickbackChange(change);
+        }else {
+            if (!isBigDecimalEqual(mostRecent,latest)){
+                PartnerKickbackChange change = new PartnerKickbackChange();
+                change.setUserId(value.getUserId());
+                change.setUserGrade(String.valueOf(value.getGrade()));
+                change.setOriginalCommission(latest);
+                change.setAfterChange(mostRecent);
+                change.setDeptId(value.getDeptId());
+                change.setChangeTime(new Date());
+                kickbackChangeService.saveKickbackChange(change);
+            }
+        }
+    }
+
+
+    public boolean isBigDecimalEqual(BigDecimal a, BigDecimal b) {
+        if (a == null || b == null) {
+            return false;
         }
+        return a.compareTo(b) == 0;
     }
 
+
+
     public  void loginChange(String userId){
         Map<Integer, PartnerUser> allByUserId = getAllByUserId(userId);
         saveChange(allByUserId);

+ 102 - 90
partner/src/main/resources/mapper/PartnerUserMapper.xml

@@ -4,87 +4,96 @@
 
 
     <select id="queryPage" resultType="com.jzg.entity.vo.PartnerUserVo">
-        SELECT
-        db.`name`,
-        db.partStatus,
-        db.mobile,
-        db.dept_id,
-        db.grade,
-        info.user_id,
-        info.create_by,
-        info.create_time,
-        d.`name` deptName,
-        (SELECT sa.partner_status  FROM sys_user_jzg_info_salesman sa WHERE sa.type_attr = 3 AND sa.sys_user_jzg_info_id = info.id) AS `status`,
-        info.referrer_id,
-        info.create_time,
-        referrer.`name` AS referrerName,
-        info.leader_id,
-        leader.`name` AS leaderIdName,
-        (SELECT sum(pd.extract_fee) FROM partner_premium_details pd WHERE pd.user_id = db.user_id) kickback,
-        (SELECT sum(distinct pr.sumpremium) FROM partner_premium_details pr WHERE pr.user_id = db.user_id) premium,
-        ( SELECT GROUP_CONCAT( s.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman s WHERE s.sys_user_jzg_info_id = info.id ) AS typeAttr
-        FROM
-        (
-        SELECT
-        `name`,
-        `status` as partStatus,
-        mobile,
-        user_id,
-        dept_id,
-        GROUP_CONCAT( grade SEPARATOR ',' ) AS grade
-        FROM
-        partner_user
-        <where>
-            grade BETWEEN 1 AND 4
-            <if test="queryVo.name != null and queryVo.name != ''">
-                and name like concat('%', #{queryVo.name}, '%')
-            </if>
-            <if test="queryVo.mobile != null and queryVo.mobile != ''">
-                and mobile like concat('%', #{queryVo.mobile}, '%')
-            </if>
-            <if test="queryVo.userId != null and queryVo.userId != ''">
-                and user_id like concat('%', #{queryVo.userId}, '%')
-            </if>
-            <if test="queryVo.deptId != null and queryVo.deptId != ''">
-                and dept_id like concat('%', #{queryVo.deptId}, '%')
-            </if>
-            <if test="queryVo.deptName != null and queryVo.deptName != ''">
-                and dept_name like concat('%', #{queryVo.deptName}, '%')
-            </if>
-            <if test="queryVo.grade != null and queryVo.grade != ''">
-                and grade like concat('%', #{queryVo.grade}, '%')
-            </if>
-            <if test="queryVo.commissionRate != null and queryVo.commissionRate != ''">
-                and commission_rate like concat('%', #{queryVo.commissionRate}, '%')
-            </if>
-            <if test="queryVo.referrerId != null and queryVo.referrerId != ''">
-                and referrer_id like concat('%', #{queryVo.referrerId}, '%')
-            </if>
-            <if test="queryVo.isEnable != null and queryVo.isEnable != ''">
-                and status != #{queryVo.isEnable}
-            </if>
-        </where>
-        GROUP BY
-        `name`,
-        mobile,
-        user_id,
-        dept_id,
-        `status`
-        ) db
-        LEFT JOIN sys_dept d ON d.id = db.dept_id
-        LEFT JOIN sys_user_jzg_info info ON info.id = db.user_id
-        LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id
-        LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id
-        LEFT JOIN sys_user referrerMobile ON referrerMobile.id = referrer.user_id
+        SELECT tb.* FROM (
+            SELECT
+            db.`name`,
+            db.partStatus,
+            db.mobile,
+            db.dept_id,
+            db.grade,
+            info.user_id,
+            info.create_by,
+            info.create_time,
+            d.`name` deptName,
+            (SELECT sa.partner_status  FROM sys_user_jzg_info_salesman sa WHERE sa.type_attr = 3 AND sa.sys_user_jzg_info_id = info.id) AS `status`,
+            info.referrer_id,
+            referrer.`name` AS referrerName,
+            info.leader_id,
+            leader.`name` AS leaderIdName,
+            (SELECT sum(pd.extract_fee) FROM partner_premium_details pd WHERE pd.user_id = db.user_id) kickback,
+            (SELECT sum(distinct pr.sumpremium) FROM partner_premium_details pr WHERE pr.user_id = db.user_id) premium,
+            ( SELECT GROUP_CONCAT( s.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman s WHERE s.sys_user_jzg_info_id = info.id ) AS typeAttr
+            FROM
+            (
+            SELECT
+            `name`,
+            `status` as partStatus,
+            mobile,
+            user_id,
+            dept_id,
+            GROUP_CONCAT(grade ORDER BY grade ASC SEPARATOR ',') AS grade
+            FROM
+            partner_user
+            <where>
+                grade BETWEEN 1 AND 4
+                <if test="queryVo.name != null and queryVo.name != ''">
+                    and (name like concat('%', #{queryVo.name}, '%') or  mobile like concat('%', #{queryVo.name}, '%'))
+                </if>
+                <if test="queryVo.mobile != null and queryVo.mobile != ''">
+                    and mobile like concat('%', #{queryVo.mobile}, '%')
+                </if>
+                <if test="queryVo.userId != null and queryVo.userId != ''">
+                    and user_id like concat('%', #{queryVo.userId}, '%')
+                </if>
+                <if test="queryVo.deptId != null and queryVo.deptId != ''">
+                    and dept_id like concat('%', #{queryVo.deptId}, '%')
+                </if>
+                <if test="queryVo.deptName != null and queryVo.deptName != ''">
+                    and dept_name like concat('%', #{queryVo.deptName}, '%')
+                </if>
+                <if test="queryVo.grade != null and queryVo.grade != ''">
+                    and grade like concat('%', #{queryVo.grade}, '%')
+                </if>
+                <if test="queryVo.commissionRate != null and queryVo.commissionRate != ''">
+                    and commission_rate like concat('%', #{queryVo.commissionRate}, '%')
+                </if>
+                <if test="queryVo.referrerId != null and queryVo.referrerId != ''">
+                    and referrer_id like concat('%', #{queryVo.referrerId}, '%')
+                </if>
+                <if test="queryVo.isEnable != null and queryVo.isEnable != ''">
+                    and status != #{queryVo.isEnable}
+                </if>
+            </where>
+            GROUP BY
+            `name`,
+            mobile,
+            user_id,
+            dept_id,
+            `status`
+            ) db
+            LEFT JOIN sys_dept d ON d.id = db.dept_id
+            LEFT JOIN sys_user_jzg_info info ON info.id = db.user_id
+            LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id
+            LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id
+            LEFT JOIN sys_user referrerMobile ON referrerMobile.id = referrer.user_id
+            <where>
+                <if test="queryVo.isEnable != null and queryVo.isEnable != ''">
+                    and info.status = #{queryVo.status}
+                </if>
+                <if test="queryVo.deptId != null and queryVo.deptId != ''">
+                    and db.dept_id = #{queryVo.deptId}
+                </if>
+                <if test="queryVo.referrerName != null and queryVo.referrerName != ''">
+                    and referrer.name like concat('%', #{queryVo.referrerName}, '%') or referrerMobile.mobile like concat('%', #{queryVo.referrerName}, '%')
+                </if>
+            </where>
+            order by info.create_time desc
+        ) tb
         <where>
-            <if test="queryVo.isEnable != null and queryVo.isEnable != ''">
-                and info.status = #{queryVo.status}
-            </if>
-            <if test="queryVo.referrerName != null and queryVo.referrerName != ''">
-                and referrer.name like concat('%', #{queryVo.referrerName}, '%') or referrerMobile.mobile like concat('%', #{queryVo.referrerName}, '%')
+            <if test="queryVo.typeAttr != null and queryVo.typeAttr != ''">
+                FIND_IN_SET(#{queryVo.typeAttr}, tb.typeAttr)
             </if>
         </where>
-        order by info.create_time desc
     </select>
 
 
@@ -614,9 +623,9 @@ SELECT
     <select id="userCountIdsVo" resultType="java.lang.Integer">
         SELECT count(p1.id)
         FROM partner_user p1
-                 LEFT JOIN sys_user_jzg_info u ON u.id = p1.user_id
+        LEFT JOIN sys_user_jzg_info_salesman sa  ON sa.sys_user_jzg_info_id = p1.user_id
         <where>
-            u.STATUS = 3
+            sa.partner_status = 3
             <if test="params != null">
                 <if test="params.timeFrame != null and params.timeFrame.length > 0">
                     AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
@@ -647,8 +656,8 @@ SELECT
         WITH RECURSIVE sub_partners AS (
         SELECT p1.id, p1.user_id,p1.grade
         FROM partner_user p1
-        LEFT JOIN sys_user_jzg_info u ON u.id = p1.user_id
-        WHERE u.STATUS = 3 AND p1.referrer_id = #{userId} and p1.grade = #{grade}
+        LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p1.user_id
+        WHERE sa.partner_status = 3 AND p1.referrer_id = #{userId} and p1.grade = #{grade}
         <if test="params != null">
             <if test="params.timeFrame != null and params.timeFrame.length > 0">
                 AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
@@ -668,9 +677,9 @@ SELECT
         UNION ALL
         SELECT p.id, p.user_id,p.grade
         FROM partner_user p
-        LEFT JOIN sys_user_jzg_info u1 ON u1.id = p.user_id
+        LEFT JOIN sys_user_jzg_info_salesman u1 ON u1.sys_user_jzg_info_id = p.user_id
         INNER JOIN sub_partners sp ON p.referrer_id = sp.user_id
-        WHERE u1.STATUS = 3 AND p.grade = (sp.grade + 1)
+        WHERE u1.partner_status = 3 AND p.grade = (sp.grade + 1)
         <if test="params != null">
             <if test="params.timeFrame != null and params.timeFrame.length > 0">
                 AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
@@ -697,8 +706,8 @@ SELECT
         p.user_id
         FROM
         partner_user p
-        LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id
-        WHERE u.`status` = 3 AND p.grade = #{grade} AND p.referrer_id in
+        LEFT JOIN sys_user_jzg_info_salesman sa  ON sa.sys_user_jzg_info_id = p.user_id
+        WHERE sa.partner_status = 3  AND p.grade = #{grade} AND p.referrer_id in
         <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
             #{item}
         </foreach>
@@ -721,7 +730,7 @@ SELECT
     </select>
 
 
-    <select id="userCountVo2" resultType="java.util.Map">
+    <select id="userCountVo2" resultType="com.jzg.entity.vo.SummaryStatisticsVo">
         SELECT
             DATE_FORMAT( p.create_time, '%Y-%m-%d' ) AS createTime,
             count( p.id ) AS total
@@ -761,8 +770,8 @@ SELECT
             p.grade
         FROM
         partner_user p
-        LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id
-                                       where u.status = 3 and p.grade = #{grade} AND p.referrer_id in
+        LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id
+        where sa.partner_status = 3  and p.grade = #{grade} AND p.referrer_id in
         <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
             #{item}
         </foreach>
@@ -890,7 +899,10 @@ SELECT
         ( SELECT t.partner_review_time FROM sys_user_jzg_info_salesman t WHERE t.sys_user_jzg_info_id = u.id ORDER BY t.partner_review_time LIMIT 1 )  approve_time
             FROM partner_user p
         	LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id
-        WHERE p.referrer_id = #{userId} AND p.grade = #{number} AND p.user_id != #{param}
+        WHERE p.referrer_id = #{userId} AND p.grade = #{number}
+                <if test="param != null and param != ''">
+                    AND p.user_id != #{param}
+                </if>
             ) db
         <where>
             <if test="period.startDate != null and period.endDate != null">

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/client/PartnerDistributionClient.java

@@ -8,6 +8,8 @@ import com.jzg.commons.entity.vo.SysUserVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @FeignClient(name = "jzg-partner")
 public interface PartnerDistributionClient {
 
@@ -26,4 +28,10 @@ public interface PartnerDistributionClient {
     @PostMapping("partner/teamInvitation")
     boolean teamInvitation(@RequestBody SysUserJzgInfo info);
 
+
+
+    @PostMapping("partner/commissionInitialization")
+    void commissionInitialization(@RequestBody List<String> infoId);
+
+
 }

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

@@ -272,6 +272,9 @@ public class UserController extends BaseController {
 
 
     @Operation(summary = "通过用户ID查询infoID",description = "合伙人查询infoID")
+
+
+
     @GetMapping(value = "/selectByUserIdInfo")
     public SysUserJzgInfo selectByUserIdInfo(@RequestParam String userId){
         return sysUserService.selectByUserIdInfo(userId);

+ 27 - 7
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -40,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -1101,29 +1103,38 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public HttpResult saveByPartner(SysUserVo sysUserVo) {
         try {
-            addPartner(sysUserVo);
+            if (CollectionUtil.isEmpty(sysUserVo.getGradeList()) && Objects.isNull(sysUserVo.getGrade())){
+                return HttpResult.error("请选择合伙人等级");
+            }
+            addPartnerTransactional(sysUserVo);
             //  保存合伙人用户数据
             HttpResult httpResult = partnerDistributionClient.addPartnerRule(sysUserVo);
             if (200 == httpResult.getCode()){
                 return HttpResult.ok("保存成功");
             }
+            return HttpResult.error("保存失败");
         }catch (Exception e){
             e.printStackTrace();
             log.error("保存合伙人数据异常:{}" + e.getMessage());
             return HttpResult.error("保存失败");
         }
-        return HttpResult.ok();
     }
 
-    @Override
+
+
     @Transactional(rollbackFor = Exception.class)
+    public void addPartnerTransactional(SysUserVo sysUserVo) {
+        addPartner(sysUserVo);
+    }
+
+
+    @Override
     public HttpResult newSaveUserInfoByPartner(SysUserVo sysUserVo) {
         try {
             sysUserVo.setCodeInvitation(true);
-            addPartner(sysUserVo);
+            addPartnerTransactional(sysUserVo);
             return partnerDistributionClient.addPartnerRule(sysUserVo);
         }catch (Exception e){
             e.printStackTrace();
@@ -1164,11 +1175,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public boolean partnerReview(List<String> userInfoId, String reviewStatus,String userId) {
         int row = sysUserJzgInfoService.partnerReview(userInfoId,reviewStatus, userId);
-        return row > 0 ? true :false ;
+        boolean b = row > 0 ? true : false;
+        if (b){
+            CompletableFuture.runAsync(() -> {
+                try {
+                    partnerDistributionClient.commissionInitialization(userInfoId);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            });
+        }
+        return b;
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public HttpResult partnerAddsSalesperson(String userId,String token) {
        try {
            SysUserJzgInfo userByUserId = sysUserJzgInfoMapper.selectByUserIdInfo(userId);

+ 0 - 1
tenant/pom.xml

@@ -12,7 +12,6 @@
     <url>http://maven.apache.org</url>
     <modules>
         <module>organization</module>
-        <module>openfeign</module>
         <module>insurance</module>
         <module>costsorrule</module>
     </modules>