From f8c33ad3fb09dd0f70b68b74d59ce28761142bf0 Mon Sep 17 00:00:00 2001
From: Van333 <van666666@foxmail.com>
Date: 星期一, 14 十一月 2022 15:21:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xm-20221107' into xm-20221107

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 0 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
index 9771100..4384438 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
@@ -1,13 +1,26 @@
 package com.sandu.ximon.admin.newnova.led;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
 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.newnova.param.NewNovaLedParam;
+import com.sandu.ximon.admin.newnova.utils.NovaAPIUtil;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.service.PoleBindingService;
+import com.sandu.ximon.admin.service.PoleService;
 import com.sandu.ximon.dao.domain.NewNovaLed;
+import com.sandu.ximon.dao.domain.Pole;
+import com.sandu.ximon.dao.domain.PoleBinding;
 import com.sandu.ximon.dao.mapper.NewNovaLedMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author LiuHaoNan
@@ -32,9 +45,113 @@
         NewNovaLed led = new NewNovaLed();
         led.setSn(param.getSn());
         led.setName(param.getName());
+        led.setOnlineSign(0);
         return save(led);
     }
 
 
+    /**
+     * 缂栬緫灞忓箷鍚嶇О
+     *
+     * @param param
+     * @return
+     */
+    public boolean editLed(NewNovaLedParam param) {
+        if (param.getId() == null) {
+            throw new BusinessException("灞忓箷id涓嶈兘涓虹┖");
+        }
+        if (param.getName() == null || param.getName().isEmpty()) {
+            throw new BusinessException("灞忓箷鍚嶇О涓嶈兘涓虹┖");
+        }
 
+        NewNovaLed one = getById(param.getId());
+        if (one == null) {
+            throw new BusinessException("璁惧涓嶅瓨鍦紒");
+        }
+//        one.setSn(param.getSn());
+        one.setName(param.getName());
+        return updateById(one);
+    }
+
+    /**
+     * 鍒犻櫎LED
+     *
+     * @param ids
+     * @return
+     */
+    public boolean delLed(List<Long> ids) {
+        if (ids.isEmpty()) {
+            throw new BusinessException("id涓嶈兘涓虹┖");
+        }
+        List<NewNovaLed> newNovaLeds = listByIds(ids);
+        if (newNovaLeds.isEmpty()) {
+            throw new BusinessException("璁惧涓嶅瓨鍦紒");
+        }
+        //鑾峰彇鍒犻櫎璁惧鐨勮澶囩爜
+        List<String> snList = newNovaLeds.stream().map(NewNovaLed::getSn).collect(Collectors.toList());
+        //鍒犻櫎缁戝畾鍏崇郴
+        SpringContextHolder.getBean(PoleBindingService.class).remove(Wrappers.lambdaQuery(PoleBinding.class)
+                .eq(PoleBinding::getDeviceType, 12).in(PoleBinding::getDeviceCode, snList));
+        //鍒犻櫎璁惧
+        return removeByIds(ids);
+    }
+
+    /**
+     * LED鍒楄〃
+     *
+     * @param baseConditionVO
+     * @param keyword
+     * @param onlineStatus
+     * @return
+     */
+    public List<NewNovaLed> listLed(BaseConditionVO baseConditionVO, String keyword, boolean onlineStatus) {
+
+        NovaAPIUtil instanceUtil = NovaAPIUtil.getInstanceUtil();
+        //鎺掑簭
+        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        List<NewNovaLed> newNovaListBos = baseMapper.listLed(keyword, SecurityUtils.getClientId());
+        //鑾峰彇鍦ㄧ嚎鐘舵��
+        instanceUtil.getOnlineStatus(newNovaListBos);
+        //鑾峰彇灞忓箷寮�鍏�
+        instanceUtil.getScreenPowerState(newNovaListBos);
+        //鑾峰彇闊抽噺
+        instanceUtil.getVolumeState(newNovaListBos);
+        //鑾峰彇浜害
+        instanceUtil.getScreenBrightness(newNovaListBos);
+        //鑾峰彇鍚屾鐘舵��
+        instanceUtil.getSync(newNovaListBos);
+
+        updateBatchById(newNovaListBos);
+        return newNovaListBos;
+    }
+
+    public NewNovaLed getInfo(Long ledId) {
+        NovaAPIUtil instanceUtil = NovaAPIUtil.getInstanceUtil();
+        NewNovaLed byId = getById(ledId);
+        if (byId == null) {
+            throw new BusinessException("璁惧涓嶅瓨鍦ㄦ垨id涓嶆纭� !");
+        }
+        PoleBinding poleBinding = SpringContextHolder.getBean(PoleBindingService.class).getOne(Wrappers.lambdaQuery(PoleBinding.class)
+                .eq(PoleBinding::getDeviceCode, byId.getSn()).eq(PoleBinding::getDeviceType, 12));
+        if (poleBinding != null) {
+            Pole pole = SpringContextHolder.getBean(PoleService.class).getById(poleBinding.getPoleId());
+            byId.setPoleId(pole.getId());
+            byId.setPoleName(pole.getPoleName());
+        }
+        List<NewNovaLed> list = new ArrayList<>();
+        list.add(byId);
+        //鑾峰彇鍦ㄧ嚎鐘舵��
+        instanceUtil.getOnlineStatus(list);
+        //鑾峰彇灞忓箷寮�鍏�
+        instanceUtil.getScreenPowerState(list);
+        //鑾峰彇闊抽噺
+        instanceUtil.getVolumeState(list);
+        //鑾峰彇浜害
+        instanceUtil.getScreenBrightness(list);
+        //鑾峰彇鍚屾鐘舵��
+        instanceUtil.getSync(list);
+        //鑾峰彇璇︽儏
+        instanceUtil.getInfo(byId);
+        return list.get(0);
+    }
 }

--
Gitblit v1.9.3