## V3\V4日升级添加报单、注册中心;
This commit is contained in:
parent
bc7fd1e5ee
commit
a2e8c961bb
|
@ -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();
|
||||
// 等级列表(V4,V3)
|
||||
// 等级列表(V3,V4)
|
||||
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) {
|
||||
// 处理可以升级V4、V3会员
|
||||
// 处理可以升级V3、V4会员
|
||||
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;
|
||||
|
|
|
@ -2284,15 +2284,27 @@
|
|||
<update id="updateCuMemberSettleGradeByPeriod">
|
||||
merge into ${updateTableName} a
|
||||
using (
|
||||
select pk_member, max(new_level) pk_grade
|
||||
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) b
|
||||
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>
|
||||
|
||||
<!-- 查询左右区足够可以升级的会员 -->
|
||||
|
|
|
@ -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
|
||||
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
|
||||
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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue