| 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<ScoreVipDetail>  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; | 
|     } | 
|   | 
|   | 
| } |