Explorar el Código

获取身价的信息返回修改

Yangzw hace 11 meses
padre
commit
dd45500ab9
Se han modificado 12 ficheros con 77 adiciones y 30 borrados
  1. 15 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserInfoVO.java
  2. 2 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserPageReqVO.java
  3. 2 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserRespVO.java
  4. 2 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserSaveReqVO.java
  5. 6 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/app/sharepath/vo/SharePathRespVO.java
  6. 2 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java
  7. 1 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/duser/DuserMapper.java
  8. 23 9
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/duser/DuserServiceImpl.java
  9. 1 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java
  10. 18 4
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/sharepath/SharePathServiceImpl.java
  11. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/socialstatus/SocialStatusService.java
  12. 4 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/socialstatus/SocialStatusServiceImpl.java

+ 15 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserInfoVO.java

@@ -24,4 +24,19 @@ public class DuserInfoVO {
     @Schema(description = "团队历史总贡献值=直推奖+合赢奖", example = "88")
     private Long descTotalPrice;
 
+    @Schema(description = "身价距下一级所需点数")
+    private Long socialUpNeed;
+
+    @Schema(description = "团队用户当前身价id", example = "22096")
+    private Long socialStatusId;
+
+    @Schema(description = "团队用户当前身价等级", example = "等级一")
+    private String socialStatusLevel;
+
+    @Schema(description = "团队用户当前身价等级名称", example = "白银")
+    private String socialStatusLevelName;
+
+    @Schema(description = "团队用户当前点数")
+    private Long socialStatusPoint;
+
 }

+ 2 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserPageReqVO.java

@@ -29,8 +29,8 @@ public class DuserPageReqVO extends PageParam {
     @Schema(description = "团队用户当前积分", example = "11037")
     private Long integralId;
 
-    @Schema(description = "团队用户当前身价(等级)", example = "2")
-    private Integer socialStatus;
+    @Schema(description = "团队用户当前身价id", example = "22096")
+    private Long socialStatusId;
 
     @Schema(description = "团队用户当前点数")
     private Long socialStatusPoint;

+ 2 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/duser/vo/DuserRespVO.java

@@ -34,9 +34,9 @@ public class DuserRespVO {
     @ExcelProperty("团队用户当前积分")
     private Long integralId;
 
-    @Schema(description = "团队用户当前身价(等级)", example = "2")
+    @Schema(description = "团队用户当前身价id", example = "22096")
     @ExcelProperty("团队用户当前身价(等级)")
-    private Integer socialStatus;
+    private Long socialStatusId;
 
     @Schema(description = "团队用户当前点数")
     @ExcelProperty("团队用户当前点数")

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

@@ -34,8 +34,8 @@ public class DuserSaveReqVO {
     @NotNull(message = "团队用户当前积分不能为空")
     private Long integralId;
 
-    @Schema(description = "团队用户当前身价(等级)", example = "2")
-    private Long socialStatus;
+    @Schema(description = "团队用户当前身价id", example = "22096")
+    private Long socialStatusId;
 
     @Schema(description = "团队用户当前点数")
     private Long socialStatusPoint;

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/app/sharepath/vo/SharePathRespVO.java

@@ -61,4 +61,10 @@ public class SharePathRespVO {
     @Schema(description = "头像")
     private String avatar;
 
+    @Schema(description = "身价等级")
+    private String socialStatusLevel;
+
+    @Schema(description = "身价等级名称")
+    private String socialStatusLevelName;
+
 }

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

@@ -45,9 +45,9 @@ public class DuserDO extends BaseDO {
      */
     private Long integralId;
     /**
-     * 团队用户当前身价(等级)
+     * 团队用户当前身价id
      */
-    private Integer socialStatus;
+    private Long socialStatusId;
     /**
      * 团队用户当前点数
      */

+ 1 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/duser/DuserMapper.java

@@ -1,6 +1,5 @@
 package cn.newfeifan.mall.module.distri.dal.mysql.duser;
 
-import java.util.*;
 
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -24,7 +23,7 @@ public interface DuserMapper extends BaseMapperX<DuserDO> {
                 .eqIfPresent(DuserDO::getMobile, reqVO.getMobile())
                 .eqIfPresent(DuserDO::getSource, reqVO.getSource())
                 .eqIfPresent(DuserDO::getIntegralId, reqVO.getIntegralId())
-                .eqIfPresent(DuserDO::getSocialStatus, reqVO.getSocialStatus())
+                .eqIfPresent(DuserDO::getSocialStatusId, reqVO.getSocialStatusId())
                 .eqIfPresent(DuserDO::getSocialStatusPoint, reqVO.getSocialStatusPoint())
                 .eqIfPresent(DuserDO::getCategoryId, reqVO.getCategoryId())
                 .betweenIfPresent(DuserDO::getCreateTime, reqVO.getCreateTime())

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

@@ -6,6 +6,7 @@ import cn.newfeifan.mall.module.distri.controller.admin.socialstatus.bo.SocialSt
 import cn.newfeifan.mall.module.distri.controller.app.sharepath.vo.SharePathSaveReqVO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.orderpercentage.OrderPercentageDO;
+import cn.newfeifan.mall.module.distri.dal.dataobject.socialstatus.SocialStatusDO;
 import cn.newfeifan.mall.module.distri.dal.mysql.orderpercentage.OrderPercentageMapper;
 import cn.newfeifan.mall.module.distri.enums.SocialStatusEnum;
 import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
@@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import cn.newfeifan.mall.module.distri.controller.admin.duser.vo.*;
@@ -29,8 +31,10 @@ import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 import cn.newfeifan.mall.module.distri.dal.mysql.duser.DuserMapper;
 
 import java.util.List;
+import java.util.Objects;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.newfeifan.mall.module.distri.constant.DistriConstants.PT_ID;
 import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
 
 /**
@@ -121,7 +125,8 @@ public class DuserServiceImpl implements DuserService {
 
     @Override
     public DuserInfoVO getDuserInfo(Long userId) {
-
+        DuserDO duser = getDuserByUser(userId);
+        SocialStatusDO socialStatus = socialStatusService.getSocialStatus(duser.getSocialStatusId());
 
         hasUserAndCreat(userId);
         // 先初始化
@@ -146,8 +151,15 @@ public class DuserServiceImpl implements DuserService {
             totalLog = ptProfitLogService.getTotalLog(sonsId);
         }
 
-        return duserInfoVOBuilder.descPrice(Long.parseLong(yesterday))
-                .descTotalPrice(Long.parseLong(totalLog)).build();
+        return duserInfoVOBuilder
+                .descPrice(Long.parseLong(yesterday))
+                .descTotalPrice(Long.parseLong(totalLog))
+                .socialUpNeed(duser.getSocialUpNeed())
+                .socialStatusId(duser.getSocialStatusId())
+                .socialStatusPoint(duser.getSocialStatusPoint())
+                .socialStatusLevel(socialStatus.getLevel())
+                .socialStatusLevelName(socialStatus.getName())
+                .build();
 
     }
 
@@ -170,7 +182,7 @@ public class DuserServiceImpl implements DuserService {
         }
         if (duserDO == null) {
             OrderPercentageDO orderPercentageDO = orderPercentageMapper.selectList().get(0);
-            SocialStatusBO socialStatusBO = socialStatusService.getSocialStatusId(Long.valueOf(orderPercentageDO.getRegisterSocialStatus()));
+            SocialStatusBO socialStatusBO = socialStatusService.calculateSocial(Long.valueOf(orderPercentageDO.getRegisterSocialStatus()));
 
             // 创建一个新的营销用户
             DuserSaveReqVO duserSaveReqVO = DuserSaveReqVO.builder()
@@ -181,7 +193,7 @@ public class DuserServiceImpl implements DuserService {
                     .integralId(integralDO.getId())
                     .source(userId)
                     .socialStatusPoint(Long.valueOf(orderPercentageDO.getRegisterSocialStatus()))
-                    .socialStatus(socialStatusBO.getId())
+                    .socialStatusId(socialStatusBO.getId())
                     .socialUpNeed(socialStatusBO.getSocialUpNeed())
                     .build();
             duserMapper.insert(BeanUtils.toBean(duserSaveReqVO, DuserDO.class));
@@ -190,10 +202,11 @@ public class DuserServiceImpl implements DuserService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateDuserSocial(Long userId, Long social, Integer socialStatus) {
 
         //平台不参与身价
-        if(userId == 1L){
+        if(Objects.equals(userId, PT_ID)){
             return;
         }
 
@@ -201,11 +214,12 @@ public class DuserServiceImpl implements DuserService {
         DuserDO duser = getDuserByUser(userId);
         duser.setSocialStatusPoint(duser.getSocialStatusPoint() + social);
 
-        SocialStatusBO socialStatusBO = socialStatusService.getSocialStatusId(duser.getSocialStatusPoint());
+        SocialStatusBO socialStatusBO = socialStatusService.calculateSocial(duser.getSocialStatusPoint());
         duser.setSocialUpNeed(socialStatusBO.getSocialUpNeed());
-        duser.setSocialStatus(Math.toIntExact(socialStatusBO.getId()));
-        Long.toHexString(31);
+        duser.setSocialStatusId(socialStatusBO.getId());
         duserMapper.updateById(duser);
+
+        socialStatusChangeLogService.createSocialStatusChangeLog(userId, social,userId, SocialStatusEnum.getSocialStatusEnumByCode(socialStatus));
     }
 
     @Override

+ 1 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java

@@ -13,14 +13,12 @@ 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.integral.vo.*;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;
 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.integral.IntegralMapper;
@@ -167,7 +165,7 @@ public class IntegralServiceImpl implements IntegralService {
         Integer socialStatusUpgradation = 0;
 
         DuserDO duser = duserMapper.selectOne("user_id", userId);
-        Integer oldSocialStatus = duser.getSocialStatus();//升级前身价等级
+        Long oldSocialStatus = duser.getSocialStatusId();//升级前身价等级
 
         return newSocialStatusName;
     }

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

@@ -3,11 +3,13 @@ package cn.newfeifan.mall.module.distri.service.sharepath;
 import cn.newfeifan.mall.framework.common.pojo.PageParam;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.distri.controller.app.sharepath.vo.*;
+import cn.newfeifan.mall.module.distri.dal.dataobject.duser.DuserDO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.orderpercentage.OrderPercentageDO;
+import cn.newfeifan.mall.module.distri.dal.dataobject.socialstatus.SocialStatusDO;
 import cn.newfeifan.mall.module.distri.dal.mysql.orderpercentage.OrderPercentageMapper;
 import cn.newfeifan.mall.module.distri.enums.SocialStatusEnum;
 import cn.newfeifan.mall.module.distri.service.duser.DuserService;
-import cn.newfeifan.mall.module.distri.service.socialstatuschangelog.SocialStatusChangeLogService;
+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 org.springframework.context.annotation.Lazy;
@@ -25,6 +27,7 @@ import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 import cn.newfeifan.mall.module.distri.dal.mysql.sharepath.SharePathMapper;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -52,7 +55,7 @@ public class SharePathServiceImpl implements SharePathService {
     private MemberUserService memberUserService;
 
     @Resource
-    private SocialStatusChangeLogService socialStatusChangeLogService;
+    private SocialStatusService socialStatusService;
 
     @Resource
     private OrderPercentageMapper orderPercentageMapper;
@@ -101,7 +104,6 @@ public class SharePathServiceImpl implements SharePathService {
 
         OrderPercentageDO orderPercentageDO = orderPercentageMapper.selectList().get(0);
         duserService.updateDuserSocial(createReqVO.getAncestor(), Long.valueOf(orderPercentageDO.getRegisterAncestorSocialStatus()), SocialStatusEnum.REGISTER_ANCESTOR_SOCIAL.getStatus());
-        socialStatusChangeLogService.createSocialStatusChangeLog(createReqVO.getAncestor(), Long.valueOf(orderPercentageDO.getRegisterAncestorSocialStatus()),createReqVO.getAncestor(), SocialStatusEnum.REGISTER_ANCESTOR_SOCIAL);
 
     }
 
@@ -142,7 +144,10 @@ public class SharePathServiceImpl implements SharePathService {
                 .eq(SharePathDO::getDescendant, userId)
                 .eq(SharePathDO::getDepth, 1));
         SharePathRespVO ancestor = BeanUtils.toBean(sharePathDO, SharePathRespVO.class);
-        if(ancestor != null) ancestor.setAvatar(getAvatar(ancestor.getAncestor()));
+        if(ancestor != null) {
+            ancestor.setAvatar(getAvatar(ancestor.getAncestor()));
+            getSocialStatus(ancestor, ancestor.getAncestor());
+        }
 
         //获取团队成员
         PageResult<SharePathDO> descendants = sharePathMapper.selectPage(pageParam, new LambdaQueryWrapperX<SharePathDO>()
@@ -151,6 +156,7 @@ public class SharePathServiceImpl implements SharePathService {
         PageResult<SharePathRespVO> result = BeanUtils.toBean(descendants, SharePathRespVO.class);
         result.getList().forEach(item -> {
             item.setAvatar(getAvatar(item.getDescendant()));
+            getSocialStatus(item, item.getDescendant());
         });
 
 
@@ -160,6 +166,14 @@ public class SharePathServiceImpl implements SharePathService {
                 .descendants(result).build();
     }
 
+    private void getSocialStatus(SharePathRespVO sharePathRespVO,Long userId){
+        if(Objects.equals(userId, PT_ID)) return;
+        DuserDO duser = duserService.getDuserByUser(userId);
+        SocialStatusDO socialStatus = socialStatusService.getSocialStatus(duser.getSocialStatusId());
+        sharePathRespVO.setSocialStatusLevel(socialStatus.getLevel());
+        sharePathRespVO.setSocialStatusLevelName(socialStatus.getName());
+    }
+
     private String getAvatar(Long userId) {
         return memberUserService.getUser(userId).getAvatar();
     }

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/socialstatus/SocialStatusService.java

@@ -59,7 +59,7 @@ public interface SocialStatusService {
      * @param point 用户当前身价
      * @return 身价对象
      */
-    SocialStatusBO getSocialStatusId(Long point);
+    SocialStatusBO calculateSocial(Long point);
 
 
 }

+ 4 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/socialstatus/SocialStatusServiceImpl.java

@@ -75,7 +75,7 @@ public class SocialStatusServiceImpl implements SocialStatusService {
     }
 
     @Override
-    public SocialStatusBO getSocialStatusId(Long point) {
+    public SocialStatusBO calculateSocial(Long point) {
         List<SocialStatusDO> socialStatusDOS = socialStatusMapper.selectList(new LambdaQueryWrapper<SocialStatusDO>()
                 .orderByAsc(SocialStatusDO::getPoint)
         );
@@ -83,12 +83,13 @@ public class SocialStatusServiceImpl implements SocialStatusService {
         SocialStatusBO socialStatusBO = SocialStatusBO.builder().build();
         for (int i = 0; i < socialStatusDOS.size(); i++) {
             if (point < socialStatusDOS.get(i).getPoint()) {
-                socialStatusBO.setId(socialStatusDOS.get(i).getId());
+                socialStatusBO.setId(socialStatusDOS.get(i - 1).getId());
                 if (i + 1 >= socialStatusDOS.size()) {
                     socialStatusBO.setSocialUpNeed(0L);
                 } else {
-                    socialStatusBO.setSocialUpNeed(socialStatusDOS.get(i + 1).getPoint() - point);
+                    socialStatusBO.setSocialUpNeed(socialStatusDOS.get(i).getPoint() - point);
                 }
+                break;
             }
         }
         return socialStatusBO;