Commit ea975173 authored by xuxin's avatar xuxin

将已经过期的ip 的 isDeleted 状态设置为 true

parent db62d2f3
......@@ -25,7 +25,7 @@ public interface IpResourceRepositoryCustom {
boolean deleteShopId(String ipId, String shopId, BindHistory bindHistory);
boolean updateStatus(String id, int status);
boolean updateStatus(String id, int status, Object... args);
boolean updateBind(String id, boolean isbind);
......
......@@ -131,10 +131,16 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
}
@Override
public boolean updateStatus(String id, int status) {
public boolean updateStatus(String id, int status, Object... args) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("id").is(id).and("isDeleted").is(false));
if (args.length == 0) {
basicQuery.addCriteria(where("id").is(id).and("isDeleted").is(false));
}
if (args.length == 1) {
basicQuery.addCriteria(where("id").is(id).and("isDeleted").is(true));
}
Update update = new Update();
update.set("status", status);
UpdateResult result = mongoTemplate.updateFirst(basicQuery, update, IpResource.class);
......
......@@ -693,7 +693,8 @@ public class IpResourceServiceImpl implements IpResourceService {
// 1.4 ip资源到期,且 ip 资源的状态不是 3(正在分配)、6(未分配),则设置 ip 资源的状态为 1(已过期)
} else if (x.getValidTime() <= Instant.now().toEpochMilli() && x.getStatus() != 3 && x.getStatus() != 6) {
ipResourceRepository.updateStatus(x.getId(), 1);
// 这个地方可变参数随便传啥都行
ipResourceRepository.updateStatus(x.getId(), 1, true);
// 1.5 其他
} else {
......
......@@ -489,6 +489,7 @@ public class ShopServiceImpl implements ShopService {
// 3. ip资源到期,且 ip 资源的状态不是 3(正在分配)、6(未分配),则设置 ip 资源的状态为 1(已过期)
} else if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
ipResource.setStatus(1);
ipResource.setDeleted(true);
ipResourceRepository.save(ipResource);
// 4. 其他,将ip资源状态设置为 未使用
......
......@@ -87,6 +87,7 @@ public class PromotionTask {
log.info("End scheduled task:Scheduled.countGift...");
}
// @SchedulerLock:标识使用分布式锁。name:用来标注一个定时服务的名字,被用于写入数据库作为区分不同服务的标识
@SchedulerLock(name = "countCommission", lockAtLeastForString = "PT1H", lockAtMostForString = "PT2H")
@Scheduled(cron = "0 0 3 * * ?")
public void countCommission() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment