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

This commit is contained in:
cabbage 2025-07-18 17:22:26 +08:00
parent 67bd2b0258
commit 246d0e081d
8 changed files with 54 additions and 42 deletions

View File

@ -1,26 +1,24 @@
package com.hzs.member.detail;
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.ext.CuMemberAwardsExt;
import java.util.List;
/**
* @Description: 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:24
* @Classname: ICuMemberLevelServiceApi
* @PackageName: com.hzs.member.detail
* 会员升级记录dubbo服务
*/
public interface ICuMemberDetailServiceApi {
/**
* 查询手动升级的最新一条
* 查询最新一条
*
* @param pkMember 会员ID
* @param typeList 升级类型列表
* @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
*
* @author zhangjing
* @since 2024-02-18
*/
@Data
public class UpgradeGiveConfigDTO implements Serializable {

View File

@ -22,11 +22,12 @@ public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
List<CuMemberLevelExt> listMemberLevelList(@Param("param") CuMemberLevelParam param);
/**
* 查询手动 + 自动升级的最新一条
* 查询最新一条
*
* @param pkMember 会员ID
* @param typeList 升级类型列表
* @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.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description: 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:25
* @Classname: CuMemberLevelProvider
* @PackageName: com.hzs.member.detail.provider
* 会员升级记录dubbo服务
*/
@DubboService
public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
@ -25,8 +23,8 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
private ICuMemberAwardsService iCuMemberAwardsService;
@Override
public R<CuMemberLevel> queryLastManualUpgrade(Long pkMember) {
return R.ok(iCuMemberLevelService.queryLastManualUpgrade(pkMember));
public R<CuMemberLevel> queryLastManualUpgrade(Long pkMember, List<Integer> typeList) {
return R.ok(iCuMemberLevelService.queryLastManualUpgrade(pkMember, typeList));
}
@Override

View File

@ -31,11 +31,12 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime);
/**
* 查询手动升级的最新一条
* 查询最新一条
*
* @param pkMember 会员ID
* @param typeList 升级类型列表
* @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;
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.hzs.common.core.constant.SaOrderFieldConstants;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.detail.ext.CuMemberLevelExt;
@ -28,17 +26,17 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
@Override
public void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime) {
UpdateWrapper<CuMemberLevel> updateWrapper = new UpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkApprove);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, currentDateTime);
updateWrapper.eq(SaOrderFieldConstants.PK_ORDER, pkOrder);
LambdaUpdateWrapper<CuMemberLevel> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMemberLevel::getDelFlag, EYesNo.NO.getIntValue());
updateWrapper.set(CuMemberLevel::getPkModified, pkApprove);
updateWrapper.set(CuMemberLevel::getModifiedTime, currentDateTime);
updateWrapper.eq(CuMemberLevel::getPkOrder, pkOrder);
update(updateWrapper);
}
@Override
public CuMemberLevel queryLastManualUpgrade(Long pkMember) {
return baseMapper.queryLastManualUpgrade(pkMember);
public CuMemberLevel queryLastManualUpgrade(Long pkMember, List<Integer> typeList) {
return baseMapper.queryLastManualUpgrade(pkMember, typeList);
}
}

View File

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

View File

@ -1453,8 +1453,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setConsumeMoney(BigDecimal.ZERO);
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) {
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
@ -1466,8 +1466,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkRegisterGrade(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) {
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
@ -2160,6 +2160,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkSettleGrade(cuMemberRegister.getPkRegisterGrade());
cuMember.setConsumeMoney(BigDecimal.ZERO);
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 {
OrderReturn orderReturn = OrderReturn.builder().isEnough(false).build();
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.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;
// 判断奖衔原奖衔>新奖衔 不进行变奖衔