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