From b351d83856603abbca985508000828b71712894d Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 10 十二月 2021 15:58:44 +0800
Subject: [PATCH] 功能完善

---
 dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java                                      |    4 
 dao/src/main/resources/mapper/LampPostMapper.xml                                                |    1 
 dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java                                |   17 ++
 dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java                                      |   86 ++++++++++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java                        |   61 ++++++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java          |    4 
 dao/src/main/resources/mapper/PlayPlanMapper.xml                                                |   28 ++++
 dao/src/main/java/com/sandu/ximon/dao/domain/LED.java                                           |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java                    |   31 ++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java              |   11 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java       |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java |   29 ++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java                    |   69 +++++++++++
 13 files changed, 335 insertions(+), 12 deletions(-)

diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
index 3749730..1b4153d 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
@@ -37,6 +37,8 @@
     /*鎵�灞炵伅鏉�*/
     private String blongsLamp;
 
+    private Long playPlanId;
+
     /*IP鍦板潃*/
     private String ip;
 
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java
index 1d79e2d..c2c500b 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java
@@ -37,6 +37,9 @@
     /*璺伅浠诲姟*/
   //  private List<LampMission> missions;
 
+    /*鍦ㄧ嚎鐘舵��*/
+    private String onLineState;
+
     /*鏈哄櫒鐮�*/
     private String macCode;
 
@@ -49,6 +52,7 @@
     /*缁戝畾璁惧鏁伴噺*/
     private Integer belongs;
 
+
     private LocalDateTime createTime;
 
 
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java
new file mode 100644
index 0000000..5011236
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java
@@ -0,0 +1,86 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
+import lombok.Data;
+
+/**
+ * 鎾斁璁″垝琛�
+ * @TableName play_plan
+ */
+@TableName(value ="play_plan")
+@Data
+public class PlayPlan implements Serializable {
+    /**
+     * 
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 
+     */
+    private Long userId;
+
+    /**
+     * 鎾斁璁″垝鍚嶇О
+     */
+    private String name;
+
+    /**
+     * 鑺傜洰id
+     */
+    private Long ledProgramId;
+
+    /**
+     * 鑺傜洰鍚嶇О
+     */
+    private String ledProgramName;
+
+    /**
+     * 闊抽噺
+     */
+    private Double volume;
+
+    /**
+     * 閫傜敤绯诲垪
+     */
+    private Integer applySeries;
+
+    /**
+     * 鏃ユ湡鑼冨洿/寮�
+     */
+    private LocalDateTime onDateRange;
+
+    /**
+     * 鏃ユ湡鑼冨洿/鍏�
+     */
+    private LocalDateTime offDateRange;
+
+    /**
+     * 鏄熸湡鑼冨洿
+     */
+    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
+    private Integer[] weekRange;
+
+    /**
+     * 寮�鎾椂闂�
+     */
+    private LocalDateTime onTime;
+
+    /**
+     * 涓嬫挱鏃堕棿
+     */
+    private LocalDateTime offTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java
new file mode 100644
index 0000000..26fa469
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.PlayPlan;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.PlayPlan
+ */
+@Mapper
+public interface PlayPlanMapper extends BaseMapper<PlayPlan> {
+
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/LampPostMapper.xml b/dao/src/main/resources/mapper/LampPostMapper.xml
index c133b6a..57dca06 100644
--- a/dao/src/main/resources/mapper/LampPostMapper.xml
+++ b/dao/src/main/resources/mapper/LampPostMapper.xml
@@ -12,6 +12,7 @@
         <result property="belongsClient" column="belongs_client" jdbcType="VARCHAR"/>
         <result property="clientId" column="client_id" jdbcType="BIGINT"/>
         <result property="macCode" column="mac_code" jdbcType="VARCHAR"/>
+        <result property="onLineState" column="on_line_state" jdbcType="VARCHAR"/>
         <result property="address" column="address" jdbcType="VARCHAR"/>
         <result property="lampGroup" column="lamp_group" jdbcType="VARCHAR"/>
         <result property="state" column="state" jdbcType="INTEGER"/>
diff --git a/dao/src/main/resources/mapper/PlayPlanMapper.xml b/dao/src/main/resources/mapper/PlayPlanMapper.xml
new file mode 100644
index 0000000..ea16b2f
--- /dev/null
+++ b/dao/src/main/resources/mapper/PlayPlanMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.PlayPlanMapper">
+
+    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlayPlan">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="ledProgramId" column="led_program_id" jdbcType="BIGINT"/>
+            <result property="ledProgramName" column="led_program_name" jdbcType="VARCHAR"/>
+            <result property="volume" column="volume" jdbcType="DOUBLE"/>
+            <result property="applySeries" column="apply_series" jdbcType="INTEGER"/>
+            <result property="onDateRange" column="on_date_range" jdbcType="TIMESTAMP"/>
+            <result property="offDateRange" column="off-date_range" jdbcType="TIMESTAMP"/>
+            <result property="weekRange" column="week_range" typeHandler="com.sandu.common.mybatis.JsonStringArrayTypeHandler"/>
+            <result property="onTime" column="on_time" jdbcType="TIMESTAMP"/>
+            <result property="offTime" column="off_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_id,name,
+        led_program_id,led_program_name,volume,
+        apply_series,date_range,week_range,
+        on_time,off_time
+    </sql>
+</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
index 01d60e1..bea88ae 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
@@ -37,12 +37,17 @@
         return ResponseUtil.success("鍒嗙粍璁剧疆鎴愬姛");
     }
 
-    @AnonymousAccess
-    @PostMapping("/list")
-    public ResponseVO<Object> listLamp(){
+  //  @AnonymousAccess
+    //@PostMapping("/list")
+   /* public ResponseVO<Object> listLamp(){
         //List<LampPost> list = lampPostService.list();
         return ResponseUtil.success(lampPostService.list());
         //return ResponseUtil.success(lampPostService.listLamp());
+    }*/
+
+    @PostMapping("/list")
+    public ResponseVO<Object> listLamp(){
+        return ResponseUtil.success(lampPostService.queryStates());
     }
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
index e0a7a3e..4d77102 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
@@ -124,8 +124,8 @@
 
     private void atmosphereAnalysis(String productKey, String deviceName, CommonFrame frame) {
         A5AtmosphereHeartbeatReportInnerFrame transformFrame = new A5AtmosphereHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
-//        log.info("澶ф皵蹇冭烦涓婃姤");
-//        log.info(transformFrame.toString());
+        log.info("澶ф皵蹇冭烦涓婃姤");
+        log.info(transformFrame.toString());
     }
 
     private void lightDataReportAnalysis(String productKey, String deviceName, CommonFrame frame) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
index 7e52386..9899d8f 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
@@ -13,12 +13,12 @@
 @AllArgsConstructor
 public class InitAmqpListener {
 
-    private final MqttMainBoardConfig mqttMainBoardConfig;
+   /* private final MqttMainBoardConfig mqttMainBoardConfig;
 
     @PostConstruct
     public void initListener() throws Exception {
         new AmqpClient(
                 mqttMainBoardConfig
         ).execute();
-    }
+    }*/
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java
new file mode 100644
index 0000000..fa998ee
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java
@@ -0,0 +1,29 @@
+package com.sandu.ximon.admin.manager.iot.rrpc.enums;
+
+public enum LampPostOnLineState {
+
+     /*
+    ON_LINE 璁惧鍦ㄧ嚎銆�
+    OFFLINE  璁惧绂荤嚎
+    UNACTIVE  璁惧鏈縺娲�
+    DISABLE  璁惧宸茬鐢�
+    */
+
+    ONLINE(1),
+    OFFLINE(2),
+    UNACTIVE(3),
+    DISABLE(0)
+    ;
+
+
+
+    LampPostOnLineState(Integer code) {
+        this.code = code;
+    }
+
+    private final Integer code;
+
+    public Integer getCode() {
+        return code;
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java
new file mode 100644
index 0000000..233a79c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java
@@ -0,0 +1,61 @@
+package com.sandu.ximon.admin.param;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Data
+public class PlayPlanParam {
+
+
+    @NotEmpty
+    private String name;
+    @NotEmpty
+    private String ledProgramName;
+    @NotEmpty
+    private Long ledProgramId;
+    @NotEmpty
+    private Double volume;
+
+    /**
+     * 閫傜敤绯诲垪
+     */
+    private Integer applySeries;
+
+    /**
+     * 鏃ユ湡鑼冨洿/寮�
+     */
+    @NotEmpty
+    private LocalDateTime onDateRange;
+
+    /**
+     * 鏃ユ湡鑼冨洿/鍏�
+     */
+    @NotEmpty
+    private LocalDateTime offDateRange;
+
+    /**
+     * 鏄熸湡鑼冨洿
+     */
+    @NotNull
+    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
+    private Integer[] weekRange;
+
+    /**
+     * 寮�鎾椂闂�
+     */
+    @NotEmpty
+    private LocalDateTime onTime;
+
+    /**
+     * 涓嬫挱鏃堕棿
+     */
+    @NotEmpty
+    private LocalDateTime offTime;
+}
+
+
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java
index 360b58c..1925744 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java
@@ -1,14 +1,13 @@
 package com.sandu.ximon.admin.service;
 
-import cn.hutool.core.lang.Snowflake;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
 import com.sandu.ximon.admin.param.LampPostParam;
 import com.sandu.ximon.admin.security.CountSet;
 import com.sandu.ximon.admin.security.SecurityUtils;
-import com.sandu.ximon.dao.domain.Client;
 import com.sandu.ximon.dao.domain.LampCount;
 import com.sandu.ximon.dao.domain.LampPost;
 import com.sandu.ximon.dao.mapper.ClientMapper;
@@ -82,7 +81,7 @@
 
     /**
      * @param group
-     * @param Id 缂栬緫鍒嗙粍--閫夋嫨鐏潌
+     * @param Id    缂栬緫鍒嗙粍--閫夋嫨鐏潌
      */
 
     public void setGroup(String group, List<Long> Id) {
@@ -97,10 +96,32 @@
 
     public List<LampPost> listLamp() {
         List<LampPost> list = lampPostMapper.listLamp();
-       // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
+        // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
         return list;
 
     }
 
+    public List<LampPost> queryStates() {
+        // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class).eq(LampPost::getClientId, SecurityUtils.getUserId()));
+        List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
+        List<String> MacCodes = new ArrayList<>();
+
+        for (LampPost post : list) {
+            MacCodes.add(post.getMacCode());
+        }
+        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = MainBoardInvokeSyncService.getInstance().batchGetDeviceState(MacCodes);
+        for (LampPost post : list) {
+            for (BatchGetDeviceStateResponse.DeviceStatus deviceStatus : deviceStatuses) {
+                if(post.getMacCode().equals(deviceStatus.getDeviceName())){
+                    post.setOnLineState(deviceStatus.getStatus());
+                }
+            }
+            MacCodes.add(post.getMacCode());
+        }
+
+
+        return list;
+    }
+
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java
new file mode 100644
index 0000000..6eab549
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java
@@ -0,0 +1,69 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.param.PlayPlanParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.domain.PlayPlan;
+import com.sandu.ximon.dao.enums.AdministratorEnums;
+import com.sandu.ximon.dao.mapper.PlayPlanMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class PlayPlanService extends BaseServiceImpl<PlayPlanMapper, PlayPlan> {
+
+    private final PlayPlanMapper playPlanMapper;
+
+    public boolean addPlan(PlayPlanParam playPlanParam){
+
+        PlayPlan playPlan=new PlayPlan();
+        if( AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())){
+            playPlan.setUserId(SecurityUtils.getUserId());
+        }
+        playPlan.setName(playPlanParam.getName());
+        playPlan.setLedProgramName(playPlanParam.getLedProgramName());
+        playPlan.setLedProgramId(playPlanParam.getLedProgramId());
+        playPlan.setVolume(playPlanParam.getVolume());
+        playPlan.setApplySeries(playPlanParam.getApplySeries());
+        playPlan.setOnDateRange(playPlanParam.getOnDateRange());
+        playPlan.setOffDateRange(playPlanParam.getOffDateRange());
+        playPlan.setWeekRange(playPlanParam.getWeekRange());
+        playPlan.setOnTime(playPlanParam.getOnTime());
+        playPlan.setOffTime(playPlanParam.getOffTime());
+
+     return save(playPlan);
+
+    }
+    public boolean updatePlan(Long id,PlayPlanParam playPlanParam){
+        PlayPlan byId = getById(id);
+        if(byId==null){
+            throw new BusinessException("鎿嶄綔瀵硅薄涓嶅瓨鍦�");
+        }
+        PlayPlan playPlan=new PlayPlan();
+        playPlan.setId(id);
+        playPlan.setName(playPlanParam.getName());
+        playPlan.setLedProgramName(playPlanParam.getLedProgramName());
+        playPlan.setLedProgramId(playPlanParam.getLedProgramId());
+        playPlan.setVolume(playPlanParam.getVolume());
+        playPlan.setApplySeries(playPlanParam.getApplySeries());
+        playPlan.setOnDateRange(playPlanParam.getOnDateRange());
+        playPlan.setOffDateRange(playPlanParam.getOffDateRange());
+        playPlan.setWeekRange(playPlanParam.getWeekRange());
+        playPlan.setOnTime(playPlanParam.getOnTime());
+        playPlan.setOffTime(playPlanParam.getOffTime());
+
+        return updateById(playPlan);
+
+    }
+    public boolean deletePlan(Long id){
+        PlayPlan byId = getById(id);
+        if(byId==null){
+            throw new BusinessException("鎿嶄綔瀵硅薄涓嶅瓨鍦�");
+        }
+
+     return removeById(id);
+
+    }
+}

--
Gitblit v1.9.3