| dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/domain/PushToLed.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/resources/mapper/PlayPlanNvMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/ProgramSchedule.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlanNv.java
@@ -102,13 +102,13 @@ private String endTime; /** * 宿¶scheduleå®ä½ * èç®ç¨scheduleså®ä½ */ @JsonIgnore private String schedule; /** * èç®ç¨scheduleså®ä½ * 宿¶scheduleå®ä½ */ @JsonIgnore private String schedules; 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; } 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 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); } ximon-admin/src/main/java/com/sandu/ximon/admin/dto/nova/PlayerProgram.java
@@ -16,7 +16,7 @@ // éè¦å¤ççææ¾å¨IDéå,æå¤æ¯æ100ä¸ªææ¾å¨åæ¶å¤ç private List<String> playerIds; // ææ¾æ¶é´ææï¼å¦æä¸ºç©ºï¼ä¼å ¨å¤©24å°æ¶å¾ªç¯ææ¾ private Map schedules; private Map schedule; // éè¦ææ¾ç页é¢å 容éå private List<Map<String,Object>> pages ; // èç®ä¸è½½è¿åº¦éç¥æ¥å£ï¼ä¼éè¿æ¤æ¥å£å°èç®çä¸è½½è¿åº¦åç»å®¢æ·ï¼æ¥å£çååºæ¶é´ä¸è½è¶ è¿3s 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 { // éè¦å¤ççææ¾å¨IDéå,æå¤æ¯æ100ä¸ªææ¾å¨åæ¶å¤ç private List<String> playerIds; // ææ¾æ¶é´ææï¼å¦æä¸ºç©ºï¼ä¼å ¨å¤©24å°æ¶å¾ªç¯ææ¾ private List<SchedulesDTO> schedules; @Override public String toJson() { return VnnoxConstant.GSON.toJson(this); } } 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; } 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; } } 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("æ®éèç®ææ¾response:"+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); }