## V3\V4日升级添加报单、注册中心;

This commit is contained in:
cabbage 2025-04-21 19:43:34 +08:00
parent bc7fd1e5ee
commit a2e8c961bb
3 changed files with 68 additions and 22 deletions

View File

@ -49,10 +49,10 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
@Override
public void calculateCuMemberGrade(String settleDateStr, String settleTableName) {
List<GradeDTO> gradeList = iGradeServiceApi.queryGradeList(CountryConstants.CHINA_COUNTRY).getData();
// 等级列表V4V3
// 等级列表V3V4
gradeList = gradeList.stream()
.filter(tmp -> EGrade.VIP.getValue() == tmp.getGradeValue() || EGrade.S_VIP.getValue() == tmp.getGradeValue())
.sorted(Comparator.comparingInt(GradeDTO::getGradeValue).reversed())
// .sorted(Comparator.comparingInt(GradeDTO::getGradeValue).reversed())
.collect(Collectors.toList());
// 查询结算日当天奖衔发生过变动的会员本期
@ -68,16 +68,17 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
// 删除会员等级升级记录
baseMapper.deleteCuMemberGrade(period);
// 会员升级记录
List<CuMemberLevel> memberLevelList = new ArrayList<>();
for (GradeDTO gradeDTO : gradeList) {
// 处理可以升级V4V3会员
// 处理可以升级V3V4会员
List<CuMemberLevel> tmpCuMemberLevelList = this.calculateGrade(gradeDTO, settleTableName, settleDate, period);
if (null != tmpCuMemberLevelList) {
memberLevelList.addAll(tmpCuMemberLevelList);
}
}
if (CollectionUtil.isNotEmpty(memberLevelList)) {
// 更新会员表
// 更新会员表会员等级注册权限
iCuMemberService.updateCuMemberLevelByPeriod(period);
// 更新结算网体表 -- 结算日期到当前日期的所有日结算表
updateMemberLevelPeriod(settleDate);
@ -122,7 +123,6 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
cuMemberSettleExtList.forEach(cuMemberSettleExt -> getCuMemberLevel(cuMemberSettleExt, period, settleDate, cuMemberLevelList, gradeDTO));
// 插入记录
baseMapper.saveBatchCuMemberLevel(cuMemberLevelList);
return cuMemberLevelList;
}
return null;

View File

@ -2284,15 +2284,27 @@
<update id="updateCuMemberSettleGradeByPeriod">
merge into ${updateTableName} a
using (
select pk_member, max(new_level) pk_grade
from cu_member_level
where period = #{period}
and del_flag = 0
group by pk_member) b
select t.*, bg.register_authority
from (select pk_member, max(new_level) pk_grade
from cu_member_level
where period = #{period}
and del_flag = 0
group by pk_member) t
left join bd_grade bg
on bg.pk_id = t.pk_grade
) b
on (a.pk_member = b.pk_member)
when matched then
update set
a.pk_grade = b.pk_grade
a.pk_grade = b.pk_grade,
a.register_authority =
(select case
when b.register_authority > a.register_authority then
b.register_authority
else
a.register_authority
end
from dual)
</update>
<!-- 查询左右区足够可以升级的会员 -->

View File

@ -187,24 +187,58 @@
<!-- 回退会员等级 -->
<delete id="updateBackCuMemberGrade">
delete from cu_member_level where period = #{period} and up_type = 1
</delete>
<!-- 更新会员奖衔根据临时表 -->
<update id="updateCuMemberLevelByPeriod">
merge into cu_member a
using (
select pk_member, max(new_level) pk_grade
from cu_member_level
where period = #{period}
and del_flag = 0
group by pk_member
select t.*, bg.register_authority
from (
select pk_member, max(old_level) pk_grade
from cu_member_level
where period = #{period}
and del_flag = 0
group by pk_member) t
left join bd_grade bg
on bg.pk_id = t.pk_grade
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_settle_grade = b.pk_grade,
a.register_authority =
(select case
when a.register_authority > b.register_authority then
a.register_authority
else
b.register_authority
end
from dual),
a.modified_time = sysdate
</delete>
<!-- 更新会员等级根据临时表 -->
<update id="updateCuMemberLevelByPeriod">
merge into cu_member a
using (
select t.*, bg.register_authority
from (select pk_member, max(new_level) pk_grade
from cu_member_level
where period = #{period}
and del_flag = 0
group by pk_member) t
left join bd_grade bg
on bg.pk_id = t.pk_grade
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_settle_grade = b.pk_grade,
a.register_authority =
(select case
when b.register_authority > a.register_authority then
b.register_authority
else
a.register_authority
end
from dual),
a.modified_time = sysdate
</update>