KKSU
2024-12-18 ccad384233cedb89bc5895976b2326f3d1a34f85
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -8,15 +8,14 @@
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallAchieveService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.service.IMemberProfitService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@@ -48,6 +47,7 @@
    private final MallMoneyFlowMapper mallMoneyFlowMapper;
    private final MallAchieveRecordMapper mallAchieveRecordMapper;
    private final MallMemberCouponMapper mallMemberCouponMapper;
    private final RunVipMapper runVipMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -494,4 +494,23 @@
            }
        }
    }
    @Override
    public void updateMemberLevel() {
        List<RunVip> runVips = runVipMapper.selectList(new LambdaQueryWrapper<RunVip>().orderByAsc(RunVip :: getOrderNumber));
        RunVip runVip = runVips.get(0);
        //获取过期时间小于等于当前时间,并且会员等级不是最小等级游客的所有用户
        LambdaQueryWrapper<MallMember> mallMemberLambdaQueryWrapper = new LambdaQueryWrapper<>();
        mallMemberLambdaQueryWrapper.le(MallMember :: getVipLevelTime,DateUtil.date());
        mallMemberLambdaQueryWrapper.ne(MallMember :: getLevel,runVip.getVipCode());
        List<MallMember> mallMembers = mallMemberMapper.selectList(mallMemberLambdaQueryWrapper);
        if(CollUtil.isNotEmpty(mallMembers)){
            mallMembers.forEach(
                    item -> {
                        mallMemberMapper.updateVipLevelTimeAndLevel(item.getId(),item.getVipLevelTime(),item.getLevel());
                    }
            );
        }
    }
}