From b63079723d7a5fdc5660ba7064a9306ce35f0f3d Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期六, 07 五月 2022 17:49:04 +0800
Subject: [PATCH] Changes
---
dao/src/main/resources/mapper/PlayPlanNvMapper.xml | 2
dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java | 4
ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java | 19 +---
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java | 7 +
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java | 21 +++-
ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/ProgramSchedule.java | 23 +++++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java | 119 ++++++++++++++++++++++++-----
dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java | 2
9 files changed, 148 insertions(+), 51 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java
index 6758481..80924c1 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java
@@ -102,13 +102,13 @@
private String endTime;
/**
- * 瀹氭椂schedule瀹炰綋
+ * 鑺傜洰鐢╯chedules瀹炰綋
*/
@JsonIgnore
private String schedule;
/**
- * 鑺傜洰鐢╯chedules瀹炰綋
+ * 瀹氭椂schedule瀹炰綋
*/
@JsonIgnore
private String schedules;
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java
index 65aad29..d5e3ee0 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java
@@ -13,6 +13,6 @@
@Data
public class PushToLed implements Serializable {
- private String schedules;
+ private String schedule;
private String pages;
}
diff --git a/dao/src/main/resources/mapper/PlayPlanNvMapper.xml b/dao/src/main/resources/mapper/PlayPlanNvMapper.xml
index c680eee..07ef404 100644
--- a/dao/src/main/resources/mapper/PlayPlanNvMapper.xml
+++ b/dao/src/main/resources/mapper/PlayPlanNvMapper.xml
@@ -36,7 +36,7 @@
<select id="pushToLed" resultType="com.sandu.ximon.dao.domain.PushToLed" parameterType="java.lang.Long">
SELECT
- t1.SCHEDULEs,
+ t1.SCHEDULE,
t2.pages
FROM
play_plan_nv t1
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
index 0cce77d..3189a6e 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
@@ -13,9 +13,7 @@
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.service.PlayPlanNvService;
import com.sandu.ximon.admin.vo.NovaPushResultVO;
-import com.sandu.ximon.dao.bo.SchedulesDTO;
import com.sandu.ximon.dao.domain.PlayPlanNv;
-import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -34,11 +32,13 @@
private final PlayPlanNvService playPlanNvService;
private PermissionConfig permissionConfig;
+ @AnonymousAccess
@PostMapping("/add")
public ResponseVO<Object> addLEDPlan(@RequestBody @Validated PlayPlanParam param) {
return ResponseUtil.success(playPlanNvService.addPlan(param));
}
+ @AnonymousAccess
@GetMapping("/getByPlanId/{planId}")
public ResponseVO<Object> getPlan(@PathVariable Long planId) {
return ResponseUtil.success(playPlanNvService.getByPlanId(planId));
@@ -60,11 +60,19 @@
return ResponseUtil.success(playPlanNvService.pushToLed(plianId, playerIds));
}
+
+ @AnonymousAccess
+ @PostMapping(value = "/pushSchedule/{plianId}", produces = "application/json;charset=UTF-8")
+ public ResponseVO<Object> pushSchedule(@PathVariable Long plianId, @RequestBody List<NovaPushResultVO> playerIds) {
+ return ResponseUtil.success(playPlanNvService.pushSchedule(plianId, playerIds));
+ }
+
+ @AnonymousAccess
@GetMapping("/listPlan")
public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
- if (!permissionConfig.check(MenuEnum.PLAYPLAN_LIST.getCode())) {
- return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
- }
+// if (!permissionConfig.check(MenuEnum.PLAYPLAN_LIST.getCode())) {
+// return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+// }
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
LambdaQueryWrapper<PlayPlanNv> wrapper = Wrappers.lambdaQuery(PlayPlanNv.class);
@@ -79,7 +87,8 @@
List<PlayPlanNv> list = playPlanNvService.list(wrapper);
list.forEach(plan -> {
// plan.setPlan(JSON.parseObject(plan.getSchedule(), Map.class));
- plan.setPlan(JSON.parseArray(plan.getSchedule(), SchedulesDTO.class));
+ plan.setPlan(JSON.parseObject(plan.getSchedules(), List.class));
+// plan.setPlan(JSON.parseArray(plan.getSchedule(), SchedulesDTO.class));
});
return ResponseUtil.successPage(list);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java
index 3c35399..1d2e448 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java
@@ -16,7 +16,7 @@
// 闇�瑕佸鐞嗙殑鎾斁鍣↖D闆嗗悎,鏈�澶氭敮鎸�100涓挱鏀惧櫒鍚屾椂澶勭悊
private List<String> playerIds;
// 鎾斁鏃堕棿鎺掓湡锛屽鏋滀负绌猴紝浼氬叏澶�24灏忔椂寰幆鎾斁
- private Map schedules;
+ private Map schedule;
// 闇�瑕佹挱鏀剧殑椤甸潰鍐呭闆嗗悎
private List<Map<String,Object>> pages ;
// 鑺傜洰涓嬭浇杩涘害閫氱煡鎺ュ彛锛屼細閫氳繃姝ゆ帴鍙e皢鑺傜洰鐨勪笅杞借繘搴﹀彂缁欏鎴凤紝鎺ュ彛鐨勫搷搴旀椂闂翠笉鑳借秴杩�3s
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/ProgramSchedule.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/ProgramSchedule.java
new file mode 100644
index 0000000..52d4064
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/ProgramSchedule.java
@@ -0,0 +1,23 @@
+package com.sandu.ximon.admin.dto.nova;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import com.sandu.ximon.admin.dto.SchedulesDTO;
+import com.sandu.ximon.admin.utils.request.VnnoxRequest;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProgramSchedule implements VnnoxRequest {
+
+ // 闇�瑕佸鐞嗙殑鎾斁鍣↖D闆嗗悎,鏈�澶氭敮鎸�100涓挱鏀惧櫒鍚屾椂澶勭悊
+ private List<String> playerIds;
+
+ // 鎾斁鏃堕棿鎺掓湡锛屽鏋滀负绌猴紝浼氬叏澶�24灏忔椂寰幆鎾斁
+ private List<SchedulesDTO> schedules;
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java
index dcd762e..9f27f38 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java
@@ -1,8 +1,6 @@
package com.sandu.ximon.admin.entity;
-import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
-import lombok.NoArgsConstructor;
import java.util.List;
@@ -11,19 +9,10 @@
* @Date 2022/04/22
* @Version 1.0
*/
-@NoArgsConstructor
@Data
public class Plans {
-// private String endDate;
-// private List<PlansDTO> plans;
-// private String startDate;
-//
-// @NoArgsConstructor
-// @Data
-// public static class PlansDTO {
-// private List<Integer> weekDays;
-// private String startTime;
-// private String endTime;
-//
-// }
+
+ private List<Integer> weekDays;
+ private String startTime;
+ private String endTime;
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java
index 94f8bbd..e23b57f 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java
@@ -1,5 +1,7 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.execption.BusinessException;
@@ -7,12 +9,13 @@
import com.sandu.ximon.admin.config.VnnoxConstant;
import com.sandu.ximon.admin.dto.PlanDto;
import com.sandu.ximon.admin.dto.SchedulesDTO;
+import com.sandu.ximon.admin.dto.nova.PlayerProgram;
+import com.sandu.ximon.admin.dto.nova.ProgramSchedule;
+import com.sandu.ximon.admin.entity.Plans;
import com.sandu.ximon.admin.param.PlayPlanParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
import com.sandu.ximon.admin.utils.VnnoxProgramAPIUtil;
-import com.sandu.ximon.admin.dto.nova.PlayerProgram;
-import com.sandu.ximon.admin.utils.response.VnnoxResult;
import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
import com.sandu.ximon.admin.vo.NovaOpenVO;
import com.sandu.ximon.admin.vo.NovaPushResultVO;
@@ -70,21 +73,15 @@
String s = JSON.toJSONString(schedule.get("plans"));
List<PlanDto> plans = JSON.parseArray(s, PlanDto.class);
- System.out.println(plans.toString()+"plans");
+ System.out.println(plans.toString() + "plans");
// List<PlanDto> plans = (List<PlanDto>) schedule.get("plans");
List<SchedulesDTO> schedulesDTOS = new ArrayList<>();
for (int i = 0; i < plans.size(); i++) {
SchedulesDTO openDto = new SchedulesDTO();
-// if (i % 2 == 0) {
-// schedulesDTO.setExecTime(plans.get(i).getStartTime());
-// schedulesDTO.setStatus("OPEN");
-// } else {
-// schedulesDTO.setWeekDays(plans.get(i).getWeekDays());
-// schedulesDTO.setExecTime(plans.get(i).getEndTime());
-// schedulesDTO.setStatus("CLOSE");
-// }
+
+
SchedulesDTO closeDto = new SchedulesDTO();
@@ -92,6 +89,19 @@
openDto.setEndDate(schedule.get("endDate").toString());
openDto.setExecTime(plans.get(i).getStartTime());
openDto.setStatus("OPEN");
+
+ /**
+ * 鍒ゆ柇鏃堕棿鐨勫厛鍚�
+ */
+ String startTime = openDto.getStartDate()+" " +plans.get(i).getStartTime();
+ String endTime =openDto.getEndDate()+ " " +plans.get(i).getEndTime();
+
+ //杞崲鎴愭椂闂存埑
+ long startTimeStamp = DateUtil.parse(startTime, DatePattern.NORM_DATETIME_PATTERN).getTime();
+ long endTimeStamp = DateUtil.parse(endTime, DatePattern.NORM_DATETIME_PATTERN).getTime();
+ if(startTimeStamp>endTimeStamp){
+ throw new BusinessException("寮�濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂�");
+ }
closeDto.setStartDate(schedule.get("startDate").toString());
closeDto.setEndDate(schedule.get("endDate").toString());
@@ -119,7 +129,7 @@
if (byId == null) {
throw new BusinessException("鎿嶄綔瀵硅薄涓嶅瓨鍦�");
}
- if(removeById(id)){
+ if (removeById(id)) {
return addPlan(playPlanParam);
}
@@ -144,23 +154,35 @@
if (pushToLed == null) {
throw new BusinessException("鏈壘鍒拌鎾斁璁″垝");
}
- List<String> playerIds=new ArrayList<>();
+ List<String> playerIds = new ArrayList<>();
nova.forEach(
- n->{
+ n -> {
playerIds.add(n.getPlayerId());
}
);
PlayerProgram program = new PlayerProgram();
program.setPlayerIds(playerIds);
- System.out.println(pushToLed.getPages());
//鑾峰彇鑺傜洰瀹炰綋
program.setPages(JSON.parseObject(pushToLed.getPages(), List.class));
//鑾峰彇鑺傜洰瀹氭椂瀹炰綋
- program.setSchedules((JSON.parseObject(pushToLed.getSchedules(), Map.class)));
+ program.setSchedule((JSON.parseObject(pushToLed.getSchedule(), Map.class)));
+ Map map = JSON.parseObject(pushToLed.getSchedule(), Map.class);
+ map.get("plans");
+ List<Plans> plans = JSON.parseArray(map.get("plans").toString(), Plans.class);
+ plans.forEach(
+ p -> {
+ //鍒犻櫎鍚庝袱浣嶅瓧绗︿覆
+ p.setStartTime(p.getStartTime().substring(0, p.getStartTime().length() - 3));
+ p.setEndTime(p.getEndTime().substring(0, p.getEndTime().length() - 3));
+ }
+ );
+ System.out.println(plans + "plans11111");
+ map.put("plans", plans);
+ program.setSchedule(map);
//鑾峰彇瀹氭椂寮�鍏冲睆骞�
// program.setSchedules((JSON.parseArray(pushToLed.getSchedule(), SchedulesDTO.class)));
@@ -170,7 +192,7 @@
program.setNoticeUrl(VnnoxConstant.NOTIFY_URL);
// VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.timeProgram(program);
VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.normalProgram(program);
- VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(playerIds, Integer.valueOf(one.getVolume()).intValue());
+ vnnoxAPIUtil.volChange(playerIds, Integer.valueOf(one.getVolume()).intValue());
List<String> success = new ArrayList<>();
List<String> fail = new ArrayList<>();
@@ -179,17 +201,17 @@
fail = vnnoxResultResponse.getData().getFail();
}
- // fail.addAll(vnnoxResult.getFail());
+ //鎷兼帴鎴愬姛澶辫触鐨勭粨鏋�
Map<String, Object> result = new HashMap<>();
List<NovaPushResultVO> successList = new ArrayList<>();
List<NovaPushResultVO> faileList = new ArrayList<>();
List<String> finalSuccess = success;
List<String> finalFail = fail;
nova.forEach(
- n->{
- if(finalSuccess.contains(n.getPlayerId())){
+ n -> {
+ if (finalSuccess.contains(n.getPlayerId())) {
successList.add(n);
- }else if(finalFail.contains(n.getPlayerId())){
+ } else if (finalFail.contains(n.getPlayerId())) {
faileList.add(n);
}
}
@@ -201,6 +223,51 @@
return result;
// return program;
+ }
+
+
+ //鎺ㄩ�佸畾鏃跺埌LED
+ public Map<String, Object> pushSchedule(Long planId, List<NovaPushResultVO> nova) {
+ PlayPlanNv one = getOne(Wrappers.lambdaQuery(PlayPlanNv.class).eq(PlayPlanNv::getId, planId));
+ List<SchedulesDTO> schedulesDTOS = JSON.parseArray(one.getSchedules(), SchedulesDTO.class);
+ ProgramSchedule programSchedule = new ProgramSchedule();
+ programSchedule.setSchedules(schedulesDTOS);
+ List<String> playerIds = new ArrayList<>();
+ nova.forEach(
+ n -> {
+ playerIds.add(n.getPlayerId());
+ }
+ );
+ //璁剧疆
+ programSchedule.setPlayerIds(playerIds);
+ VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.timeProgram(programSchedule);
+ List<String> success = new ArrayList<>();
+ List<String> fail = new ArrayList<>();
+ if (vnnoxResultResponse.getData() != null) {
+ success = vnnoxResultResponse.getData().getSuccess();
+ fail = vnnoxResultResponse.getData().getFail();
+ }
+
+ //鎷兼帴鎴愬姛澶辫触鐨勭粨鏋�
+ Map<String, Object> result = new HashMap<>();
+ List<NovaPushResultVO> successList = new ArrayList<>();
+ List<NovaPushResultVO> faileList = new ArrayList<>();
+ List<String> finalSuccess = success;
+ List<String> finalFail = fail;
+ nova.forEach(
+ n -> {
+ if (finalSuccess.contains(n.getPlayerId())) {
+ successList.add(n);
+ } else if (finalFail.contains(n.getPlayerId())) {
+ faileList.add(n);
+ }
+ }
+
+ );
+
+ result.put("success", successList);
+ result.put("fail", faileList);
+ return result;
}
/**
@@ -231,6 +298,12 @@
return null;
}
+ /**
+ * 鑾峰彇鎾斁璁″垝
+ *
+ * @param planId
+ * @return
+ */
public Object getByPlanId(Long planId) {
PlayPlanNv byId = getById(planId);
if (byId == null) {
@@ -240,7 +313,8 @@
if (byId1 == null) {
throw new BusinessException("鎵句笉鍒拌鑺傜洰");
}
- List schedule = JSON.parseObject(byId.getSchedule(), List.class);
+ List schedule = JSON.parseObject(byId.getSchedules(), List.class);
+ Map schedules = JSON.parseObject(byId.getSchedule(), Map.class);
List pages = JSON.parseObject(byId1.getPages(), List.class);
Map plan = new HashMap();
plan.put("planId", byId.getId());
@@ -251,6 +325,7 @@
plan.put("preview", byId1.getPreview());
plan.put("pages", pages);
plan.put("schedule", schedule);
+ plan.put("schedules", schedules);
return plan;
}
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
index b76aa07..51dd4d0 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.sandu.ximon.admin.config.VnnoxUrl;
import com.sandu.ximon.admin.dto.nova.AirDataProgram;
+import com.sandu.ximon.admin.dto.nova.ProgramSchedule;
import com.sandu.ximon.admin.utils.request.CommonHeader;
import com.sandu.ximon.admin.dto.nova.PlayerProgram;
import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
@@ -48,7 +49,7 @@
new CommonHeader(CommonHeader.JSON, true)
);
System.out.println(program.toJson());
- LogUtils.error("鑺傜洰鎾斁response:"+result);
+ LogUtils.error("鏅�氳妭鐩挱鏀緍esponse:"+result);
return JSON.parseObject(result,VnnoxResultResponse.class);
}
@@ -57,13 +58,13 @@
* @param program
* @return
*/
- public VnnoxResultResponse timeProgram(PlayerProgram program) {
+ public VnnoxResultResponse timeProgram(ProgramSchedule program) {
String result = VnnoxRequestUtil.PostWithHeader(
VnnoxUrl.getUrl(VnnoxUrl.TIMING_CONTROL),
program.toJson(),
new CommonHeader(CommonHeader.JSON, true)
);
- LogUtils.error("瀹氭椂鑺傜洰鎾斁response:"+result);
+ LogUtils.error("瀹氭椂浠诲姟response:"+result);
return JSON.parseObject(result,VnnoxResultResponse.class);
}
--
Gitblit v1.9.3