From 55d66b7f91b856cc37ee02ce26ca15b9a21c7d68 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Tue, 11 May 2021 15:11:58 +0800
Subject: [PATCH] sensor更新接口

---
 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java          |    5 
 screen-manage/src/main/java/com/moral/api/mapper/SensorMapper.java            |    7 +
 screen-manage/src/main/resources/mapper/SensorMapper.xml                      |   61 ++++++++-------
 screen-manage/src/main/java/com/moral/api/service/SensorService.java          |    5 +
 screen-manage/src/main/java/com/moral/api/entity/Sensor.java                  |   32 ++-----
 screen-manage/src/main/java/com/moral/api/controller/SensorController.java    |   14 +++
 screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java |   81 +++++++++++++++++--
 7 files changed, 142 insertions(+), 63 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
index a71d36b..f927c81 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -46,8 +46,9 @@
     USER_EXIST(-32,"������������������"),
     ORGANIZATION_USER_EXIST(-33,"������������������������"),
     SENSOR_IS_EXIST(-34, "���������������"),
-    SENSOR_KEY_IS_EXIST(-35, "������������������������"),
-    ORGANIZATION_USER_NOT_EXIST(-36,"���������������������")
+    SENSOR_KEY_IS_USED(-35, "������������������������"),
+    ORGANIZATION_USER_NOT_EXIST(-36,"���������������������"),
+    SENSOR_IS_NOT_EXIST(-37, "���������������")
     ;
     private final Integer code;
     private final String  msg;
diff --git a/screen-manage/src/main/java/com/moral/api/controller/SensorController.java b/screen-manage/src/main/java/com/moral/api/controller/SensorController.java
index 3183d77..649e6ff 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/SensorController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/SensorController.java
@@ -47,4 +47,18 @@
         return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
         //return null;
     }
+
+    @RequestMapping(value = "updateSensor", method = RequestMethod.POST)
+    @ResponseBody
+    public ResultMessage updateSensor(@RequestBody Map<String, Object> parameters,HttpServletRequest request) {
+        //Sensor sensor = JSON.parseObject(JSON.toJSONString(parameters), Sensor.class);
+        Map<String,Object> resultMap = sensorService.updateSensor(parameters);
+        String msg = resultMap.get("msg").toString();
+        int code = Integer.parseInt(resultMap.get("code").toString());
+        if (code == 0){
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
+        //return null;
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
index 2a9209a..1c37b3a 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
@@ -1,10 +1,13 @@
 package com.moral.api.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -14,7 +17,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-05-06
+ * @since 2021-05-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -36,42 +39,29 @@
     /**
      * ���������������������������
      */
-    private String sensorKey;
+    @TableField(value = "`desc`")
+    private String desc;
 
     /**
-     * ������������
+     * ������������������
      */
-    private String unit;
-
-    /**
-     * ���������
-     */
-    private Double upper;
-
-    /**
-     * ���������
-     */
-    private Double lower;
+    @TableField(value = "`code`")
+    private String code;
 
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
      */
     private String isDelete;
-
-    /**
-     * ������
-     */
-    private String desc;
 
 
     @Override
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/SensorMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/SensorMapper.java
index b7a2a20..69032a1 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/SensorMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/SensorMapper.java
@@ -3,16 +3,21 @@
 import com.moral.api.entity.Sensor;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.Map;
+
 /**
  * <p>
  *  Mapper ������
  * </p>
  *
  * @author moral
- * @since 2021-05-06
+ * @since 2021-05-08
  */
 public interface SensorMapper extends BaseMapper<Sensor> {
 
     void insertOne(Sensor sensor);
 
+    Sensor getSensorById(int id);
+
+    void updateSensor(Map<String,Object> updateSensorMap);
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/SensorService.java b/screen-manage/src/main/java/com/moral/api/service/SensorService.java
index 760ed85..80b9785 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SensorService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/SensorService.java
@@ -12,11 +12,14 @@
  * </p>
  *
  * @author moral
- * @since 2021-05-06
+ * @since 2021-05-08
  */
 @Transactional
 public interface SensorService extends IService<Sensor> {
 
     @Transactional
     Map<String,Object> insertOne(Sensor sensor);
+
+    @Transactional
+    Map<String,Object> updateSensor(Map<String,Object> updateSensorMap);
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
index 3d211b5..04f093d 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
@@ -11,6 +11,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -25,7 +26,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-05-06
+ * @since 2021-05-08
  */
 @Service
 @Transactional
@@ -38,9 +39,10 @@
     LogUtils logUtils;
 
     @Override
+    @Transactional
     public Map<String, Object> insertOne(Sensor sensor) {
         Map<String,Object> resultMap = new HashMap<>();
-        if (sensor.getName()==null || sensor.getSensorKey()==null){
+        if (sensor.getName()==null || sensor.getCode()==null){
             resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
             resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
             return resultMap;
@@ -53,19 +55,78 @@
             resultMap.put("msg",ResponseCodeEnum.SENSOR_IS_EXIST.getMsg());
             return resultMap;
         }
-        QueryWrapper<Sensor> wrapper_sensorKey = new QueryWrapper<>();
-        wrapper_sensorKey.eq("sensor_key",sensor.getSensorKey());
-        wrapper_sensorKey.eq("is_delete","0");
-        if (sensorMapper.selectCount(wrapper_sensorKey)!=0){
-            resultMap.put("code",ResponseCodeEnum.SENSOR_KEY_IS_EXIST.getCode());
-            resultMap.put("msg",ResponseCodeEnum.SENSOR_KEY_IS_EXIST.getMsg());
+        QueryWrapper<Sensor> wrapper_code = new QueryWrapper<>();
+        wrapper_code.eq("code",sensor.getCode());
+        wrapper_code.eq("is_delete","0");
+        if (sensorMapper.selectCount(wrapper_code)!=0){
+            resultMap.put("code",ResponseCodeEnum.SENSOR_KEY_IS_USED.getCode());
+            resultMap.put("msg",ResponseCodeEnum.SENSOR_KEY_IS_USED.getMsg());
             return resultMap;
         }
-        //sensorMapper.insertOne(sensor);
+        sensorMapper.insertOne(sensor);
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         String content = "������������:"+sensor.getName()+";";
-        //logUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE);
+        logUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE);
+        resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
+        resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> updateSensor(Map<String,Object> updateSensorMap) {
+        Map<String,Object> resultMap = new HashMap<>();
+        if(ObjectUtils.isEmpty(updateSensorMap.get("id"))){
+            resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            return resultMap;
+        }
+        if (updateSensorMap.containsKey("name")){
+            if (updateSensorMap.get("name")==null||updateSensorMap.get("name")==""){
+                resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+                resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+                return resultMap;
+            }
+        }
+        if (updateSensorMap.containsKey("code")){
+            if(ObjectUtils.isEmpty(updateSensorMap.get("code"))){
+                resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+                resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+                return resultMap;
+            }
+        }
+        Sensor oldSensor = sensorMapper.getSensorById(Integer.parseInt(updateSensorMap.get("id").toString()));
+        if (ObjectUtils.isEmpty(oldSensor)){
+            resultMap.put("code",ResponseCodeEnum.SENSOR_IS_NOT_EXIST.getCode());
+            resultMap.put("msg",ResponseCodeEnum.SENSOR_IS_NOT_EXIST.getMsg());
+            return resultMap;
+        }
+        QueryWrapper<Sensor> wrapper_code = new QueryWrapper<>();
+        wrapper_code.eq("code",updateSensorMap.get("code"));
+        wrapper_code.eq("is_delete","0");
+        List<Sensor> sensorList = sensorMapper.selectList(wrapper_code);
+        System.out.println(sensorList.get(0));
+        if (sensorList.size()!=0&&!sensorList.get(0).getId().toString().equals(updateSensorMap.get("id").toString())){
+            resultMap.put("code",ResponseCodeEnum.SENSOR_KEY_IS_USED.getCode());
+            resultMap.put("msg",ResponseCodeEnum.SENSOR_KEY_IS_USED.getMsg());
+            return resultMap;
+        }
+        sensorMapper.updateSensor(updateSensorMap);
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        String content = "������������:"+oldSensor.getName()+";";
+        for (Object key:updateSensorMap.keySet()) {
+            if (key.toString().equals("name")){
+                content = content+"���������:"+oldSensor.getName()+"->"+updateSensorMap.get(key)+";";
+            }
+            if (key.toString().equals("code")){
+                content = content+"������:"+oldSensor.getCode()+"->"+updateSensorMap.get(key)+";";
+            }
+            if (key.toString().equals("desc")){
+                content = content+"������:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";";
+            }
+        }
+        System.out.println(content);
+        logUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE);
         resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
         resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
         return resultMap;
diff --git a/screen-manage/src/main/resources/mapper/SensorMapper.xml b/screen-manage/src/main/resources/mapper/SensorMapper.xml
index a5ec44d..123dc80 100644
--- a/screen-manage/src/main/resources/mapper/SensorMapper.xml
+++ b/screen-manage/src/main/resources/mapper/SensorMapper.xml
@@ -6,18 +6,15 @@
         <resultMap id="BaseResultMap" type="com.moral.api.entity.Sensor">
                     <id column="id" property="id" />
                     <result column="name" property="name" />
-                    <result column="sensor_key" property="sensorKey" />
-                    <result column="unit" property="unit" />
-                    <result column="upper" property="upper" />
-                    <result column="lower" property="lower" />
+                    <result column="desc" property="desc" />
+                    <result column="code" property="code" />
                     <result column="create_time" property="createTime" />
                     <result column="update_time" property="updateTime" />
                     <result column="is_delete" property="isDelete" />
-                    <result column="desc" property="desc" />
         </resultMap>
 
     <sql id="Base_Column_List">
-            s.id,s.name,s.sensor_key,s.unit,s.upper,s.lower,s.create_time,s.update_time,s.id_delete,s.desc
+            s.id,s.name,s.code,s.desc,s.create_time,s.update_time,s.is_delete
     </sql>
 
     <insert id="insertOne" parameterType="com.moral.api.entity.Sensor">
@@ -26,17 +23,8 @@
             <if test="name != null">
                 name,
             </if>
-            <if test="sensorKey != null">
-                sensor_key,
-            </if>
-            <if test="unit != null">
-                unit,
-            </if>
-            <if test="upper != null">
-                upper,
-            </if>
-            <if test="lower != null">
-                lower,
+            <if test="code != null">
+                code,
             </if>
             <if test="desc != null">
                 `desc`,
@@ -46,17 +34,8 @@
             <if test="name != null">
                 #{name},
             </if>
-            <if test="sensorKey != null">
-                #{sensorKey},
-            </if>
-            <if test="unit != null">
-                #{unit},
-            </if>
-            <if test="upper != null">
-                #{upper},
-            </if>
-            <if test="lower != null">
-                #{lower},
+            <if test="code != null">
+                #{code},
             </if>
             <if test="desc != null">
                 #{desc},
@@ -64,4 +43,30 @@
         </trim>
     </insert>
 
+    <select id="getSensorById" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from sensor s
+        where s.id = #{id}
+        and s.is_delete = 0
+    </select>
+
+    <update id="updateSensor" parameterType="java.util.Map">
+        update sensor
+        <set>
+            <if test="name != null">
+                name = #{name},
+            </if>
+            <if test="desc != null">
+                `desc` = #{desc},
+            </if>
+            <if test="code != null">
+                code = #{code},
+            </if>
+            <if test="isDelete != null">
+                is_delete = #{isDelete},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0