dao/src/main/java/com/sandu/ximon/dao/domain/Light.java
@@ -60,6 +60,13 @@ private Integer power2; /** * æ¯å¦åå¨ç¯å¤´ 1æ¯ 0å¦ */ private Integer light1; private Integer light2; /** * å建æ¶é´ */ private LocalDateTime createTime; dao/src/main/resources/mapper/LightMapper.xml
@@ -13,6 +13,8 @@ <result property="light2Percent" column="light2_percent" jdbcType="INTEGER"/> <result property="power1" column="power1" jdbcType="INTEGER"/> <result property="power2" column="power2" jdbcType="INTEGER"/> <result property="light1" column="light1" jdbcType="INTEGER"/> <result property="light2" column="light2" jdbcType="INTEGER"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> </resultMap> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
@@ -3,7 +3,6 @@ import com.sandu.common.domain.CommonPage; import com.sandu.common.domain.ResponseVO; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.security.annotation.AnonymousAccess; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.LightControlParam; import com.sandu.ximon.admin.param.LightPowerSettingParam; @@ -16,6 +15,7 @@ import com.sandu.ximon.dao.bo.LightBo; import com.sandu.ximon.dao.bo.LightReportDataBo; import com.sandu.ximon.dao.bo.LightReportErrorBo; import com.sandu.ximon.dao.domain.LightReportData; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -162,4 +162,17 @@ boolean resule = lightService.setPower(lightPowerSettingParam); return ResponseUtil.success(resule); } /** * åç¯æ°æ®å表 */ @GetMapping("/data/list") public ResponseVO<Object> listData(BaseConditionVO conditionVO, @RequestParam(value = "deviceCode", required = false) String deviceCode) { if (!permissionConfig.check(MenuEnum.LIGHT_DATA.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } List<LightReportData> reportDataList = lightReportDataService.getReportDataList(conditionVO, deviceCode); return ResponseUtil.success(reportDataList); } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -1,6 +1,7 @@ package com.sandu.ximon.admin.controller; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.VnnoxParam; @@ -8,7 +9,8 @@ import com.sandu.ximon.admin.service.LedPlayerEntityService; import com.sandu.ximon.admin.service.VnnoxService; import com.sandu.ximon.admin.utils.VnnoxAPIUtil; import com.sandu.ximon.admin.utils.response.VnnoxResult; import com.sandu.ximon.admin.vo.NovaPushResultVO; import com.sandu.ximon.admin.vo.NovaResultVO; import com.sandu.ximon.dao.domain.LedPlayerEntity; import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity; import com.sandu.ximon.dao.enums.MenuEnum; @@ -59,44 +61,44 @@ /** * éå¯ * * @param vnnoxWebRequest * @param * @return */ @PostMapping("/reboot") public ResponseVO<Object> reboot(@RequestBody List<String> vnnoxWebRequest) { public ResponseVO<Object> reboot(@RequestBody List<NovaPushResultVO> nova) { if (!permissionConfig.check(MenuEnum.VNNOX_RESTART.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest); return ResponseUtil.success(vnnoxResult); return ResponseUtil.success(vnnoxService.reboot(nova)); } /** * åæ¥ææ¾ */ @PostMapping("/syncPlay") public ResponseVO<Object> syncPlay(@RequestBody Map map) { public ResponseVO<Object> syncPlay(@RequestBody NovaResultVO vo) { if (!permissionConfig.check(MenuEnum.VNNOX_SYNC_PLAY.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } List playIdlist = (List) map.get("playIdlist"); Integer option = (Integer) map.get("option"); VnnoxResult vnnoxResult = vnnoxService.syncPlay(playIdlist, option); return ResponseUtil.success(vnnoxResult); List<NovaPushResultVO> playIdlist = vo.getPlayIdlist(); Integer option = vo.getOption(); if (option == null || vo.getOption() == null) { throw new BusinessException("optionä¸è½ä¸ºç©º"); } return ResponseUtil.success(vnnoxService.syncPlay(playIdlist, option)); } /** * ntpå¯¹æ¶ */ @PostMapping("/ntp") public ResponseVO<Object> ntp(@RequestBody Map map) { public ResponseVO<Object> ntp(@RequestBody NovaResultVO vo) { if (!permissionConfig.check(MenuEnum.VNNOX_NTP.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } boolean enable = (boolean) map.get("enable"); List playIdlist = (List) map.get("playIdlist"); VnnoxResult vnnoxResult = vnnoxService.ntpSync(playIdlist, enable); return ResponseUtil.success(vnnoxResult); boolean enable = vo.isEnable(); List<NovaPushResultVO> playIdlist = vo.getPlayIdlist(); return ResponseUtil.success(vnnoxService.ntpSync(playIdlist, enable)); } /** @@ -108,8 +110,7 @@ if (!permissionConfig.check(MenuEnum.VNNOX_ON_OFF.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } VnnoxResult vnnoxResult = vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getScreenStatus()); return ResponseUtil.success(vnnoxResult); return ResponseUtil.success(vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getScreenStatus())); } /** @@ -123,8 +124,7 @@ if (!permissionConfig.check(MenuEnum.VNNOX_VOL_CHANGE.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } VnnoxResult vnnoxResult = vnnoxService.volChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getVol()); return ResponseUtil.success(vnnoxResult); return ResponseUtil.success(vnnoxService.volChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getVol())); } /** @@ -138,8 +138,7 @@ if (!permissionConfig.check(MenuEnum.VNNOX_BRIGHTNESS_CHANGE.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } VnnoxResult vnnoxResult = vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getBrightness()); return ResponseUtil.success(vnnoxResult); return ResponseUtil.success(vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getBrightness())); } @@ -204,6 +203,7 @@ /** * å±å¹è¯¦æ //å端æªåç°è°ç¨ * * @param sn * @return */ ximon-admin/src/main/java/com/sandu/ximon/admin/param/LEDProgramParam.java
@@ -1,11 +1,8 @@ package com.sandu.ximon.admin.param; import com.sandu.ximon.admin.config.VnnoxConstant; import com.sandu.ximon.admin.utils.request.VnnoxRequest; import lombok.Data; import javax.validation.constraints.NotNull; import java.util.Base64; import java.util.List; import java.util.Map; ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -1,16 +1,13 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.util.PageUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.domain.CommonPage; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.config.C3mRedisConfig; import com.sandu.ximon.admin.controller.C3mChargingChargeController; import com.sandu.ximon.admin.dto.ChargingDto; import com.sandu.ximon.admin.manager.iot.frame.A5Frame; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3HeartbeatReportInnerFrame; @@ -30,12 +27,8 @@ import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils; import com.sandu.ximon.admin.vo.EquipmentInfomation; import com.sandu.ximon.dao.bo.C3ChargingBo; import com.sandu.ximon.dao.domain.C3mCharging; import com.sandu.ximon.dao.domain.C3mChargingCharge; import com.sandu.ximon.dao.domain.C3mOrder; import com.sandu.ximon.dao.domain.PoleBinding; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.domain.*; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.mapper.C3mChargingMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -78,7 +71,7 @@ } /** * ä¿å䏿¥C3å çµè®¾å¤å¿è·³æ°æ® * ä¿å䏿¥C3å çµè®¾å¤ * * @return æ¯å¦æå */ ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -5,10 +5,12 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.domain.CommonPage; import com.sandu.common.execption.BusinessException; import com.sandu.common.file.config.FileProperties; import com.sandu.common.file.impl.AliOssFileServiceImpl; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame; @@ -205,4 +207,16 @@ } } } /** * æ ¹æ®macCodeè·åç¯çæ°æ® */ public List<LightReportData> getReportDataList(BaseConditionVO conditionVO, String macCode) { if (macCode.isEmpty()) { throw new BusinessException("macä¸è½ä¸ºç©º"); } PageHelper.startPage(conditionVO.getPageNo(), conditionVO.getPageSize()); List<LightReportData> list = list(Wrappers.lambdaQuery(LightReportData.class).eq(LightReportData::getDeviceCode, macCode)); return list; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -1031,6 +1031,16 @@ lights.forEach(light -> { light.setPower1(lightPowerSettingParam.getPower1()); light.setPower2(lightPowerSettingParam.getPower2()); if (lightPowerSettingParam.getPower1() != null) { light.setLight1(1); } else { light.setLight1(0); } if (lightPowerSettingParam.getPower2() != null) { light.setLight2(1); } else { light.setLight2(0); } light.setLightCount(lightPowerSettingParam.getLightCount()); }); return updateBatchById(lights); ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java
@@ -24,7 +24,6 @@ import com.sandu.ximon.dao.domain.*; import com.sandu.ximon.dao.mapper.PlayPlanNvMapper; import lombok.AllArgsConstructor; import org.aspectj.weaver.ast.Var; import org.springframework.stereotype.Service; import java.util.*; @@ -201,7 +200,7 @@ programDto -> { programDto.getWidgets().forEach( widget -> { if (!PlayerWidgetType.WEATHER.equals(widget.getType())) { if (PlayerWidgetType.PICTURE.equals(widget.getType()) || PlayerWidgetType.VIDEO.equals(widget.getType())) { String url = widget.getUrl(); LEDProgramFile one = fileService.getOne(Wrappers.lambdaQuery(LEDProgramFile.class).eq(LEDProgramFile::getFileUrl, url)); if (one == null) { @@ -228,7 +227,6 @@ } ); program.setSchedule(playerSchedule); program.setNoticeUrl(VnnoxConstant.NOTIFY_URL); @@ -439,7 +437,7 @@ programDto -> { programDto.getWidgets().forEach( widget -> { if (!PlayerWidgetType.WEATHER.equals(widget.getType())) { if (PlayerWidgetType.PICTURE.equals(widget.getType()) || PlayerWidgetType.VIDEO.equals(widget.getType())) { String url = widget.getUrl(); LEDProgramFile one = fileService.getOne(Wrappers.lambdaQuery(LEDProgramFile.class).eq(LEDProgramFile::getFileUrl, url)); if (one == null) { @@ -447,9 +445,6 @@ } widget.setMd5(one.getMd5()); widget.setSize(Long.parseLong(one.getSize())); }else { //WratherPage System.out.println(widget+"widget"); } } ); ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -17,6 +17,7 @@ import com.sandu.ximon.admin.utils.response.VnnoxPlayerListResponse; import com.sandu.ximon.admin.utils.response.VnnoxPlayerResponse; import com.sandu.ximon.admin.utils.response.VnnoxResult; import com.sandu.ximon.admin.vo.NovaPushResultVO; import com.sandu.ximon.dao.domain.LedPlayerEntity; import com.sandu.ximon.dao.domain.LedPlayerInfoEntity; import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity; @@ -107,7 +108,12 @@ * @param screenStatus * @return */ public VnnoxResult screenStatusChange(List<LedPlayerEntity> playerList, Integer screenStatus) { public Map<String, Object> screenStatusChange(List<LedPlayerEntity> playerList, Integer screenStatus) { playerList.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getPlayerName().isEmpty() || item.getPlayerName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } }); VnnoxScreenStatusType type; if (screenStatus.equals(0)) { type = VnnoxScreenStatusType.CLOSE; @@ -116,29 +122,114 @@ } VnnoxResult vnnoxResult = vnnoxAPIUtil.screenStatus(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), type); List<String> success = vnnoxResult.getSuccess(); List<String> fail = 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; playerList.forEach(n -> { if (finalSuccess.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); successList.add(vo); } else if (finalFail.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); faileList.add(vo); } }); result.put("success", successList); result.put("fail", faileList); // æ ¹æ®å±å¹ç¶æè°æ´REDISæ è¯ä½ for (String playerId : vnnoxResult.getSuccess()) { redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + playerId, screenStatus, VnnoxConstant.REDIS_MAX_SAVE_TIME); } return vnnoxResult; return result; } public VnnoxResult volChange(List<LedPlayerEntity> playerList, Integer vol) { public Map<String, Object> volChange(List<LedPlayerEntity> playerList, Integer vol) { playerList.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getPlayerName().isEmpty() || item.getPlayerName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } }); VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), vol); // æ ¹æ®é³éè°æ´REDISæ è¯ä½ for (String playerId : vnnoxResult.getSuccess()) { redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol, VnnoxConstant.REDIS_MAX_SAVE_TIME); } return vnnoxResult; List<String> success = vnnoxResult.getSuccess(); List<String> fail = 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; playerList.forEach(n -> { if (finalSuccess.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); successList.add(vo); } else if (finalFail.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); faileList.add(vo); } }); result.put("success", successList); result.put("fail", faileList); return result; } public VnnoxResult brightnessChange(List<LedPlayerEntity> playerList, Integer brightness) { public Map<String, Object> brightnessChange(List<LedPlayerEntity> playerList, Integer brightness) { playerList.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getPlayerName().isEmpty() || item.getPlayerName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } }); VnnoxResult vnnoxResult = vnnoxAPIUtil.brightnessChange(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), brightness); // æ ¹æ®äº®åº¦è°æ´REDISæ è¯ä½ for (String playerId : vnnoxResult.getSuccess()) { redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + playerId, brightness, VnnoxConstant.REDIS_MAX_SAVE_TIME); } return vnnoxResult; List<String> success = vnnoxResult.getSuccess(); List<String> fail = 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; playerList.forEach(n -> { if (finalSuccess.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); successList.add(vo); } else if (finalFail.contains(n.getPlayerId())) { NovaPushResultVO vo = new NovaPushResultVO(); vo.setName(n.getPlayerName()); vo.setPlayerId(n.getPlayerId()); faileList.add(vo); } }); result.put("success", successList); result.put("fail", faileList); return result; } @@ -194,8 +285,37 @@ // } //éå¯ public VnnoxResult reboot(List<String> playerList) { return vnnoxAPIUtil.reboot(playerList); public Map<String, Object> reboot(List<NovaPushResultVO> nova) { List<String> playerIds = new ArrayList<>(); nova.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getName().isEmpty() || item.getName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } playerIds.add(item.getPlayerId()); }); VnnoxResult reboot = vnnoxAPIUtil.reboot(playerIds); List<String> success = reboot.getSuccess(); List<String> fail = reboot.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; } /** @@ -204,8 +324,35 @@ * @param * @return */ public VnnoxResult syncPlay(List<String> playerList, Integer option) { return vnnoxAPIUtil.syncPlay(playerList, option); public Map<String, Object> syncPlay(List<NovaPushResultVO> nova, Integer option) { List<String> playerIds = new ArrayList<>(); nova.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getName().isEmpty() || item.getName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } playerIds.add(item.getPlayerId()); }); VnnoxResult vnnoxResult = vnnoxAPIUtil.syncPlay(playerIds, option); List<String> success = vnnoxResult.getSuccess(); List<String> fail = 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())) { successList.add(n); } else if (finalFail.contains(n.getPlayerId())) { faileList.add(n); } }); result.put("success", successList); result.put("fail", faileList); return result; } /** @@ -214,8 +361,35 @@ * @param * @return */ public VnnoxResult ntpSync(List<String> playerList, boolean enable) { return vnnoxAPIUtil.ntpSync(playerList, enable); public Map<String, Object> ntpSync(List<NovaPushResultVO> nova, boolean enable) { List<String> playerIds = new ArrayList<>(); nova.forEach(item -> { if (item.getPlayerId().isEmpty() || item.getName().isEmpty() || item.getName() == null || item.getPlayerId() == null) { throw new BusinessException("playerIdæplayerName为空"); } playerIds.add(item.getPlayerId()); }); VnnoxResult vnnoxResult = vnnoxAPIUtil.ntpSync(playerIds, enable); List<String> success = vnnoxResult.getSuccess(); List<String> fail = 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())) { successList.add(n); } else if (finalFail.contains(n.getPlayerId())) { faileList.add(n); } }); result.put("success", successList); result.put("fail", faileList); return result; } ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaResultVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.sandu.ximon.admin.vo; import lombok.Data; import javax.validation.constraints.NotEmpty; import java.util.List; /** * @Author liuhaonan * @Date 2022/04/24 * @Version 1.0 */ @Data public class NovaResultVO { List<NovaPushResultVO> playIdlist; /** * å¯¹æ¶æ¥å£ */ private boolean enable; /** * åæ¥ææ¾ */ private Integer option; }