Browse Source

广告定时上下架

zoujiajian 1 năm trước cách đây
mục cha
commit
aeac514de2

+ 7 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfig.java

@@ -40,11 +40,17 @@ public class HomeManagementConfig extends BaseEntity{
 	private Boolean preStatus;
 	private Boolean preStatus;
 
 
 	/**
 	/**
-	 * 定时上架时间
+	 * 定时上架时间
 	 */
 	 */
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long time;
 	private Long time;
 
 
+	/**
+	 * 定时下架时间
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Long endTime;
+
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private AdType adType;
 	private AdType adType;
 
 

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/request/HomeConfigTimingReq.java

@@ -24,4 +24,7 @@ public class HomeConfigTimingReq {
 
 
 	@NotNull(message = "定时上下架时间不为空")
 	@NotNull(message = "定时上下架时间不为空")
 	private Long time;
 	private Long time;
+
+	@NotNull(message = "定时上下架时间不为空")
+	private Long endTime;
 }
 }

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/request/HomeManageConfigReq.java

@@ -69,4 +69,14 @@ public class HomeManageConfigReq {
 	private String jumpSpecVal;
 	private String jumpSpecVal;
 
 
 	private Boolean status;
 	private Boolean status;
+
+	/**
+	 * 定时上架时间
+	 */
+	private Long time;
+
+	/**
+	 * 定时下架时间
+	 */
+	private Long endTime;
 }
 }

+ 1 - 2
netflix-dao/src/main/java/com/cyksj/model/views/CustomerConsultationStatisticsDataView.java

@@ -14,8 +14,7 @@ import lombok.Setter;
 @Getter
 @Getter
 @Setter
 @Setter
 @SearchBean(tables = "customer_consultation_record ccr left join goods_don g on g.id = ccr.goods_id",
 @SearchBean(tables = "customer_consultation_record ccr left join goods_don g on g.id = ccr.goods_id",
-		where = ":time:",
-		groupBy = "ccr.type,ccr.category_name,g.title")
+		where = ":time:")
 public class CustomerConsultationStatisticsDataView {
 public class CustomerConsultationStatisticsDataView {
 	@DbField("ccr.type")
 	@DbField("ccr.type")
 	private Integer type;
 	private Integer type;

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementConfigView.java

@@ -75,6 +75,10 @@ public class HomeManagementConfigView {
 	@DbField("hc.time")
 	@DbField("hc.time")
 	private Long time;
 	private Long time;
 
 
+
+	@DbField("hc.end_time")
+	private Long endTime;
+
 	/**
 	/**
 	 * 跳转类型 1.商品 2链接
 	 * 跳转类型 1.商品 2链接
 	 */
 	 */

+ 46 - 20
netflix-service/src/main/java/com/cyksj/service/home/impl/HomeManagementConfigServiceImpl.java

@@ -84,6 +84,18 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
 			homeManagementConfig.setType(config.getType());
 			homeManagementConfig.setType(config.getType());
 			this.saveOrUpdate(homeManagementConfig);
 			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);
 		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 time = req.getTime();
+		Long endTime = req.getEndTime();
 		Long nowMills = System.currentTimeMillis();
 		Long nowMills = System.currentTimeMillis();
 
 
 		//直接将配置改为对应 定时上下架状态
 		//直接将配置改为对应 定时上下架状态
 		Boolean timingJob = true;
 		Boolean timingJob = true;
+		config.setTime(time);
+		config.setEndTime(endTime);
 		if (time <= nowMills) {
 		if (time <= nowMills) {
-			config.setStatus(preStatus);
-			config.setTime(null);
+			//配置上下架状态
+			config.setStatus(true);
 			config.setPreStatus(null);
 			config.setPreStatus(null);
-			timingJob = false;
+//			timingJob = false;
 		} else {
 		} else {
-			config.setTime(time);
+			//配置上下架状态
+			config.setStatus(false);
 			config.setPreStatus(preStatus);
 			config.setPreStatus(preStatus);
 		}
 		}
 		this.updateById(config);
 		this.updateById(config);
@@ -133,16 +152,10 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
 		cancelTimingJob(List.of(id));
 		cancelTimingJob(List.of(id));
 
 
 		if (timingJob) {
 		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) {
 		if (config.getTime() != null) {
 			config.setTime(null);
 			config.setTime(null);
+			config.setEndTime(null);
 			config.setPreStatus(null);
 			config.setPreStatus(null);
 			this.updateById(config);
 			this.updateById(config);
 		}
 		}
@@ -183,4 +197,16 @@ public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementC
 			log.info("将之前设置的同配置下{},ids:{}的定时上下架删除", SysFuncTimingShelf.Type.hc.getDesc(), ids.toString());
 			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);
+	}
 }
 }

+ 4 - 1
netflix-service/src/main/java/com/cyksj/service/sys/impl/SysFuncTimingShelfServiceImpl.java

@@ -77,7 +77,10 @@ public class SysFuncTimingShelfServiceImpl extends ServiceImpl<SysFuncTimingShel
 			timingShelf.setDeleted(false);
 			timingShelf.setDeleted(false);
 			this.updateById(timingShelf);
 			this.updateById(timingShelf);
 			Optional.ofNullable(homeManagementConfigMapper.selectById(funcId)).ifPresent(homeManagementConfig -> {
 			Optional.ofNullable(homeManagementConfigMapper.selectById(funcId)).ifPresent(homeManagementConfig -> {
-				homeManagementConfig.setTime(null);
+				if (!timingShelf.getPreStatus()) {
+					homeManagementConfig.setTime(null);
+					homeManagementConfig.setEndTime(null);
+				}
 				homeManagementConfig.setPreStatus(null);
 				homeManagementConfig.setPreStatus(null);
 				homeManagementConfig.setStatus(timingShelf.getPreStatus());
 				homeManagementConfig.setStatus(timingShelf.getPreStatus());
 				homeManagementConfigMapper.updateById(homeManagementConfig);
 				homeManagementConfigMapper.updateById(homeManagementConfig);

+ 2 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/home/HomeManageConfigController.java

@@ -72,6 +72,7 @@ public class HomeManageConfigController {
 		Assert.notNull(byId, "配置不存在");
 		Assert.notNull(byId, "配置不存在");
 		byId.setStatus(!byId.getStatus());
 		byId.setStatus(!byId.getStatus());
 		byId.setTime(null);
 		byId.setTime(null);
+		byId.setEndTime(null);
 		byId.setPreStatus(null);
 		byId.setPreStatus(null);
 		homeManagementConfigService.updateById(byId);
 		homeManagementConfigService.updateById(byId);
 		refreshCacheService.refreshYhHomePageCache();
 		refreshCacheService.refreshYhHomePageCache();
@@ -85,6 +86,7 @@ public class HomeManageConfigController {
 	public Result<String> batchUpdateStatus(@RequestBody List<Long> ids, @PathVariable Boolean status) {
 	public Result<String> batchUpdateStatus(@RequestBody List<Long> ids, @PathVariable Boolean status) {
 		homeManagementConfigService.update(null, Wrappers.lambdaUpdate(HomeManagementConfig.class)
 		homeManagementConfigService.update(null, Wrappers.lambdaUpdate(HomeManagementConfig.class)
 				.set(HomeManagementConfig::getTime, null)
 				.set(HomeManagementConfig::getTime, null)
+				.set(HomeManagementConfig::getEndTime, null)
 				.set(HomeManagementConfig::getPreStatus, null)
 				.set(HomeManagementConfig::getPreStatus, null)
 				.set(HomeManagementConfig::getStatus, status)
 				.set(HomeManagementConfig::getStatus, status)
 				.in(HomeManagementConfig::getId, ids));
 				.in(HomeManagementConfig::getId, ids));