forked from angelo/java-retail-app
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
5e65591b8b
|
@ -623,4 +623,9 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
*/
|
||||
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.base.*;
|
||||
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.empty.CuMemberEmptyCode;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
|
||||
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.security.service.UserTokenService;
|
||||
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.service.ICuMemberAccountService;
|
||||
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.dto.*;
|
||||
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.vo.*;
|
||||
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.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||
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.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -120,7 +125,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
@Autowired
|
||||
private CuMemberLevelServiceImpl cuMemberLevelServiceImpl;
|
||||
|
||||
@DubboReference
|
||||
private IMemberServiceApi memberServiceApi;
|
||||
@DubboReference
|
||||
private IGradeServiceApi gradeService;
|
||||
@Override
|
||||
public Boolean saveMember(CuMember cuMember) {
|
||||
boolean save = false;
|
||||
|
@ -1361,6 +1372,22 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
try {
|
||||
// 修改直推日志
|
||||
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) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -1368,6 +1395,83 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
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
|
||||
where rownum = 1
|
||||
</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>
|
||||
|
|
Loading…
Reference in New Issue