|
|
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateField;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.mapper.*;
|
|
|
import com.cyksj.model.dto.WxMpTemplateData;
|
|
|
@@ -15,6 +16,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
@@ -46,11 +48,16 @@ public class Scheduler {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 统计前一天数据
|
|
|
+ * 每5分钟清理过期账号
|
|
|
*/
|
|
|
- //@Scheduled(cron = "0 0 0 * * ?")
|
|
|
- public void statics() {
|
|
|
-
|
|
|
+ @Scheduled(cron = "0 0/5 * * * ?")
|
|
|
+ @Transactional(rollbackFor = Throwable.class)
|
|
|
+ public void clearExpiry() {
|
|
|
+ DateTime now = new DateTime();
|
|
|
+ List<GroupsRelation> expiryList = groupsRelationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class).le(GroupsRelation::getExpiryTime, now));
|
|
|
+ log.info("定时清理过期账号start ===> 数量:{}", expiryList.size());
|
|
|
+ //过期账号清楚有效期
|
|
|
+ expiryList.forEach(relation -> delRelation(relation));
|
|
|
}
|
|
|
|
|
|
@Scheduled(cron = "0 0 9 * * ?")
|
|
|
@@ -111,6 +118,25 @@ public class Scheduler {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private void delRelation(GroupsRelation relation) {
|
|
|
+ Date expireTime = relation.getExpiryTime();
|
|
|
+ relation.setStartTime(null);
|
|
|
+ relation.setExpiryTime(null);
|
|
|
+ relation.setUserId(0l);
|
|
|
+ relation.setStatus(GroupsRelation.Status.none);
|
|
|
+ relation.setIsHandle(false);
|
|
|
+ relation.setRenewStatus(false);
|
|
|
+ Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
|
|
|
+ if (success == 1) {
|
|
|
+ log.info("开始清除过期子账号,座位号:{}", relation.getId());
|
|
|
+ int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
|
|
|
+ if (count == 0) {
|
|
|
+ log.error("车位异常 groupId:{}", relation.getGroupsId());
|
|
|
+ throw new BusinessRuntimeException("车位异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 定时关闭订单
|