## 注册、升级送等级,兼容可以继续买(293);

This commit is contained in:
cabbage 2025-07-18 17:22:26 +08:00
parent 06ac0ffff7
commit 9530084e3b
8 changed files with 54 additions and 42 deletions

View File

@ -1,26 +1,24 @@
package com.hzs.member.detail; package com.hzs.member.detail;
import com.hzs.common.core.domain.R; import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.detail.CuMemberAwards;
import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt; import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import java.util.List;
/** /**
* @Description: 会员升级记录dubbo服务 * 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:24
* @Classname: ICuMemberLevelServiceApi
* @PackageName: com.hzs.member.detail
*/ */
public interface ICuMemberDetailServiceApi { public interface ICuMemberDetailServiceApi {
/** /**
* 查询手动升级的最新一条 * 查询最新一条
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param typeList 升级类型列表
* @return * @return
*/ */
R<CuMemberLevel> queryLastManualUpgrade(Long pkMember); R<CuMemberLevel> queryLastManualUpgrade(Long pkMember, List<Integer> typeList);
/** /**
* 查询手动开通奖衔的最新一条 * 查询手动开通奖衔的最新一条

View File

@ -9,9 +9,6 @@ import java.util.Date;
/** /**
* 升级权限赠送规则表DTO * 升级权限赠送规则表DTO
*
* @author zhangjing
* @since 2024-02-18
*/ */
@Data @Data
public class UpgradeGiveConfigDTO implements Serializable { public class UpgradeGiveConfigDTO implements Serializable {

View File

@ -22,11 +22,12 @@ public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
List<CuMemberLevelExt> listMemberLevelList(@Param("param") CuMemberLevelParam param); List<CuMemberLevelExt> listMemberLevelList(@Param("param") CuMemberLevelParam param);
/** /**
* 查询手动 + 自动升级的最新一条 * 查询最新一条
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param typeList 升级类型列表
* @return * @return
*/ */
CuMemberLevel queryLastManualUpgrade(@Param("pkMember") Long pkMember); CuMemberLevel queryLastManualUpgrade(@Param("pkMember") Long pkMember, @Param("typeList") List<Integer> typeList);
} }

View File

@ -9,12 +9,10 @@ import com.hzs.member.detail.service.ICuMemberLevelService;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/** /**
* @Description: 会员升级记录dubbo服务 * 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:25
* @Classname: CuMemberLevelProvider
* @PackageName: com.hzs.member.detail.provider
*/ */
@DubboService @DubboService
public class CuMemberDetailProvider implements ICuMemberDetailServiceApi { public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
@ -25,8 +23,8 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
private ICuMemberAwardsService iCuMemberAwardsService; private ICuMemberAwardsService iCuMemberAwardsService;
@Override @Override
public R<CuMemberLevel> queryLastManualUpgrade(Long pkMember) { public R<CuMemberLevel> queryLastManualUpgrade(Long pkMember, List<Integer> typeList) {
return R.ok(iCuMemberLevelService.queryLastManualUpgrade(pkMember)); return R.ok(iCuMemberLevelService.queryLastManualUpgrade(pkMember, typeList));
} }
@Override @Override

View File

@ -31,11 +31,12 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime); void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime);
/** /**
* 查询手动升级的最新一条 * 查询最新一条
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param typeList 升级类型列表
* @return * @return
*/ */
CuMemberLevel queryLastManualUpgrade(Long pkMember); CuMemberLevel queryLastManualUpgrade(Long pkMember, List<Integer> typeList);
} }

View File

@ -1,9 +1,7 @@
package com.hzs.member.detail.service.impl; package com.hzs.member.detail.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.SaOrderFieldConstants;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberLevelExt; import com.hzs.common.domain.member.detail.ext.CuMemberLevelExt;
@ -28,17 +26,17 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
@Override @Override
public void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime) { public void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime) {
UpdateWrapper<CuMemberLevel> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<CuMemberLevel> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue()); updateWrapper.set(CuMemberLevel::getDelFlag, EYesNo.NO.getIntValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkApprove); updateWrapper.set(CuMemberLevel::getPkModified, pkApprove);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, currentDateTime); updateWrapper.set(CuMemberLevel::getModifiedTime, currentDateTime);
updateWrapper.eq(SaOrderFieldConstants.PK_ORDER, pkOrder); updateWrapper.eq(CuMemberLevel::getPkOrder, pkOrder);
update(updateWrapper); update(updateWrapper);
} }
@Override @Override
public CuMemberLevel queryLastManualUpgrade(Long pkMember) { public CuMemberLevel queryLastManualUpgrade(Long pkMember, List<Integer> typeList) {
return baseMapper.queryLastManualUpgrade(pkMember); return baseMapper.queryLastManualUpgrade(pkMember, typeList);
} }
} }

View File

@ -39,15 +39,20 @@
order by cml.creation_time desc order by cml.creation_time desc
</select> </select>
<!-- 查询手动 + 自动升级的最新一条 --> <!-- 查询最新一条 -->
<select id="queryLastManualUpgrade" resultMap="CuMemberLevel"> <select id="queryLastManualUpgrade" resultMap="CuMemberLevel">
select * select *
from (select * from (select *
from cu_member_level cml from cu_member_level cml
where cml.del_flag = 0 where cml.del_flag = 0
and cml.pk_member = #{pkMember} and cml.pk_member = #{pkMember}
and cml.up_type in (1, 2) <if test="typeList != null and typeList.size > 0">
order by cml.upgrade_time desc) and cml.up_type in
<foreach collection="typeList" item="items" open="(" separator="," close=")">
#{items}
</foreach>
</if>
order by cml.upgrade_time desc)
where rownum = 1 where rownum = 1
</select> </select>

View File

@ -1453,8 +1453,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setConsumeMoney(BigDecimal.ZERO); cuMember.setConsumeMoney(BigDecimal.ZERO);
cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve()); cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve());
// 查询最新一条手动升级记录 // 查询最新一条升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId()).getData(); CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId(), Arrays.asList(EUpgradeType.AUTO_UPGRADE.getValue(), EUpgradeType.MANUAL_UPGRADE.getValue())).getData();
if (null != cuMemberLevel) { if (null != cuMemberLevel) {
// 存在手动升级 // 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel()); cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
@ -1466,8 +1466,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkRegisterGrade(gradeDTO.getPkId()); cuMember.setPkRegisterGrade(gradeDTO.getPkId());
cuMember.setPkSettleGrade(gradeDTO.getPkId()); cuMember.setPkSettleGrade(gradeDTO.getPkId());
// 查询最新一条手动升级记录 // 查询最新一条升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId()).getData(); CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId(), Arrays.asList(EUpgradeType.BUY_UPGRADE.getValue(), EUpgradeType.MANUAL_UPGRADE.getValue())).getData();
if (null != cuMemberLevel) { if (null != cuMemberLevel) {
// 存在手动升级 // 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel()); cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
@ -2160,6 +2160,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkSettleGrade(cuMemberRegister.getPkRegisterGrade()); cuMember.setPkSettleGrade(cuMemberRegister.getPkRegisterGrade());
cuMember.setConsumeMoney(BigDecimal.ZERO); cuMember.setConsumeMoney(BigDecimal.ZERO);
cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve()); cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve());
// 查询最新一条升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId(), Arrays.asList(EUpgradeType.AUTO_UPGRADE.getValue(), EUpgradeType.MANUAL_UPGRADE.getValue())).getData();
if (null != cuMemberLevel) {
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
}
} else { } else {
OrderReturn orderReturn = OrderReturn.builder().isEnough(false).build(); OrderReturn orderReturn = OrderReturn.builder().isEnough(false).build();
GradeDTO gradeDTO = calculateGradeDTO(EOrderType.UPGRADE_ORDER.getValue(), cuMember.getPkSettleCountry(), cuMember.getPkId(), GradeDTO gradeDTO = calculateGradeDTO(EOrderType.UPGRADE_ORDER.getValue(), cuMember.getPkSettleCountry(), cuMember.getPkId(),
@ -2167,6 +2174,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkRegisterGrade(gradeDTO.getPkId()); cuMember.setPkRegisterGrade(gradeDTO.getPkId());
cuMember.setPkSettleGrade(gradeDTO.getPkId()); cuMember.setPkSettleGrade(gradeDTO.getPkId());
// 查询最新一条升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.queryLastManualUpgrade(cuMember.getPkId(), Arrays.asList(EUpgradeType.BUY_UPGRADE.getValue(), EUpgradeType.MANUAL_UPGRADE.getValue())).getData();
if (null != cuMemberLevel) {
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
}
// 记录原奖衔与新奖衔 // 记录原奖衔与新奖衔
BdAwards tmpAwards; BdAwards tmpAwards;
// 判断奖衔原奖衔>新奖衔 不进行变奖衔 // 判断奖衔原奖衔>新奖衔 不进行变奖衔