Bläddra i källkod

Merge branch 'dev/2024/0417/update-app' of Harper/feifan-backend-zx-app into master

注册的用户关联表的名称追加
Yangzw 1 år sedan
förälder
incheckning
27b65c5517

+ 3 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserSaveReqVO.java

@@ -3,7 +3,6 @@ package cn.newfeifan.mall.module.distri.controller.admin.duser.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import java.util.*;
 import javax.validation.constraints.*;
 
 @Schema(description = "管理后台 - 推荐用户新增/修改 Request VO")
@@ -45,4 +44,7 @@ public class DuserSaveReqVO {
     @NotNull(message = "用户类型不能为空")
     private Long categoryId;
 
+    @Schema(description = "用户名称", example = "张三")
+    private String nickName;
+
 }

+ 10 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralSaveReqVO.java

@@ -3,8 +3,6 @@ package cn.newfeifan.mall.module.distri.controller.admin.integral.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import java.util.*;
-import javax.validation.constraints.*;
 
 @Schema(description = "管理后台 - 推荐用户积分新增/修改 Request VO")
 @Data
@@ -28,4 +26,14 @@ public class IntegralSaveReqVO {
     @Schema(description = "用户类型", example = "17348")
     private Long categoryId;
 
+    @Schema(description = "最高可获取积分")
+    private Integer highQuota;
+
+
+    @Schema(description = "用户名称", example = "赵六")
+    private String name;
+
+    @Schema(description = "用户昵称", example = "赵六")
+    private String nickName;
+
 }

+ 6 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java

@@ -1,9 +1,6 @@
 package cn.newfeifan.mall.module.distri.dal.dataobject.duser;
 
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
 import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
 
@@ -55,9 +52,15 @@ public class DuserDO extends BaseDO {
      * 团队用户当前点数
      */
     private Long socialStatusPoint;
+    /**
+     * 身价距下一级所需点数
+     */
+    private Long socialUpNeed;
     /**
      * 用户类型
      */
     private Long categoryId;
 
+    private String nickName;
+
 }

+ 6 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java

@@ -1,9 +1,6 @@
 package cn.newfeifan.mall.module.distri.dal.dataobject.integral;
 
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
 import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
 
@@ -44,4 +41,10 @@ public class IntegralDO extends BaseDO {
      */
     private Long categoryId;
 
+    private Integer highQuota;
+
+    private String name;
+
+    private String nickName;
+
 }

+ 9 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/sharepath/SharePathMapper.java

@@ -1,6 +1,5 @@
 package cn.newfeifan.mall.module.distri.dal.mysql.sharepath;
 
-import java.util.*;
 
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -28,7 +27,15 @@ public interface SharePathMapper extends BaseMapperX<SharePathDO> {
                 .orderByDesc(SharePathDO::getId));
     }
 
-    void addNode(@Param("parentId") Long parentId, @Param("newDescendantId") Long newDescendantId);
+    void addNode(@Param("parentId") Long parentId,
+                 @Param("parentName") String parentName,
+                 @Param("parentNickName") String parentNickName,
+                 @Param("parentMobile") String parentMobile,
+
+                 @Param("newDescendantId") Long newDescendantId,
+                 @Param("newDescendantName") String newDescendantName,
+                 @Param("newDescendantNickName") String newDescendantNickName,
+                 @Param("newDescendantMobile") String newDescendantMobile);
 
 
     int getMaxSortByParentId(@Param("parentId") Long parentId);

+ 3 - 8
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/duser/DuserServiceImpl.java

@@ -3,28 +3,20 @@ package cn.newfeifan.mall.module.distri.service.duser;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.distri.controller.admin.integral.vo.IntegralSaveReqVO;
 import cn.newfeifan.mall.module.distri.controller.admin.sharepath.vo.SharePathSaveReqVO;
-import cn.newfeifan.mall.module.distri.controller.admin.socialstatus.vo.SocialStatusSaveReqVO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
-import cn.newfeifan.mall.module.distri.dal.dataobject.socialstatus.SocialStatusDO;
 import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
 import cn.newfeifan.mall.module.distri.service.socialstatus.SocialStatusService;
 import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
 import cn.newfeifan.mall.module.member.service.user.MemberUserService;
-import cn.newfeifan.mall.module.system.service.member.MemberService;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
 
 import cn.newfeifan.mall.module.distri.controller.admin.duser.vo.*;
 import cn.newfeifan.mall.module.distri.dal.dataobject.duser.DuserDO;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.common.pojo.PageParam;
 import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 
 import cn.newfeifan.mall.module.distri.dal.mysql.duser.DuserMapper;
@@ -111,6 +103,8 @@ public class DuserServiceImpl implements DuserService {
             // 创建一个钱包
             IntegralSaveReqVO integralSaveReqVO = IntegralSaveReqVO.builder()
                     .currentQuota(0)
+                    .nickName(user.getNickname())
+                    .name(user.getName())
                     .freezeQuota(0)
                     .categoryId(3L)
                     .userId(userId).build();
@@ -123,6 +117,7 @@ public class DuserServiceImpl implements DuserService {
                     .userId(userId)
                     .mobile(user.getMobile())
                     .name(user.getName())
+                    .nickName(user.getNickname())
                     .integralId(integralDO.getId())
                     .source(userId)
                     .socialStatus(1L)

+ 18 - 26
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/sharepath/SharePathServiceImpl.java

@@ -4,14 +4,12 @@ import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.distri.service.duser.DuserService;
 import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
 import cn.newfeifan.mall.module.member.service.user.MemberUserService;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
 import org.springframework.validation.annotation.Validated;
 
-import java.util.*;
 
 import cn.newfeifan.mall.module.distri.controller.admin.sharepath.vo.*;
 import cn.newfeifan.mall.module.distri.dal.dataobject.sharepath.SharePathDO;
@@ -54,43 +52,37 @@ public class SharePathServiceImpl implements SharePathService {
 
     @Override
     public void createSharePathByUserId(SharePathSaveReqVO createReqVO) {
+        // 如果直推人为空, 则直接结束
+        if (createReqVO.getDescendant() == null) {
+            return;
+        }
+
         // 判断当前直推人是否有父亲
         Boolean has = hasParent(createReqVO.getDescendant());
         if (has) {
             throw exception(HAS_PARENT);
         }
+        MemberUserDO ancestor = memberUserService.getUser(createReqVO.getAncestor());
+        MemberUserDO descendant = memberUserService.getUser(createReqVO.getDescendant());
+
         // 创建直推人以及推荐人的关系
         // 需要判断当前推荐人跟直推人是否已经存在于用户表(duser)了
         duserService.hasUserAndCreat(createReqVO);
+
         // 存储他们之间的关系
-        sharePathMapper.addNode(createReqVO.getAncestor(), createReqVO.getDescendant());
+        sharePathMapper.addNode(
+                createReqVO.getAncestor(),
+                ancestor.getName(),
+                ancestor.getNickname(),
+                ancestor.getMobile(),
 
-        //保存用户的基本信息
-        saveSharePathName(createReqVO.getDescendant());
-    }
+                createReqVO.getDescendant(),
+                descendant.getName(),
+                descendant.getNickname(),
+                descendant.getMobile());
 
-    private void saveSharePathName(Long descendant){
-        List<SharePathDO> sharePathDOS = sharePathMapper.selectList(new LambdaQueryWrapper<SharePathDO>()
-                .eq(SharePathDO::getDescendant, descendant)
-        );
-
-        for (SharePathDO sharePathDO : sharePathDOS) {
-            MemberUserDO ancestor = memberUserService.getUser(sharePathDO.getAncestor());
-            MemberUserDO descendantUser = memberUserService.getUser(sharePathDO.getDescendant());
-            if (ancestor != null && descendantUser != null) {
-                sharePathDO.setAncName(ancestor.getName());
-                sharePathDO.setAncNickName(ancestor.getNickname());
-                sharePathDO.setAncPhone(ancestor.getMobile());
-                sharePathDO.setDescName(descendantUser.getName());
-                sharePathDO.setDescNickName(descendantUser.getNickname());
-                sharePathDO.setDescPhone(descendantUser.getMobile());
-                sharePathMapper.updateById(sharePathDO);
-            }
-        }
     }
 
-
-
     private Boolean hasParent(Long descendant) {
         SharePathDO sharePathDO = sharePathMapper.selectOne(new LambdaQueryWrapperX<SharePathDO>()
                 .eqIfPresent(SharePathDO::getDescendant, descendant)

+ 30 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/sharepath/SharePathMapper.xml

@@ -5,13 +5,40 @@
 
     <!-- 增加节点 -->
     <insert id="addNode">
-        INSERT INTO distri_share_path (ancestor, descendant, depth, sort)
-        SELECT ancestor, #{newDescendantId}, depth + 1,
+        INSERT INTO distri_share_path (ancestor,
+                                       anc_name,
+                                       anc_nick_name,
+                                       anc_phone,
+                                       descendant,
+                                       desc_name,
+                                       desc_nick_name,
+                                       desc_phone,
+                                       depth, sort)
+        SELECT ancestor,
+               anc_name,
+               anc_nick_name,
+               anc_phone,
+
+               #{newDescendantId},
+               #{newDescendantName},
+               #{newDescendantNickName},
+               #{newDescendantMobile},
+
+               depth + 1,
                (SELECT IFNULL(MAX(sort), 0) + 1 FROM distri_share_path WHERE ancestor = #{parentId} AND depth = 1)
         FROM distri_share_path
         WHERE descendant = #{parentId}
         UNION ALL
-        SELECT #{parentId}, #{newDescendantId}, 1,
+        SELECT #{parentId},
+               #{parentName},
+               #{parentNickName},
+               #{parentMobile},
+
+               #{newDescendantId},
+               #{newDescendantName},
+               #{newDescendantNickName},
+               #{newDescendantMobile},
+               1,
                (SELECT IFNULL(MAX(sort), 0) + 1 FROM distri_share_path WHERE ancestor = #{parentId} AND depth = 1);
     </insert>
 

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/user/MemberUserServiceImpl.java

@@ -127,7 +127,7 @@ public class MemberUserServiceImpl implements MemberUserService {
         TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
             @Override
             public void afterCommit() {
-                sharePathProducer.sendSharePathCreatMessage(linkId == null ? 1L : linkId, userId);
+                sharePathProducer.sendSharePathCreatMessage(linkId, userId);
                 if (linkId != null) {
                     shareLinkRegisterProducer.sendShareLinkRegisterMessage(linkId, userId);
                 }