|  | @@ -1,15 +1,25 @@
 | 
	
		
			
				|  |  |  package cn.newfeifan.mall.module.distri.service.duser;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import cn.hutool.core.collection.CollUtil;
 | 
	
		
			
				|  |  |  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.bo.SocialStatusBO;
 | 
	
		
			
				|  |  |  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.sharepath.SharePathDO;
 | 
	
		
			
				|  |  | +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.dal.mysql.sharepath.SharePathMapper;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.distri.enums.SocialStatusEnum;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.ptprofitlog.PtProfitLogService;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.sharepath.SharePathService;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.service.socialstatus.SocialStatusService;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.distri.service.socialstatuschangelog.SocialStatusChangeLogService;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.member.controller.admin.user.vo.MemberUserPageReqVO;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.member.controller.admin.user.vo.MemberUserRespVO;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.member.convert.user.MemberUserConvert;
 | 
	
		
			
				|  |  |  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;
 | 
	
	
		
			
				|  | @@ -29,6 +39,7 @@ import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.distri.dal.mysql.duser.DuserMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  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.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -55,6 +66,11 @@ public class DuserServiceImpl implements DuserService {
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private PtProfitLogService ptProfitLogService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private OrderPercentageMapper orderPercentageMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private SocialStatusChangeLogService socialStatusChangeLogService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Long createDuser(DuserSaveReqVO createReqVO) {
 | 
	
	
		
			
				|  | @@ -122,6 +138,48 @@ public class DuserServiceImpl implements DuserService {
 | 
	
		
			
				|  |  |          return null;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void updateDuserSocial(Long userId, Long social, Integer socialStatus) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //平台不参与身价
 | 
	
		
			
				|  |  | +        if(Objects.equals(userId, PT_ID)){
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //计算本次获得的身价
 | 
	
		
			
				|  |  | +        DuserDO duser = getDuserByUser(userId);
 | 
	
		
			
				|  |  | +        duser.setSocialStatusPoint(duser.getSocialStatusPoint() + social);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        SocialStatusBO socialStatusBO = socialStatusService.calculateSocial(duser.getSocialStatusPoint());
 | 
	
		
			
				|  |  | +        duser.setSocialUpNeed(socialStatusBO.getSocialUpNeed());
 | 
	
		
			
				|  |  | +        duser.setSocialStatusId(socialStatusBO.getId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        duserMapper.updateById(duser);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        socialStatusChangeLogService.createSocialStatusChangeLog(userId, social,userId, SocialStatusEnum.getSocialStatusEnumByCode(socialStatus));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public PageResult<MemberUserRespVO> getMemberUserPage(MemberUserPageReqVO pageVO) {
 | 
	
		
			
				|  |  | +        PageResult<MemberUserDO> pageResult = memberUserService.getUserPage(pageVO);
 | 
	
		
			
				|  |  | +        if (CollUtil.isEmpty(pageResult.getList())) {
 | 
	
		
			
				|  |  | +            return PageResult.empty();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        PageResult<MemberUserRespVO> result = MemberUserConvert.INSTANCE.convertPage(pageResult);
 | 
	
		
			
				|  |  | +        for (MemberUserRespVO memberUserRespVO : result.getList()) {
 | 
	
		
			
				|  |  | +            //获取团队用户
 | 
	
		
			
				|  |  | +            DuserDO duser = getDuserByUser(memberUserRespVO.getId());
 | 
	
		
			
				|  |  | +            SocialStatusDO socialStatus = socialStatusService.getSocialStatus(duser.getSocialStatusId());
 | 
	
		
			
				|  |  | +            if(socialStatus == null) continue;
 | 
	
		
			
				|  |  | +            memberUserRespVO.setCurrentMemberWorthLevelName(socialStatus.getName());
 | 
	
		
			
				|  |  | +            memberUserRespVO.setCurrentMemberWorthLevel(socialStatus.getLevel());
 | 
	
		
			
				|  |  | +            //获取钱包
 | 
	
		
			
				|  |  | +            IntegralDO integral = integralService.getIntegral(memberUserRespVO.getId());
 | 
	
		
			
				|  |  | +            memberUserRespVO.setCurrentMemberPoints(integral.getCurrentQuota());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return result;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageResult<DuserDO> getDuserPage(DuserPageReqVO pageReqVO) {
 | 
	
		
			
				|  |  |          return duserMapper.selectPage(pageReqVO);
 | 
	
	
		
			
				|  | @@ -201,6 +259,9 @@ public class DuserServiceImpl implements DuserService {
 | 
	
		
			
				|  |  |              integralDO = new IntegralDO().setId(integralId);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (duserDO == null) {
 | 
	
		
			
				|  |  | +            OrderPercentageDO orderPercentageDO = orderPercentageMapper.selectList().get(0);
 | 
	
		
			
				|  |  | +            SocialStatusBO socialStatusBO = socialStatusService.calculateSocial(Long.valueOf(orderPercentageDO.getRegisterSocialStatus()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              // 创建一个新的营销用户
 | 
	
		
			
				|  |  |              DuserSaveReqVO duserSaveReqVO = DuserSaveReqVO.builder()
 | 
	
		
			
				|  |  |                      .userId(userId)
 | 
	
	
		
			
				|  | @@ -209,10 +270,12 @@ public class DuserServiceImpl implements DuserService {
 | 
	
		
			
				|  |  |                      .nickName(user.getNickname())
 | 
	
		
			
				|  |  |                      .integralId(integralDO.getId())
 | 
	
		
			
				|  |  |                      .source(userId)
 | 
	
		
			
				|  |  | -                    .socialStatus(1L)
 | 
	
		
			
				|  |  | +                    .socialStatusId(1L)
 | 
	
		
			
				|  |  |                      .socialStatusPoint(0L)
 | 
	
		
			
				|  |  |                      .build();
 | 
	
		
			
				|  |  |              duserMapper.insert(BeanUtils.toBean(duserSaveReqVO, DuserDO.class));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            socialStatusChangeLogService.createSocialStatusChangeLog(userId, Long.valueOf(orderPercentageDO.getRegisterAncestorSocialStatus()),userId, SocialStatusEnum.REGISTER_SOCIAL);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |