|
|
@@ -84,6 +84,18 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
|
|
|
homeManagementConfig.setType(config.getType());
|
|
|
this.saveOrUpdate(homeManagementConfig);
|
|
|
});
|
|
|
+
|
|
|
+ //定时上下架
|
|
|
+ Long time = config.getTime();
|
|
|
+ Long endTime = config.getEndTime();
|
|
|
+ if (time != null && endTime != null) {
|
|
|
+ HomeConfigTimingReq homeConfigTimingReq = new HomeConfigTimingReq();
|
|
|
+ homeConfigTimingReq.setId(homeConfigTimingReq.getId());
|
|
|
+ homeConfigTimingReq.setTime(time);
|
|
|
+ homeConfigTimingReq.setEndTime(endTime);
|
|
|
+ homeConfigTimingReq.setPreStatus(true);
|
|
|
+ timingUpdateStatus(homeConfigTimingReq);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -105,26 +117,33 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
|
|
|
}
|
|
|
Boolean preStatus = Optional.ofNullable(req.getPreStatus()).orElse(false);
|
|
|
//上架状态
|
|
|
- if (config.getStatus() && preStatus) {
|
|
|
- throw BusinessRuntimeException.getInstance("该首页配置已上架,只能定时下架..");
|
|
|
- }
|
|
|
+// if (config.getStatus() && preStatus) {
|
|
|
+// throw BusinessRuntimeException.getInstance("该首页配置已上架,只能定时下架..");
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (!config.getStatus() && !preStatus) {
|
|
|
+// throw BusinessRuntimeException.getInstance("该首页配置已下架,只能定时上架..");
|
|
|
+// }
|
|
|
|
|
|
- if (!config.getStatus() && !preStatus) {
|
|
|
- throw BusinessRuntimeException.getInstance("该首页配置已下架,只能定时上架..");
|
|
|
- }
|
|
|
+ //删除之前设置的定时任务
|
|
|
+ cancelTimingJob(List.of(id));
|
|
|
|
|
|
Long time = req.getTime();
|
|
|
+ Long endTime = req.getEndTime();
|
|
|
Long nowMills = System.currentTimeMillis();
|
|
|
|
|
|
//直接将配置改为对应 定时上下架状态
|
|
|
Boolean timingJob = true;
|
|
|
+ config.setTime(time);
|
|
|
+ config.setEndTime(endTime);
|
|
|
if (time <= nowMills) {
|
|
|
- config.setStatus(preStatus);
|
|
|
- config.setTime(null);
|
|
|
+ //配置上下架状态
|
|
|
+ config.setStatus(true);
|
|
|
config.setPreStatus(null);
|
|
|
- timingJob = false;
|
|
|
+// timingJob = false;
|
|
|
} else {
|
|
|
- config.setTime(time);
|
|
|
+ //配置上下架状态
|
|
|
+ config.setStatus(false);
|
|
|
config.setPreStatus(preStatus);
|
|
|
}
|
|
|
this.updateById(config);
|
|
|
@@ -133,16 +152,10 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
|
|
|
cancelTimingJob(List.of(id));
|
|
|
|
|
|
if (timingJob) {
|
|
|
- SysFuncTimingShelf timingShelf = new SysFuncTimingShelf();
|
|
|
-
|
|
|
- timingShelf.setTime(time);
|
|
|
- timingShelf.setTimeStr(DateTime.of(time).toString());
|
|
|
- timingShelf.setPreStatus(preStatus);
|
|
|
- timingShelf.setFuncId(id);
|
|
|
- timingShelf.setType(SysFuncTimingShelf.Type.hc.name());
|
|
|
- sysFuncTimingShelfService.save(timingShelf);
|
|
|
-
|
|
|
- sysFuncTimingShelfService.addTimingJob(SysFuncTimingShelf.Type.hc.name(), id, timingShelf.getPreStatus(), time, nowMills);
|
|
|
+ //定时上架
|
|
|
+ timeUpateStatus(id, time, true, nowMills);
|
|
|
+ //定时下架
|
|
|
+ timeUpateStatus(id, endTime, false, nowMills);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -158,6 +171,7 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
|
|
|
|
|
|
if (config.getTime() != null) {
|
|
|
config.setTime(null);
|
|
|
+ config.setEndTime(null);
|
|
|
config.setPreStatus(null);
|
|
|
this.updateById(config);
|
|
|
}
|
|
|
@@ -183,4 +197,16 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
|
|
|
log.info("将之前设置的同配置下{},ids:{}的定时上下架删除", SysFuncTimingShelf.Type.hc.getDesc(), ids.toString());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void timeUpateStatus(Long id, Long time, boolean preStatus, Long nowMills) {
|
|
|
+ SysFuncTimingShelf timingShelf = new SysFuncTimingShelf();
|
|
|
+ timingShelf.setTime(time);
|
|
|
+ timingShelf.setTimeStr(DateTime.of(time).toString());
|
|
|
+ timingShelf.setPreStatus(preStatus);
|
|
|
+ timingShelf.setFuncId(id);
|
|
|
+ timingShelf.setType(SysFuncTimingShelf.Type.hc.name());
|
|
|
+ sysFuncTimingShelfService.save(timingShelf);
|
|
|
+
|
|
|
+ sysFuncTimingShelfService.addTimingJob(SysFuncTimingShelf.Type.hc.name(), id, timingShelf.getPreStatus(), time, nowMills);
|
|
|
+ }
|
|
|
}
|