package com.matrix.system.score.scheduledJob; import cn.hutool.core.date.DateTime; import com.matrix.core.tools.LogUtil; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.score.dao.ScoreUseRecordDao; import com.matrix.system.score.dao.ScoreVipDetailDao; import com.matrix.system.score.entity.ScoreUseRecord; import com.matrix.system.score.entity.ScoreVipDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; /** * 用户积分相关定时任务 * * @author jyy */ @Component public class ScoreScheduledJob { @Autowired ScoreVipDetailDao scoreVipDetailDao; @Autowired ScoreUseRecordDao scoreUseRecordDao; @Scheduled(cron = "1 0 0 1/1 * ?") public boolean invalidVipScore() { LogUtil.info("计算无效积分定时任务开始运行****************"); //获取所有失效的积分,生成失效记录 List invalidavipScoreList = scoreVipDetailDao.selectInvalidaVipScore(); for (ScoreVipDetail scoreVipDetail : invalidavipScoreList) { ScoreUseRecord scoreUseRecord=new ScoreUseRecord(); scoreUseRecord.setCreateBy(AppConstance.SYSTEM_USER); scoreUseRecord.setUpdateBy(AppConstance.SYSTEM_USER); scoreUseRecord.setCreateTime(DateTime.now()); scoreUseRecord.setUpdateTime(DateTime.now()); scoreUseRecord.setNowScore(0); scoreUseRecord.setCompanyId(scoreVipDetail.getCompanyId()); scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(0L); scoreUseRecord.setRecNum(-scoreVipDetail.getRemainScore()); scoreUseRecord.setType(ScoreVipDetail.SCORE_OVER_TIME); scoreUseRecord.setVipId(scoreVipDetail.getVipId()); scoreUseRecord.setPreScore(scoreVipDetail.getRemainScore()); scoreUseRecord.setRemarks("积分失效"); scoreUseRecordDao.insert(scoreUseRecord); } //更新失效积分记录状态 scoreVipDetailDao.invalidVipScore(); LogUtil.info("计算无效积分定时任务结束*******************"); return true; } }