forked from angelo/java-retail-app
## Opt - 修改直推 等级调整(未上)
This commit is contained in:
parent
8d95d51c27
commit
83f6aa393b
|
@ -623,4 +623,9 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
||||||
*/
|
*/
|
||||||
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode);
|
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int getMemberCountWithGradeAndParent(@Param("parentId") Long parentId, @Param("gradeValue") Integer gradeValue);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,12 +23,14 @@ import com.hzs.common.domain.member.account.CuMemberAccount;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
|
||||||
import com.hzs.common.domain.member.base.*;
|
import com.hzs.common.domain.member.base.*;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||||
|
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
||||||
import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
|
import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
|
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
|
||||||
import com.hzs.common.domain.system.config.BdAwards;
|
import com.hzs.common.domain.system.config.BdAwards;
|
||||||
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
|
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
|
||||||
import com.hzs.common.security.service.UserTokenService;
|
import com.hzs.common.security.service.UserTokenService;
|
||||||
import com.hzs.common.security.utils.SecurityUtils;
|
import com.hzs.common.security.utils.SecurityUtils;
|
||||||
|
@ -37,6 +39,7 @@ import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||||
import com.hzs.member.account.dto.MemberAmountDTO;
|
import com.hzs.member.account.dto.MemberAmountDTO;
|
||||||
import com.hzs.member.account.service.ICuMemberAccountService;
|
import com.hzs.member.account.service.ICuMemberAccountService;
|
||||||
import com.hzs.member.account.service.ICuMemberTradeService;
|
import com.hzs.member.account.service.ICuMemberTradeService;
|
||||||
|
import com.hzs.member.base.IMemberServiceApi;
|
||||||
import com.hzs.member.base.param.UpdatePlaceParentPetitionParam;
|
import com.hzs.member.base.param.UpdatePlaceParentPetitionParam;
|
||||||
import com.hzs.member.base.dto.*;
|
import com.hzs.member.base.dto.*;
|
||||||
import com.hzs.member.base.mapper.CuMemberMapper;
|
import com.hzs.member.base.mapper.CuMemberMapper;
|
||||||
|
@ -44,6 +47,7 @@ import com.hzs.member.base.param.*;
|
||||||
import com.hzs.member.base.service.*;
|
import com.hzs.member.base.service.*;
|
||||||
import com.hzs.member.base.vo.*;
|
import com.hzs.member.base.vo.*;
|
||||||
import com.hzs.member.detail.service.ICuMemberServiceLogService;
|
import com.hzs.member.detail.service.ICuMemberServiceLogService;
|
||||||
|
import com.hzs.member.detail.service.impl.CuMemberLevelServiceImpl;
|
||||||
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
||||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||||
import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
|
import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
|
||||||
|
@ -71,6 +75,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@ -120,6 +125,14 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RabbitTemplate rabbitTemplate;
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
@Qualifier("memberServiceApi")
|
||||||
|
@Autowired
|
||||||
|
private IMemberServiceApi memberServiceApi;
|
||||||
|
@Qualifier("gradeService")
|
||||||
|
@Autowired
|
||||||
|
private IGradeServiceApi gradeService;
|
||||||
|
@Autowired
|
||||||
|
private CuMemberLevelServiceImpl cuMemberLevelServiceImpl;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean saveMember(CuMember cuMember) {
|
public Boolean saveMember(CuMember cuMember) {
|
||||||
|
@ -1361,6 +1374,22 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
||||||
try {
|
try {
|
||||||
// 修改直推日志
|
// 修改直推日志
|
||||||
sendUpdateParentLog(parentParam, EApprovalBusiness.CU_MEMBER_PARENT.getValue(), code, loginUser);
|
sendUpdateParentLog(parentParam, EApprovalBusiness.CU_MEMBER_PARENT.getValue(), code, loginUser);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 如果当前用户为区域代理 原上级为董事 验证是否掉等级 , 新上级如果为区域代理 升等级(董事)
|
||||||
|
* 如果当前用户为博羚店主 原上级为高级店主 验证是否掉等级 , 新上级如果为博羚店主 升等级(高级店主)
|
||||||
|
*/
|
||||||
|
// 新上级 uc.getEditNewPlaceMemberCode()
|
||||||
|
// 旧上级 getMemberById(uc.getPkParent()).getMemberCode()
|
||||||
|
// 关闭直推修改等级逻辑
|
||||||
|
if(1 == 2){
|
||||||
|
CuMember newMember = memberServiceApi.getMember(uc.getEditNewPlaceMemberCode()).getData();
|
||||||
|
CuMember oldMember = getMemberById(uc.getPkParent());
|
||||||
|
CuMember mainMember = getMember(uc.getPkMember());
|
||||||
|
validateGrade(mainMember, oldMember, newMember);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -1368,6 +1397,83 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void validateGrade(CuMember mainMember, CuMember oldMember, CuMember newMember){
|
||||||
|
Integer mainGradeValue = gradeService.getGrade(mainMember.getPkSettleGrade()).getData().getGradeValue();
|
||||||
|
Integer oldGradeValue = gradeService.getGrade(oldMember.getPkSettleGrade()).getData().getGradeValue();
|
||||||
|
Integer newGradeValue = gradeService.getGrade(newMember.getPkSettleGrade()).getData().getGradeValue();
|
||||||
|
LambdaQueryWrapper<CuMemberLevel> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(CuMemberLevel::getPkMember, mainMember.getPkId());
|
||||||
|
queryWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.BUY_UPGRADE.getValue());
|
||||||
|
queryWrapper.isNotNull(CuMemberLevel::getPkOrder);
|
||||||
|
queryWrapper.orderByDesc(CuMemberLevel::getUpgradeTime);
|
||||||
|
CuMemberLevel lastUpgrade = cuMemberLevelServiceImpl.getOne(queryWrapper, false);
|
||||||
|
if(mainGradeValue.equals(EGrade.VIP.getValue())){
|
||||||
|
// old 直推是否还有EGrade.VIP 没有则掉等级
|
||||||
|
int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.VIP.getValue());
|
||||||
|
if(subUserCount < 1){
|
||||||
|
// 掉等级
|
||||||
|
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.VIP.getValue(), SecurityUtils.getPkCountry()).getData();
|
||||||
|
oldMember.setPkSettleGradeValue(targetGrade.getPkId());
|
||||||
|
LambdaQueryWrapper<CuMemberLevel> removeWrapper = new LambdaQueryWrapper<>();
|
||||||
|
removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId());
|
||||||
|
removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder());
|
||||||
|
removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
|
||||||
|
baseMapper.updateById(oldMember);
|
||||||
|
cuMemberLevelServiceImpl.remove(removeWrapper);
|
||||||
|
}
|
||||||
|
if(newGradeValue.equals(EGrade.VIP.getValue())){
|
||||||
|
// 升等级
|
||||||
|
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.S_VIP.getValue(), SecurityUtils.getPkCountry()).getData();
|
||||||
|
newMember.setPkSettleGradeValue(targetGrade.getPkId());
|
||||||
|
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
|
||||||
|
.pkMember(newMember.getPkId())
|
||||||
|
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
|
||||||
|
.oldLevel(newMember.getPkSettleGrade())
|
||||||
|
.newLevel(targetGrade.getPkId())
|
||||||
|
.upgradeTime(new Date())
|
||||||
|
.pkOrder(lastUpgrade.getPkOrder())
|
||||||
|
.build();
|
||||||
|
cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
|
cuMemberLevel.setPkCreator(SecurityUtils.getUserId());
|
||||||
|
cuMemberLevelServiceImpl.save(cuMemberLevel);
|
||||||
|
baseMapper.updateById(newMember);
|
||||||
|
}
|
||||||
|
// new 是否为EGrade.VIP 如果是则升等级
|
||||||
|
}else if(mainGradeValue.equals(EGrade.REGION.getValue())){
|
||||||
|
// old 直推是否还有EGrade.REGION 没有则掉等级
|
||||||
|
int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.REGION.getValue());
|
||||||
|
if(subUserCount < 1){
|
||||||
|
// 掉等级
|
||||||
|
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.REGION.getValue(), SecurityUtils.getPkCountry()).getData();
|
||||||
|
oldMember.setPkSettleGradeValue(targetGrade.getPkId());
|
||||||
|
LambdaQueryWrapper<CuMemberLevel> removeWrapper = new LambdaQueryWrapper<>();
|
||||||
|
removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId());
|
||||||
|
removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder());
|
||||||
|
removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
|
||||||
|
baseMapper.updateById(oldMember);
|
||||||
|
cuMemberLevelServiceImpl.remove(removeWrapper);
|
||||||
|
}
|
||||||
|
if(newGradeValue.equals(EGrade.REGION.getValue())){
|
||||||
|
// 升等级
|
||||||
|
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), SecurityUtils.getPkCountry()).getData();
|
||||||
|
newMember.setPkSettleGradeValue(targetGrade.getPkId());
|
||||||
|
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
|
||||||
|
.pkMember(newMember.getPkId())
|
||||||
|
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
|
||||||
|
.oldLevel(newMember.getPkSettleGrade())
|
||||||
|
.newLevel(targetGrade.getPkId())
|
||||||
|
.upgradeTime(new Date())
|
||||||
|
.pkOrder(lastUpgrade.getPkOrder())
|
||||||
|
.build();
|
||||||
|
cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
|
cuMemberLevel.setPkCreator(SecurityUtils.getUserId());
|
||||||
|
cuMemberLevelServiceImpl.save(cuMemberLevel);
|
||||||
|
baseMapper.updateById(newMember);
|
||||||
|
}
|
||||||
|
// new 是否为EGrade.REGION 如果是则升等级
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送修改直推日志
|
* 推送修改直推日志
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2419,5 +2419,14 @@
|
||||||
and bg.grade_value >= 60) so
|
and bg.grade_value >= 60) so
|
||||||
where rownum = 1
|
where rownum = 1
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
|
||||||
|
select
|
||||||
|
count(cu.PK_ID)
|
||||||
|
from cu_member cu
|
||||||
|
left join bd_grade bg on cu.PK_SETTLE_GRADE = bg.pk_id
|
||||||
|
where
|
||||||
|
cu.PK_PARENT = #{parentId}
|
||||||
|
and bg.GRADE_VALUE = #{gradeValue}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue