3 Revīzijas 0bc1f1d328 ... d7948cdfca

Autors SHA1 Ziņojums Datums
  云殇忆 d7948cdfca 1.广告管理-明细-返回数据添加广告图片字段 1 gadu atpakaļ
  JensionDzero 8588605147 修改bug 1 gadu atpakaļ
  JensionDzero 85ffdfd4bf 合并 1 gadu atpakaļ

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -164,7 +164,7 @@ mybatis-plus:
     # 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl
     # 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl
     # 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
-    logImpl: org.apache.ibatis.logging.stdout.StdOutImpl
+    logImpl: org.apache.ibatis.logging.slf4j.Slf4jImpl
 #  global-config:
 #    # 是否打印 Logo banner
 #    banner: true

+ 17 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PlanController.java

@@ -60,6 +60,23 @@ public class PlanController {
     public R planDetail(@PathVariable String planId){
         return R.ok(planService.getPlanDetail(planId));
     }
+    /**
+     * 修改广告计划时间段
+     * @param bo
+     * @return
+     */
+    @SaCheckPermission("szzs:planManage:update")
+    @PutMapping("/update/time")
+    public R planUpdateTime(PlanBo bo){
+        if (bo.getPlanId() == null)
+            return R.fail("广告id不能为空");
+        int i = planService.updateTime(bo);
+        if (i == 1)
+            return R.ok("修改成功");
+        if (i == -1)
+            return R.fail("无效广告id");
+        return R.fail("修改失败");
+    }
     /**
      * 投放广告计划
      * @param equipmentCode 设备编号

+ 2 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/vo/PlanDetailVo.java

@@ -14,6 +14,7 @@ public class PlanDetailVo {
     private String planId;
     private String planName;
     private String goodsName;
+    private String goodsImg;
     private String goodsLogo;
     private String appName;
     private String principalName;
@@ -32,6 +33,7 @@ public class PlanDetailVo {
         this.planId = plan.getPlanId();
         this.planName = plan.getPlanName();
         this.goodsName = plan.getGoodsName();
+        this.goodsImg = plan.getGoodsImg();
         this.goodsLogo = plan.getGoodsLogo();
         this.appName = plan.getAppName();
         this.principalName = plan.getPrincipalName();

+ 2 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/PlanService.java

@@ -29,6 +29,8 @@ public interface PlanService {
 
     PlanDetailVo getPlanDetail(String planId);
 
+    int updateTime(PlanBo bo);
+
     List<PlanPushVo> getPlanPush(String equipmentId);
 
     List<PlanPushVo> getPlanPushByCode(String equipmentCode);

+ 9 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/EquipmentServiceImpl.java

@@ -204,9 +204,18 @@ public class EquipmentServiceImpl implements EquipmentService {
         queryWrapper.and(planItemBoQueryWrapper -> {
             planItemBoQueryWrapper.eq("dl_plan_item.deleted", 0);
         });
+        queryWrapper.and(planItemBoQueryWrapper -> {
+            planItemBoQueryWrapper.eq("dl_plan.state", 1);
+        });
+        queryWrapper.and(planItemBoQueryWrapper -> {
+            planItemBoQueryWrapper.eq("dl_plan.on_state", 1);
+        });
         queryWrapper.and(planItemBoQueryWrapper -> {
             planItemBoQueryWrapper.gt("plan_end_time", DateUtil.date());
         });
+        queryWrapper.and(planItemBoQueryWrapper -> {
+            planItemBoQueryWrapper.apply("dl_plan.plan_id = dl_plan_item.plan_id");
+        });
         Integer count = planItemMapper.getEuipmentPlanCont(queryWrapper);
         if (count > 0) {
             return R.fail("设备下存在广告计划,请移除广告后在删除设备");

+ 32 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PlanServiceImpl.java

@@ -229,6 +229,38 @@ public class PlanServiceImpl implements PlanService {
         return vo;
     }
 
+    @Override
+    public int updateTime(PlanBo bo) {
+        Plan plan = planMapper.selectOne(new QueryWrapper<Plan>()
+            .eq("plan_id", bo.getPlanId())
+            .eq("deleted", "0"));
+        if (plan == null)
+            return -1; // 无效广告id
+        // 判断所修改的时间是否存在和合理
+        if (bo.getStartTime() == null && bo.getEndTime() != null) { // 只修改结束时间
+            if (plan.getPlanStartTime().compareTo(bo.getEndTime()) > 0) { // 原开始时间大于现修改结束时间
+                // 调换开始时间与结束时间位置
+                plan.setPlanEndTime(plan.getPlanStartTime());
+                plan.setPlanStartTime(bo.getEndTime());
+            } else {
+                plan.setPlanEndTime(bo.getEndTime());
+            }
+        } else if (bo.getStartTime() != null && bo.getEndTime() == null) { // 只修改开始时间
+            if (plan.getPlanEndTime().compareTo(bo.getStartTime()) < 0) { // 原结束时间小于现修改开始时间
+                // 调换开始时间与结束时间位置
+                plan.setPlanStartTime(plan.getPlanEndTime());
+                plan.setPlanEndTime(bo.getStartTime());
+            } else {
+                plan.setPlanStartTime(bo.getStartTime());
+            }
+        } else if (bo.getStartTime() != null && bo.getEndTime() != null) { // 两者皆修改
+            plan.setPlanStartTime(bo.getStartTime());
+            plan.setPlanEndTime(bo.getEndTime());
+        } else
+            return 1; // 两者皆无
+        return planMapper.updateById(plan);
+    }
+
     @Override
     public List<PlanPushVo> getPlanPush(String equipmentId) {
 //        根据设备id查询可投放的广告计划