瀏覽代碼

场景增加校验并增加图片上传功能

wangyangyang 4 年之前
父節點
當前提交
408ed7930f

+ 35 - 3
sms_water/src/main/java/com/huaxu/controller/SceneController.java

@@ -2,6 +2,7 @@ package com.huaxu.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.common.FileUploadUtil;
 import com.huaxu.dto.DeviceDto;
 import com.huaxu.entity.SceneTypeEntity;
 import com.huaxu.model.AjaxMessage;
@@ -11,16 +12,19 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.ui.ModelMap;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.Date;
 import org.springframework.web.bind.annotation.*;
 import com.huaxu.entity.SceneEntity;
 import com.huaxu.service.SceneService;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 场景信息页面控制器
@@ -33,11 +37,13 @@ import com.huaxu.service.SceneService;
 public class SceneController {
     @Autowired
     private SceneService sceneService;
+    @Value("${SMS.sys_config_path}")
+    private String baseDir;
 
     @ApiOperation(value = "分页查询场景")
-    @RequestMapping(value = "/selectPage",method = RequestMethod.POST)
+    @RequestMapping(value = "/selectPage", method = RequestMethod.POST)
     @ResponseBody
-    public AjaxMessage<Pagination<SceneEntity>>  selectPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(value = "sceneName", required = false) String sceneName) {
+    public AjaxMessage<Pagination<SceneEntity>> selectPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(value = "sceneName", required = false) String sceneName) {
         IPage<SceneEntity> iPage = new Page<>(pageNum, pageSize);
         SceneEntity sceneEntity = new SceneEntity();
         sceneEntity.setSceneName(sceneName);
@@ -45,6 +51,7 @@ public class SceneController {
         Pagination<SceneEntity> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+
     @ApiOperation(value = "查询场景树")
     @RequestMapping(value = "/selectList", method = RequestMethod.POST)
     @ResponseBody
@@ -53,6 +60,25 @@ public class SceneController {
         List<SceneEntity> menuEntities = sceneService.findAllList(sceneEntity);
         return new AjaxMessage<>(ResultStatus.OK, menuEntities);
     }
+
+    /**
+     * 新增
+     */
+    @ApiOperation(value = "场景图片")
+    @RequestMapping(value = "addSceneImage", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<String> addUserPhoto(@ApiParam(value = "场景图片", required = true) @RequestParam("avatarfile") MultipartFile file) {
+        String avatar = "";
+        if (!file.isEmpty()) {
+            try {
+                avatar = FileUploadUtil.uploadWeb(baseDir, file);
+            } catch (IOException e) {
+                return new AjaxMessage<>(ResultStatus.ERROR, e.getMessage());
+            }
+        }
+        return new AjaxMessage<>(ResultStatus.OK, avatar);
+    }
+
     /**
      * 新增
      */
@@ -60,6 +86,7 @@ public class SceneController {
     @RequestMapping(value = "/add", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<Integer> addScene(@ApiParam(value = "场景", required = true) @RequestBody SceneEntity scene) {
+
         int result = sceneService.addScene(scene) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
@@ -71,7 +98,7 @@ public class SceneController {
     @ApiOperation(value = "按ID查询场景")
     @RequestMapping(value = "/selectById", method = RequestMethod.GET)
     @ResponseBody
-    public AjaxMessage<SceneEntity>  selectById(@ApiParam(value = "ID", required = true) @RequestParam Long id) {
+    public AjaxMessage<SceneEntity> selectById(@ApiParam(value = "ID", required = true) @RequestParam Long id) {
         SceneEntity scene = sceneService.findSceneById(id);
         return new AjaxMessage<>(ResultStatus.OK, scene);
     }
@@ -94,6 +121,11 @@ public class SceneController {
     @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<Integer> del(@ApiParam(value = "场景ID", required = true) @RequestBody Long[] ids) {
+
+        List<SceneEntity> scenes = sceneService.findByParentSceneIds(ids);
+        if (scenes.size() > 0) {
+            return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR);
+        }
         int result = sceneService.delSceneByIds(ids) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }

+ 11 - 0
sms_water/src/main/java/com/huaxu/controller/SceneTypeController.java

@@ -62,6 +62,11 @@ public class SceneTypeController {
     @RequestMapping(value = "/add", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<Integer> addSceneType(@ApiParam(value = "场景类型", required = true) @RequestBody SceneTypeEntity sceneType) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        if(currentUser!=null) {
+            sceneType.setCreateBy(currentUser.getName());
+            sceneType.setUpdateBy(currentUser.getName());
+        }
         int result = sceneTypeService.addSceneType(sceneType) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
@@ -76,6 +81,8 @@ public class SceneTypeController {
         for (SceneTypeEntity item : sceneTypes) {
             item.setTenantId(currentUser.getTenantId());
             item.setStatus(1);
+            item.setCreateBy(currentUser.getName());
+            item.setUpdateBy(currentUser.getName());
         }
         int result = sceneTypeService.saveOrUpdateBatch(sceneTypes) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
@@ -88,6 +95,10 @@ public class SceneTypeController {
     @ResponseBody
     @ApiOperation(value = "修改")
     public AjaxMessage<Integer> editSceneType(@ApiParam(value = "场景类型", required = true) @RequestBody SceneTypeEntity sceneType) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        if(currentUser!=null) {
+            sceneType.setUpdateBy(currentUser.getName());
+        }
         int result = sceneTypeService.updateSceneTypeById(sceneType) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }

+ 1 - 0
sms_water/src/main/java/com/huaxu/dao/SceneImageMapper.java

@@ -21,5 +21,6 @@ public interface SceneImageMapper extends BaseMapper<SceneImageEntity> {
 
      List<SceneImageEntity> findList(SceneImageEntity sceneImageEntity);
 
+     int updateBySceneId(@Param("id")Long id);
      /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 10 - 7
sms_water/src/main/java/com/huaxu/dao/SceneMapper.java

@@ -17,18 +17,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 @Mapper
 public interface SceneMapper extends BaseMapper<SceneEntity> {
 
-	/**
+    /**
      * 自定义分页查询
-     * @param  page
+     *
+     * @param page
      */
-     Page<SceneEntity> findPage(IPage<SceneEntity> page,@Param(value = "scene") SceneEntity sceneEntity);
+    Page<SceneEntity> findPage(IPage<SceneEntity> page, @Param(value = "scene") SceneEntity sceneEntity);
 
-     SceneEntity findSceneById(Serializable id);
+    SceneEntity findSceneById(Serializable id);
 
 
-     List<SceneEntity> findList(@Param(value = "scene") SceneEntity sceneEntity);
+    List<SceneEntity> findList(@Param(value = "scene") SceneEntity sceneEntity);
 
-     List<SceneEntity>  findBySceneTypeIds(@Param(value = "Ids") Long[] Ids);
+    List<SceneEntity> findBySceneTypeIds(@Param(value = "Ids") Long[] Ids);
 
-     /**删除相关方法  使用mybatis-plus集成的 **/
+    List<SceneEntity> findByParentSceneIds(@Param(value = "Ids") Long[] Ids);
+
+    /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 4 - 0
sms_water/src/main/java/com/huaxu/entity/SceneEntity.java

@@ -115,4 +115,8 @@ public class SceneEntity implements Serializable {
     @ApiModelProperty(value = "子类", position = 100)
     @TableField(exist = false)
     private List<SceneEntity> children;
+
+    @ApiModelProperty(value = "场景图片", position = 100)
+    @TableField(exist = false)
+    private List<SceneImageEntity> sceneImages;
 }

+ 3 - 4
sms_water/src/main/java/com/huaxu/entity/SceneImageEntity.java

@@ -1,9 +1,7 @@
 package com.huaxu.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -38,6 +36,7 @@ public class SceneImageEntity implements Serializable {
     private Long sceneId;
 
     /** 数据删除标记 */
+    @TableLogic
     private Integer status;
 
     @ApiModelProperty(value = "创建人")

+ 5 - 1
sms_water/src/main/java/com/huaxu/service/SceneImageService.java

@@ -3,6 +3,7 @@ package com.huaxu.service;
 
 import com.huaxu.dao.SceneImageMapper;
 import com.huaxu.entity.SceneImageEntity;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -69,7 +70,10 @@ public class SceneImageService extends ServiceImpl<SceneImageMapper, SceneImageE
         }
         return false;
     }
-
+    public int updateBySceneId(@Param("id")Long id)
+    {
+       return sceneImageMapper.updateBySceneId(id);
+    }
     /**
      * 根居ID获取对象
      */

+ 37 - 0
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -2,13 +2,17 @@ package com.huaxu.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dao.SceneImageMapper;
 import com.huaxu.dao.SceneMapper;
 import com.huaxu.entity.SceneEntity;
+import com.huaxu.entity.SceneImageEntity;
 import com.huaxu.entity.SceneTypeEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ResultStatus;
+import com.huaxu.util.Snowflake;
 import com.huaxu.util.UserUtil;
+import javafx.scene.Scene;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -20,6 +24,7 @@ import javax.annotation.Resource;
 
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.Map;
 import java.util.List;
 import java.util.Arrays;
@@ -37,6 +42,8 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
 
     @Resource
     private SceneMapper sceneMapper;
+    @Resource
+    private SceneImageService sceneImageService;
 
     /**
      * 自定义分页查询,含关联实体对像
@@ -134,6 +141,18 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         scene.setTenantId(currentUser.getTenantId());
         scene.setStatus(1);
         if (this.save(scene)) {
+            Long id = scene.getId();
+            //增加场景图片
+            for(SceneImageEntity sceneImage: scene.getSceneImages())
+            {
+                sceneImage.setCreateBy(currentUser.getName());
+                sceneImage.setDateCreate(new Date());
+                sceneImage.setDateUpdate(new Date());
+                sceneImage.setSceneId(id);
+                sceneImage.setStatus(1);
+                sceneImage.setUpdateBy(currentUser.getName());
+            }
+            sceneImageService.saveBatch(scene.getSceneImages());
             return true;
         }
         return false;
@@ -146,6 +165,19 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         LoginUser currentUser = UserUtil.getCurrentUser();
         scene.setUpdateBy(currentUser.getName());
         if (this.updateById(scene)) {
+            //删除之前的图片信息
+             sceneImageService.updateBySceneId(scene.getId());
+            //增加场景图片
+            for(SceneImageEntity sceneImage: scene.getSceneImages())
+            {
+                sceneImage.setCreateBy(currentUser.getName());
+                sceneImage.setDateCreate(new Date());
+                sceneImage.setDateUpdate(new Date());
+                sceneImage.setSceneId(scene.getId());
+                sceneImage.setStatus(1);
+                sceneImage.setUpdateBy(currentUser.getName());
+            }
+            sceneImageService.saveBatch(scene.getSceneImages());
             return true;
         }
         return false;
@@ -161,4 +193,9 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     public List<SceneEntity> findBySceneTypeIds(Long[] Ids) {
         return sceneMapper.findBySceneTypeIds(Ids);
     }
+
+
+    public List<SceneEntity>  findByParentSceneIds(Long[] Ids) {
+        return sceneMapper.findByParentSceneIds(Ids);
+    }
 }

+ 2 - 2
sms_water/src/main/resources/application-dev.properties

@@ -65,8 +65,8 @@ spring.kafka.consumer.properties.spring.json.trusted.packages=*
 
 #nacos
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
-UMIS.sys_config_path=/UMIS_USER_IMAGES/
-UMIS.sys_excel_path=/UMIS_USER_EXCEL/
+SMS.sys_config_path=/UMIS_SMS_IMAGES/
+SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 
 
 

+ 2 - 2
sms_water/src/main/resources/application-prd.properties

@@ -65,5 +65,5 @@ spring.kafka.consumer.properties.spring.json.trusted.packages=*
 
 #nacos
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
-UMIS.sys_config_path=/UMIS_USER_IMAGES/
-UMIS.sys_excel_path=/UMIS_USER_EXCEL/
+SMS.sys_config_path=/UMIS_SMS_IMAGES/
+SMS.sys_excel_path=/UMIS_SMS_EXCEL/

+ 2 - 2
sms_water/src/main/resources/application-sit.properties

@@ -65,8 +65,8 @@ spring.kafka.consumer.properties.spring.json.trusted.packages=*
 
 #nacos
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
-UMIS.sys_config_path=/UMIS_USER_IMAGES/
-UMIS.sys_excel_path=/UMIS_USER_EXCEL/
+SMS.sys_config_path=/UMIS_SMS_IMAGES/
+SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 
 
 

+ 3 - 0
sms_water/src/main/resources/mapper/SceneImageMapper.xml

@@ -66,4 +66,7 @@
             <if test="sceneImage.dateUpdate != null ">and a.date_update = #{sceneImage.dateUpdate}</if>
         </where>
     </select>
+    <update id="updateBySceneId">
+        update sms_scene_image  set STATUS=0 where SCENE_ID=#{id}
+    </update>
 </mapper>

+ 9 - 0
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -106,6 +106,15 @@
             #{dramaId}
         </foreach>
     </select>
+    <!--  根据主键获取租户菜单  -->
+    <select id="findByParentSceneIds" resultType="com.huaxu.entity.SceneEntity">
+        select a.id
+        FROM sms_scene a
+        WHERE a.parent_scene_id in
+        <foreach collection = "Ids" item = "dramaId" open = "(" close = ")" separator = "," >
+            #{dramaId}
+        </foreach>
+    </select>
     <!--  根据获取实体 page   -->
     <select id="findPage" resultType="com.huaxu.entity.SceneEntity">
         SELECT