Explorar o código

新增沙盘模块,修改专家模块

wuweihao %!s(int64=3) %!d(string=hai) anos
pai
achega
177f095b2b

+ 8 - 0
gis_cms/src/main/java/com/gis/cms/controller/ExpertController.java

@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 
@@ -63,4 +64,11 @@ public class ExpertController {
         return entityService.updateDisplay(id, display);
     }
 
+    @WebControllerLog(description = "专家管理-上传")
+    @ApiOperation(value = "上传(图片、视频)", notes = "type:img:图片, video:视频")
+    @PostMapping("upload/{type}")
+    public Result upload(MultipartFile file, @PathVariable String type) {
+        return entityService.upload(file, type);
+    }
+
 }

+ 67 - 0
gis_cms/src/main/java/com/gis/cms/controller/SandController.java

@@ -0,0 +1,67 @@
+package com.gis.cms.controller;
+
+import com.gis.cms.entity.dto.SandDto;
+import com.gis.cms.entity.po.SandEntity;
+import com.gis.cms.service.SandService;
+import com.gis.common.base.aop.WebControllerLog;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
+/**
+ * Created by owen on 2021/6/24 0008 9:54
+ */
+@Slf4j
+@Api(tags = "沙盘管理")
+@RestController
+@RequestMapping("cms/sand")
+public class SandController {
+
+    @Autowired
+    private SandService entityService;
+
+
+
+    @ApiOperation("列表")
+    @PostMapping("list")
+    public Result<SandEntity> search(@RequestBody PageDto param) {
+        return entityService.search(param, null);
+    }
+
+    @WebControllerLog(description = "沙盘管理-编辑", addDb = true)
+    @ApiOperation(value = "编辑")
+    @PostMapping("save")
+    public Result save(@Valid @RequestBody SandDto param) {
+        return entityService.saveEntity(param);
+    }
+
+
+    @WebControllerLog(description = "专家管理-删除", addDb = true)
+    @ApiOperation("删除")
+    @GetMapping("remove/{id}")
+    public Result remove(@PathVariable Long id) {
+        return entityService.remove(id);
+    }
+
+    @ApiOperation("场景详情")
+    @GetMapping("detail/{id}")
+    public Result<SandEntity> detail(@PathVariable Long id) {
+        return entityService.detail(id);
+    }
+
+    @WebControllerLog(description = "沙盘管理-上传")
+    @ApiOperation(value = "上传(图片)", notes = "type:img:图片")
+    @PostMapping("upload/{type}")
+    public Result upload(MultipartFile file, @PathVariable String type) {
+        return entityService.upload(file, type);
+    }
+
+}

+ 23 - 42
gis_cms/src/main/java/com/gis/cms/controller/WebController.java

@@ -1,9 +1,6 @@
 package com.gis.cms.controller;
 
-import com.gis.admin.entity.dto.PasswordDto;
-import com.gis.admin.entity.dto.ResetPasswordDto;
 import com.gis.cms.entity.dto.*;
-import com.gis.admin.entity.dto.RegisterDto;
 import com.gis.cms.entity.po.*;
 import com.gis.cms.entity.vo.CommentVo;
 import com.gis.cms.entity.vo.SearchVo;
@@ -13,18 +10,15 @@ import com.gis.common.base.aop.WebControllerLog;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.service.LogService;
-import com.gis.common.util.Base64Converter;
 import com.gis.common.util.Result;
 import com.gis.admin.service.*;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.transaction.Transactional;
 import javax.validation.Valid;
 import java.util.List;
 
@@ -69,6 +63,9 @@ public class WebController {
     @Autowired
     QuestionUserService questionUserService;
 
+    @Autowired
+    SandService sandService;
+
 
 
 
@@ -83,8 +80,8 @@ public class WebController {
 
     @ApiOperation("专家风采-列表")
     @PostMapping("expertList")
-    public Result<ExpertEntity> expertList(@RequestBody ExpertPageDto param) {
-        return expertService.search(param, 1);
+    public Result<ExpertEntity> expertList() {
+        return expertService.webList();
     }
 
 
@@ -96,6 +93,12 @@ public class WebController {
         return barrageService.search(param, 1);
     }
 
+    @ApiOperation(value = "沙盘-列表", notes = "不分页")
+    @PostMapping("sandList")
+    public Result<SandEntity> sandList() {
+        return Result.success(sandService.findAll());
+    }
+
 
     @WebControllerLog(description = "门户网站-保存并获取访问量")
     @ApiOperation("保存并获取访问量")
@@ -144,48 +147,26 @@ public class WebController {
         return goodsService.searchGlobal(param);
     }
 
+    @WebControllerLog(description = "门户网站-新增弹幕", addDb = true)
+    @ApiOperation("新增弹幕")
+    @PostMapping("barrageSave")
+    public Result barrageSave(@Valid @RequestBody BarrageDto param) {
+        return barrageService.saveEntity(param);
+    }
 
 
-//    @WebControllerLog(description = "门户网站-留言树列表")
-//    @ApiOperation("门户网站-留言树列表")
-//    @PostMapping("comment/listTree")
-//    public Result<CommentVo> list(@RequestBody PageDateDto param) {
-//        return commentService.voListTree(param, 1);
-//    }
 
 
-    /**
-     * 2021-07-12
-     * 回滚注解在这一层才有效, 在service不生效
-     * @param param
-     * @return
-     */
-//    @WebControllerLog(description = "门户网站-用户注册", addDb = true)
-//    @ApiOperation("用户注册")
-//    @PostMapping("register")
-//    @Transactional
-//    public Result register(@Valid @RequestBody RegisterDto param) {
-//        param.setPassword(Base64Converter.decodePassword(param.getPassword()));
-//        param.setVerifyPassword(Base64Converter.decodePassword(param.getVerifyPassword()));
-//        return sysUserService.register(param);
-//
-//
-//    }
 
-    @WebControllerLog(description = "门户网站-题组列表", addDb = true)
-    @ApiOperation("门户网站-题组列表")
+
+
+    @WebControllerLog(description = "门户网站-获取题目")
+    @ApiOperation("门户网站-获取题目")
     @PostMapping("questionGroup/list")
-    public Result<QuestionGroupEntity> questionGroupList(@Valid @RequestBody StatusPageDataDto param) {
-        param.setStatus(3);
-        return questionGroupService.search(param, 1);
+    public Result<QuestionAnswerEntity> questionList() {
+        return questionGroupService.questionList();
     }
 
-    @WebControllerLog(description = "门户网站-题组详情", addDb = true)
-    @ApiOperation("门户网站-题组详情")
-    @GetMapping("questionGroup/detail/{id}")
-    public Result<QuestionGroupEntity> questionGroupDetail(@PathVariable Long id) {
-        return questionGroupService.detail(id);
-    }
 
 
     @WebControllerLog(description = "门户网站-提交答案", addDb = true)

+ 21 - 1
gis_cms/src/main/java/com/gis/cms/entity/dto/ExpertDto.java

@@ -27,13 +27,33 @@ public class ExpertDto implements Serializable {
     @ApiModelProperty(value = "照片", required = true)
     private String thumb;
 
+    @ApiModelProperty(value = "视频链接")
+    private String video;
+
+    @ApiModelProperty(value = "视频名称")
+    private String videoName;
 
     @NotNull(message = "专家类型不能为空")
-    @ApiModelProperty(value = "专家类型:1:一级,2:二级,3:三级,4:院士", required = true)
+    @ApiModelProperty(value = "专家类型:1:一级,2:二级,3:三级,4:院士,5:其他", required = true)
     private Integer level;
 
     @ApiModelProperty(value = "描述(介绍)")
     private String description;
 
+    @NotNull(message = "年代不能为空")
+    @ApiModelProperty(value = "年代", required = true)
+    private String years;
+
+    @ApiModelProperty(value = "头衔")
+    private String title;
+
+    @ApiModelProperty(value = "忠诚的力量, 1:百岁百岁专家, 2:英模专家代表, 允许为空")
+    private String type;
+
+    @ApiModelProperty(value = "链接名称")
+    private String urlName;
+
+    @ApiModelProperty(value = "链接")
+    private String url;
 
 }

+ 32 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/SandDto.java

@@ -0,0 +1,32 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 烈士表
+ */
+@Data
+public class SandDto implements Serializable {
+
+
+    private static final long serialVersionUID = 1266091613179461683L;
+
+    private Long id;
+
+    @NotBlank(message = "照片不能为空")
+    @ApiModelProperty(value = "照片", required = true)
+    private String thumb;
+
+    @NotBlank(message = "简介不能为空")
+    @ApiModelProperty(value = "简介", required = true)
+    private String description;
+
+    @ApiModelProperty(value = "链接json")
+    private String urls;
+
+
+}

+ 24 - 2
gis_cms/src/main/java/com/gis/cms/entity/po/ExpertEntity.java

@@ -17,25 +17,47 @@ import java.io.Serializable;
 public class ExpertEntity extends BaseEntity implements Serializable {
     private static final long serialVersionUID = 7167520531265687441L;
 
+    @ApiModelProperty(value = "专家类型:1:一级,2:二级,3:三级,4:院士")
+    private Integer level;
 
     @ApiModelProperty(value = "姓名")
     private String name;
 
+    @ApiModelProperty(value = "年代")
+    private String years;
+
+    @ApiModelProperty(value = "头衔")
+    private String title;
+
     @ApiModelProperty(value = "照片")
     private String thumb;
 
+    @ApiModelProperty(value = "视频链接")
+    private String video;
+
+    @ApiModelProperty(value = "视频名称")
+    private String videoName;
+
     @ApiModelProperty(value = "显示,0:不显示, 1:显示")
     private Integer display;
 
     @ApiModelProperty(value = "浏览量")
     private Integer visit;
 
-    @ApiModelProperty(value = "专家类型:1:一级,2:二级,3:三级,4:院士")
-    private Integer level;
+    @ApiModelProperty(value = "忠诚的力量, 1:百岁百岁专家, 2:英模专家代表, 允许为空")
+    private String type;
+
+    @ApiModelProperty(value = "链接名称")
+    private String urlName;
+
+    @ApiModelProperty(value = "链接")
+    private String url;
 
     @ApiModelProperty(value = "描述(介绍)")
     private String description;
 
 
 
+
+
 }

+ 35 - 0
gis_cms/src/main/java/com/gis/cms/entity/po/SandEntity.java

@@ -0,0 +1,35 @@
+package com.gis.cms.entity.po;
+
+import com.gis.common.base.entity.po.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * 沙盘表
+ */
+@Data
+@Entity
+@Table(name = "tb_sand")
+public class SandEntity extends BaseEntity implements Serializable {
+
+
+    private static final long serialVersionUID = 3101177253373122642L;
+
+    @ApiModelProperty(value = "中心名称")
+    private String name;
+
+    @ApiModelProperty(value = "照片")
+    private String thumb;
+
+    @ApiModelProperty(value = "简介")
+    private String description;
+
+    @ApiModelProperty(value = "链接json")
+    private String urls;
+
+
+}

+ 5 - 0
gis_cms/src/main/java/com/gis/cms/mapper/QuestionGroupMapper.java

@@ -4,6 +4,7 @@ package com.gis.cms.mapper;
 import com.gis.cms.entity.po.QuestionGroupEntity;
 import com.gis.common.base.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Component;
 
@@ -16,4 +17,8 @@ public interface QuestionGroupMapper extends IBaseMapper<QuestionGroupEntity, Lo
 
     @Update("update tb_question_group set display=1 , update_time = NOW() where is_delete = 0 and id=#{id}")
     void enabled(Long id);
+
+    /**获取显示题组id*/
+    @Select("select id from tb_question_group where is_delete=0 and display=1 limit 1")
+    Long findIdByDisplay();
 }

+ 16 - 0
gis_cms/src/main/java/com/gis/cms/mapper/SandMapper.java

@@ -0,0 +1,16 @@
+package com.gis.cms.mapper;
+
+
+import com.gis.cms.entity.po.DonateEntity;
+import com.gis.cms.entity.po.SandEntity;
+import com.gis.common.base.mapper.IBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+
+@Component
+@Mapper
+public interface SandMapper extends IBaseMapper<SandEntity, Long> {
+
+
+}

+ 5 - 0
gis_cms/src/main/java/com/gis/cms/service/ExpertService.java

@@ -6,6 +6,7 @@ import com.gis.cms.entity.dto.ExpertDto;
 import com.gis.cms.entity.po.ExpertEntity;
 import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -27,4 +28,8 @@ public interface ExpertService extends IBaseService<ExpertEntity, Long> {
 
 
     void addVisit(Long id);
+
+    Result<ExpertEntity> webList();
+
+    Result upload(MultipartFile file, String type);
 }

+ 4 - 0
gis_cms/src/main/java/com/gis/cms/service/QuestionGroupService.java

@@ -3,6 +3,7 @@ package com.gis.cms.service;
 
 import com.gis.cms.entity.dto.QuestionGroupDto;
 import com.gis.cms.entity.dto.StatusPageDataDto;
+import com.gis.cms.entity.po.QuestionAnswerEntity;
 import com.gis.cms.entity.po.QuestionGroupEntity;
 import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
@@ -23,4 +24,7 @@ public interface QuestionGroupService extends IBaseService<QuestionGroupEntity,
     Result<QuestionGroupEntity> search(StatusPageDataDto param, Integer display);
 
     Result updateDisplay(Long id, Integer display);
+
+
+    Result<QuestionAnswerEntity> questionList();
 }

+ 33 - 0
gis_cms/src/main/java/com/gis/cms/service/SandService.java

@@ -0,0 +1,33 @@
+package com.gis.cms.service;
+
+
+import com.gis.cms.entity.dto.SandDto;
+import com.gis.cms.entity.po.SandEntity;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.service.IBaseService;
+import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:14
+ */
+public interface SandService extends IBaseService<SandEntity, Long> {
+
+
+    Result saveEntity(SandDto param);
+
+    Result remove(Long id);
+
+    Result<SandEntity> detail(Long id);
+
+
+    Result<SandEntity> search(PageDto param, Integer display);
+
+    Result upload(MultipartFile file, String type);
+
+
+
+
+}

+ 78 - 1
gis_cms/src/main/java/com/gis/cms/service/impl/ExpertServiceImpl.java

@@ -1,5 +1,7 @@
 package com.gis.cms.service.impl;
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
 import com.gis.cms.entity.dto.ExpertPageDto;
 import com.gis.cms.entity.dto.ExpertDto;
 import com.gis.cms.entity.po.ExpertEntity;
@@ -9,6 +11,8 @@ import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.constant.MsgCode;
+import com.gis.common.util.FileUtils;
+import com.gis.common.util.RegexUtil;
 import com.gis.common.util.Result;
 import com.gis.cms.service.ExpertService;
 import com.github.pagehelper.PageInfo;
@@ -17,9 +21,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.time.LocalDateTime;
-import java.util.List;
+import java.util.*;
 
 
 /**
@@ -69,6 +74,55 @@ public class ExpertServiceImpl extends IBaseServiceImpl<ExpertEntity, Long> impl
     }
 
     @Override
+    public Result<ExpertEntity> webList() {
+        List<ExpertEntity> all = this.findAll();
+
+        List<ExpertEntity> levle_1 = new ArrayList<>();
+        List<ExpertEntity> levle_2 = new ArrayList<>();
+        List<ExpertEntity> levle_3 = new ArrayList<>();
+        List<ExpertEntity> levle_4 = new ArrayList<>();
+        List<ExpertEntity> levle_5 = new ArrayList<>();
+        // 忠诚力量
+        List<ExpertEntity> loyal_1 = new ArrayList<>();
+        List<ExpertEntity> loyal_2 = new ArrayList<>();
+        for (ExpertEntity entity : all) {
+            Integer level = entity.getLevel();
+            String type = entity.getType();
+            if (level == 1) {
+                levle_1.add(entity);
+            } else if (level == 2) {
+                levle_2.add(entity);
+            } else if (level == 3) {
+                levle_3.add(entity);
+            }else if (level == 4) {
+                levle_4.add(entity);
+            }else if (level == 5) {
+                levle_5.add(entity);
+            }
+
+            // 添加 忠诚力量
+            if (StringUtils.isNotBlank(type)) {
+                if ("1".equals(type)){
+                    loyal_1.add(entity);
+                } else {
+                    loyal_2.add(entity);
+                }
+            }
+        }
+        HashMap<Object, Object> result = new HashMap<>();
+        result.put("level_1", levle_1);
+        result.put("level_2", levle_2);
+        result.put("level_3", levle_3);
+        result.put("level_4", levle_4);
+        result.put("level_5", levle_5);
+        result.put("loyal_1", loyal_1);
+        result.put("loyal_2", loyal_2);
+
+        return Result.success(result);
+    }
+
+
+    @Override
     public Result saveEntity(ExpertDto param) {
         Long id = param.getId();
         ExpertEntity entity = null;
@@ -88,6 +142,11 @@ public class ExpertServiceImpl extends IBaseServiceImpl<ExpertEntity, Long> impl
             if (StringUtils.isNotBlank(thumb) && !StringUtils.equals(param.getThumb(), thumb)){
                 fileUtils.del(thumb);
             }
+
+            String video = entity.getVideo();
+            if (StringUtils.isNotBlank(video) && !StringUtils.equals(param.getVideo(), video)){
+                fileUtils.del(video);
+            }
             BeanUtils.copyProperties(param, entity);
             this.update(entity);
         }
@@ -105,6 +164,9 @@ public class ExpertServiceImpl extends IBaseServiceImpl<ExpertEntity, Long> impl
         // db数据软删除, 物理数据真删除
         entity.setIsDelete(1);
         entity.setUpdateTime(LocalDateTime.now());
+        fileUtils.del(entity.getThumb());
+        fileUtils.del(entity.getVideo());
+
         this.update(entity);
         return Result.success();
     }
@@ -119,5 +181,20 @@ public class ExpertServiceImpl extends IBaseServiceImpl<ExpertEntity, Long> impl
     }
 
 
+    @Override
+    public Result upload(MultipartFile file, String type) {
+
+        // 判断后缀名,需要包含这以下四个
+        String [] typeCheck = {"img","video"};
+        if (!Arrays.asList(typeCheck).contains(type)) {
+            return Result.failure("非法类型");
+        }
+
+        Map<String, Object> map = fileUtils.uploadMap(file, "/expert/" + type, false);
+
+        return Result.success(map);
+    }
+
+
 
 }

+ 12 - 4
gis_cms/src/main/java/com/gis/cms/service/impl/QuestionGroupServiceImpl.java

@@ -114,7 +114,18 @@ public class QuestionGroupServiceImpl extends IBaseServiceImpl<QuestionGroupEnti
         return Result.success();
     }
 
-
+    @Override
+    public Result<QuestionAnswerEntity> questionList() {
+        // 获取显示的题组id
+        Long id = entityMapper.findIdByDisplay();
+        if (id == null){
+            String msg = "没有找到相应显示的题组";
+            log.error(msg);
+            return Result.failure(msg);
+        }
+        List<QuestionAnswerEntity> list = questionAnswerService.findByQuestionGroupId(id);
+        return Result.success(list);
+    }
 
 
     @Override
@@ -123,9 +134,7 @@ public class QuestionGroupServiceImpl extends IBaseServiceImpl<QuestionGroupEnti
         QuestionGroupEntity entity = null;
         if (id == null) {
             entity = new QuestionGroupEntity();
-//            entity.setDisplay(1);
             entity.setName(param.getName());
-//            entity.setUserName(getTokenUserName());
             this.save(entity);
         } else {
             entity = this.findById(id);
@@ -139,7 +148,6 @@ public class QuestionGroupServiceImpl extends IBaseServiceImpl<QuestionGroupEnti
 
         Long groupId = entity.getId();
         // 将绑定的问题组id的问题答案设置为null
-//        questionAnswerService.removeByQuestionGroupId(entity.getId());
         questionAnswerService.disableByQuestionGroupId(groupId);
         // 绑定答案
         String answerIds = param.getAnswerIds();

+ 123 - 0
gis_cms/src/main/java/com/gis/cms/service/impl/SandServiceImpl.java

@@ -0,0 +1,123 @@
+package com.gis.cms.service.impl;
+
+import com.gis.cms.entity.dto.SandDto;
+import com.gis.cms.entity.po.SandEntity;
+import com.gis.cms.mapper.SandMapper;
+import com.gis.cms.service.SandService;
+import com.gis.cms.service.FileService;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
+import com.gis.common.util.Result;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import tk.mybatis.mapper.entity.Condition;
+
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.Map;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:16
+ */
+@Slf4j
+@Service
+public class SandServiceImpl extends IBaseServiceImpl<SandEntity, Long> implements SandService {
+
+    @Autowired
+    private SandMapper entityMapper;
+
+    @Autowired
+    FileService fileService;
+
+    @Override
+    public IBaseMapper<SandEntity, Long> getBaseMapper() {
+        return this.entityMapper;
+    }
+
+    @Override
+    public Result<SandEntity> search(PageDto param, Integer display) {
+        startPage(param);
+        Condition condition = new Condition(SandEntity.class);
+
+//        if (display != null) {
+//            condition.and().andEqualTo("display", display);
+//        }
+
+        condition.orderBy("createTime").desc();
+        PageInfo<SandEntity> pageInfo = this.findAll(condition, param.getPageNum(), param.getPageSize());
+        return Result.success(pageInfo);
+
+    }
+
+
+
+
+
+
+
+    @Override
+    public Result saveEntity(SandDto param) {
+        SandEntity entity = this.findById(param.getId());
+        if (entity == null){
+            return Result.failure("对象不存在");
+        }
+
+        String thumb = entity.getThumb();
+        if (StringUtils.isNotBlank(thumb) && !StringUtils.equals(param.getThumb(), thumb)){
+            fileUtils.del(thumb);
+        }
+
+        BeanUtils.copyProperties(param, entity);
+        this.update(entity);
+        return Result.success();
+    }
+
+    @Override
+    public Result remove(Long id) {
+        SandEntity entity = this.findById(id);
+        if (entity == null) {
+            return Result.success();
+        }
+        // db数据软删除, 物理数据真删除
+        entity.setIsDelete(1);
+        entity.setUpdateTime(LocalDateTime.now());
+        fileUtils.del(entity.getThumb());
+        this.update(entity);
+        return  Result.success();
+    }
+
+    @Override
+    public Result<SandEntity> detail(Long id) {
+        SandEntity entity = this.findById(id);
+        if (entity == null) {
+            return Result.failure("对象不存在");
+        }
+        return  Result.success(entity);
+    }
+
+
+    @Override
+    public Result upload(MultipartFile file, String type) {
+
+        // 判断后缀名,需要包含这以下四个
+        String [] typeCheck = {"img"};
+        if (!Arrays.asList(typeCheck).contains(type)) {
+            return Result.failure("非法类型");
+        }
+
+        Map<String, Object> map = fileUtils.uploadMap(file, "/sand/" + type, false);
+
+        return Result.success(map);
+    }
+
+
+
+}

+ 6 - 0
gis_cms/src/main/resources/db/resource.sql

@@ -0,0 +1,6 @@
+
+
+INSERT INTO `sys_resource` VALUES (400, '2021-07-05 15:49:29', '2021-07-05 15:49:29', '沙盘管理', 'menu', 'sand', NULL, NULL, 0, NULL, NULL);
+INSERT INTO `sys_resource` VALUES (412, '2021-07-05 15:49:29', '2021-07-05 15:49:29', '编辑', 'button', 'sand:edit', NULL, 400, 0, NULL, NULL);
+INSERT INTO `sys_resource` VALUES (413, '2021-07-05 15:49:29', '2021-07-05 15:49:29', '删除', 'button', 'sand:remove', NULL, 400, 0, NULL, NULL);
+INSERT INTO `sys_resource` VALUES (414, '2021-07-05 15:49:29', '2021-07-05 15:49:29', '查看', 'button', 'sand:detail', NULL, 400, 0, NULL, NULL);

+ 7 - 4
gis_common/src/main/java/com/gis/common/util/FileUtils.java

@@ -50,9 +50,12 @@ public class FileUtils {
      * @param path 参数是相对地址
      */
     public void del(String path){
-        String delPath = configConstant.serverBasePath + path;
-        FileUtil.del(delPath);
-        log.info("真删除文件: {}", delPath);
+        if (StringUtils.isNotBlank(path)){
+            String delPath = configConstant.serverBasePath + path;
+            FileUtil.del(delPath);
+            log.info("真删除文件: {}", delPath);
+        }
+
     }
 
     /**
@@ -66,7 +69,7 @@ public class FileUtils {
         String newName = this.upload(file, savePath, isPinYinRename);
         HashMap<String, Object> result = new HashMap<>();
         result.put("fileName", file.getOriginalFilename());
-        result.put("urlPath", savePath + "/" + newName);
+        result.put("filePath", savePath + "/" + newName);
 //        result.put("newName", newName);
         return result;