Переглянути джерело

添加编辑、删除垃圾桶设备

zhj 2 роки тому
батько
коміт
154f6d6084

+ 4 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -29,6 +29,10 @@ public enum InterfaceResultEnum {
     CLOUD_BOX_SN_UNIQUE_ERROR("0222","云盒序列号已经存在","",""),
     LACK_CLOUD_BOX_SN_ERROR("0223","云盒序列号不能为空","",""),
     CLOUD_BOX_SN_FORMAT_ERROR("0224","云盒未授权","",""),
+    LACK_TRASH_CAN_ADDRESS_ERROR("0225","请填写垃圾桶设备地址","",""),
+    TRASH_CAN_ADDRESS_UNIQUE_ERROR("0226","垃圾桶设备地址重复","",""),
+    LACK_TRASH_CAN_NAME_ERROR("0227","请填写垃圾桶设备名称","",""),
+    TRASH_CAN_NAME_UNIQUE_ERROR("0228","垃圾桶设备名称重复","",""),
     ;
     private String code;
     private String msgCn;

+ 59 - 0
src/main/java/com/welampiot/controller/TranshController.java

@@ -1,6 +1,7 @@
 package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.TranshInfoDTO;
 import com.welampiot.service.TranshInfoService;
 import com.welampiot.utils.ToolUtils;
@@ -86,4 +87,62 @@ public class TranshController {
         TranshInfoVO list = transhInfoService.getHistoryListByDTO(dto);
         return BaseResult.success(list);
     }
+
+    /**
+     * 添加编辑垃圾桶设备
+     * @param request 添加的设备属性
+     * @return 返回添加的设备数据
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public BaseResult save(HttpServletRequest request){
+        int version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        int id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        int areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        int sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        double longitude = request.getParameter("longitude") == null || request.getParameter("longitude").length() == 0 ? 0 : Double.parseDouble(request.getParameter("longitude"));
+        double latitude = request.getParameter("latitude") == null || request.getParameter("latitude").length() == 0 ? 0 : Double.parseDouble(request.getParameter("latitude"));
+        String name = request.getParameter("name");
+        String address = request.getParameter("address");
+
+        TranshInfoDTO dto = new TranshInfoDTO();
+        if (id == 0) { // 添加
+            dto.setAreaId(areaId);
+            dto.setSectionId(sectionId);
+            dto.setName(name);
+            dto.setAddress(address);
+            dto.setLongitude(longitude);
+            dto.setLatitude(latitude);
+            dto.setVersion(version);
+            return transhInfoService.addTranshDataByDTO(dto);
+        } else { // 编辑
+            dto = new TranshInfoDTO();
+            dto.setId(id);
+            dto.setAreaId(areaId);
+            dto.setSectionId(sectionId);
+            dto.setName(name);
+            dto.setAddress(address);
+            dto.setLongitude(longitude);
+            dto.setLatitude(latitude);
+            dto.setVersion(version);
+            return transhInfoService.updateTranshDataByTranshId(dto);
+        }
+    }
+
+    /**
+     * 删除垃圾桶设备
+     * @param request 根据id删除设备
+     * @return 操作成功
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    public BaseResult del(HttpServletRequest request){
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String id = request.getParameter("id");
+        if (id == null || id.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String[] split = id.split(",");
+        for (String trashId : split) {
+            int l = Integer.parseInt(trashId);
+            transhInfoService.deleteTrashDevById(l);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 10 - 0
src/main/java/com/welampiot/dao/TranshInfoDao.java

@@ -28,4 +28,14 @@ public interface TranshInfoDao {
 
     /** 获取设备日志 **/
     List<TranshInfoDTO> getHistoryListByDTO(TranshInfoDTO dto);
+
+    void addTranshDataByDTO(TranshInfoDTO dto);
+
+    void updateTranshDataByTranshId(TranshInfoDTO dto);
+
+    Integer findByDTO(TranshInfoDTO dto);
+
+    Integer checkDataByDTO(TranshInfoDTO dto);
+
+    void deleteTrashDevById(@Param("id") Integer id);
 }

+ 2 - 0
src/main/java/com/welampiot/dto/TranshInfoDTO.java

@@ -124,5 +124,7 @@ public class TranshInfoDTO implements Serializable {
 
     private String keywords;
 
+    private Integer version;
+
     private static final long serialVersionUID = 1L;
 }

+ 7 - 0
src/main/java/com/welampiot/service/TranshInfoService.java

@@ -1,5 +1,6 @@
 package com.welampiot.service;
 
+import com.welampiot.common.BaseResult;
 import com.welampiot.dto.TranshInfoDTO;
 import com.welampiot.vo.TranshInfoVO;
 
@@ -20,4 +21,10 @@ public interface TranshInfoService {
     TranshInfoVO getTranshList(TranshInfoDTO dto, Integer version);
 
     TranshInfoVO getHistoryListByDTO(TranshInfoDTO dto);
+
+    BaseResult addTranshDataByDTO(TranshInfoDTO dto);
+
+    BaseResult updateTranshDataByTranshId(TranshInfoDTO dto);
+
+    void deleteTrashDevById(Integer id);
 }

+ 47 - 0
src/main/java/com/welampiot/service/impl/TranshInfoServiceImpl.java

@@ -1,8 +1,11 @@
 package com.welampiot.service.impl;
 
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dao.TranshInfoDao;
 import com.welampiot.dto.TranshInfoDTO;
 import com.welampiot.service.TranshInfoService;
+import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.TranshInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,6 +31,9 @@ public class TranshInfoServiceImpl implements TranshInfoService {
     @Autowired
     private TranshInfoDao transhInfoDao;
 
+    @Autowired
+    private ToolUtils toolUtils;
+
     @Override
     public TranshInfoVO getTotalBySectionList(List<TranshInfoDTO> sectionList) {
         TranshInfoVO vo = new TranshInfoVO();
@@ -243,4 +249,45 @@ public class TranshInfoServiceImpl implements TranshInfoService {
         vo.setList(list);
         return vo;
     }
+
+    @Override
+    public BaseResult addTranshDataByDTO(TranshInfoDTO dto) {
+        if (dto.getName() == null || dto.getName().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_TRASH_CAN_NAME_ERROR,dto.getVersion());
+        if (dto.getAddress() == null || dto.getAddress().length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_TRASH_CAN_ADDRESS_ERROR,dto.getVersion());
+        if (dto.getAreaId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR, dto.getVersion());
+        if (dto.getSectionId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR, dto.getVersion());
+
+        TranshInfoDTO transhInfoDTO = new TranshInfoDTO();
+        transhInfoDTO.setName(dto.getName());
+        transhInfoDTO.setSectionId(dto.getSectionId());
+        if (transhInfoDao.findByDTO(transhInfoDTO) > 0) return toolUtils.response(InterfaceResultEnum.TRASH_CAN_NAME_UNIQUE_ERROR,dto.getVersion());
+        transhInfoDTO = new TranshInfoDTO();
+        transhInfoDTO.setAddress(dto.getAddress());
+        transhInfoDTO.setSectionId(dto.getSectionId());
+        if (transhInfoDao.findByDTO(transhInfoDTO) > 0) return toolUtils.response(InterfaceResultEnum.TRASH_CAN_ADDRESS_UNIQUE_ERROR,dto.getVersion());
+
+        transhInfoDao.addTranshDataByDTO(dto);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,dto.getVersion());
+    }
+
+    @Override
+    public BaseResult updateTranshDataByTranshId(TranshInfoDTO dto) {
+        TranshInfoDTO transhInfoDTO = new TranshInfoDTO();
+        transhInfoDTO.setId(dto.getId());
+        transhInfoDTO.setName(dto.getName());
+        transhInfoDTO.setSectionId(dto.getSectionId());
+        if (transhInfoDao.checkDataByDTO(transhInfoDTO) > 0) return toolUtils.response(InterfaceResultEnum.TRASH_CAN_NAME_UNIQUE_ERROR,dto.getVersion());
+        transhInfoDTO = new TranshInfoDTO();
+        transhInfoDTO.setId(dto.getId());
+        transhInfoDTO.setAddress(dto.getAddress());
+        transhInfoDTO.setSectionId(dto.getSectionId());
+        if (transhInfoDao.checkDataByDTO(transhInfoDTO) > 0) return toolUtils.response(InterfaceResultEnum.TRASH_CAN_ADDRESS_UNIQUE_ERROR,dto.getVersion());
+        transhInfoDao.updateTranshDataByTranshId(dto);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,dto.getVersion());
+    }
+
+    @Override
+    public void deleteTrashDevById(Integer id) {
+        transhInfoDao.deleteTrashDevById(id);
+    }
 }

+ 55 - 0
src/main/resources/mapper/TranshInfoMapper.xml

@@ -86,4 +86,59 @@
             </if>
     </select>
 
+    <select id="findByDTO" resultType="Integer">
+        select count(*)
+        from transh_info t
+        where 1=1
+            <if test="sectionId != null">
+                and t.sectionid = #{sectionId}
+            </if>
+            <if test="name != null">
+                and t.name = #{name}
+            </if>
+            <if test="address != null">
+                and t.address = #{address}
+            </if>
+    </select>
+
+    <select id="checkDataByDTO" resultType="Integer" parameterType="com.welampiot.dto.TranshInfoDTO">
+        select count(*) from transh_info t
+        where 1=1
+            <if test="sectionId != null">
+                and t.sectionid = #{sectionId}
+            </if>
+            <if test="name != null">
+                and t.name = #{name}
+            </if>
+            <if test="address != null">
+                and t.address = #{address}
+            </if>
+            <if test="id != null">
+                and t.id != #{id}
+            </if>
+        limit 1
+    </select>
+
+    <insert id="addTranshDataByDTO" parameterType="com.welampiot.dto.TranshInfoDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into transh_info(areaid, sectionid, address, name, longitude, latitude)
+        values
+            (#{areaId}, #{sectionId}, #{address}, #{name}, #{longitude}, #{latitude})
+    </insert>
+
+    <update id="updateTranshDataByTranshId" parameterType="com.welampiot.dto.TranshInfoDTO">
+        update transh_info
+        set
+            areaid = #{areaId},
+            sectionid = #{sectionId},
+            name = #{name},
+            address = #{address},
+            longitude = #{longitude},
+            latitude = #{latitude}
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTrashDevById">
+        delete from transh_info where id = #{id}
+    </delete>
+
 </mapper>