From 32889c5139b77575fa2cd6d4d1f5aea578ece160 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期一, 16 五月 2022 15:58:19 +0800
Subject: [PATCH] 操作日志

---
 dao/src/main/resources/mapper/PoleBindingMapper.xml                                   |   21 ++++--
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java            |   10 +++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java         |   12 ++--
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java       |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/utils/StoreOperationRecordsUtils.java |   26 +++++++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java  |    5 -
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java             |   10 +++
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java     |   16 +++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java        |   25 ++++++++
 9 files changed, 104 insertions(+), 25 deletions(-)

diff --git a/dao/src/main/resources/mapper/PoleBindingMapper.xml b/dao/src/main/resources/mapper/PoleBindingMapper.xml
index fd5c862..888d905 100644
--- a/dao/src/main/resources/mapper/PoleBindingMapper.xml
+++ b/dao/src/main/resources/mapper/PoleBindingMapper.xml
@@ -24,13 +24,18 @@
         SELECT t2.*
         FROM `pole_binding` t1
         LEFT JOIN pole t2 ON t1.pole_id = t2.id
-        WHERE t1.device_type = #{type}
-        AND t1.device_code = #{Mac}
-        <if test="userId != null">
-            AND (
-            t2.user_id = #{userId}
-            OR t2.client_id = #{userId}
-            )
-        </if>
+        t1.device_code = #{Mac}
+        <where>
+            <if test="type != null">
+                AND t1.device_type = #{type}
+            </if>
+            <if test="userId != null">
+                AND (
+                t2.user_id = #{userId}
+                OR t2.client_id = #{userId}
+                )
+            </if>
+        </where>
+
     </select>
 </mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
index 7887eaf..e217563 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
@@ -131,7 +131,7 @@
         OperatingSystem os = userAgent.getOperatingSystem();
         String content = "鐧诲綍IP鍦板潃锛�" + IPUtils.getPublicIp() + "锛屾搷浣滅郴缁燂細" + os + "锛屾祻瑙堝櫒锛�" + browser;
 
-        StoreOperationRecordsUtils.storeOperationData(null, null, "鐢ㄦ埛鐧诲綍", content, null);
+        StoreOperationRecordsUtils.storeOperationData(null, null, "鐢ㄦ埛鐧诲綍", content);
         return ResponseUtil.success(authInfo);
     }
 
@@ -180,7 +180,7 @@
     @GetMapping(value = "/logout")
     public ResponseVO<Object> LogOut() {
         String content = "鐢ㄦ埛鍚嶏細" + SecurityUtils.getUsername();
-        StoreOperationRecordsUtils.storeOperationData(null, null, "鐢ㄦ埛閫�鍑虹櫥褰�", content, null);
+        StoreOperationRecordsUtils.storeOperationData(null, null, "鐢ㄦ埛閫�鍑虹櫥褰�", content);
         String key = String.format("%d_%d", SecurityUtils.getUserDetails().getUserId(), SecurityUtils.getUserDetails().getAdministratorType());
         redisService.set(key, null);
         return ResponseUtil.success("閫�鍑虹櫥褰曟垚鍔�");
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
index 6bf865a..c2b38e2 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
@@ -3,6 +3,7 @@
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.util.ResponseUtil;
+import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.manager.iot.amqp.processor.AirDataProcessor;
 import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.request.AirDataReqInnerFrame;
@@ -12,10 +13,14 @@
 import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
 import com.sandu.ximon.admin.security.PermissionConfig;
 import com.sandu.ximon.admin.service.AirDataService;
+import com.sandu.ximon.admin.service.PoleBindingService;
 import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.dao.bo.AirDataBo;
+import com.sandu.ximon.dao.domain.Pole;
 import com.sandu.ximon.dao.enums.MenuEnum;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
+import com.sandu.ximon.dao.mapper.PoleBindingMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -88,6 +93,17 @@
         resultMap.put("success", success);
         resultMap.put("failed", failed);
 
+        /**
+         * 鏈嶅姟绔洿鏂板ぇ姘旀暟鎹棩蹇楄褰曞紑濮�
+         */
+        String content = "鏇存柊缁撴灉锛�" + resultMap.toString();
+
+
+        StoreOperationRecordsUtils.storeOperationData(listMac, null, "鏈嶅姟绔洿鏂板ぇ姘旀暟鎹�", content);
+        /**
+         * 鏈嶅姟绔洿鏂板ぇ姘旀暟鎹棩蹇楄褰曠粨鏉�
+         */
+
         return ResponseUtil.success(resultMap);
     }
 
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 2290424..543084d 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
@@ -33,7 +33,6 @@
     private final PlayPlanNvService playPlanNvService;
     private PermissionConfig permissionConfig;
 
-    @AnonymousAccess
     @PostMapping("/add")
     public ResponseVO<Object> addLEDPlan(@RequestBody @Validated PlayPlanParam param) {
         if (!permissionConfig.check(MenuEnum.LED_N_PLAY_PLAN_ADD.getCode())) {
@@ -42,7 +41,6 @@
         return ResponseUtil.success(playPlanNvService.addPlan(param));
     }
 
-    @AnonymousAccess
     @GetMapping("/getByPlanId/{planId}")
     public ResponseVO<Object> getPlan(@PathVariable Long planId) {
         if (!permissionConfig.check(MenuEnum.LED_N_PLAY_PLAN_DETAIL.getCode())) {
@@ -67,7 +65,6 @@
         return ResponseUtil.success(playPlanNvService.deletePlan(plianIds));
     }
 
-    @AnonymousAccess
     @PostMapping(value = "/push/{plianId}", produces = "application/json;charset=UTF-8")
     public ResponseVO<Object> pushToLed(@PathVariable Long plianId, @RequestBody List<NovaPushResultVO> playerIds) {
         if (!permissionConfig.check(MenuEnum.LED_N_PLAY_PLAN_PUSH.getCode())) {
@@ -77,7 +74,6 @@
     }
 
 
-    @AnonymousAccess
     @PostMapping(value = "/pushSchedule/{planId}", produces = "application/json;charset=UTF-8")
     public ResponseVO<Object> pushSchedule(@PathVariable Long planId, @RequestBody List<NovaPushResultVO> playerIds) {
         if (!permissionConfig.check(MenuEnum.LED_N_PLAY_PLAN_PUSH_SCHEDULE.getCode())) {
@@ -86,7 +82,6 @@
         return ResponseUtil.success(playPlanNvService.pushSchedule(planId, playerIds));
     }
 
-    @AnonymousAccess
     @GetMapping("/listPlan")
     public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
         if (!permissionConfig.check(MenuEnum.PLAYPLAN_LIST.getCode())) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
index 2b07378..258ac6a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
@@ -13,6 +13,7 @@
 import com.sandu.ximon.admin.param.PwdParam;
 import com.sandu.ximon.admin.param.UserPwsParm;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.dao.bo.AdminBo;
 import com.sandu.ximon.dao.bo.MenuNode;
 import com.sandu.ximon.dao.domain.*;
@@ -76,6 +77,15 @@
         if (!adminRoleRelationService.save(adminRoleRelation)) {
             throw new BusinessException("娣诲姞绠$悊鍛樿鑹插け璐�");
         }
+
+        /**
+         * 娣诲姞绠$悊鍛樻棩蹇楄褰曞紑濮�
+         */
+        String content = "鏂版敞鍐岀敤鎴凤細" + param.getUsername();
+        StoreOperationRecordsUtils.storeOperationData(null, null, "娣诲姞绠$悊鍛�", content);
+        /**
+         * 娣诲姞绠$悊鍛樻棩蹇楄褰曠粨鏉�
+         */
         return true;
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
index 7a4c25d..9938ac1 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
@@ -12,6 +12,7 @@
 import com.sandu.ximon.admin.param.UpdateClientPrarm;
 import com.sandu.ximon.admin.param.UserPwsParm;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.dao.bo.MenuNode;
 import com.sandu.ximon.dao.domain.*;
 import com.sandu.ximon.dao.mapper.AdminMapper;
@@ -95,6 +96,15 @@
             throw new BusinessException("娣诲姞绠$悊鍛樿鑹插け璐�");
         }
 
+        /**
+         * 娣诲姞绠$悊鍛樻棩蹇楄褰曞紑濮�
+         */
+        String content = "鏂版敞鍐岀敤鎴凤細" + addClientPrarm.getClientName();
+        StoreOperationRecordsUtils.storeOperationData(null, null, "娣诲姞鏅�氱敤鎴�", content);
+        /**
+         * 娣诲姞绠$悊鍛樻棩蹇楄褰曠粨鏉�
+         */
+
         return flag;
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
index ab12306..c00ad15 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -105,7 +105,7 @@
                 + "锛� 鐏潌ID锛�" + param.getPoleIdList().toString()
                 + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress()
                 + " }";
-        StoreOperationRecordsUtils.storeOperationData(poleCodeList.toString(), null, "鏂板璺伅浠诲姟", content, poleCodeList.toString());
+        StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "鏂板璺伅浠诲姟", content);
         /**
          * 鏂板璺伅浠诲姟鏃ュ織璁板綍缁撴潫
          */
@@ -131,7 +131,7 @@
                     + "锛� 浠诲姟鍚嶏細" + lightTask.getTaskName()
                     + "}," + " 鐏潌ID锛�" + param.getPoleIdList().toString()
                     + " }";
-            StoreOperationRecordsUtils.storeOperationData(poleCodeList.toString(), null, "涓嬪彂璺伅浠诲姟", content1, poleCodeList.toString());
+            StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "涓嬪彂璺伅浠诲姟", content1);
             /**
              * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
              */
@@ -181,7 +181,7 @@
                 + "锛� 鐏潌ID锛�" + param.getPoleIdList().toString()
                 + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress()
                 + " }";
-        StoreOperationRecordsUtils.storeOperationData(poleCodeList.toString(), null, "缂栬緫璺伅浠诲姟", content, poleCodeList.toString());
+        StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "缂栬緫璺伅浠诲姟", content);
         /**
          * 缂栬緫璺伅浠诲姟鏃ュ織璁板綍缁撴潫
          */
@@ -208,7 +208,7 @@
                     + "锛� 浠诲姟鍚嶏細" + lightTask.getTaskName()
                     + "}," + " 鐏潌ID锛�" + param.getPoleIdList().toString()
                     + " }";
-            StoreOperationRecordsUtils.storeOperationData(poleCodeList.toString(), null, "涓嬪彂璺伅浠诲姟", content1, poleCodeList.toString());
+            StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "涓嬪彂璺伅浠诲姟", content1);
             /**
              * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
              */
@@ -416,11 +416,11 @@
         if (CollectionUtil.isNotEmpty(list)) {
             poleCodeList = list.stream().map(Pole::getDeviceCode).collect(Collectors.toList());
         }
-        String content1 = "{浠诲姟ID锛�" + lightTask.getTaskId()
+        String content = "{浠诲姟ID锛�" + lightTask.getTaskId()
                 + "锛� 浠诲姟鍚嶏細" + lightTask.getTaskName()
                 + "}," + " 鐏潌ID锛�" + param.getPoleId()
                 + " }";
-        StoreOperationRecordsUtils.storeOperationData(poleCodeList.toString(), null, "涓嬪彂璺伅浠诲姟", content1, poleCodeList.toString());
+        StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "涓嬪彂璺伅浠诲姟", content);
         /**
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
          */
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 b8c82ce..a63ca7b 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
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.config.VnnoxConstant;
 import com.sandu.ximon.admin.dto.PlanDto;
 import com.sandu.ximon.admin.dto.SchedulesDTO;
@@ -14,6 +15,7 @@
 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.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
 import com.sandu.ximon.admin.utils.VnnoxProgramAPIUtil;
 import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
@@ -21,6 +23,7 @@
 import com.sandu.ximon.admin.vo.NovaPushResultVO;
 import com.sandu.ximon.admin.vo.PlansVO;
 import com.sandu.ximon.dao.domain.LEDProgram;
+import com.sandu.ximon.dao.domain.LedPlayerEntity;
 import com.sandu.ximon.dao.domain.PlayPlanNv;
 import com.sandu.ximon.dao.domain.PushToLed;
 import com.sandu.ximon.dao.mapper.PlayPlanNvMapper;
@@ -212,6 +215,9 @@
     //鎺ㄩ�佸畾鏃跺埌LED
     public Map<String, Object> pushSchedule(Long planId, List<NovaPushResultVO> nova) {
         PlayPlanNv one = getOne(Wrappers.lambdaQuery(PlayPlanNv.class).eq(PlayPlanNv::getId, planId));
+        if (one == null) {
+            throw new BusinessException("鏈壘鍒拌妭鐩�");
+        }
         List<SchedulesDTO> schedulesDTOS = JSON.parseArray(one.getSchedules(), SchedulesDTO.class);
         ProgramSchedule programSchedule = new ProgramSchedule();
         programSchedule.setSchedules(schedulesDTOS);
@@ -250,6 +256,25 @@
 
         result.put("success", successList);
         result.put("fail", faileList);
+
+        /**
+         * 璇虹摝鎺ㄩ�佸畾鏃舵棩蹇楄褰曞紑濮�
+         */
+        List<LedPlayerEntity> list = SpringContextHolder.getBean(LedPlayerEntityService.class)
+                .list(Wrappers.lambdaQuery(LedPlayerEntity.class).in(LedPlayerEntity::getId, nova.stream().map(NovaPushResultVO::getPlayerId).toArray()));
+        List<String> listCode = new ArrayList<>();
+        for (LedPlayerEntity temp : list) {
+            listCode.add(temp.getSn());
+        }
+
+        String content = "{鑺傜洰ID锛�" + one.getId()
+                + "锛� 鑺傜洰鍚嶇О锛�" + one.getName()
+                + "}," + " 鎺ㄩ�佺粨鏋滐細" + result
+                + " }";
+        StoreOperationRecordsUtils.storeOperationData(listCode, null, "璇虹摝鎺ㄩ�佸畾鏃朵换鍔�", content);
+        /**
+         * 璇虹摝鎺ㄩ�佸畾鏃舵棩蹇楄褰曠粨鏉�
+         */
         return result;
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/StoreOperationRecordsUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/StoreOperationRecordsUtils.java
index 35416a8..eca911c 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/StoreOperationRecordsUtils.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/StoreOperationRecordsUtils.java
@@ -5,6 +5,12 @@
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
 import com.sandu.ximon.admin.service.DeviceOperationLogService;
 import com.sandu.ximon.admin.service.InnerFrameDataService;
+import com.sandu.ximon.dao.domain.Pole;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
+import com.sandu.ximon.dao.mapper.PoleBindingMapper;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author ZZQ
@@ -37,13 +43,25 @@
     /**
      * 淇濆瓨鎿嶄綔鏁版嵁
      *
-     * @param deviceCode
+     * @param deviceCodeList
      * @param deviceName
      * @param operation
      * @param content
-     * @param poleCode
      */
-    public static void storeOperationData(String deviceCode, String deviceName, String operation, String content, String poleCode) {
-        SpringContextHolder.getBean(DeviceOperationLogService.class).saveDeviceOperationLog(deviceCode, deviceName, operation, content, poleCode);
+    public static void storeOperationData(List<String> deviceCodeList, String deviceName, String operation, String content) {
+        if (deviceCodeList == null) {
+            deviceCodeList = new ArrayList<>();
+        }
+        List<String> poleCodeList = new ArrayList<>();
+        for (String str : deviceCodeList) {
+            Pole pole = SpringContextHolder.getBean(PoleBindingMapper.class).getPoleByBinding(null, str, null);
+            if (pole != null) {
+                poleCodeList.add(pole.getDeviceCode());
+            } else {
+                poleCodeList.add("");
+            }
+        }
+        SpringContextHolder.getBean(DeviceOperationLogService.class)
+                .saveDeviceOperationLog(deviceCodeList.toString(), deviceName, operation, content, poleCodeList.toString());
     }
 }

--
Gitblit v1.9.3