Quellcode durchsuchen

新增720云分支
改用mybaits plus框架

wuweihao vor 3 Jahren
Ursprung
Commit
c81e623546
87 geänderte Dateien mit 2359 neuen und 834 gelöschten Zeilen
  1. 23 3
      gis_admin/src/main/java/com/gis/admin/controller/ExceptionController.java
  2. 0 1
      gis_admin/src/main/java/com/gis/admin/controller/LogController.java
  3. 30 132
      gis_admin/src/main/java/com/gis/admin/controller/LoginController.java
  4. 2 4
      gis_admin/src/main/java/com/gis/admin/controller/SysUserController.java
  5. 6 3
      gis_admin/src/main/java/com/gis/admin/entity/po/SysResourceEntity.java
  6. 4 2
      gis_admin/src/main/java/com/gis/admin/entity/po/SysRoleEntity.java
  7. 7 2
      gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java
  8. 2 2
      gis_admin/src/main/java/com/gis/admin/mapper/SysResourceMapper.java
  9. 7 3
      gis_admin/src/main/java/com/gis/admin/mapper/SysRoleMapper.java
  10. 9 8
      gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java
  11. 2 1
      gis_admin/src/main/java/com/gis/admin/mapper/provider/SysRoleProvider.java
  12. 2 1
      gis_admin/src/main/java/com/gis/admin/mapper/provider/SysUserProvider.java
  13. 2 2
      gis_admin/src/main/java/com/gis/admin/service/SysResourceService.java
  14. 2 2
      gis_admin/src/main/java/com/gis/admin/service/SysRoleService.java
  15. 3 4
      gis_admin/src/main/java/com/gis/admin/service/SysUserService.java
  16. 18 13
      gis_admin/src/main/java/com/gis/admin/service/impl/SysResourceServiceImpl.java
  17. 48 26
      gis_admin/src/main/java/com/gis/admin/service/impl/SysRoleServiceImpl.java
  18. 107 86
      gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java
  19. 0 10
      gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java
  20. 7 2
      gis_application/pom.xml
  21. 21 8
      gis_application/src/main/resources/application.properties
  22. 4 4
      gis_cms/src/main/java/com/gis/cms/controller/BarrageController.java
  23. 4 4
      gis_cms/src/main/java/com/gis/cms/controller/CommentController.java
  24. 2 2
      gis_cms/src/main/java/com/gis/cms/controller/WebController.java
  25. 4 0
      gis_cms/src/main/java/com/gis/cms/entity/dto/GoodsPageDateDto.java
  26. 3 1
      gis_cms/src/main/java/com/gis/cms/entity/po/BarrageEntity.java
  27. 3 1
      gis_cms/src/main/java/com/gis/cms/entity/po/CommentEntity.java
  28. 3 1
      gis_cms/src/main/java/com/gis/cms/entity/po/FileEntity.java
  29. 3 1
      gis_cms/src/main/java/com/gis/cms/entity/po/GoodsEntity.java
  30. 3 1
      gis_cms/src/main/java/com/gis/cms/entity/po/SensitiveEntity.java
  31. 3 2
      gis_cms/src/main/java/com/gis/cms/mapper/BarrageMapper.java
  32. 3 2
      gis_cms/src/main/java/com/gis/cms/mapper/CommentMapper.java
  33. 3 2
      gis_cms/src/main/java/com/gis/cms/mapper/FileMapper.java
  34. 6 6
      gis_cms/src/main/java/com/gis/cms/mapper/GoodsMapper.java
  35. 3 3
      gis_cms/src/main/java/com/gis/cms/mapper/MyBaseMapper.java
  36. 2 2
      gis_cms/src/main/java/com/gis/cms/mapper/SensitiveMapper.java
  37. 2 1
      gis_cms/src/main/java/com/gis/cms/mapper/provider/CommentProvider.java
  38. 4 3
      gis_cms/src/main/java/com/gis/cms/mapper/provider/GoodsProvider.java
  39. 4 4
      gis_cms/src/main/java/com/gis/cms/service/BarrageService.java
  40. 5 5
      gis_cms/src/main/java/com/gis/cms/service/CommentService.java
  41. 3 2
      gis_cms/src/main/java/com/gis/cms/service/FileService.java
  42. 3 3
      gis_cms/src/main/java/com/gis/cms/service/GoodsService.java
  43. 3 3
      gis_cms/src/main/java/com/gis/cms/service/SensitiveService.java
  44. 34 16
      gis_cms/src/main/java/com/gis/cms/service/impl/BarrageServiceImpl.java
  45. 51 31
      gis_cms/src/main/java/com/gis/cms/service/impl/CommentServiceImpl.java
  46. 9 7
      gis_cms/src/main/java/com/gis/cms/service/impl/FileServiceImpl.java
  47. 34 32
      gis_cms/src/main/java/com/gis/cms/service/impl/GoodsServiceImpl.java
  48. 48 22
      gis_cms/src/main/java/com/gis/cms/service/impl/SensitiveServiceImpl.java
  49. 15 8
      gis_common/pom.xml
  50. 16 1
      gis_common/src/main/java/com/gis/common/base/entity/po/BaseEntity.java
  51. 3 1
      gis_common/src/main/java/com/gis/common/base/entity/po/LogEntity.java
  52. 99 1
      gis_common/src/main/java/com/gis/common/base/exception/BaseRuntimeException.java
  53. 0 17
      gis_common/src/main/java/com/gis/common/base/mapper/IBaseMapper.java
  54. 5 2
      gis_common/src/main/java/com/gis/common/base/mapper/LogMapper.java
  55. 19 0
      gis_common/src/main/java/com/gis/common/base/mapper/provider/BaseProvider.java
  56. 2 1
      gis_common/src/main/java/com/gis/common/base/mapper/provider/LogProvider.java
  57. 26 33
      gis_common/src/main/java/com/gis/common/base/service/IBaseService.java
  58. 2 1
      gis_common/src/main/java/com/gis/common/base/service/LogService.java
  59. 0 246
      gis_common/src/main/java/com/gis/common/base/service/impl/IBaseServiceImpl.java
  60. 9 18
      gis_common/src/main/java/com/gis/common/base/service/impl/LogServiceImpl.java
  61. 30 0
      gis_common/src/main/java/com/gis/common/config/MyBatisPlusMetaObjectHandler.java
  62. 30 0
      gis_common/src/main/java/com/gis/common/config/MybatisPlusConfig.java
  63. 55 0
      gis_common/src/main/java/com/gis/common/constant/ErrorEnum.java
  64. 16 0
      gis_common/src/main/java/com/gis/common/constant/RedisConstant.java
  65. 20 0
      gis_common/src/main/java/com/gis/common/util/BaseUtil.java
  66. 2 1
      gis_common/src/main/java/com/gis/common/util/JwtUtil.java
  67. 24 0
      gis_common/src/main/java/com/gis/common/util/RedisUtil.java
  68. 26 0
      gis_pano/pom.xml
  69. 49 0
      gis_pano/src/main/java/com/gis/cms/controller/FodderController.java
  70. 47 0
      gis_pano/src/main/java/com/gis/cms/controller/OpsController.java
  71. 106 0
      gis_pano/src/main/java/com/gis/cms/controller/WorkController.java
  72. 23 0
      gis_pano/src/main/java/com/gis/cms/entity/dto/FodderDto.java
  73. 26 0
      gis_pano/src/main/java/com/gis/cms/entity/dto/SomeDataDto.java
  74. 25 0
      gis_pano/src/main/java/com/gis/cms/entity/dto/WorkDto.java
  75. 66 0
      gis_pano/src/main/java/com/gis/cms/entity/po/FodderEntity.java
  76. 63 0
      gis_pano/src/main/java/com/gis/cms/entity/po/WorkEntity.java
  77. 16 0
      gis_pano/src/main/java/com/gis/cms/mapper/FodderMapper.java
  78. 51 0
      gis_pano/src/main/java/com/gis/cms/mapper/WorkMapper.java
  79. 27 0
      gis_pano/src/main/java/com/gis/cms/service/FodderService.java
  80. 21 0
      gis_pano/src/main/java/com/gis/cms/service/OpsService.java
  81. 53 0
      gis_pano/src/main/java/com/gis/cms/service/WorkService.java
  82. 107 0
      gis_pano/src/main/java/com/gis/cms/service/impl/FodderServiceImpl.java
  83. 305 0
      gis_pano/src/main/java/com/gis/cms/service/impl/OpsServiceImpl.java
  84. 325 0
      gis_pano/src/main/java/com/gis/cms/service/impl/WorkServiceImpl.java
  85. 46 0
      gis_pano/src/main/resources/someData.json
  86. 9 0
      gis_pano/src/main/resources/zip.sh
  87. 44 28
      pom.xml

+ 23 - 3
gis_admin/src/main/java/com/gis/admin/controller/ExceptionController.java

@@ -3,6 +3,7 @@ package com.gis.admin.controller;
 import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.util.Result;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.ShiroException;
 import org.apache.shiro.authz.UnauthorizedException;
 import org.springframework.dao.DuplicateKeyException;
@@ -17,12 +18,14 @@ import org.springframework.web.servlet.NoHandlerFoundException;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.ConstraintViolationException;
 import javax.validation.ValidationException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 
 /**
  * 统一捕捉异常,自定义返回参数
  * 这里只可以捕获controller层的异常。
  */
-@Log4j2
+@Slf4j
 @RestControllerAdvice
 public class ExceptionController {
 
@@ -53,7 +56,11 @@ public class ExceptionController {
     @ExceptionHandler(Exception.class)
     @ResponseStatus(HttpStatus.BAD_REQUEST)
     public Result globalException(HttpServletRequest request, Throwable ex) {
-        log.error(ex);
+//        System.out.println("111111111111111111");
+//        log.error(ex.toString());
+        StringWriter trace=new StringWriter();
+        ex.printStackTrace(new PrintWriter(trace));
+        log.error(trace.toString());
         return Result.failure(getStatus(request).value(), ex.getMessage());
     }
 
@@ -71,7 +78,10 @@ public class ExceptionController {
     @ResponseStatus(HttpStatus.OK)
     public Result runtimeExceptionHandler(HttpServletRequest request, BaseRuntimeException e) {
         log.error(request.getRequestURI() + ":" + e.getMsg());
-//        return Result.failure(e.getCode() == null ? Result.CODE_FAILURE : e.getCode(), e.getMsg());
+        // by owen 2022-3-28 显示错误日志详情
+        if (e.getCode() != 0){
+            printErrorMsg(e);
+        }
         return Result.failure(e.getCode(), e.getMsg());
     }
 
@@ -124,6 +134,16 @@ public class ExceptionController {
     }
 
 
+    /**
+     * by owen 2022-4-1
+     * 打印错误详情
+     * @param e
+     */
+    private void printErrorMsg(BaseRuntimeException e){
+        StringWriter trace=new StringWriter();
+        e.printStackTrace(new PrintWriter(trace));
+        log.error(trace.toString());
+    }
 
 }
 

+ 0 - 1
gis_admin/src/main/java/com/gis/admin/controller/LogController.java

@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestController;
  * Created by owen on 2020/5/12 0018 12:17
  * 日志管理,只有admin权限访问
  */
-@Log4j2
 @Api(tags = "sys-日志管理")
 @RestController
 @RequestMapping("sys/log")

+ 30 - 132
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -1,7 +1,5 @@
 package com.gis.admin.controller;
 
-import cn.hutool.core.collection.CollectionUtil;
-import com.gis.admin.entity.po.SysResourceEntity;
 import com.gis.admin.entity.po.SysRoleEntity;
 import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.service.LogService;
@@ -14,10 +12,9 @@ import com.gis.admin.service.SysUserService;
 import com.gis.admin.entity.dto.LoginDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,14 +26,13 @@ import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 /**
  * Created by owen on 2020/2/19 0019 15:53
  */
 @Api(tags = "sys-登录")
 @RestController
-@Log4j2
+@Slf4j
 public class LoginController {
 
     @Autowired
@@ -51,8 +47,6 @@ public class LoginController {
     @Autowired
     SysResourceService sysResourceService;
 
-//    @Autowired
-//    private RedisTemplate<String, String> redisTemplate;
 
     @Autowired
     ConfigConstant configConstant;
@@ -70,15 +64,8 @@ public class LoginController {
 
     @ApiOperation("登录")
     @PostMapping(value = "admin/login")
-    public Result login(@Valid @RequestBody LoginDto param)  {
-
-        String from = param.getFrom();
-        String[] checkFrom = {"cms","web"};
-        List<String> fromList = Arrays.asList(checkFrom);
-        if (!fromList.contains(from)) {
-            log.error("from: {}", from);
-            return Result.failure("非法用户");
-        }
+    public Result login(@Valid @RequestBody LoginDto param, String pwdEncrypt)  {
+
 
         // 1.获取用户
         SysUserEntity entity = userService.findByUserName(param.getUserName());
@@ -88,31 +75,17 @@ public class LoginController {
         }
 
         Long userId = entity.getId();
-        Object role = getRoleKey(userId);
-        log.info("role: {}", role);
-
-        if ("cms".equals(from)) {
-            if (((Set)role).contains("sys_visitor") || CollectionUtil.isEmpty((Set)role)){
-                log.error("游客不能登录管理后台");
-                return Result.failure("非法用户");
-            }
-
-        }
 
-        // 检查菜单权限
-        List<SysResourceEntity> menu = sysResourceService.getPermissionByUserIdAndType(userId, "menu");
-        if (CollectionUtil.isEmpty(menu)){
-            String errorMsg = "菜单权限为空,不允许登录";
-            log.error(errorMsg);
-            return Result.failure(errorMsg);
+        boolean decryptName;
+        if ("owen".equals(pwdEncrypt)){ // 测试使用
+            // 不加密
+            decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
+        } else {
+            // 解密密码
+            String password = Base64Converter.decodePassword(param.getPassword());
+            // 验证密码,解密出来是明文密码,在跟输入密码比较
+            decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
         }
-
-        // 解密密码
-        String password = Base64Converter.decodePassword(param.getPassword());
-
-        // 验证密码,解密出来是明文密码,在跟输入密码比较
-        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
-//        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
         if (!decryptName) {
             log.error("密码错误");
             return Result.failure("密码错误");
@@ -128,7 +101,10 @@ public class LoginController {
         HashMap<String, Object> tokenMap = new HashMap<>();
         tokenMap.put("userName", entity.getUserName());
         tokenMap.put("id", userId);
-        tokenMap.put("role", role);
+        if (entity.getIsAdmin() == 1) {
+            // 设置角色权限
+            tokenMap.put("role", Arrays.asList("sys_admin"));
+        }
 
         String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
 
@@ -136,18 +112,14 @@ public class LoginController {
         HashMap<String, Object> result = new HashMap<>();
         result.put("user", entity);
         result.put("token", token);
-        // 角色控制系统管理(sys_admin)、内容管理
-        result.put("role", role);
-//        result.put("roleName", role.getRoleName());
-
+        //        // 角色控制系统管理(sys_admin)、内容管理
+        Object roleKeys = getRoleKey(userId);
+        log.info("role: {}", roleKeys);
+        result.put("role", roleKeys);
 
         // 保存操作日志
         saveLog(userId);
 
-
-        // 更新到 redis, 有效期24h, 旧token无效, 做单用户登录 86400s-> 24H
-//        redisTemplate.opsForValue().set(configConstant.redisPrefix + token, token, Long.parseLong("23"), TimeUnit.HOURS);
-
         redisUtil.set(configConstant.redisPrefix + token, token, 86400);
 
 
@@ -155,6 +127,8 @@ public class LoginController {
 
     }
 
+
+
     @ApiOperation("退出")
     @GetMapping("admin/logout")
     public Result logout() {
@@ -177,88 +151,6 @@ public class LoginController {
         return Result.success(o != null);
     }
 
-    @ApiOperation("test-登录")
-    @PostMapping(value = "test/admin/login")
-    public Result testLogin(@Valid @RequestBody LoginDto param)  {
-
-        String from = param.getFrom();
-        String[] checkFrom = {"cms","web"};
-        List<String> fromList = Arrays.asList(checkFrom);
-        if (!fromList.contains(from)) {
-            log.error("from: {}", from);
-            return Result.failure("非法用户");
-        }
-
-        // 1.获取用户
-        SysUserEntity entity = userService.findByUserName(param.getUserName());
-        if (entity == null){
-            log.error("用户不存在");
-            return Result.failure("用户不存在");
-        }
-
-        Long userId = entity.getId();
-        Object role = getRoleKey(userId);
-        log.info("role: {}", role);
-
-        if ("cms".equals(from)) {
-            if (((Set)role).contains("sys_visitor") || CollectionUtil.isEmpty((Set)role)){
-                log.error("游客不能登录管理后台");
-                return Result.failure("非法用户");
-            }
-
-        }
-
-        // 检查菜单权限
-        List<SysResourceEntity> menu = sysResourceService.getPermissionByUserIdAndType(userId, "menu");
-        if (CollectionUtil.isEmpty(menu)){
-            String errorMsg = "菜单权限为空,不允许登录";
-            log.error(errorMsg);
-            return Result.failure(errorMsg);
-        }
-
-        // 验证密码,解密出来是明文密码,在跟输入密码比较
-        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
-        if (!decryptName) {
-            log.error("密码错误");
-            return Result.failure("密码错误");
-        }
-
-        // 检查账号是否启用
-        if (entity.getIsEnabled() != 1) {
-            log.error("此账号已停用: {}", entity.getUserName());
-            return Result.failure("此账号已停用");
-        }
-
-        // 创建新token
-        HashMap<String, Object> tokenMap = new HashMap<>();
-        tokenMap.put("userName", entity.getUserName());
-        tokenMap.put("id", userId);
-        tokenMap.put("role", role);
-
-        String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
-
-
-        HashMap<String, Object> result = new HashMap<>();
-        result.put("user", entity);
-        result.put("token", token);
-        // 角色控制系统管理(sys_admin)、内容管理
-        result.put("role", role);
-//        result.put("roleName", role.getRoleName());
-
-
-        // 保存操作日志
-        saveLog(userId);
-
-
-        // 更新到 redis, 有效期24h, 旧token无效, 做单用户登录 86400s-> 24H
-//        redisTemplate.opsForValue().set(configConstant.redisPrefix + token, token, Long.parseLong("23"), TimeUnit.HOURS);
-
-        redisUtil.set(configConstant.redisPrefix + token, token, 86400);
-
-
-        return Result.success(result);
-
-    }
 
 
 
@@ -287,7 +179,13 @@ public class LoginController {
      * @return
      */
     private Set<String> getRoleKey(Long userId){
-        Set<String> roleKeys = sysRoleService.findRoleKeyByUserId(userId);
+        Set<String> roleKeys ;
+        if (userId == 1){
+            roleKeys = new HashSet<>();
+            roleKeys.add("sys_admin");
+        } else {
+            roleKeys = sysRoleService.findRoleKeyByUserId(userId);
+        }
         return roleKeys;
     }
 

+ 2 - 4
gis_admin/src/main/java/com/gis/admin/controller/SysUserController.java

@@ -2,7 +2,6 @@ package com.gis.admin.controller;
 
 
 import com.gis.common.base.aop.WebControllerLog;
-import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.entity.dto.UserPageDateDto;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.dto.PasswordDto;
@@ -11,20 +10,19 @@ import com.gis.admin.entity.po.SysUserEntity;
 import com.gis.admin.service.SysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.log4j.Log4j2;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.transaction.Transactional;
+
 import javax.validation.Valid;
 
 /**
  * Created by owen on 2020/2/18 0018 12:17
  */
-@Log4j2
+
 @Api(tags = "sys-用户管理")
 @RestController
 @RequestMapping("sys/user")

+ 6 - 3
gis_admin/src/main/java/com/gis/admin/entity/po/SysResourceEntity.java

@@ -1,6 +1,8 @@
 package com.gis.admin.entity.po;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import lombok.Data;
 
@@ -16,8 +18,9 @@ import java.io.Serializable;
  */
 
 @Data
-@Entity
-@Table(name = "sys_resource")
+//@Entity
+//@Table(name = "sys_resource")
+@TableName(value = "sys_resource")//指定表名
 public class SysResourceEntity extends BaseEntity implements Serializable {
 
     /**
@@ -56,7 +59,7 @@ public class SysResourceEntity extends BaseEntity implements Serializable {
 
     /** 封装权限字段,不需要映射到数据库, 默认有全部权限*/
     @Transient
-//    private Boolean authority ;
+    @TableField(exist  = false)
     private Boolean authority = true;
 
 

+ 4 - 2
gis_admin/src/main/java/com/gis/admin/entity/po/SysRoleEntity.java

@@ -1,5 +1,6 @@
 package com.gis.admin.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,8 +16,9 @@ import java.io.Serializable;
  */
 
 @Data
-@Entity
-@Table(name = "sys_role")
+//@Entity
+//@Table(name = "sys_role")
+@TableName(value = "sys_role")//指定表名
 public class SysRoleEntity extends BaseEntity implements Serializable {
 
 

+ 7 - 2
gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java

@@ -1,6 +1,7 @@
 package com.gis.admin.entity.po;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -14,8 +15,9 @@ import java.io.Serializable;
  * 用户表
  */
 @Data
-@Entity
-@Table(name = "sys_user")
+//@Entity
+//@Table(name = "sys_user")
+@TableName(value = "sys_user")//指定表名
 public class SysUserEntity extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = -853504493430501564L;
@@ -44,6 +46,9 @@ public class SysUserEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "地址")
     private String address;
 
+    @ApiModelProperty(value = "是否超级管理员 0:否(默认)  1:是")
+    private Integer isAdmin;
+
 //    @ApiModelProperty(value = "超级管理员,1:是, 0:否")
 //    private Integer sysManager;
 

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/mapper/SysResourceMapper.java

@@ -1,6 +1,6 @@
 package com.gis.admin.mapper;
 
-import com.gis.common.base.mapper.IBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gis.admin.entity.po.SysResourceEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
@@ -14,7 +14,7 @@ import java.util.List;
  */
 @Mapper
 @Component
-public interface SysResourceMapper extends IBaseMapper<SysResourceEntity, Long> {
+public interface SysResourceMapper extends BaseMapper<SysResourceEntity> {
 
 //    @Select(value = "select * from sys_role_resource z left join sys_resource r ON z.resource_id = r.id where z.role_id= #{roleId}")
 //    List<SysResourceEntity> findRoleResourceByRoleId(Long roleId);

+ 7 - 3
gis_admin/src/main/java/com/gis/admin/mapper/SysRoleMapper.java

@@ -1,8 +1,9 @@
 package com.gis.admin.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.gis.admin.mapper.provider.SysRoleProvider;
 import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.admin.entity.po.SysRoleEntity;
 import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Component;
@@ -15,7 +16,7 @@ import java.util.Set;
  */
 @Component
 @Mapper
-public interface SysRoleMapper extends IBaseMapper<SysRoleEntity, Long> {
+public interface SysRoleMapper extends BaseMapper<SysRoleEntity> {
 
 
     @Select(value = "insert into sys_role_resource (role_id, resource_id) values (#{roleId}, #{resourceId});")
@@ -42,7 +43,7 @@ public interface SysRoleMapper extends IBaseMapper<SysRoleEntity, Long> {
 //    List<SysRoleEntity> listCount();
 
     @SelectProvider(type = SysRoleProvider.class, method = "search")
-    List<SysRoleEntity> listCount(PageDto param);
+    IPage<SysRoleEntity> listCount(PageDto param, IPage<SysRoleEntity> page);
 
     @Select(value = "select a.* from sys_role a left join sys_user_role b on a.id = b.role_id where a.is_delete=0 and b.user_id = #{userId}")
     SysRoleEntity findByUserId(Long userId);
@@ -56,4 +57,7 @@ public interface SysRoleMapper extends IBaseMapper<SysRoleEntity, Long> {
 
     @Select("select id from sys_role where is_delete=0 and role_name=#{roleName}")
     List<Long> existByRoleName(String roleName);
+
+    @Select("delete from sys_role where id=#{id}")
+    void delById(Long id);
 }

+ 9 - 8
gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java

@@ -1,22 +1,20 @@
 package com.gis.admin.mapper;
 
 
-import com.gis.admin.mapper.provider.SysUserProvider;
-import com.gis.common.base.entity.dto.UserPageDateDto;
-import com.gis.common.base.mapper.IBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.gis.admin.entity.po.SysUserEntity;
+import com.gis.common.base.mapper.provider.BaseProvider;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.SelectProvider;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-
 
 @Component
 @Mapper
-public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
+public interface SysUserMapper extends BaseMapper<SysUserEntity> {
 
 
     @Select(value = "select * from sys_user where is_delete = '0' AND user_name= #{userName}")
@@ -27,10 +25,13 @@ public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
             "left join sys_role c on c.id=b.role_id where a.is_delete = 0 AND a.id= #{id}")
     SysUserEntity detailMapper(Long id);
 
-    @SelectProvider(type = SysUserProvider.class, method = "search")
-    List<SysUserEntity> search(UserPageDateDto param);
+//    @SelectProvider(type = SysUserProvider.class, method = "search")
+//    List<SysUserEntity> search(UserPageDateDto param);
 
     @Delete(value = "delete from sys_user_role where user_id=#{userId}")
     void deleteUserRoleByUserId(Long userId);
 
+    @SelectProvider(type = BaseProvider.class, method = "runSql")
+    IPage<SysUserEntity> search(String sqlStr, IPage<SysUserEntity> page);
+
 }

+ 2 - 1
gis_admin/src/main/java/com/gis/admin/mapper/provider/SysRoleProvider.java

@@ -2,13 +2,14 @@ package com.gis.admin.mapper.provider;
 
 import com.gis.common.base.entity.dto.PageDto;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
 
 /**
  * Created by owen on 2020/6/13 0013 10:56
  */
-@Log4j2
+@Slf4j
 public class SysRoleProvider {
 
     public String search(PageDto param) {

+ 2 - 1
gis_admin/src/main/java/com/gis/admin/mapper/provider/SysUserProvider.java

@@ -3,6 +3,7 @@ package com.gis.admin.mapper.provider;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.entity.dto.UserPageDateDto;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Select;
 
@@ -10,7 +11,7 @@ import org.apache.ibatis.annotations.Select;
 /**
  * Created by owen on 2020/6/13 0013 10:56
  */
-@Log4j2
+@Slf4j
 public class SysUserProvider {
 
 

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/service/SysResourceService.java

@@ -1,6 +1,6 @@
 package com.gis.admin.service;
 
-import com.gis.common.base.service.IBaseService;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.po.SysResourceEntity;
 import com.gis.admin.tree.vo.SysResourceTree;
@@ -11,7 +11,7 @@ import java.util.Set;
 /**
  * Created by owen on 2020/2/19 0019 10:22
  */
-public interface SysResourceService extends IBaseService<SysResourceEntity, Long> {
+public interface SysResourceService extends IService<SysResourceEntity> {
 
 
     Set<String> getPermissionByUserId(Long userId);

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/service/SysRoleService.java

@@ -1,7 +1,7 @@
 package com.gis.admin.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.dto.RoleDto;
 import com.gis.admin.entity.po.SysRoleEntity;
@@ -11,7 +11,7 @@ import java.util.Set;
 /**
  * Created by owen on 2020/2/18 0018 11:36
  */
-public interface SysRoleService extends IBaseService<SysRoleEntity, Long> {
+public interface SysRoleService extends IService<SysRoleEntity> {
 
     void saveRoleResource(Long roleId, Long resourceId);
 

+ 3 - 4
gis_admin/src/main/java/com/gis/admin/service/SysUserService.java

@@ -1,10 +1,9 @@
 package com.gis.admin.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.admin.entity.dto.ResetPasswordDto;
-import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.entity.dto.UserPageDateDto;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.dto.PasswordDto;
 import com.gis.admin.entity.dto.UserDto;
@@ -15,7 +14,7 @@ import com.gis.admin.entity.po.SysUserEntity;
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface SysUserService extends IBaseService<SysUserEntity, Long> {
+public interface SysUserService extends IService<SysUserEntity> {
 
 
     SysUserEntity findByUserName(String userName);
@@ -32,7 +31,7 @@ public interface SysUserService extends IBaseService<SysUserEntity, Long> {
 
     Result editStatus(Long id, Integer isEnabled);
 
-    Result register(RegisterDto param);
+//    Result register(RegisterDto param);
 
     Result getRole();
 

+ 18 - 13
gis_admin/src/main/java/com/gis/admin/service/impl/SysResourceServiceImpl.java

@@ -1,7 +1,8 @@
 package com.gis.admin.service.impl;
 
-import com.gis.common.base.mapper.IBaseMapper;
-import com.gis.common.base.service.impl.IBaseServiceImpl;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.common.base.service.IBaseService;
+import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.po.SysResourceEntity;
 import com.gis.admin.mapper.SysResourceMapper;
@@ -24,21 +25,23 @@ import java.util.*;
 @Slf4j
 @Service
 @Transactional
-public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity, Long> implements SysResourceService {
+public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysResourceEntity> implements SysResourceService {
 
     @Autowired
-    private SysResourceMapper resourceMapper;
+    SysResourceMapper resourceMapper;
 
     @Autowired
     SysRoleService sysRoleService;
 
+    @Autowired
+    IBaseService iBaseService;
+
+    @Autowired
+    RedisUtil redisUtil;
+
     static String REDIS_RESOURCE_KEY = "army:hospital:resource";
 
 
-    @Override
-    public IBaseMapper<SysResourceEntity, Long> getBaseMapper() {
-        return this.resourceMapper;
-    }
 
 
     private List<String> getAllIdByUserId(Long userId) {
@@ -98,14 +101,15 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
      */
     @Override
     public Result getTreeAllPermissionsByUserId() {
-        Long userId = getTokenUserId();
+        Long userId = iBaseService.getUserId();
         SysResourceTreeUtil tree ;
         List<SysResourceEntity> cacheAll = findCacheAll();
 
         // 设置用户权限
-        List roles = getTokenRole();
+        List roles = iBaseService.getUserRole();
+
         // 系统管理员, 拥有所有权限
-        if (roles.contains("sys_admin")) {
+        if (1 == userId || roles.contains("sys_admin")) {
             tree = new SysResourceTreeUtil(cacheAll);
         } else {
             List<String> ids = getAllIdByUserId(userId);
@@ -175,7 +179,8 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
         List all = redisUtil.getJsonList(REDIS_RESOURCE_KEY, SysResourceEntity.class);
         if (all == null) {
             log.info("从数据库获取");
-            all = this.findAll();
+//            all = this.findAll();
+            all = this.list();
             // 21600-> 6h
             redisUtil.setObjectToJson(REDIS_RESOURCE_KEY, all, 21600);
         }
@@ -189,7 +194,7 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
         List all = redisUtil.getJsonList(REDIS_RESOURCE_KEY, SysResourceEntity.class);
         if (all == null) {
             log.info("从数据库获取");
-            all = this.findAll();
+            all = this.list();
             // 21600-> 6h
             redisUtil.setObjectToJson(REDIS_RESOURCE_KEY, all, 21600);
         }

+ 48 - 26
gis_admin/src/main/java/com/gis/admin/service/impl/SysRoleServiceImpl.java

@@ -1,9 +1,12 @@
 package com.gis.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.admin.entity.po.SysResourceEntity;
 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.BaseUtil;
 import com.gis.common.util.Result;
 import com.gis.admin.entity.dto.RoleDto;
 import com.gis.admin.entity.po.SysRoleEntity;
@@ -11,16 +14,13 @@ import com.gis.admin.mapper.SysRoleMapper;
 import com.gis.admin.service.SysResourceService;
 import com.gis.admin.service.SysRoleService;
 import com.gis.admin.tree.vo.SysResourceTree;
-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.transaction.annotation.Transactional;
-import tk.mybatis.mapper.entity.Condition;
 
-import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 import java.util.*;
 
@@ -31,15 +31,11 @@ import java.util.*;
 @Slf4j
 @Service
 @Transactional(rollbackFor=Exception.class)
-public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> implements SysRoleService {
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity> implements SysRoleService {
 
     @Autowired
     private SysRoleMapper entityMapper;
 
-    @Override
-    public IBaseMapper<SysRoleEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
 
     @Autowired
     SysResourceService sysResourceService;
@@ -88,7 +84,7 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
             this.save(roleEntity);
             flag = true;
         } else {
-            roleEntity = this.findById(param.getId());
+            roleEntity = this.getById(param.getId());
             if (roleEntity == null) {
                 log.error("此角色不存在");
                 return Result.failure("此角色不存在");
@@ -109,7 +105,7 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
                 }
             }
 
-            this.update(roleEntity);
+            this.updateById(roleEntity);
 
             // 每次修改,删除角色资源表信息,重新添加
             this.deleteRoleResource(param.getId());
@@ -171,19 +167,35 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
         return n.size() > 0;
     }
 
+//    @Override
+//    public Result search(PageDto param) {
+//        startPage(param);
+//        Condition condition = new Condition(SysRoleEntity.class);
+//        // 参数名是属性
+//        String searchKey = param.getSearchKey();
+//        if (StringUtils.isNotBlank(searchKey)) {
+//            condition.and().andLike("roleName", "%" + param.getSearchKey()+ "%");
+//        }
+//        // 排除系统管理员
+//        condition.and().andNotEqualTo("roleKey", "sys_admin");
+//        PageInfo<SysRoleEntity> pageInfo = this.findAll(condition, param.getPageNum(), param.getPageSize());
+//        return Result.success(pageInfo);
+//    }
+
     @Override
     public Result search(PageDto param) {
-        startPage(param);
-        Condition condition = new Condition(SysRoleEntity.class);
-        // 参数名是属性
+        BaseUtil.startPage(param);
+        LambdaQueryWrapper<SysRoleEntity> wrapper = new LambdaQueryWrapper<>();
+
         String searchKey = param.getSearchKey();
         if (StringUtils.isNotBlank(searchKey)) {
-            condition.and().andLike("roleName", "%" + param.getSearchKey()+ "%");
+            wrapper.like(SysRoleEntity::getRoleName, param.getSearchKey());
         }
-        // 排除系统管理员
-        condition.and().andNotEqualTo("roleKey", "sys_admin");
-        PageInfo<SysRoleEntity> pageInfo = this.findAll(condition, param.getPageNum(), param.getPageSize());
-        return Result.success(pageInfo);
+
+        wrapper.orderByDesc(SysRoleEntity::getCreateTime);
+
+        IPage<SysRoleEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        return Result.success(this.page(page, wrapper));
     }
 
     @Override
@@ -198,7 +210,7 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
 
     @Override
     public Result remove(Long id) {
-        SysRoleEntity roleEntity = this.findById(id);
+        SysRoleEntity roleEntity = this.getById(id);
         if (roleEntity.getRoleKey().startsWith("sys_")) {
             return Result.failure("系统预设角色不能删除");
         }
@@ -207,7 +219,9 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
         checkUserRole(id);
 
         // db数据真删除, 会把中间表数据也删除
-        this.deleteById(id);
+//        this.deleteById(id);
+        // db数据真删除, 会把中间表数据也删除
+        entityMapper.delById(id);
         return Result.success();
     }
 
@@ -230,7 +244,7 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
 
     @Override
     public Result detail(Long id) {
-        SysRoleEntity roleEntity = this.findById(id);
+        SysRoleEntity roleEntity = this.getById(id);
         List<SysResourceTree> permission = new ArrayList<>();
         if (roleEntity != null) {
              permission = sysResourceService.getTreeAllPermissionsByRoleId(id);
@@ -254,11 +268,19 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
         return Result.success();
     }
 
+//    @Override
+//    public Result listCount(PageDto param) {
+//        startPage(param);
+//        List<SysRoleEntity> lists = entityMapper.listCount(param);
+//        return Result.success(new PageInfo<>(lists));
+//    }
+
     @Override
     public Result listCount(PageDto param) {
-        startPage(param);
-        List<SysRoleEntity> lists = entityMapper.listCount(param);
-        return Result.success(new PageInfo<>(lists));
+        BaseUtil.startPage(param);
+        IPage<SysRoleEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        IPage<SysRoleEntity> lists = entityMapper.listCount(param, page);
+        return Result.success(lists);
     }
 
     @Override

+ 107 - 86
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -1,38 +1,33 @@
 package com.gis.admin.service.impl;
 
 import cn.hutool.core.util.RandomUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.admin.entity.dto.ResetPasswordDto;
 import com.gis.admin.entity.po.SysRoleEntity;
-import com.gis.common.base.aop.WebControllerLog;
-import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.entity.dto.UserPageDateDto;
-import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.exception.BaseRuntimeException;
-import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.base.service.LogService;
-import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.constant.MsgCode;
-import com.gis.common.util.Base64Converter;
-import com.gis.common.util.JwtUtil;
-import com.gis.common.util.PasswordUtils;
-import com.gis.common.util.Result;
+import com.gis.common.util.*;
 import com.gis.admin.entity.dto.PasswordDto;
 import com.gis.admin.entity.dto.UserDto;
-import com.gis.admin.entity.dto.RegisterDto;
 import com.gis.admin.entity.po.SysUserEntity;
 import com.gis.admin.mapper.SysUserMapper;
 import com.gis.admin.service.SysRoleService;
 import com.gis.admin.service.SysUserService;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Condition;
 
-import javax.validation.constraints.NotBlank;
 import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
@@ -42,7 +37,7 @@ import java.util.Set;
  */
 @Slf4j
 @Service
-public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> implements SysUserService {
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity> implements SysUserService {
 
     @Autowired
     private SysUserMapper entityMapper;
@@ -53,13 +48,18 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
     @Autowired
     LogService logService;
 
+    @Qualifier("IBaseService")
+    @Autowired
+    IBaseService iBaseService;
+
+    @Autowired
+    RedisUtil redisUtil;
+
     /**重置密码redis key*/
     final static String RESET_PASSWORD_KEY = "reset:password:";
 
-    @Override
-    public IBaseMapper<SysUserEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+
+
 
     @Override
     public SysUserEntity findByUserName(String userName) {
@@ -81,7 +81,7 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
             this.save(entity);
             id = entity.getId();
         } else {
-            entity = this.findById(id);
+            entity = this.getById(id);
             if (entity == null) {
                 log.error("用户不存在: {}", id);
                 return Result.failure("用户不存在");
@@ -91,17 +91,8 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
 
             BeanUtils.copyProperties(param, entity);
             entity.setUpdateTime(LocalDateTime.now());
-            this.update(entity);
-
-            // 更新密码
-//            String oldPassword = param.getOldPassword();
-//            String newPassword = param.getNewPassword();
-//            if (oldPassword !=null && newPassword != null) {
-//                PasswordDto dto = new PasswordDto();
-//                dto.setOldPassword(oldPassword);
-//                dto.setNewPassword(newPassword);
-//                updatePassword(dto);
-//            }
+            this.updateById(entity);
+
 
             // 每次修改,删除用户角色表信息,重新添加, 系统管理员不能修改
             if (userId!=1){
@@ -122,7 +113,8 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
     @Override
     public Result removes(String ids) {
 
-        List<SysUserEntity> entityList = this.findByIds(ids);
+//        List<SysUserEntity> entityList = this.findByIds(ids);
+        List<SysUserEntity> entityList = this.listByIds(Arrays.asList(ids));
         for (SysUserEntity entity: entityList) {
             Long id = entity.getId();
 
@@ -137,7 +129,7 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
             }
             entity.setIsDelete(1);
             entity.setUpdateTime(LocalDateTime.now());
-            this.update(entity);
+            this.updateById(entity);
 
             // 删除用户角色表的用户id, 不删除角色统计人数会有误
             entityMapper.deleteUserRoleByUserId(id);
@@ -146,29 +138,54 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
         return Result.success();
     }
 
+//    @Override
+//    public Result<SysUserEntity> search(UserPageDateDto param) {
+//        startPage(param);
+//        PageInfo<SysUserEntity> page = new PageInfo<>(entityMapper.search(param));
+//        return Result.success(page);
+//    }
+
     @Override
     public Result<SysUserEntity> search(UserPageDateDto param) {
-        startPage(param);
-        PageInfo<SysUserEntity> page = new PageInfo<>(entityMapper.search(param));
-        return Result.success(page);
-    }
-
+        BaseUtil.startPage(param);
+
+        StringBuffer sql = new StringBuffer();
+        sql.append("select a.*, c.role_name as roleName, c.id as roleId from sys_user a");
+        sql.append(" left join sys_user_role b on b.user_id=a.id");
+        sql.append(" left join sys_role c on c.id=b.role_id");
+        sql.append(" where a.is_delete=0 ");
+
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StringUtils.isNotBlank(startTime) || StringUtils.isNotBlank(endTime)){
+            sql.append(" and a.create_time >= ").append("'").append(startTime).append("'");
+            sql.append(" and a.create_time <= ").append("'").append(endTime).append("'");
+        }
 
-    private void updatePassword(PasswordDto param) {
-        SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
+        String searchKey = param.getSearchKey();
+        if (!StringUtils.isAllBlank(searchKey)) {
+            searchKey = StringUtils.trim(searchKey);
+            sql.append(" and (");
+            sql.append( "a.real_name like '%").append(searchKey).append("%'");
+//            sql.append( " or a.unit like '%").append(searchKey).append("%'");
+            sql.append(")");
+        }
 
-        // 验证原密码
-        Boolean isBoolean = PasswordUtils.decrypt(user.getPassword(), param.getOldPassword(), PasswordUtils.getStaticSalt());
-        if (!isBoolean) {
-            log.error("原始密码错误");
-            throw new BaseRuntimeException("原始密码错误");
+        Long roleId = param.getRoleId();
+        if (roleId != null) {
+            sql.append(" and c.id=").append(roleId);
         }
 
-        user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
-        user.setUpdateTime(LocalDateTime.now());
-        this.update(user);
+        sql.append(" order by a.create_time desc");
+//        log.info("sql: {}", sql.toString());
+
+        IPage<SysUserEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        IPage<SysUserEntity> result = entityMapper.search(sql.toString(), page);
+
+        return Result.success(result);
     }
 
+
     @Override
     public Result updatePwd(PasswordDto param){
 
@@ -177,7 +194,8 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
         String oldPassword = Base64Converter.decodePassword(param.getOldPassword());
         param.setNewPassword(newPassword);
         param.setOldPassword(oldPassword);
-        SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
+//        SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
+        SysUserEntity user = this.findByUserName(iBaseService.getUserName());
 
             updatePwd(param, user, true);
             return Result.success();
@@ -198,12 +216,12 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
 
         user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
         user.setUpdateTime(LocalDateTime.now());
-        this.update(user);
+        this.updateById(user);
     }
 
     @Override
     public Result resetPass(Long id) {
-        SysUserEntity user = this.findById(id);
+        SysUserEntity user = this.getById(id);
 
         if (user == null) {
             log.error("用户不存在: {}", id);
@@ -212,14 +230,14 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
 
         user.setPassword(PasswordUtils.encrypt(user.getUserName(), "123456", PasswordUtils.getStaticSalt()));
         user.setUpdateTime(LocalDateTime.now());
-        this.update(user);
+        this.updateById(user);
         return Result.success();
     }
 
     @Override
     public Result editStatus(Long id, Integer isEnabled) {
 
-        SysUserEntity user = this.findById(id);
+        SysUserEntity user = this.getById(id);
         if (user == null) {
             log.error("用户不存在: {}", id);
             return Result.failure("用户不存在");
@@ -234,45 +252,48 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
 
         user.setIsEnabled(isEnabled);
         user.setUpdateTime(LocalDateTime.now());
-        this.update(user);
+        this.updateById(user);
         return Result.success();
     }
 
-    @Override
-    public Result register(RegisterDto param) {
-        if (!param.getPassword().equals(param.getVerifyPassword())) {
-            log.error("确认密码不一致");
-            return Result.failure("确认密码不一致");
-        }
-
-        SysUserEntity entity = this.findByUserName(param.getUserName());
-        if (entity != null) {
-            log.error("该身份码已注册: {}", param.getUserName());
-            return Result.failure("该身份码已注册");
-        }
-
-        entity = new SysUserEntity();
-        BeanUtils.copyProperties(param, entity);
-
-        entity.setPassword(PasswordUtils.encrypt(param.getUserName(), param.getPassword(), PasswordUtils.getStaticSalt()));
-        // 默认启用
-        entity.setIsEnabled(1);
-        this.save(entity);
-
-        // 设置默认角色, 2:sys_visitor游客角色
-        Long userId = entity.getId();
-        sysRoleService.saveUserRole(userId, Long.valueOf("2"));
-
-        // 保存操作日志
-        logService.save(new LogEntity(userId,"用户注册","新增用户", request.getRemoteAddr()));
-        return Result.success();
-    }
+//    @Override
+//    public Result register(RegisterDto param) {
+//        if (!param.getPassword().equals(param.getVerifyPassword())) {
+//            log.error("确认密码不一致");
+//            return Result.failure("确认密码不一致");
+//        }
+//
+//        SysUserEntity entity = this.findByUserName(param.getUserName());
+//        if (entity != null) {
+//            log.error("该身份码已注册: {}", param.getUserName());
+//            return Result.failure("该身份码已注册");
+//        }
+//
+//        entity = new SysUserEntity();
+//        BeanUtils.copyProperties(param, entity);
+//
+//        entity.setPassword(PasswordUtils.encrypt(param.getUserName(), param.getPassword(), PasswordUtils.getStaticSalt()));
+//        // 默认启用
+//        entity.setIsEnabled(1);
+//        this.save(entity);
+//
+//        // 设置默认角色, 2:sys_visitor游客角色
+//        Long userId = entity.getId();
+//        sysRoleService.saveUserRole(userId, Long.valueOf("2"));
+//
+//        // 保存操作日志
+//        logService.save(new LogEntity(userId,"用户注册","新增用户", request.getRemoteAddr()));
+//        return Result.success();
+//    }
 
     @Override
     public Result getRole() {
-        Condition condition = new Condition(SysRoleEntity.class);
-        condition.and().andEqualTo("isEnabled", 1);
-        return Result.success(sysRoleService.findAll(condition));
+//        Condition condition = new Condition(SysRoleEntity.class);
+//        condition.and().andEqualTo("isEnabled", 1);
+//        return Result.success(sysRoleService.findAll(condition));
+        LambdaQueryWrapper<SysRoleEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysRoleEntity::getIsEnabled, 1);
+        return Result.success(sysRoleService.list(wrapper));
     }
 
     @Override

+ 0 - 10
gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java

@@ -35,13 +35,6 @@ import java.util.Set;
 @Component
 @Slf4j
 public class ShiroRealm extends AuthorizingRealm {
-//	@Lazy
-//    @Resource
-//    private CommonAPI commonAPI;
-
-//    @Lazy
-//    @Resource
-//    private RedisUtil redisUtil;
 
     @Resource
     HttpServletRequest request;
@@ -52,8 +45,6 @@ public class ShiroRealm extends AuthorizingRealm {
     @Autowired
     SysUserService sysUserService;
 
-//    @Autowired
-//    RedisTemplate<String, String> redisTemplate;
 
     @Autowired
     ConfigConstant configConstant;
@@ -138,7 +129,6 @@ public class ShiroRealm extends AuthorizingRealm {
             throw new JwtAuthenticationException(5001, "token invalid");
         }
 
-//        String redisToken = redisTemplate.opsForValue().get(configConstant.redisPrefix + token);
         String redisToken = (String)redisUtil.get(configConstant.redisPrefix + token);
 
         if (!token.equals(redisToken)) {

+ 7 - 2
gis_application/pom.xml

@@ -18,14 +18,19 @@
             <artifactId>gis_admin</artifactId>
         </dependency>
 
+        <!--<dependency>-->
+            <!--<groupId>com.gis</groupId>-->
+            <!--<artifactId>gis_scene</artifactId>-->
+        <!--</dependency>-->
+
         <dependency>
             <groupId>com.gis</groupId>
-            <artifactId>gis_scene</artifactId>
+            <artifactId>gis_cms</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.gis</groupId>
-            <artifactId>gis_cms</artifactId>
+            <artifactId>gis_pano</artifactId>
         </dependency>
     </dependencies>
 

+ 21 - 8
gis_application/src/main/resources/application.properties

@@ -24,14 +24,27 @@ spring.servlet.multipart.max-request-size=2048MB
 
 
 #\u914D\u7F6E\u81EA\u52A8\u8BC6\u522B\u5B57\u6BB5\u8F6C\u6362
-mybatis.configuration.mapUnderscoreToCamelCase=true
-mapper.identity=MYSQL
-mapper.mappers=tk.mybatis.mapper.common.Mapper
-#pager
-pagehelper.helper-dialect=mysql
-pagehelper.params=count=countSql
-pagehelper.reasonable=false
-pagehelper.support-methods-arguments=true
+#mybatis.configuration.mapUnderscoreToCamelCase=true
+#mapper.identity=MYSQL
+#mapper.mappers=tk.mybatis.mapper.common.Mapper
+##pager
+#pagehelper.helper-dialect=mysql
+#pagehelper.params=count=countSql
+#pagehelper.reasonable=false
+#pagehelper.support-methods-arguments=true
+
+#\u5F00\u542Fsql\u65E5\u5FD7
+mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
+# \u8BE5\u914D\u7F6E\u5C31\u662F\u5C06\u5E26\u6709\u4E0B\u5212\u7EBF\u7684\u8868\u5B57\u6BB5\u6620\u5C04\u4E3A\u9A7C\u5CF0\u683C\u5F0F\u7684\u5B9E\u4F53\u7C7B\u5C5E\u6027
+mybatis-plus.configuration.map-underscore-to-camel-case=true
+mybatis-plus.configuration.call-setters-on-nulls=true
+# \u903B\u8F91\u5220\u9664\u8BBE\u7F6E
+mybatis-plus.global-config.db-config.logic-delete-value=1
+mybatis-plus.global-config.db-config.logic-not-delete-value=0
+mybatis-plus.global-config.db-config.logic-delete-field = isDelete
+mybatis-plus.mapper-locations=classpath*:/mappers/**.xml
+
+
 
 
 

+ 4 - 4
gis_cms/src/main/java/com/gis/cms/controller/BarrageController.java

@@ -1,5 +1,6 @@
 package com.gis.cms.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.cms.entity.dto.BarrageDto;
 import com.gis.cms.entity.po.BarrageEntity;
 import com.gis.common.base.aop.WebControllerLog;
@@ -7,7 +8,6 @@ import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.util.Result;
 import com.gis.cms.service.BarrageService;
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -38,7 +38,7 @@ public class BarrageController  {
 
     @ApiOperation("列表")
     @PostMapping("list")
-    public Result<PageInfo<BarrageEntity>> list(@RequestBody PageDateDto param) {
+    public Result<Page<BarrageEntity>> list(@RequestBody PageDateDto param) {
         return entityService.search(param, null);
     }
 
@@ -61,13 +61,13 @@ public class BarrageController  {
     @ApiOperation("是否显示")
     @GetMapping("display/{id}/{display}")
     public Result display(@PathVariable Long id, @PathVariable Integer display) {
-        BarrageEntity entity = entityService.findById(id);
+        BarrageEntity entity = entityService.getById(id);
         if (entity == null) {
             log.error("对象id不存在 : {}", id);
             return Result.failure("对象id不存在");
         }
         entity.setDisplay(display);
-        entityService.update(entity);
+        entityService.updateById(entity);
         return Result.success();
     }
 

+ 4 - 4
gis_cms/src/main/java/com/gis/cms/controller/CommentController.java

@@ -1,5 +1,6 @@
 package com.gis.cms.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.cms.entity.po.CommentEntity;
 import com.gis.common.base.aop.WebControllerLog;
 import com.gis.common.base.entity.dto.DateDto;
@@ -8,7 +9,6 @@ import com.gis.common.util.Result;
 import com.gis.cms.entity.dto.CommentDto;
 import com.gis.cms.entity.vo.CommentVo;
 import com.gis.cms.service.CommentService;
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -33,7 +33,7 @@ public class CommentController  {
 //    @RequiresRoles(value = {"sys_admin", "sys_high"}, logical = Logical.OR)
     @ApiOperation("列表")
     @PostMapping("list")
-    public Result<PageInfo<CommentVo>> list(@RequestBody PageDateDto param) {
+    public Result<Page<CommentVo>> list(@RequestBody PageDateDto param) {
         return entityService.search(param, null);
     }
 
@@ -68,14 +68,14 @@ public class CommentController  {
     @ApiOperation("是否显示")
     @GetMapping("display/{id}/{display}")
     public Result display(@PathVariable Long id, @PathVariable Integer display) {
-        CommentEntity entity = entityService.findById(id);
+        CommentEntity entity = entityService.getById(id);
         if (entity == null) {
             log.error("对象id不存在 : {}", id);
             return Result.failure("对象id不存在");
         }
 
         entity.setDisplay(display);
-        entityService.update(entity);
+        entityService.updateById(entity);
         return Result.success();
     }
 

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

@@ -1,5 +1,6 @@
 package com.gis.cms.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.cms.entity.dto.*;
 import com.gis.cms.entity.po.*;
 import com.gis.cms.entity.vo.CommentVo;
@@ -12,7 +13,6 @@ import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.service.LogService;
 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;
@@ -125,7 +125,7 @@ public class WebController {
 
     @ApiOperation("门户网站-留言列表")
     @PostMapping("commentList")
-    public Result<PageInfo<CommentVo>> commentList(@RequestBody PageDateDto param) {
+    public Result<Page<CommentVo>> commentList(@RequestBody PageDateDto param) {
         return commentService.search(param, 1);
     }
 

+ 4 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/GoodsPageDateDto.java

@@ -16,6 +16,10 @@ public class GoodsPageDateDto extends PageDateDto {
     @ApiModelProperty(value = "单元")
     private Integer zone;
 
+    @ApiModelProperty(value = "是否显示,1:显示, 0:不显示, 默认显示", notes = "后端使用")
+    private Integer display;
+
+
 
 
 

+ 3 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/BarrageEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,7 +13,8 @@ import java.io.Serializable;
  * 弹幕表
  */
 @Data
-@Table(name = "tb_barrage")
+//@Table(name = "tb_barrage")
+@TableName(value = "tb_barrage")
 public class BarrageEntity extends BaseEntity implements Serializable {
 
 

+ 3 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/CommentEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,7 +13,8 @@ import java.io.Serializable;
  * 留言评论
  */
 @Data
-@Table(name = "tb_comment")
+//@Table(name = "tb_comment")
+@TableName(value = "tb_comment")
 public class CommentEntity extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = -8093446477843493946L;

+ 3 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/FileEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -11,7 +12,8 @@ import javax.persistence.Table;
  * 文件表
  */
 @Data
-@Table(name = "tb_file")
+//@Table(name = "tb_file")
+@TableName(value = "tb_file")
 public class FileEntity extends BaseEntity {
 
     @ApiModelProperty(value = "名称" )

+ 3 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/GoodsEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -11,7 +12,8 @@ import javax.persistence.Table;
  * 文物表
  */
 @Data
-@Table(name = "tb_goods")
+//@Table(name = "tb_goods")
+@TableName(value = "tb_goods")
 public class GoodsEntity extends BaseEntity {
 
     @ApiModelProperty(value = "名称" )

+ 3 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/SensitiveEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,7 +13,8 @@ import java.io.Serializable;
  * 敏感词表
  */
 @Data
-@Table(name = "tb_sensitive")
+//@Table(name = "tb_sensitive")
+@TableName(value = "tb_sensitive")
 public class SensitiveEntity extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 5929496864816525045L;

+ 3 - 2
gis_cms/src/main/java/com/gis/cms/mapper/BarrageMapper.java

@@ -1,21 +1,22 @@
 package com.gis.cms.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gis.cms.entity.po.BarrageEntity;
 import com.gis.cms.entity.vo.BarrageVoExcel;
 import com.gis.cms.mapper.provider.BarrageProvider;
 import com.gis.cms.mapper.provider.BaseProvider;
 import com.gis.common.base.entity.dto.PageDateDto;
-import com.gis.common.base.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.SelectProvider;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
 
 @Component
 @Mapper
-public interface BarrageMapper extends IBaseMapper<BarrageEntity, Long> {
+public interface BarrageMapper extends BaseMapper<BarrageEntity> {
 
     @SelectProvider(type = BarrageProvider.class, method = "search")
     List<BarrageEntity> search(PageDateDto param, Integer display);

+ 3 - 2
gis_cms/src/main/java/com/gis/cms/mapper/CommentMapper.java

@@ -1,10 +1,11 @@
 package com.gis.cms.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gis.cms.entity.po.GoodsEntity;
 import com.gis.cms.entity.vo.CommentVoExcel;
 import com.gis.cms.mapper.provider.BaseProvider;
 import com.gis.common.base.entity.dto.PageDateDto;
-import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.cms.entity.po.CommentEntity;
 import com.gis.cms.entity.vo.CommentVo;
 import com.gis.cms.mapper.provider.CommentProvider;
@@ -19,7 +20,7 @@ import java.util.List;
 
 @Component
 @Mapper
-public interface CommentMapper extends IBaseMapper<CommentEntity, Long> {
+public interface CommentMapper extends BaseMapper<CommentEntity> {
 
 
     @SelectProvider(type = CommentProvider.class, method = "search")

+ 3 - 2
gis_cms/src/main/java/com/gis/cms/mapper/FileMapper.java

@@ -1,8 +1,9 @@
 package com.gis.cms.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gis.cms.entity.po.BarrageEntity;
 import com.gis.cms.entity.po.FileEntity;
-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;
@@ -13,7 +14,7 @@ import java.util.List;
 
 @Component
 @Mapper
-public interface FileMapper extends IBaseMapper<FileEntity, Long> {
+public interface FileMapper extends BaseMapper<FileEntity> {
 
     @Update("update tb_file set is_index = 1 , update_time = NOW() where is_delete = 0 and id = #{fileId} ")
     void indexEnabled(Long fileId);

+ 6 - 6
gis_cms/src/main/java/com/gis/cms/mapper/GoodsMapper.java

@@ -1,15 +1,15 @@
 package com.gis.cms.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.cms.entity.dto.GoodsPageDateDto;
 import com.gis.cms.entity.po.GoodsEntity;
 import com.gis.cms.entity.vo.SearchVo;
 import com.gis.cms.mapper.provider.GoodsProvider;
 import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.base.mapper.IBaseMapper;
-import com.gis.cms.entity.dto.TypePageDateDto;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.SelectProvider;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Component;
@@ -18,16 +18,16 @@ import java.util.List;
 
 @Component
 @Mapper
-public interface GoodsMapper extends IBaseMapper<GoodsEntity, Long> {
+public interface GoodsMapper  extends BaseMapper<GoodsEntity> {
 
 
 
     @SelectProvider(type = GoodsProvider.class, method = "search")
-    List<GoodsEntity> search(GoodsPageDateDto param, Integer display);
+    Page<GoodsEntity> search(GoodsPageDateDto param, IPage page);
 
     @Update("update tb_goods set visit = visit + 1 , update_time = NOW() where is_delete = 0  and id = #{id}")
     void addVisit(Long id);
 
     @SelectProvider(type = GoodsProvider.class, method = "searchGlobal")
-    List<SearchVo> searchGlobal(PageDto param);
+    Page<GoodsEntity> searchGlobal(PageDto param, IPage page);
 }

+ 3 - 3
gis_cms/src/main/java/com/gis/cms/mapper/MyBaseMapper.java

@@ -1,18 +1,18 @@
 package com.gis.cms.mapper;
 
 
-import com.gis.cms.entity.po.FileEntity;
-import com.gis.common.base.mapper.IBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Component;
 
 
 
 @Component
 @Mapper
-public interface MyBaseMapper extends IBaseMapper<FileEntity, Long> {
+public interface MyBaseMapper extends BaseMapper<T> {
 
 
 

+ 2 - 2
gis_cms/src/main/java/com/gis/cms/mapper/SensitiveMapper.java

@@ -1,7 +1,7 @@
 package com.gis.cms.mapper;
 
 
-import com.gis.common.base.mapper.IBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gis.cms.entity.po.SensitiveEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
@@ -11,7 +11,7 @@ import java.util.Set;
 
 @Component
 @Mapper
-public interface SensitiveMapper extends IBaseMapper<SensitiveEntity, Long> {
+public interface SensitiveMapper extends BaseMapper<SensitiveEntity> {
 
     @Select("SELECT DISTINCT name FROM tb_sensitive WHERE is_delete=0")
     Set<Object> getName();

+ 2 - 1
gis_cms/src/main/java/com/gis/cms/mapper/provider/CommentProvider.java

@@ -2,13 +2,14 @@ package com.gis.cms.mapper.provider;
 
 import com.gis.common.base.entity.dto.PageDateDto;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
 
 /**
  * Created by owen on 2020/5/13.
  */
-@Log4j2
+@Slf4j
 public class CommentProvider {
 
     public String search(PageDateDto param, Integer display){

+ 4 - 3
gis_cms/src/main/java/com/gis/cms/mapper/provider/GoodsProvider.java

@@ -5,21 +5,22 @@ import com.gis.cms.entity.dto.TypePageDateDto;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.util.RegexUtil;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
 
 /**
  * Created by owen on 2020/6/13 0013 10:56
  */
-@Log4j2
+@Slf4j
 public class GoodsProvider {
 
 
-    public String search(GoodsPageDateDto param, Integer display) {
+    public String search(GoodsPageDateDto param) {
         StringBuffer sql = new StringBuffer(
                 "select * from tb_goods where is_delete = '0' ");
 
-
+        Integer display = param.getDisplay();
         if (display != null) {
             sql.append(" and  display = ").append(display);
         }

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

@@ -1,22 +1,22 @@
 package com.gis.cms.service;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.cms.entity.dto.BarrageDto;
 import com.gis.cms.entity.po.BarrageEntity;
 import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
-import com.github.pagehelper.PageInfo;
 
 
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface BarrageService extends IBaseService<BarrageEntity, Long> {
+public interface BarrageService extends IService<BarrageEntity> {
 
 
-    Result<PageInfo<BarrageEntity>> search(PageDateDto param, Integer display);
+    Result<Page<BarrageEntity>> search(PageDateDto param, Integer display);
 
     Result remove(Long id);
 

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

@@ -1,14 +1,14 @@
 package com.gis.cms.service;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.cms.entity.dto.CommentDto;
 import com.gis.cms.entity.po.CommentEntity;
 import com.gis.cms.entity.vo.CommentVo;
 import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
-import com.github.pagehelper.PageInfo;
 
 import java.time.LocalDate;
 
@@ -16,10 +16,10 @@ import java.time.LocalDate;
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface CommentService extends IBaseService<CommentEntity, Long> {
+public interface CommentService extends IService<CommentEntity> {
 
 
-    Result<PageInfo<CommentVo>> search(PageDateDto param, Integer display);
+    Result<Page<CommentVo>> search(PageDateDto param, Integer display);
 
     Integer countFindByDate(LocalDate now);
 
@@ -27,7 +27,7 @@ public interface CommentService extends IBaseService<CommentEntity, Long> {
 
     Result saveEntity(CommentDto param);
 
-    Result<CommentVo> voListTree(PageDateDto param, Integer display);
+//    Result<CommentVo> voListTree(PageDateDto param, Integer display);
 
     Result<CommentEntity> detail(Long id);
 

+ 3 - 2
gis_cms/src/main/java/com/gis/cms/service/FileService.java

@@ -1,8 +1,9 @@
 package com.gis.cms.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.cms.entity.po.FileEntity;
-import com.gis.common.base.service.IBaseService;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -12,7 +13,7 @@ import java.util.Map;
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface FileService extends IBaseService<FileEntity, Long> {
+public interface FileService extends IService<FileEntity> {
 
 
     void indexDisable(Long moduleId, String module);

+ 3 - 3
gis_cms/src/main/java/com/gis/cms/service/GoodsService.java

@@ -1,21 +1,21 @@
 package com.gis.cms.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.cms.entity.dto.GoodsDto;
 import com.gis.cms.entity.dto.GoodsPageDateDto;
-import com.gis.cms.entity.dto.TypePageDateDto;
 import com.gis.cms.entity.po.GoodsEntity;
 import com.gis.cms.entity.vo.SearchVo;
 import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.web.multipart.MultipartFile;
 
 
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface GoodsService extends IBaseService<GoodsEntity, Long> {
+public interface GoodsService extends IService<GoodsEntity> {
 
 
     Result<GoodsEntity> search(GoodsPageDateDto param, Integer display);

+ 3 - 3
gis_cms/src/main/java/com/gis/cms/service/SensitiveService.java

@@ -1,12 +1,12 @@
 package com.gis.cms.service;
 
 
-import com.gis.cms.entity.dto.ContentDto;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.cms.entity.dto.SensitiveDto;
 import com.gis.cms.entity.po.SensitiveEntity;
-import com.gis.common.base.service.IBaseService;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.util.Result;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.Set;
 
@@ -14,7 +14,7 @@ import java.util.Set;
 /**
  * Created by owen on 2020/3/11 0011 16:14
  */
-public interface SensitiveService extends IBaseService<SensitiveEntity, Long> {
+public interface SensitiveService extends IService<SensitiveEntity> {
 
 
     Result saveEntity(SensitiveDto param);

+ 34 - 16
gis_cms/src/main/java/com/gis/cms/service/impl/BarrageServiceImpl.java

@@ -1,21 +1,23 @@
 package com.gis.cms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.dto.BarrageDto;
 import com.gis.cms.entity.po.BarrageEntity;
 import com.gis.cms.entity.vo.BarrageVoExcel;
-import com.gis.cms.entity.vo.CommentVoExcel;
 import com.gis.cms.mapper.BarrageMapper;
 import com.gis.cms.service.SensitiveService;
 import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
 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.ConfigConstant;
+import com.gis.common.util.BaseUtil;
 import com.gis.common.util.ExcelUtils;
 import com.gis.common.util.MyStrUtil;
 import com.gis.common.util.Result;
 import com.gis.cms.service.BarrageService;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -32,7 +34,7 @@ import java.util.List;
  */
 @Slf4j
 @Service
-public class BarrageServiceImpl extends IBaseServiceImpl<BarrageEntity, Long> implements BarrageService {
+public class BarrageServiceImpl extends ServiceImpl<BarrageMapper, BarrageEntity> implements BarrageService {
 
     @Autowired
     private BarrageMapper entityMapper;
@@ -40,30 +42,46 @@ public class BarrageServiceImpl extends IBaseServiceImpl<BarrageEntity, Long> im
     @Autowired
     SensitiveService sensitiveService;
 
-    @Override
-    public IBaseMapper<BarrageEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+    @Autowired
+    ConfigConstant configConstant;
+
 
 
     @Override
-    public Result<PageInfo<BarrageEntity>> search(PageDateDto param, Integer display) {
-        startPage(param);
-        PageInfo<BarrageEntity> page = new PageInfo<>(entityMapper.search(param, display));
+    public Result<Page<BarrageEntity>> search(PageDateDto param, Integer display) {
+        BaseUtil.startPage(param);
+        IPage<BarrageEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        LambdaQueryWrapper<BarrageEntity> wrapper = new LambdaQueryWrapper<>();
+        String searchKey = param.getSearchKey();
+        if (StringUtils.isNotBlank(searchKey)) {
+            searchKey = StringUtils.trim(searchKey);
+            wrapper.like(BarrageEntity::getContent, searchKey);
+        }
+
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
+            wrapper.between(BarrageEntity::getCreateTime, startTime, endTime);
+        }
+
+        if (display != null){
+            wrapper.eq(BarrageEntity::getDisplay, display);
+        }
 
-        return Result.success(page);
+        wrapper.orderByDesc(BarrageEntity::getCreateTime);
+        return Result.success(this.page(page, wrapper));
     }
 
     @Override
     public Result remove(Long id) {
-        BarrageEntity entity = this.findById(id);
+        BarrageEntity entity = this.getById(id);
         if (entity == null) {
             return Result.success();
         }
         // db数据软删除, 物理数据真删除
         entity.setIsDelete(1);
         entity.setUpdateTime(LocalDateTime.now());
-        this.update(entity);
+        this.updateById(entity);
         return Result.success();
     }
 
@@ -77,7 +95,7 @@ public class BarrageServiceImpl extends IBaseServiceImpl<BarrageEntity, Long> im
 
     @Override
     public Result<BarrageEntity> detail(Long id) {
-        BarrageEntity entity = this.findById(id);
+        BarrageEntity entity = this.getById(id);
         if (entity == null) {
             return Result.failure("对象不存在");
         }

+ 51 - 31
gis_cms/src/main/java/com/gis/cms/service/impl/CommentServiceImpl.java

@@ -1,5 +1,9 @@
 package com.gis.cms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.dto.CommentDto;
 import com.gis.cms.entity.po.CommentEntity;
 import com.gis.cms.entity.vo.CommentVo;
@@ -7,17 +11,14 @@ import com.gis.cms.entity.vo.CommentVoExcel;
 import com.gis.cms.mapper.CommentMapper;
 import com.gis.cms.service.CommentService;
 import com.gis.cms.service.SensitiveService;
-import com.gis.cms.tree.CommentTreeUtil;
-import com.gis.cms.tree.vo.CommentTree;
 import com.gis.common.base.entity.dto.DateDto;
 import com.gis.common.base.entity.dto.PageDateDto;
 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.ConfigConstant;
+import com.gis.common.util.BaseUtil;
 import com.gis.common.util.ExcelUtils;
 import com.gis.common.util.MyStrUtil;
 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;
@@ -28,7 +29,6 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Set;
 
 
 /**
@@ -36,24 +36,44 @@ import java.util.Set;
  */
 @Slf4j
 @Service
-public class CommentServiceImpl extends IBaseServiceImpl<CommentEntity, Long> implements CommentService {
+public class CommentServiceImpl extends ServiceImpl<CommentMapper, CommentEntity> implements CommentService {
 
     @Autowired
-    private CommentMapper entityMapper;
+    CommentMapper entityMapper;
 
     @Autowired
-    private SensitiveService sensitiveService;
+    SensitiveService sensitiveService;
+
+    @Autowired
+    ConfigConstant configConstant;
+
 
-    @Override
-    public IBaseMapper<CommentEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
 
 
     @Override
-    public Result<PageInfo<CommentVo>> search(PageDateDto param, Integer display) {
-        startPage(param);
-        PageInfo<CommentVo> page = new PageInfo<>(entityMapper.search(param, display));
+    public Result<Page<CommentVo>> search(PageDateDto param, Integer display) {
+        BaseUtil.startPage(param);
+        IPage<CommentEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+
+        LambdaQueryWrapper<CommentEntity> wrapper = new LambdaQueryWrapper<>();
+        String searchKey = param.getSearchKey();
+        if (StringUtils.isNotBlank(searchKey)) {
+            searchKey = StringUtils.trim(searchKey);
+            wrapper.like(CommentEntity::getContent, searchKey);
+        }
+
+        String startTime = param.getStartTime();
+        String endTime = param.getEndTime();
+        if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
+            wrapper.between(CommentEntity::getCreateTime, startTime, endTime);
+        }
+
+        if (display != null){
+            wrapper.eq(CommentEntity::getDisplay, display);
+        }
+
+        wrapper.orderByDesc(CommentEntity::getCreateTime);
+
         return Result.success(page);
     }
 
@@ -64,14 +84,14 @@ public class CommentServiceImpl extends IBaseServiceImpl<CommentEntity, Long> im
 
     @Override
     public Result remove(Long id) {
-        CommentEntity entity = this.findById(id);
+        CommentEntity entity = this.getById(id);
         if (entity == null) {
             return Result.success();
         }
         // db数据软删除, 物理数据真删除
         entity.setIsDelete(1);
         entity.setUpdateTime(LocalDateTime.now());
-        this.update(entity);
+        this.updateById(entity);
         return Result.success();
     }
 
@@ -84,19 +104,19 @@ public class CommentServiceImpl extends IBaseServiceImpl<CommentEntity, Long> im
         return Result.success();
     }
 
-    @Override
-    public Result<CommentVo> voListTree(PageDateDto param, Integer display) {
-        startPage(param);
-
-        List<CommentVo> search = entityMapper.search(param, display);
-
-        Set<Object> filterKey = sensitiveService.getFilterKey();
-        CommentTreeUtil commentTreeUtil = new CommentTreeUtil(search, filterKey);
-        List<CommentTree> commentTrees = commentTreeUtil.buildTree();
-
-        PageInfo<CommentTree> page = new PageInfo<>(commentTrees);
-        return Result.success(page);
-    }
+//    @Override
+//    public Result<CommentVo> voListTree(PageDateDto param, Integer display) {
+//        startPage(param);
+//
+//        List<CommentVo> search = entityMapper.search(param, display);
+//
+//        Set<Object> filterKey = sensitiveService.getFilterKey();
+//        CommentTreeUtil commentTreeUtil = new CommentTreeUtil(search, filterKey);
+//        List<CommentTree> commentTrees = commentTreeUtil.buildTree();
+//
+//        PageInfo<CommentTree> page = new PageInfo<>(commentTrees);
+//        return Result.success(page);
+//    }
 
     @Override
     public Result<CommentEntity> detail(Long id) {

+ 9 - 7
gis_cms/src/main/java/com/gis/cms/service/impl/FileServiceImpl.java

@@ -2,11 +2,12 @@ package com.gis.cms.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.po.FileEntity;
 import com.gis.cms.mapper.FileMapper;
 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.ConfigConstant;
+import com.gis.common.util.FileUtils;
 import com.gis.common.util.RegexUtil;
 import com.gis.cms.service.FileService;
 import lombok.extern.slf4j.Slf4j;
@@ -27,15 +28,16 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class FileServiceImpl extends IBaseServiceImpl<FileEntity, Long> implements FileService {
+public class FileServiceImpl extends ServiceImpl<FileMapper, FileEntity> implements FileService {
 
     @Autowired
     private FileMapper entityMapper;
 
-    @Override
-    public IBaseMapper<FileEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+    @Autowired
+    FileUtils fileUtils;
+
+    @Autowired
+    ConfigConstant configConstant;
 
 
 

+ 34 - 32
gis_cms/src/main/java/com/gis/cms/service/impl/GoodsServiceImpl.java

@@ -2,24 +2,26 @@ package com.gis.cms.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.dto.GoodsDto;
 import com.gis.cms.entity.dto.GoodsPageDateDto;
-import com.gis.cms.entity.dto.TypePageDateDto;
 import com.gis.cms.entity.po.FileEntity;
 import com.gis.cms.entity.po.GoodsEntity;
 import com.gis.cms.entity.vo.SearchVo;
 import com.gis.cms.mapper.GoodsMapper;
 import com.gis.common.base.entity.dto.PageDto;
 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.ConfigConstant;
 import com.gis.common.constant.MsgCode;
 import com.gis.common.constant.TypeCode;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.FileUtils;
 import com.gis.common.util.RegexUtil;
 import com.gis.common.util.Result;
 import com.gis.cms.service.FileService;
 import com.gis.cms.service.GoodsService;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -39,7 +41,7 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implements GoodsService {
+public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, GoodsEntity> implements GoodsService {
 
     @Autowired
     private GoodsMapper entityMapper;
@@ -47,19 +49,19 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
     @Autowired
     FileService fileService;
 
+    @Autowired
+    FileUtils fileUtils;
 
-
-
-    @Override
-    public IBaseMapper<GoodsEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+    @Autowired
+    ConfigConstant configConstant;
 
 
     @Override
     public Result<GoodsEntity> search(GoodsPageDateDto param, Integer display) {
-        startPage(param);
-        return Result.success(new PageInfo<>(entityMapper.search(param, display)));
+        BaseUtil.startPage(param);
+        IPage<GoodsEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        param.setDisplay(display);
+        return Result.success(entityMapper.search(param, page));
     }
 
     @Override
@@ -69,10 +71,9 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
         if (id == null) {
             entity = new GoodsEntity();
             BeanUtils.copyProperties(param, entity);
-//            entity.setUserName(getTokenUserName());
             this.save(entity);
         } else {
-            entity = this.findById(id);
+            entity = this.getById(id);
             if (entity == null) {
                 return Result.failure("对象不存在: " + id);
             }
@@ -80,7 +81,7 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
             BeanUtils.copyProperties(param, entity);
 
             entity.setUpdateTime(LocalDateTime.now());
-            this.update(entity);
+            this.updateById(entity);
         }
 
         // 图片类型img,  将模块id绑定到文件表
@@ -103,20 +104,20 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
 
     @Override
     public Result remove(Long id) {
-        GoodsEntity entity = this.findById(id);
+        GoodsEntity entity = this.getById(id);
         if (entity == null) {
             return Result.success();
         }
         entity.setIsDelete(1);
         entity.setUpdateTime(LocalDateTime.now());
-        this.update(entity);
+        this.updateById(entity);
 
         return Result.success();
     }
 
     @Override
     public Result removeFile(Long fileId) {
-        FileEntity entity = fileService.findById(fileId);
+        FileEntity entity = fileService.getById(fileId);
         if (entity == null){
             return Result.success();
         }
@@ -124,13 +125,13 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
         entity.setIsDelete(1);
         entity.setIsIndex(0);
         entity.setUpdateTime(LocalDateTime.now());
-        fileService.update(entity);
+        fileService.updateById(entity);
         return Result.success();
     }
 
     @Override
     public Result setIndex(Long fileId) {
-        FileEntity entity = fileService.findById(fileId);
+        FileEntity entity = fileService.getById(fileId);
         if (entity == null) {
             return Result.failure("对象不存在: " + fileId);
         }
@@ -154,10 +155,10 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
      * 将封面图更新为缩略图
      */
     private void setThumbByIndex(Long goodId, String thumb){
-        GoodsEntity entity = this.findById(goodId);
+        GoodsEntity entity = this.getById(goodId);
         entity.setThumb(thumb);
         entity.setUpdateTime(LocalDateTime.now());
-        this.update(entity);
+        this.updateById(entity);
     }
 
     @Override
@@ -185,7 +186,7 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
 
     @Override
     public Result detail(Long id) {
-        GoodsEntity entity = this.findById(id);
+        GoodsEntity entity = this.getById(id);
         if (entity == null) {
             return Result.failure(MsgCode.e3001,"对象不存在,id: " + id);
         }
@@ -200,14 +201,14 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
 
     @Override
     public Result display(Long id, Integer display) {
-        GoodsEntity entity = this.findById(id);
+        GoodsEntity entity = this.getById(id);
         if (entity == null) {
             log.error("对象id不存在 : {}", id);
             return Result.failure("对象id不存在");
         }
 
         entity.setDisplay(display);
-        this.update(entity);
+        this.updateById(entity);
         return Result.success(entity);
     }
 
@@ -219,8 +220,9 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
 
     @Override
     public Result<SearchVo> searchGlobal(PageDto param) {
-        startPage(param);
-        return Result.success(new PageInfo<>(entityMapper.searchGlobal(param)));
+        BaseUtil.startPage(param);
+        IPage<GoodsEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        return Result.success(entityMapper.searchGlobal(param, page));
     }
 
     @Override
@@ -230,7 +232,7 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
             return Result.failure("目录码不能为空");
         }
 
-        FileEntity entity = fileService.findById(fileId);
+        FileEntity entity = fileService.getById(fileId);
         if (entity == null){
             return Result.failure("对象不存在");
         }
@@ -247,7 +249,7 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
         }
         entity.setName(fileName);
         entity.setFilePath(filePath);
-        fileService.update(entity);
+        fileService.updateById(entity);
 
         // 更新封面图 (这里最终是否成功,要结合保存功能)
         updateIndexImg(entity);
@@ -258,14 +260,14 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
     // 更新封面图
     private void updateIndexImg(FileEntity entity){
         if (entity.getIsIndex() == 1) {
-            GoodsEntity goods = this.findById(entity.getModuleId());
+            GoodsEntity goods = this.getById(entity.getModuleId());
             if (goods == null){
                 String errorMsg = "对象不存现,更新封面失败";
                 throw new RuntimeException(errorMsg);
             }
 
             goods.setThumb(entity.getFilePath());
-            this.update(goods);
+            this.updateById(goods);
             log.info("更新封面完成");
         }
 

+ 48 - 22
gis_cms/src/main/java/com/gis/cms/service/impl/SensitiveServiceImpl.java

@@ -1,21 +1,25 @@
 package com.gis.cms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.dto.SensitiveDto;
 import com.gis.cms.entity.po.SensitiveEntity;
 import com.gis.cms.mapper.SensitiveMapper;
 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.base.service.IBaseService;
+import com.gis.common.constant.ConfigConstant;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.cms.service.SensitiveService;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Condition;
 
 import java.time.LocalDateTime;
 import java.util.Arrays;
@@ -28,34 +32,56 @@ import java.util.Set;
  */
 @Slf4j
 @Service
-public class SensitiveServiceImpl extends IBaseServiceImpl<SensitiveEntity, Long> implements SensitiveService {
+public class SensitiveServiceImpl extends ServiceImpl<SensitiveMapper, SensitiveEntity> implements SensitiveService {
 
     @Autowired
-    private SensitiveMapper entityMapper;
+    SensitiveMapper entityMapper;
+
+    @Autowired
+    IBaseService iBaseService;
+
+    @Autowired
+    ConfigConstant configConstant;
+
+    @Autowired
+    RedisUtil redisUtil;
 
     static String REDIS_FILTER = "filter";
 
-    @Override
-    public IBaseMapper<SensitiveEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+
+
+//    @Override
+//    public Result<SensitiveEntity> search(PageDto param) {
+//        startPage(param);
+//        Condition condition = new Condition(SensitiveEntity.class);
+//        String searchKey = param.getSearchKey();
+//        if (StringUtils.isNotBlank(searchKey)) {
+//            searchKey = StringUtils.trim(searchKey);
+//            condition.and().orLike("name", "%" + searchKey + "%");
+//        }
+//        condition.orderBy("createTime").desc();
+//        PageInfo<SensitiveEntity> pageInfo = this.findAll(condition, param.getPageNum(), param.getPageSize());
+//        return Result.success(pageInfo);
+//
+//    }
 
     @Override
     public Result<SensitiveEntity> search(PageDto param) {
-        startPage(param);
-        Condition condition = new Condition(SensitiveEntity.class);
+        BaseUtil.startPage(param);
+        LambdaQueryWrapper<SensitiveEntity> wrapper = new LambdaQueryWrapper<>();
         String searchKey = param.getSearchKey();
         if (StringUtils.isNotBlank(searchKey)) {
             searchKey = StringUtils.trim(searchKey);
-            condition.and().orLike("name", "%" + searchKey + "%");
+            wrapper.like(SensitiveEntity::getName, searchKey);
         }
-        condition.orderBy("createTime").desc();
-        PageInfo<SensitiveEntity> pageInfo = this.findAll(condition, param.getPageNum(), param.getPageSize());
-        return Result.success(pageInfo);
+        wrapper.orderByDesc(SensitiveEntity::getCreateTime);
+        IPage<SensitiveEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        return Result.success(this.page(page, wrapper));
 
     }
 
 
+
     @Override
     public Result saveEntity(SensitiveDto param) {
         Long id = param.getId();
@@ -63,16 +89,16 @@ public class SensitiveServiceImpl extends IBaseServiceImpl<SensitiveEntity, Long
         if (id == null) {
             entity = new SensitiveEntity();
             BeanUtils.copyProperties(param, entity);
-            entity.setUserName(getTokenUserName());
+            entity.setUserName(iBaseService.getUserName());
             this.save(entity);
         } else {
-            entity = this.findById(id);
+            entity = this.getById(id);
             if (entity == null) {
                 return Result.failure("对象不存在: " + id);
             }
             BeanUtils.copyProperties(param, entity);
             entity.setUpdateTime(LocalDateTime.now());
-            this.update(entity);
+            this.updateById(entity);
         }
         redisUtil.del(getRedisFilterKey());
         return Result.success(entity);
@@ -80,21 +106,21 @@ public class SensitiveServiceImpl extends IBaseServiceImpl<SensitiveEntity, Long
 
     @Override
     public Result remove(Long id) {
-        SensitiveEntity entity = this.findById(id);
+        SensitiveEntity entity = this.getById(id);
         if (entity == null) {
             return Result.success();
         }
         // db数据软删除, 物理数据真删除
         entity.setIsDelete(1);
         entity.setUpdateTime(LocalDateTime.now());
-        this.update(entity);
+        this.updateById(entity);
         redisUtil.del(getRedisFilterKey());
         return  Result.success();
     }
 
     @Override
     public Result<SensitiveEntity> detail(Long id) {
-        SensitiveEntity entity = this.findById(id);
+        SensitiveEntity entity = this.getById(id);
         if (entity == null) {
             return Result.failure("对象不存在");
         }

+ 15 - 8
gis_common/pom.xml

@@ -72,6 +72,13 @@
             <artifactId>druid-spring-boot-starter</artifactId>
         </dependency>
 
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+
+
         <!-- knife4j aip 包-->
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
@@ -97,17 +104,17 @@
 
 
         <!--tk.mybatis 依赖-->
-        <dependency>
-            <groupId>tk.mybatis</groupId>
-            <artifactId>mapper-spring-boot-starter</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>tk.mybatis</groupId>-->
+            <!--<artifactId>mapper-spring-boot-starter</artifactId>-->
+        <!--</dependency>-->
 
 
         <!--分页插件-->
-        <dependency>
-            <groupId>com.github.pagehelper</groupId>
-            <artifactId>pagehelper-spring-boot-starter</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>com.github.pagehelper</groupId>-->
+            <!--<artifactId>pagehelper-spring-boot-starter</artifactId>-->
+        <!--</dependency>-->
 
         <!-- jwt -->
         <dependency>

+ 16 - 1
gis_common/src/main/java/com/gis/common/base/entity/po/BaseEntity.java

@@ -1,6 +1,10 @@
 package com.gis.common.base.entity.po;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -13,16 +17,19 @@ import java.time.LocalDateTime;
 public abstract class BaseEntity {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @GeneratedValue(strategy = GenerationType.IDENTITY)  //tk.mybatis id自增
+    @TableId(type = IdType.AUTO)  // mybatis-plus id自增
     @Column(name = "id")
     @ApiModelProperty(value = "对象ID")
     private Long id;
 
+    @TableField(fill = FieldFill.INSERT)
     @ApiModelProperty(value = "创建时间")
 //    @Temporal(TemporalType.TIMESTAMP)
 //    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     @ApiModelProperty(value = "修改时间")
 //    @Temporal(TemporalType.TIMESTAMP)
 //    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
@@ -36,4 +43,12 @@ public abstract class BaseEntity {
     @JsonIgnore
     @JSONField(serialize = false)
     private Integer isDelete;
+
+    @TableField(exist  = false)
+    @ApiModelProperty(value = "创建者名")
+    private String creatorName;
+
+//    @ApiModelProperty(value = "创建者id")
+//    private Long creatorId;
 }
+

+ 3 - 1
gis_common/src/main/java/com/gis/common/base/entity/po/LogEntity.java

@@ -1,5 +1,6 @@
 package com.gis.common.base.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -13,7 +14,8 @@ import java.io.Serializable;
 @NoArgsConstructor                 //无参构造
 @AllArgsConstructor                //有参构造
 @Data
-@Table(name = "tb_log")
+//@Table(name = "tb_log")
+@TableName("tb_log")
 public class LogEntity extends BaseEntity implements Serializable {
 
 

+ 99 - 1
gis_common/src/main/java/com/gis/common/base/exception/BaseRuntimeException.java

@@ -1,5 +1,11 @@
 package com.gis.common.base.exception;
 
+import cn.hutool.core.util.StrUtil;
+import com.gis.common.constant.ErrorEnum;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
 public class BaseRuntimeException extends RuntimeException{
 
     private static final long serialVersionUID = -1518945670203783450L;
@@ -12,12 +18,22 @@ public class BaseRuntimeException extends RuntimeException{
         this.msg = msg;
     }
 
+    /**
+     *
+     * @param code 允许为null
+     * @param msg
+     */
     public BaseRuntimeException(Integer code, String msg){
         super(msg);
-        this.code = code;
+        this.code = code == null? -1 : code;
         this.msg = msg;
     }
 
+    public BaseRuntimeException(ErrorEnum errorEnum){
+        this.code = errorEnum.code();
+        this.msg = errorEnum.message();
+    }
+
     public Integer getCode() {
         return code;
     }
@@ -33,4 +49,86 @@ public class BaseRuntimeException extends RuntimeException{
     public void setMsg(String msg) {
         this.msg = msg;
     }
+
+
+    public static void isNull(Object obj, Integer code, String msg){
+        if (obj == null){
+            getExc(code, msg);
+        }
+    }
+
+    public static void isBlank(Object obj, Integer code, String msg){
+        if (obj == null){
+            getExc(code, msg);
+        }
+
+        if (obj instanceof String && StrUtil.isBlank(obj.toString())){
+            getExc(code, msg);
+        }
+
+    }
+
+    public static void isNull(Object obj, ErrorEnum errorEnum){
+        if (obj == null){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+
+    public static void isBlank(Object obj, ErrorEnum errorEnum){
+        Integer code = errorEnum.code();
+        String msg = errorEnum.message();
+        if (obj == null){
+            getExc(code, msg);
+        }
+
+        if (obj instanceof String && StrUtil.isBlank(obj.toString())){
+            getExc(code, msg);
+        }
+
+    }
+
+    /**
+     *
+     * @param obj true 存在抛异常
+     * @param errorEnum
+     */
+    public static void isHas(boolean obj, ErrorEnum errorEnum){
+        if (obj){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+
+    /**
+     *
+     * @param obj 存在抛异常
+     * @param code 允许为null
+     * @param msg
+     */
+    public static void isHas(boolean obj, Integer code, String msg){
+        if (obj){
+            getExc(code, msg);
+        }
+    }
+
+    public static void  getExc(Integer code, String msg){
+        throw new BaseRuntimeException(code, msg);
+    }
+
+    /**
+     *
+     * @param obj 集合
+     * @param errorEnum
+     */
+    public static void isEmpty(List obj, ErrorEnum errorEnum){
+        if (CollectionUtils.isEmpty(obj)){
+            getExc(errorEnum.code(), errorEnum.message());
+        }
+    }
+
+    public static void isEmpty(List obj, Integer code, String msg){
+        if (CollectionUtils.isEmpty(obj)){
+            getExc(code, msg);
+        }
+    }
+
 }

+ 0 - 17
gis_common/src/main/java/com/gis/common/base/mapper/IBaseMapper.java

@@ -1,17 +0,0 @@
-package com.gis.common.base.mapper;
-
-import com.gis.common.base.entity.po.BaseEntity;
-import tk.mybatis.mapper.common.BaseMapper;
-import tk.mybatis.mapper.common.ConditionMapper;
-import tk.mybatis.mapper.common.IdsMapper;
-import tk.mybatis.mapper.common.special.InsertListMapper;
-
-import java.io.Serializable;
-
-/**
- * Created by owen on 2021/6/28 0018 11:27
- */
-
-public interface IBaseMapper<T extends BaseEntity, ID extends Serializable> extends BaseMapper<T>,
-        ConditionMapper<T>, IdsMapper<T>, InsertListMapper<T> {
-}

+ 5 - 2
gis_common/src/main/java/com/gis/common/base/mapper/LogMapper.java

@@ -1,6 +1,9 @@
 package com.gis.common.base.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.entity.vo.LogVo;
@@ -13,11 +16,11 @@ import java.util.List;
 
 @Component
 @Mapper
-public interface LogMapper extends IBaseMapper<LogEntity, Long> {
+public interface LogMapper extends BaseMapper<LogEntity> {
 
     /**
      * 注意日期,需要传字符串类型
      */
     @SelectProvider(type = LogProvider.class, method = "findBySearchKey")
-    List<LogVo> search(PageDateDto param);
+    Page<LogVo> search(PageDateDto param, IPage<LogEntity> page);
 }

+ 19 - 0
gis_common/src/main/java/com/gis/common/base/mapper/provider/BaseProvider.java

@@ -0,0 +1,19 @@
+package com.gis.common.base.mapper.provider;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by owen on 2022/2/9.
+ */
+@Slf4j
+public class BaseProvider {
+
+    public String runSql(String sqlStr){
+        log.info("runSql: {}", sqlStr);
+        return sqlStr;
+    }
+
+
+
+}

+ 2 - 1
gis_common/src/main/java/com/gis/common/base/mapper/provider/LogProvider.java

@@ -2,13 +2,14 @@ package com.gis.common.base.mapper.provider;
 
 import com.gis.common.base.entity.dto.PageDateDto;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
 
 /**
  * Created by owen on 2020/5/13.
  */
-@Log4j2
+@Slf4j
 public class LogProvider {
 
     public String findBySearchKey(PageDateDto param){

+ 26 - 33
gis_common/src/main/java/com/gis/common/base/service/IBaseService.java

@@ -1,51 +1,44 @@
 package com.gis.common.base.service;
 
-import com.gis.common.util.Result;
-import com.github.pagehelper.PageInfo;
-import tk.mybatis.mapper.entity.Condition;
+import com.gis.common.util.JwtUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
-import java.io.Serializable;
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
-public interface IBaseService<T, ID extends Serializable> {
+/**
+ * Created by owen on 2021/12/29 0029 14:12
+ */
+@Component
+public class IBaseService {
 
-    public abstract T findById(ID id);
+    @Autowired
+    HttpServletRequest request;
 
-    public abstract T findOne(T entity);
 
-    public abstract List<T> findByIds(String ids);
 
-    public abstract long count();
+    public String getToken(){
+        return request.getHeader("token");
+    }
 
-    public abstract boolean exists(ID id);
+    /**登录用户id*/
+    public Long getUserId(){
+       return JwtUtil.getUserId(getToken());
+    }
 
-    public abstract int save(T entity);
+    /**登录用户名*/
+    public String getUserName(){
+        return JwtUtil.getUsername(getToken());
+    }
 
-    public abstract int update(T entity);
+    /**登录用户角色*/
+    public List getUserRole(){
+        return JwtUtil.getUserRole(getToken());
+    }
 
-    public abstract int updateAll(T entity);
 
-    public abstract int deleteById(ID id);
 
-    public abstract int deleteByIds(String ids);
-
-    public abstract int delete(T entity);
-
-    public abstract List<T> findAll(Condition condition, String orderBy);
-
-    public abstract List<T> findAll(Condition condition);
-
-    public abstract List<T> findAll();
-
-    public abstract PageInfo<T> findAll(int pageNum, int pageSize);
-
-    public abstract PageInfo<T> findAll(int pageNum, int pageSize, String orderBy);
-
-    public abstract PageInfo<T> findAll(Condition condition, int pageNum, int pageSize);
-
-    public abstract PageInfo<T> findAll(Condition condition, int pageNum, int pageSize, String orderBy);
-
-    public abstract Result redisDel(String key);
 
 
 }

+ 2 - 1
gis_common/src/main/java/com/gis/common/base/service/LogService.java

@@ -1,6 +1,7 @@
 package com.gis.common.base.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.entity.vo.LogVo;
@@ -12,7 +13,7 @@ import java.util.List;
 /**
  * Created by owen on 2020/5/12 0011 16:14
  */
-public interface LogService extends IBaseService<LogEntity, Long> {
+public interface LogService extends IService<LogEntity> {
 
 
     Result search(PageDateDto param);

+ 0 - 246
gis_common/src/main/java/com/gis/common/base/service/impl/IBaseServiceImpl.java

@@ -1,246 +0,0 @@
-package com.gis.common.base.service.impl;
-
-import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.base.entity.po.BaseEntity;
-import com.gis.common.base.service.IBaseService;
-import com.gis.common.constant.ConfigConstant;
-import com.gis.common.base.mapper.IBaseMapper;
-import com.gis.common.util.FileUtils;
-import com.gis.common.util.JwtUtil;
-import com.gis.common.util.RedisUtil;
-import com.gis.common.util.Result;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-import tk.mybatis.mapper.entity.Condition;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.Serializable;
-import java.lang.reflect.ParameterizedType;
-import java.time.LocalDateTime;
-import java.util.List;
-
-/**
- * Created by owen on 2020/2/18 0018 11:22
- */
-@Slf4j
-public abstract class IBaseServiceImpl<T extends BaseEntity, ID extends Serializable> implements IBaseService<T, ID> {
-
-
-    @Autowired
-    public ConfigConstant configConstant;
-
-    @Autowired
-    public FileUtils fileUtils;
-
-    @Autowired
-    public HttpServletRequest request;
-
-    @Autowired
-    public RedisUtil redisUtil;
-
-
-    public abstract IBaseMapper<T, ID> getBaseMapper();
-
-    private Class<T> entityClass;
-
-    public IBaseServiceImpl(){
-        ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
-        entityClass = (Class<T>) pt.getActualTypeArguments()[0];
-    }
-
-    @Override
-    public T findById(ID id){
-        Condition condition = new Condition(entityClass);
-        condition.createCriteria().andEqualTo("id", id);
-        condition.and().andEqualTo("isDelete", 0);
-        List<T> ts = getBaseMapper().selectByCondition(condition);
-        if (ts != null && ts.size() > 0){
-            return ts.get(0);
-        }else{
-            return null;
-        }
-    }
-
-    @Override
-    public T findOne(T entity){
-        entity.setIsDelete(0);
-        return getBaseMapper().selectOne(entity);
-    }
-
-    @Override
-    public List<T> findAll(){
-        Condition condition = new Condition(entityClass);
-        condition.and().andEqualTo("isDelete", 0);
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    /**
-     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
-     *
-     * @param ids 如 "1,2,3,4"
-     * @return
-     */
-    @Override
-    public List<T> findByIds(String ids){
-        return getBaseMapper().selectByIds(ids);
-    }
-
-    @Override
-    public long count(){
-        List<T> all = this.findAll();
-        if (all != null && all.size() > 0){
-            return all.size();
-        }
-        return 0;
-    }
-
-    @Override
-    public boolean exists(ID id){
-        return getBaseMapper().existsWithPrimaryKey(id);
-    }
-
-    @Override
-    public int save(T entity) {
-        //migration之后要删掉判断
-        if (entity.getCreateTime() == null){
-            entity.setCreateTime(LocalDateTime.now());
-        }
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(LocalDateTime.now());
-        }
-        entity.setIsDelete(0);
-        return getBaseMapper().insertSelective(entity);
-    }
-
-    @Override
-    public int update(T entity) {
-        //migration之后要删掉判断
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(LocalDateTime.now());
-        }
-        return getBaseMapper().updateByPrimaryKeySelective(entity);
-    }
-
-    @Override
-    public int updateAll(T entity) {
-        //migration之后要删掉判断
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(LocalDateTime.now());
-        }
-        return getBaseMapper().updateByPrimaryKey(entity);
-    }
-
-    @Override
-    public int deleteById(ID id) {
-        return getBaseMapper().deleteByPrimaryKey(id);
-    }
-
-    @Override
-    public int deleteByIds(String ids){
-        return getBaseMapper().deleteByIds(ids);
-    }
-
-    @Override
-    public int delete(T entity){
-        return getBaseMapper().delete(entity);
-    }
-
-    public List<T> findAll(Condition condition){
-        condition.and().andEqualTo("isDelete", 0);
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    /**
-     *
-     * @param condition
-     * @param orderBy 数据库字段名称 , 倒序(create_time desc)
-     * @return
-     */
-    public List<T> findAll(Condition condition, String orderBy){
-        condition.and().andEqualTo("isDelete", 0);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    public PageInfo<T> findAll(int pageNum, int pageSize){
-        PageHelper.startPage(pageNum, pageSize);
-        return new PageInfo<>(this.findAll());
-    }
-
-    public PageInfo<T> findAll(int pageNum, int pageSize, String orderBy){
-        PageHelper.startPage(pageNum, pageSize);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return new PageInfo<>(this.findAll());
-    }
-
-    public PageInfo<T> findAll(Condition condition, int pageNum, int pageSize){
-        PageHelper.startPage(pageNum, pageSize);
-        return new PageInfo<>(this.findAll(condition));
-    }
-
-    public PageInfo<T> findAll(Condition condition, int pageNum, int pageSize, String orderBy){
-        PageHelper.startPage(pageNum, pageSize);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return new PageInfo<>(this.findAll(condition));
-    }
-
-
-    public Result redisDel(String key){
-        redisUtil.del(key);
-        return Result.success();
-    }
-
-
-    /**
-     * 设置请求分页数据
-     */
-    public void startPage(PageDto param){
-        Integer pageNum = param.getPageNum();
-        Integer pageSize = param.getPageSize();
-        if (pageNum == null || pageNum <= 0) {
-            pageNum = 0;
-        }
-        if (pageSize == null || pageSize <= 0) {
-            pageSize = 10;
-        }
-        PageHelper.startPage(pageNum, pageSize);
-    }
-
-    /** 获取用户id*/
-    public Long getTokenUserId(){
-        return JwtUtil.getUserId(getToken());
-    }
-
-    public List getTokenRole(){
-        return JwtUtil.getUserRole(getToken());
-    }
-
-
-    /** 获取用户名称*/
-   public String getTokenUserName(){
-        return JwtUtil.getUsername(getToken());
-    }
-
-
-    /** 获取header token */
-//    public String getToken(){
-//        return request.getHeader("token");
-//    }
-
-    public String getToken(){
-        return request.getHeader("token");
-    }
-
-}

+ 9 - 18
gis_common/src/main/java/com/gis/common/base/service/impl/LogServiceImpl.java

@@ -1,39 +1,30 @@
 package com.gis.common.base.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.common.base.mapper.LogMapper;
 import com.gis.common.base.service.LogService;
 import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.base.entity.po.LogEntity;
-import com.gis.common.base.entity.vo.LogVo;
-import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.util.BaseUtil;
 import com.gis.common.util.Result;
-import com.github.pagehelper.PageInfo;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 
 
 /**
  * Created by owen on 2020/5/12 0011 16:16
  */
 @Service
-public class LogServiceImpl extends IBaseServiceImpl<LogEntity, Long> implements LogService {
-
-    @Autowired
-    private LogMapper entityMapper;
-
-    @Override
-    public IBaseMapper<LogEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
+public class LogServiceImpl extends ServiceImpl<LogMapper, LogEntity> implements LogService {
 
 
     @Override
     public Result search(PageDateDto param) {
-        startPage(param);
+        BaseUtil.startPage(param);
+        IPage<LogEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
 
-//        PageInfo<SysUserEntity> page = new PageInfo<>(this.findAll());
-        return Result.success(new PageInfo<>(entityMapper.search(param)));
+        return Result.success((getBaseMapper().search(param, page)));
     }
-}
+}

+ 30 - 0
gis_common/src/main/java/com/gis/common/config/MyBatisPlusMetaObjectHandler.java

@@ -0,0 +1,30 @@
+package com.gis.common.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * Created by owen on 2021/11/23 0023 18:01
+ * MyBatisPlus 自动填充时间
+ */
+@Component
+@Slf4j
+public class MyBatisPlusMetaObjectHandler implements MetaObjectHandler {
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert field....");
+        this.setFieldValByName("createTime", LocalDateTime.now(),metaObject);
+        this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
+    }
+
+}

+ 30 - 0
gis_common/src/main/java/com/gis/common/config/MybatisPlusConfig.java

@@ -0,0 +1,30 @@
+package com.gis.common.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Created by owen on 2021/11/12 0012 17:20
+ */
+@Configuration
+public class MybatisPlusConfig {
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+        paginationInnerInterceptor.setOverflow(true);
+        interceptor.addInnerInterceptor(paginationInnerInterceptor); // 分页插件
+        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); // 全表的删除或更新操作,就会终止该操作
+        return interceptor;
+    }
+
+
+}

+ 55 - 0
gis_common/src/main/java/com/gis/common/constant/ErrorEnum.java

@@ -0,0 +1,55 @@
+package com.gis.common.constant;
+
+/**
+ * Created by owen on 2022/3/10 0010 14:47
+ *
+ *
+ * #1000~1999 区间表示参数错误
+ * #2000~2999 区间表示用户错误
+ * #3000~3999 区间表示接口异常
+ */
+public enum ErrorEnum {
+
+    FAILURE_SYS_2001(2001, "对象不存在"),
+
+    FAILURE_CODE_3001(3001, "缺少必要参数"),
+    FAILURE_CODE_3002(3002, "访问异常!"),
+    FAILURE_CODE_3003(3003, "非法访问!"),
+    FAILURE_CODE_3004(3004, "用户未登录"),
+    FAILURE_CODE_3005(3005, "验证码已过期"),
+    FAILURE_CODE_3006(3006, "验证码错误"),
+    FAILURE_CODE_3007(3007, "昵称已存在"),
+    FAILURE_CODE_3008(3008, "该手机已被注册"),
+    FAILURE_CODE_3009(3009, "两次输入的密码不一致"),
+    FAILURE_CODE_3010(3010, "昵称长度错误"),
+    FAILURE_CODE_3011(3011, "密码需要包含英文大小写、数字,长度8-16字符"),
+    FAILURE_CODE_3012(3012, "昵称包含敏感词"),
+    FAILURE_CODE_3013(3013, "手机号码格式错误"),
+    FAILURE_CODE_3014(3014, "账号或密码不正确"),
+    FAILURE_CODE_3015(3015, "用户不存在"),
+    FAILURE_CODE_3016(3016, "登录失败,账号无权访问"),
+    FAILURE_CODE_3017(3017, "空文件"),
+    FAILURE_CODE_3018(3018, "需要上传或使用的文件不存在"),
+
+    ;
+
+    private Integer code;
+    private String message;
+
+    private ErrorEnum(Integer code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public Integer code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+    public String formatMessage(Object... args){
+        return String.format(message, args);
+    }
+}

+ 16 - 0
gis_common/src/main/java/com/gis/common/constant/RedisConstant.java

@@ -0,0 +1,16 @@
+package com.gis.common.constant;
+
+/**
+ * Created by owen on 2022/3/15 0015 16:20
+ */
+public class RedisConstant {
+
+    /**作品id*/
+    public static final String WORK_ID = "workId:";
+
+    /**作品编辑*/
+    public static final String WORK_ID_EDIT = "workId:edit:";
+
+    /**定时删除空作品Key*/
+    public static final String WORK_DEL = "workDel";
+}

+ 20 - 0
gis_common/src/main/java/com/gis/common/util/BaseUtil.java

@@ -0,0 +1,20 @@
+package com.gis.common.util;
+
+import com.gis.common.base.entity.dto.PageDto;
+
+/**
+ * Created by owen on 2021/12/7 0007 16:21
+ */
+public class BaseUtil {
+
+    public static void startPage(PageDto param){
+        Integer pageNum = param.getPageNum();
+        Integer pageSize = param.getPageSize();
+        if (pageNum == null || pageNum <= 0) {
+            param.setPageNum(0);
+        }
+        if (pageSize == null || pageSize <= 0) {
+            param.setPageSize(10);
+        }
+    }
+}

+ 2 - 1
gis_common/src/main/java/com/gis/common/util/JwtUtil.java

@@ -9,12 +9,13 @@ import io.jsonwebtoken.JwtBuilder;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.springframework.util.Assert;
 
 import java.util.*;
 
-@Log4j2
+@Slf4j
 public class JwtUtil {
 
     //生成签名的时候使用的秘钥secret

+ 24 - 0
gis_common/src/main/java/com/gis/common/util/RedisUtil.java

@@ -46,6 +46,20 @@ public class RedisUtil {
         }
     }
 
+    public boolean set(String key, Object value, long time, TimeUnit unit) {
+        try {
+            if (time > 0) {
+                redisTemplate.opsForValue().set(key, value, time, unit);
+            } else {
+                set(key, value);
+            }
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
 
 
     /**
@@ -147,4 +161,14 @@ public class RedisUtil {
         }
         return null;
     }
+
+    /**
+     * 判断redis key是否存在
+     * @param key
+     * @return true:存在
+     */
+    public Boolean hasKey(String key){
+        return redisTemplate.hasKey(key);
+    }
+
 }

+ 26 - 0
gis_pano/pom.xml

@@ -0,0 +1,26 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <artifactId>720yun_local_manage</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>gis_pano</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_admin</artifactId>
+        </dependency>
+
+    </dependencies>
+
+
+
+
+
+</project>

+ 49 - 0
gis_pano/src/main/java/com/gis/cms/controller/FodderController.java

@@ -0,0 +1,49 @@
+package com.gis.cms.controller;
+
+import com.gis.cms.entity.dto.FodderDto;
+import com.gis.cms.entity.po.FodderEntity;
+import com.gis.cms.service.FodderService;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * Created by owen on 2022/3/28 0028 11:38
+ */
+@Api(tags = "p-场景管理(素材库)")
+@RestController
+@RequestMapping("/cms/fodder")
+public class FodderController {
+
+    @Autowired
+    FodderService entityService;
+
+    @ApiOperation(value = "列表")
+    @PostMapping("list")
+    public Result<FodderEntity> list(@RequestBody PageDto param) {
+        return entityService.search(param);
+    }
+
+    @ApiOperation(value = "删除")
+    @GetMapping("remove/{id}")
+    public Result remove(@PathVariable String id) {
+        return entityService.remove(id);
+    }
+
+    @ApiOperation(value = "详情(支持批量)")
+    @GetMapping("detail/{id}")
+    public Result<FodderEntity> detail(@PathVariable String id) {
+        return entityService.detail(id);
+    }
+
+    @ApiOperation(value = "修改")
+    @PostMapping("update")
+    public Result update(@RequestBody FodderDto param) {
+        return entityService.updateEntity(param);
+    }
+
+}

+ 47 - 0
gis_pano/src/main/java/com/gis/cms/controller/OpsController.java

@@ -0,0 +1,47 @@
+//package com.gis.cms.controller;
+//
+//import com.gis.cms.entity.po.WorkEntity;
+//import com.gis.cms.service.OpsService;
+//import com.gis.common.util.Result;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+///**
+// * Created by owen on 2022/3/29 0029 10:19
+// */
+//@Api(tags = "ops-项目运维-免token")
+//@RestController
+//@RequestMapping("/api/ops")
+//public class OpsController {
+//
+//    @Autowired
+//    OpsService entityService;
+//
+//    @ApiOperation(value = "下载-作品目录", notes = "支持批量导出, 多个作品id, 用逗号分隔")
+//    @GetMapping("/downloadWork/{ids}")
+//    public Result<WorkEntity> downloadWork(@PathVariable String ids) {
+//        return entityService.downloadWork(ids);
+//    }
+//
+//    @ApiOperation(value = "下载-根据作品id下载全景图目录", notes = "根据作品id, 多个作品id, 用逗号分隔")
+//    @GetMapping("/downloadPano/{ids}")
+//    public Result<WorkEntity> downloadPano(@PathVariable String ids) {
+//        return entityService.downloadPano(ids);
+//    }
+//
+//    @ApiOperation(value = "根据作品码合并tourXml", notes = "返回值直接下载结果文件")
+//    @GetMapping("/mergeTour/{workId}")
+//    public Result mergeTour(@PathVariable String workId) {
+//        return entityService.mergeTour(workId);
+//    }
+//
+//    @ApiOperation(value = "根据作品码打包数据", notes = "返回值直接下载结果文件")
+//    @GetMapping("/pack/{workId}")
+//    public Result pack(@PathVariable String workId) {
+//        return entityService.pack(workId);
+//    }
+//
+//
+//}

+ 106 - 0
gis_pano/src/main/java/com/gis/cms/controller/WorkController.java

@@ -0,0 +1,106 @@
+package com.gis.cms.controller;
+
+
+import com.gis.cms.entity.dto.SomeDataDto;
+import com.gis.cms.entity.dto.WorkDto;
+import com.gis.cms.entity.po.WorkEntity;
+import com.gis.cms.service.WorkService;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
+
+/**
+ * Created by owen on 2022/3/25 0018 12:17
+ *
+ * 先创建一个默认的作品
+ * 初创场景:放到场景码目录,固定命名:xxx_thumb.jpg
+ */
+@Api(tags = "p-我的作品")
+@RestController
+@RequestMapping("/cms/work")
+public class WorkController  {
+
+    @Autowired
+    WorkService workService;
+
+
+
+    @ApiOperation(value = "列表", position = 1)
+    @PostMapping("list")
+    public Result<WorkEntity> list(@RequestBody PageDto param) {
+        return workService.search(param);
+    }
+
+
+    @ApiOperation(value = "新增(空对象)", position = 1)
+    @PostMapping("add")
+    public Result<WorkEntity> add() {
+        return workService.entityAdd();
+    }
+
+
+    @ApiOperation(value = "修改作品信息", position = 1)
+    @PostMapping("save")
+    public Result<WorkEntity> save(@RequestBody WorkDto param) {
+        return workService.entitySave(param);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "修改someData", position = 1)
+    @PostMapping("edit")
+    public Result<WorkEntity> edit(@Valid @RequestBody SomeDataDto param) {
+        return workService.edit(param);
+    }
+
+
+    @ApiOperation(value = "删除", position = 1)
+    @PostMapping("remove/{id}")
+    public Result remove(@PathVariable String id) {
+        return workService.remove(id);
+    }
+
+//    @ApiOperation(value = "选择三维场景", position = 1)
+//    @PostMapping("select/4dkk/{workId}")
+//    public Result select4dkk(@RequestBody PageDto param, @PathVariable String workId) {
+//        return workService.select4dkk(param, workId);
+//    }
+
+
+    @ApiOperation(value = "上传-文件(文件固定命名)", notes = "上传资料会放到场景码的跟目录, 文件固定命名, 场景码:必传")
+    @PostMapping(value = "uploadFix/{sceneCode}")
+    public Result uploadFix(@RequestParam("file") MultipartFile file, @PathVariable String sceneCode) {
+        return workService.uploadFix(file, sceneCode);
+    }
+
+    @ApiOperation(value = "普通上传-文件(后端用时间戳命名)", notes = "场景码:必传")
+    @PostMapping(value = "upload/{sceneCode}")
+    public Result upload(@RequestParam("file") MultipartFile file, @PathVariable String sceneCode) {
+        return workService.upload(file, sceneCode);
+    }
+
+    @ApiOperation(value = "上传-作品文件上传(文件固定命名)", notes = "上传资料会放到场景码的跟目录, 文件固定命名, 作品码:必传")
+    @PostMapping(value = "uploadFixByWork/{workId}")
+    public Result uploadFixByWork(@RequestParam("file") MultipartFile file, @PathVariable String workId) {
+        return workService.uploadFixByWork(file, workId);
+    }
+
+
+    @ApiOperation(value = "检查作品token是否有效" , position = 3)
+    @GetMapping("checkToken/{workId}")
+    public Result checkToken(@PathVariable String workId) {
+        return workService.checkToken(workId);
+
+    }
+
+
+
+
+}

+ 23 - 0
gis_pano/src/main/java/com/gis/cms/entity/dto/FodderDto.java

@@ -0,0 +1,23 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Size;
+
+/**
+ * Created by owen on 2021/2/23 0023 16:39
+ */
+@Data
+public class FodderDto {
+
+    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+    private Long id;
+
+    @Size(max = 50, message = "长度不能大于50位")
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
+}

+ 26 - 0
gis_pano/src/main/java/com/gis/cms/entity/dto/SomeDataDto.java

@@ -0,0 +1,26 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Created by owen on 2021/2/22 0028 16:36
+ */
+@Data
+public class SomeDataDto {
+
+    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+    private String id;
+
+
+    @NotBlank(message = "someData不能为空")
+    @ApiModelProperty(value = "静态文件信息", required = true)
+    private String someData;
+
+
+
+
+
+}

+ 25 - 0
gis_pano/src/main/java/com/gis/cms/entity/dto/WorkDto.java

@@ -0,0 +1,25 @@
+package com.gis.cms.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/2/22 0028 16:36
+ */
+@Data
+public class WorkDto {
+
+    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+    private String id;
+
+    @ApiModelProperty(value = "场景密码")
+    private String password;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
+
+
+
+
+
+}

+ 66 - 0
gis_pano/src/main/java/com/gis/cms/entity/po/FodderEntity.java

@@ -0,0 +1,66 @@
+package com.gis.cms.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.common.base.entity.po.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName(value = "tb_fodder")
+public class FodderEntity extends BaseEntity implements Serializable {
+    private static final long serialVersionUID = -1428200960867373738L;
+
+//    @ApiModelProperty(value = "名称")
+//    private String name;
+
+    @ApiModelProperty(value = "存放地址(数据目录)")
+    private String filePath;
+
+//    @ApiModelProperty(value = "oss存放地址")
+//    private String ossPath;
+
+    @ApiModelProperty(value = "状态 1:切图中, 2:失败, 3:完成")
+    private Integer status;
+
+//    @ApiModelProperty(value = "类型, 全景图:pano, 图片:image, 音频:audio, 视频:video")
+//    private String type;
+
+//    @ApiModelProperty(value = "创建人")
+//    private String userId;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
+
+    @ApiModelProperty(value = "预览图(全景图使用)")
+    private String previewIcon;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "文件大小,单位KB")
+    private String fileSize;
+
+    @ApiModelProperty(value = "场景码")
+    private String sceneCode;
+
+//    @ApiModelProperty(value = "分辨率")
+//    private String dpi;
+
+
+//    @Transient
+//    @ApiModelProperty(value = "该作品下的场景是否已使用")
+//    private Integer isUse = 0;
+
+    @ApiModelProperty(value = "上传临时用的id, 前端需要用")
+    private String tempId;
+
+    @ApiModelProperty(value = "创建者id")
+    private Long creatorId;
+
+
+
+
+
+}

+ 63 - 0
gis_pano/src/main/java/com/gis/cms/entity/po/WorkEntity.java

@@ -0,0 +1,63 @@
+package com.gis.cms.entity.po;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableName;
+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
+@TableName(value = "tb_work")
+public class WorkEntity extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 6827754544317282072L;
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "简介")
+    private String description;
+
+    @ApiModelProperty(value = "状态, 0:默认不显示, 1:显示")
+    private Integer status;
+
+//    @ApiModelProperty(value = "创建人")
+//    private String userId;
+
+    @ApiModelProperty(value = "封面图")
+    private String icon;
+
+    @ApiModelProperty(value = "访问量")
+    private Integer visit;
+
+    @JSONField(serialize = false)
+    @ApiModelProperty(value = "作品密码, 默认0:不需要密码")
+    private String password;
+
+
+    @ApiModelProperty(value = "二维码")
+    private String qrCode;
+
+    @ApiModelProperty(value = "分享地址(二维码扫描后地址)")
+    private String share;
+
+
+    @ApiModelProperty(value = "是否有密码,0:没有, 1:有")
+    private Integer isPassword;
+
+    /** 用来关联删除素材时使用*/
+    @ApiModelProperty(value = "场景码")
+    private String sceneCodes;
+
+    @ApiModelProperty(value = "创建者id")
+    private Long creatorId;
+
+
+
+}

+ 16 - 0
gis_pano/src/main/java/com/gis/cms/mapper/FodderMapper.java

@@ -0,0 +1,16 @@
+package com.gis.cms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gis.cms.entity.po.FodderEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * Created by owen on 2022/2/23 0018 11:13
+ */
+@Component
+@Mapper
+public interface FodderMapper extends BaseMapper<FodderEntity> {
+
+}

+ 51 - 0
gis_pano/src/main/java/com/gis/cms/mapper/WorkMapper.java

@@ -0,0 +1,51 @@
+package com.gis.cms.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gis.cms.entity.po.WorkEntity;
+import com.gis.common.base.mapper.provider.BaseProvider;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Component
+@Mapper
+public interface WorkMapper extends BaseMapper<WorkEntity> {
+
+
+
+    @SelectProvider(type = BaseProvider.class, method = "runSql")
+    List<WorkEntity> search(String strSql);
+
+    @Update("UPDATE tb_work SET visit= visit + 1 where id = #{id}")
+    void addVisit(String id);
+
+    @Select("select id, name, scene_codes from tb_work where is_delete = 0 and user_id = #{userId} and scene_codes like #{sceneCode}")
+    List<WorkEntity> likeSceneCode(String sceneCode, String userId);
+
+    /**
+     * for update 锁表更新完,才能进行更新,需要开启事务
+     * 并发量大作会出现脏数据
+     *
+     * @param id
+     * @return
+     */
+    @Select("select id, name, scene_codes, user_id from tb_work where is_delete = 0 and id = #{id} for update")
+    WorkEntity findByIdForUpdate(String id);
+
+
+    /***
+     * 2022-3-18
+     * 真删除无效时数据
+     * @param now
+     */
+    @Delete("delete from tb_work where status=0 and DATE_FORMAT( create_time, '%Y%m' ) <= DATE_FORMAT(#{now} , '%Y%m' )")
+    void delByTime(String now);
+
+
+    @SelectProvider(type = BaseProvider.class, method = "runSql")
+    List<Map> runSql(String strSql);
+}

+ 27 - 0
gis_pano/src/main/java/com/gis/cms/service/FodderService.java

@@ -0,0 +1,27 @@
+package com.gis.cms.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gis.cms.entity.dto.FodderDto;
+import com.gis.cms.entity.dto.SomeDataDto;
+import com.gis.cms.entity.po.FodderEntity;
+import com.gis.cms.entity.po.WorkEntity;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:14
+ */
+public interface FodderService extends IService<FodderEntity> {
+
+
+    Result<FodderEntity> search(PageDto param);
+
+    Result remove(String id);
+
+    Result<FodderEntity> detail(String id);
+
+    Result updateEntity(FodderDto param);
+}

+ 21 - 0
gis_pano/src/main/java/com/gis/cms/service/OpsService.java

@@ -0,0 +1,21 @@
+//package com.gis.cms.service;
+//
+//
+//import com.gis.cms.entity.po.WorkEntity;
+//import com.gis.common.util.Result;
+//
+//
+///**
+// * Created by owen on 2020/3/11 0011 16:14
+// */
+//public interface OpsService  {
+//
+//
+//    Result<WorkEntity> downloadWork(String ids);
+//
+//    Result<WorkEntity> downloadPano(String ids);
+//
+//    Result mergeTour(String workId);
+//
+//    Result pack(String workId);
+//}

+ 53 - 0
gis_pano/src/main/java/com/gis/cms/service/WorkService.java

@@ -0,0 +1,53 @@
+package com.gis.cms.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gis.cms.entity.dto.SomeDataDto;
+import com.gis.cms.entity.dto.WorkDto;
+import com.gis.cms.entity.po.WorkEntity;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
+
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:14
+ */
+public interface WorkService extends IService<WorkEntity> {
+
+
+    Result search(PageDto param);
+
+
+
+    Result<WorkEntity> entityAdd();
+
+    Result remove(String id);
+
+    Result edit(SomeDataDto param);
+
+//    Result select4dkk(PageDto param, String workId);
+
+    Result uploadFix(MultipartFile file, String sceneCode);
+
+
+//    List<WorkEntity> likeSceneCode(String sceneCode);
+
+//    WorkEntity findByIdForUpdate(String id);
+
+
+    Result checkToken(String workId);
+
+    void addVisit(String id);
+
+    /**检查场景是否存在*/
+    boolean existBySceneCode(String sceneCode);
+
+
+    Result upload(MultipartFile file, String sceneCode);
+
+    Result uploadFixByWork(MultipartFile file, String workId);
+
+    Result<WorkEntity> entitySave(WorkDto param);
+}

+ 107 - 0
gis_pano/src/main/java/com/gis/cms/service/impl/FodderServiceImpl.java

@@ -0,0 +1,107 @@
+package com.gis.cms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.cms.entity.dto.FodderDto;
+import com.gis.cms.entity.po.FodderEntity;
+import com.gis.cms.mapper.FodderMapper;
+import com.gis.cms.service.FodderService;
+import com.gis.cms.service.WorkService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.exception.BaseRuntimeException;
+import com.gis.common.base.service.IBaseService;
+import com.gis.common.constant.ConfigConstant;
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.FileUtils;
+import com.gis.common.util.RedisUtil;
+import com.gis.common.util.Result;
+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 java.util.Arrays;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:16
+ */
+@Slf4j
+@Service
+public class FodderServiceImpl extends ServiceImpl<FodderMapper, FodderEntity> implements FodderService {
+
+
+    @Autowired
+    ConfigConstant configConstant;
+
+    @Autowired
+    IBaseService iBaseService;
+
+
+
+
+    @Autowired
+    FileUtils fileUtils;
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Autowired
+    FodderMapper entityMapper;
+
+    @Autowired
+    WorkService workService;
+
+
+
+
+    @Override
+    public Result search(PageDto param) {
+        BaseUtil.startPage(param);
+        IPage<FodderEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        LambdaQueryWrapper<FodderEntity> wrapper = new LambdaQueryWrapper<> ();
+        wrapper.eq(FodderEntity::getCreatorId, iBaseService.getUserId());
+        String searchKey = param.getSearchKey();
+        if (StringUtils.isNotBlank(searchKey)){
+            wrapper.like(FodderEntity::getFileName, searchKey);
+        }
+        wrapper.orderByDesc(FodderEntity::getCreateTime);
+        IPage<FodderEntity> result = this.page(page, wrapper);
+        return Result.success(result);
+    }
+
+    @Override
+    public Result remove(String id) {
+
+            FodderEntity entity = this.getById(id);
+            // 检查场景是否被引用
+            boolean exist = workService.existBySceneCode(entity.getSceneCode());
+            BaseRuntimeException.isHas(exist, null, "此场景被作品使用中,不能删除");
+            // 真删除目录
+            fileUtils.del(entity.getFilePath());
+            this.removeById(id);
+
+        return Result.success();
+    }
+
+    @Override
+    public Result<FodderEntity> detail(String id) {
+        return Result.success(getById(id));
+    }
+
+    @Override
+    public Result updateEntity(FodderDto param) {
+        FodderEntity entity = this.getById(param.getId());
+        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+        BeanUtils.copyProperties(param, entity);
+        entity.setFileName(param.getName());
+        this.updateById(entity);
+        return Result.success();
+    }
+
+
+}

+ 305 - 0
gis_pano/src/main/java/com/gis/cms/service/impl/OpsServiceImpl.java

@@ -0,0 +1,305 @@
+//package com.gis.cms.service.impl;
+//
+//import cn.hutool.core.io.FileUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.gis.cms.entity.dto.FodderDto;
+//import com.gis.cms.entity.po.FodderEntity;
+//import com.gis.cms.entity.po.WorkEntity;
+//import com.gis.cms.mapper.FodderMapper;
+//import com.gis.cms.service.FodderService;
+//import com.gis.cms.service.OpsService;
+//import com.gis.cms.service.WorkService;
+//import com.gis.common.base.entity.dto.PageDto;
+//import com.gis.common.base.exception.BaseRuntimeException;
+//import com.gis.common.base.service.impl.IBaseService;
+//import com.gis.common.constant.CmdConstant;
+//import com.gis.common.constant.ConfigConstant;
+//import com.gis.common.constant.ErrorEnum;
+//import com.gis.common.util.*;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang3.StringUtils;
+//import org.junit.Test;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//import java.io.File;
+//import java.util.Arrays;
+//import java.util.List;
+//
+//
+///**
+// * Created by owen on 2020/3/11 0011 16:16
+// */
+//@Slf4j
+//@Service
+//public class OpsServiceImpl  implements OpsService {
+//
+//
+//    @Autowired
+//    ConfigConstant configConstant;
+//
+//    @Autowired
+//    WorkService workService;
+//
+//    @Autowired
+//    FileUtils fileUtils;
+//
+//
+//    @Override
+//    public Result<WorkEntity> downloadWork(String ids) {
+//        BaseRuntimeException.isBlank(ids, null, "输入参数为空");
+//        // 替换空格
+//        ids = StringUtils.replaceAll(ids, ",", " ");
+//        log.info("下载作品目录:{}", ids);
+//        String zipName = StrUtils.getTime("work_");
+//        zipName = "/download/" + zipName + ".zip";
+//
+//        String outPath = configConstant.serverBasePath + zipName;
+//        log.info("zip保存路径:{}", outPath);
+//        String cmd = CmdConstant.zip;
+//        cmd = cmd.replaceAll("@output", outPath);
+//        cmd = cmd.replaceAll("@workPace", configConstant.serverBasePath + "/work");
+//        cmd = cmd.replaceAll("@inDir", ids);
+//
+//        CmdUtils.callShLine(cmd, null);
+//
+//        return Result.success(zipName);
+//    }
+//
+//    @Override
+//    public Result<WorkEntity> downloadPano(String ids) {
+//        BaseRuntimeException.isBlank(ids, null, "输入参数为空");
+//        List<WorkEntity> list = workService.listByIds(Arrays.asList(ids));
+//        log.info("作品数量: {}", list.size());
+//        StringBuffer dir = new StringBuffer();
+//        for (WorkEntity entity : list) {
+//            String sceneCodes = entity.getSceneCodes();
+//            if (StringUtils.isNotBlank(sceneCodes)){
+//                dir.append(sceneCodes).append(",");
+//            }
+//        }
+//        String dirCode = dir.toString();
+//        // 替换空格
+//        dirCode = StringUtils.replaceAll(dirCode, ",", " ");
+////        dirCode = StringUtils.substringBeforeLast(dirCode, ",");
+//        log.info("下载全景目录:{}", dirCode);
+//        String zipName = StrUtils.getTime("pano_");
+//        zipName = "/download/" + zipName + ".zip";
+//
+//        String outPath = configConstant.serverBasePath + zipName;
+//        log.info("zip保存路径:{}", outPath);
+//        String cmd = CmdConstant.zip;
+//        cmd = cmd.replaceAll("@output", outPath);
+//        cmd = cmd.replaceAll("@workPace", configConstant.serverBasePath );
+//        cmd = cmd.replaceAll("@inDir", dirCode);
+//
+//        CmdUtils.callShLine(cmd, 100);
+//
+//
+//        return Result.success(zipName);
+//    }
+//
+//    @Override
+//    public Result mergeTour(String workId) {
+//        WorkEntity entity = workService.getById(workId);
+//        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+//        String sceneCodes = entity.getSceneCodes();
+//        log.info("场景码:{}", sceneCodes);
+//        BaseRuntimeException.isBlank(sceneCodes, null, "场景码为空, 不需要合并");
+//
+//        String[] split = sceneCodes.split(",");
+//
+//        // tourXml路径
+//        String downloadPath;
+//        String basePath = configConstant.serverBasePath;
+//        int size = split.length;
+//        log.info("场景数量: {}", size);
+//        BaseRuntimeException.isHas(size==0, null, "场景码为空, 不需要合并");
+//        String firstTourPath = File.separator + split[0] + "/vtour/tour.xml";
+//        if (size == 1){
+//            log.info("firstTourPath:{}", firstTourPath);
+//            downloadPath = firstTourPath;
+//        } else {
+//            // 获取scene标签集合
+//            StringBuffer sceneLabels = new StringBuffer();
+//            int i = 0;
+//            String tourPath;
+//            for (String sceneCode : split) {
+//                tourPath = basePath + File.separator + sceneCode + "/vtour/tour.xml";
+//                String scene = getSceneLabel(tourPath);
+//                sceneLabels.append(scene).append("\r\n");
+//                i++;
+//            }
+//            log.info("标签数量: {}", i );
+//
+//            // 获取第一个xml, 做为基础模板
+//            String firstXml = handleFirstXml(basePath + firstTourPath);
+//            // 合并
+//            StringBuffer buffer = new StringBuffer();
+//            buffer.append(firstXml).append(" ");
+//            buffer.append(sceneLabels).append(" ");
+//            buffer.append("</krpano>");
+//            // 保存路径
+//            downloadPath = "/download/" + workId + "_tour.xml";
+//            String savePath =  configConstant.serverBasePath + File.separator + downloadPath;
+//            FileUtil.writeUtf8String(buffer.toString(), savePath);
+//            log.info("合并完成,保存路径: {}", savePath);
+//
+//        }
+//        log.info("下载地址: {}", downloadPath);
+//
+//        return Result.success(downloadPath);
+//    }
+//
+//    @Override
+//    public Result pack(String workId) {
+//        // 复制作品目录
+//        WorkEntity entity = workService.getById(workId);
+//        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+//        copyWork(workId);
+//
+//        // 复制场景目录
+//        copyScene(workId, entity.getSceneCodes());
+//
+//        // 合并tour.xml
+//        mergeTour(workId, entity.getSceneCodes());
+//
+//        // 压缩
+//        zipWork(workId);
+//        String filePath = "/download/" + workId + ".zip";
+//        log.info("zip地址:{}", configConstant.serverBasePath + filePath);
+//        return Result.success(filePath);
+//    }
+//
+//    private void zipWork(String workId) {
+//        String outPath = configConstant.serverBasePath + "/download/" + workId +".zip";
+////        String intPath = configConstant.serverBasePath + "/download/" + workId ;
+//
+//        String cmd = CmdConstant.zip;
+//        cmd = cmd.replaceAll("@output", outPath);
+//        cmd = cmd.replaceAll("@workPace", configConstant.serverBasePath + "/download" );
+//        // 已引入工作目录, 直接填写目录即可
+//        cmd = cmd.replaceAll("@inDir", workId);
+//
+//        CmdUtils.callShLine(cmd, 100);
+//
+//    }
+//
+//    private void copyScene(String workId, String sceneCodes) {
+//        log.info("场景码: {}", sceneCodes);
+//        if (StringUtils.isBlank(sceneCodes)){
+//            log.info("场景码为空, 不需要下载");
+//            return;
+//        }
+//        String[] split = sceneCodes.split(",");
+//        log.info("场景数量 : {}", split.length);
+//        String outPath = configConstant.serverBasePath + "/download/" + workId;
+//        String inPath;
+//        for (String sceneCode : split) {
+//            inPath = configConstant.serverBasePath + "/" + sceneCode + "/vtour/panos/" + sceneCode + ".tiles";
+//            String cmd = StrUtil.format("cp -r {} {} ", inPath,  outPath);
+//            CmdUtils.callCmd(cmd);
+//        }
+//
+//    }
+//
+//    private void copyWork(String workId) {
+//        // 复制到指定目录
+//        String outPath = configConstant.serverBasePath + "/download/";
+//        String checkPath = outPath + workId;
+//        // 存在则删除
+//        if (FileUtil.isDirectory(checkPath)){
+//            FileUtil.del(checkPath);
+//        }
+//        String inPath = configConstant.serverBasePath + "/work/" + workId;
+//        String cmd = StrUtil.format("cp -r {} {} ", inPath,  outPath);
+//        CmdUtils.callCmd(cmd);
+//
+//    }
+//
+//    private void mergeTour(String workId, String sceneCodes) {
+//        String[] split = sceneCodes.split(",");
+//        // tourXml路径
+//        String downloadPath;
+//        String outPath = configConstant.serverBasePath + "/download/" + workId;
+//        String basePath = configConstant.serverBasePath;
+//        int size = split.length;
+//        log.info("场景数量: {}", size);
+//        BaseRuntimeException.isHas(size==0, null, "场景码为空, 不需要合并");
+//        String firstTourPath = File.separator + split[0] + "/vtour/tour.xml";
+//        if (size == 1){
+//            log.info("firstTourPath:{}", firstTourPath);
+//            FileUtil.copy(configConstant.serverBasePath + firstTourPath, outPath, true);
+//        } else {
+//            // 获取scene标签集合
+//            StringBuffer sceneLabels = new StringBuffer();
+//            int i = 0;
+//            String tourPath;
+//            for (String sceneCode : split) {
+//                tourPath = basePath + File.separator + sceneCode + "/vtour/tour.xml";
+//                String scene = getSceneLabel(tourPath);
+//                sceneLabels.append(scene).append("\r\n");
+//                i++;
+//            }
+//            log.info("标签数量: {}", i );
+//
+//            // 获取第一个xml, 做为基础模板
+//            String firstXml = handleFirstXml(basePath + firstTourPath);
+//            // 合并
+//            StringBuffer buffer = new StringBuffer();
+//            buffer.append(firstXml).append(" ");
+//            buffer.append(sceneLabels).append(" ");
+//            buffer.append("</krpano>");
+//            // 保存路径
+//            downloadPath = "/download/" + workId + "/tour.xml";
+//            String savePath =  configConstant.serverBasePath + File.separator + downloadPath;
+//            FileUtil.writeUtf8String(buffer.toString(), savePath);
+//            log.info("合并完成,保存路径: {}", savePath);
+//
+//        }
+//
+//    }
+//
+//    /**
+//     * 处理第一个xml
+//     * @param filePath
+//     * @return
+//     */
+//    private static String handleFirstXml(String filePath){
+//
+//        String s = FileUtil.readString(filePath, "UTF-8");
+//
+//        // 截取</krpano>之前的
+//        s = StrUtil.subBefore(s, "<scene name=", false);
+//        return s;
+//
+//    }
+//
+//    /**
+//     * 获取Scene标签值
+//     * @param filePath tour.xml路径
+//     * @return
+//     */
+//    private static String getSceneLabel(String filePath){
+//        String s = FileUtil.readString(filePath, "UTF-8");
+//        // 截取</action>之后的
+//        s = StrUtil.subAfter(s, "</action>", true);
+//        // 截取</krpano>之前的
+//        s = StrUtil.subBefore(s, "</krpano>", true);
+//        return s;
+//
+//    }
+//
+//
+//    @Test
+//    public void test(){
+//        String str = "1";
+//        System.out.println(Arrays.asList(str));
+//
+//    }
+//}

+ 325 - 0
gis_pano/src/main/java/com/gis/cms/service/impl/WorkServiceImpl.java

@@ -0,0 +1,325 @@
+package com.gis.cms.service.impl;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.cms.entity.dto.SomeDataDto;
+import com.gis.cms.entity.dto.WorkDto;
+import com.gis.cms.entity.po.WorkEntity;
+import com.gis.cms.mapper.WorkMapper;
+import com.gis.cms.service.WorkService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.exception.BaseRuntimeException;
+import com.gis.common.base.service.IBaseService;
+import com.gis.common.constant.ConfigConstant;
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.constant.RedisConstant;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.FileUtils;
+import com.gis.common.util.RedisUtil;
+import com.gis.common.util.Result;
+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 java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:16
+ */
+@Slf4j
+@Service
+//@Transactional
+public class WorkServiceImpl extends ServiceImpl<WorkMapper, WorkEntity> implements WorkService {
+
+
+    @Autowired
+    ConfigConstant configConstant;
+
+    @Autowired
+    IBaseService iBaseService;
+
+
+
+
+    @Autowired
+    FileUtils fileUtils;
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Autowired
+    WorkMapper entityMapper;
+
+
+
+
+    @Override
+    public Result search(PageDto param) {
+        BaseUtil.startPage(param);
+        IPage<WorkEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        LambdaQueryWrapper<WorkEntity> wrapper = new LambdaQueryWrapper<> ();
+        wrapper.eq(WorkEntity::getCreatorId, iBaseService.getUserId());
+        String searchKey = param.getSearchKey();
+        if (StringUtils.isNotBlank(searchKey)){
+            wrapper.like(WorkEntity::getName, param.getSearchKey());
+        }
+        wrapper.orderByDesc(WorkEntity::getCreateTime);
+        IPage<WorkEntity> result = this.page(page, wrapper);
+        return Result.success(result);
+    }
+
+
+    /**
+     * 目前只是用来保存密码, 也可以使用保存实体信息
+     */
+    @Override
+    public Result<WorkEntity> entitySave(WorkDto param) {
+        WorkEntity entity = this.getById(param.getId());
+        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+        BeanUtils.copyProperties(param, entity);
+        entity.setUpdateTime(LocalDateTime.now());
+        this.updateById(entity);
+        return Result.success(entity);
+    }
+
+
+    @Override
+    public Result<WorkEntity> entityAdd() {
+        WorkEntity entity = new WorkEntity();
+        entity.setCreatorId(iBaseService.getUserId());
+        entity.setStatus(0);
+        this.save(entity);
+
+        Long id = entity.getId();
+        log.info("创建对象完成: {}", id);
+
+        // 创建someData; 如someData作出修改,记得把代码里的someData 跟服务器里的someData都修改
+        String baseSomeDataPath = configConstant.serverBasePath + "/baseData/someData.json";
+        log.info("服务器base someData.json path: {}", baseSomeDataPath);
+        BaseRuntimeException.isHas(!FileUtil.isFile(baseSomeDataPath), null, "服务器someData.json模板不存在");
+        String content = FileUtil.readUtf8String(baseSomeDataPath);
+
+        JSONObject jsonObject = JSONObject.parseObject(content);
+        jsonObject.put("id", id + "");
+
+        // 存放到工作目录, 已workId为目录
+        String someDataPath = configConstant.serverBasePath + "/work/" + id + "/someData.json";
+        FileUtil.writeUtf8String(jsonObject.toJSONString(), someDataPath);
+        log.info("someData.json文件保存成功: {}", someDataPath);
+
+        return Result.success(entity);
+    }
+
+    // 删除无效作品数据
+    private void delByTime() {
+        // 定时删除空作品数据,周期:一个月清一次
+        if (!redisUtil.hasKey(RedisConstant.WORK_DEL)) {
+            String now = LocalDate.now().minusMonths(1).toString();
+            log.warn("执行删除: {} 月份之前的空作品数据", now);
+            entityMapper.delByTime(now);
+            redisUtil.set(RedisConstant.WORK_DEL, now, 30, TimeUnit.DAYS);
+        }
+    }
+
+
+    @Override
+    public Result remove(String id) {
+        WorkEntity entity = this.getById(id);
+        if (entity == null) {
+            return Result.success();
+        }
+        this.removeById(id);
+
+        // 删除redis
+        redisUtil.del(RedisConstant.WORK_ID + id);
+
+        // 删除无效作品数据
+        delByTime();
+
+        return Result.success();
+    }
+
+    @Override
+    public void addVisit(String id) {
+        entityMapper.addVisit(id);
+    }
+
+    /**
+     *
+     * @param sceneCode
+     * @return true:存在, false:不存在
+     */
+    @Override
+    public boolean existBySceneCode(String sceneCode) {
+        String sql = StrUtil.format("select id FROM tb_work WHERE  find_in_set('{}' , scene_codes )", sceneCode);
+        List<Map> list = entityMapper.runSql(sql);
+        log.info("引用的作品id: {}", list);
+        return list.size() > 0;
+    }
+
+
+
+    @Override
+    public Result checkToken(String workId) {
+
+        log.info("查找作品id: {}", workId);
+        if (redisUtil.hasKey(RedisConstant.WORK_ID + workId)){
+            return Result.success();
+        }
+
+        WorkEntity entity = this.getById(workId);
+        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+
+
+        Long userId = iBaseService.getUserId();
+        log.info("userId: {}", userId);
+        BaseRuntimeException.isHas(!userId.equals(entity.getCreatorId()), null, "当前无操作权限");
+
+        redisUtil.set(RedisConstant.WORK_ID + workId, entity, 30, TimeUnit.SECONDS);
+
+        return Result.success();
+
+    }
+
+    @Override
+    public Result edit(SomeDataDto param) {
+        // 检查是否是改用户的作品
+        String id = param.getId();
+
+        // 防止重复提交
+        String editKey = RedisConstant.WORK_ID_EDIT + id + ":"+param.toString();
+        if (redisUtil.hasKey(editKey)){
+            log.info("编辑走缓存");
+            return Result.success();
+        }
+
+        // 3秒内防止重复提交
+        redisUtil.set(editKey, param.toString(), 3, TimeUnit.SECONDS);
+
+        WorkEntity entity = getById(id);
+        if (entity == null) {
+            log.error("作品已被删除,无法编辑, id: " + id);
+            throw new BaseRuntimeException(3006, "作品已被删除,无法编辑, id: " + id);
+        }
+
+        //是否该用户作品
+        BaseRuntimeException.isHas(!iBaseService.getUserId().equals(entity.getCreatorId()), 3005, "当前无操作权限");
+
+        // 更新作品信息
+        boolean isEdit = editEntity(param, entity);
+        if (!isEdit) {
+            return Result.failure("对象不存在");
+        }
+
+        log.info("更新作品完成");
+        // 保存someData.json
+        updateSomeData(param);
+
+        return Result.success();
+    }
+
+    /**
+     * 更新作品实体信息
+     */
+    private boolean editEntity(SomeDataDto param, WorkEntity entity) {
+
+
+        String someData = param.getSomeData();
+        JSONObject sd = JSONObject.parseObject(someData);
+        entity.setName(sd.getString("name"));
+        entity.setIcon(sd.getString("icon"));
+        entity.setShare(sd.getString("share"));
+        entity.setQrCode(sd.getString("qrCode"));
+        entity.setStatus(sd.getInteger("status"));
+        entity.setPassword(sd.getString("password"));
+        String scenes = sd.getString("scenes");
+        entity.setSceneCodes(getSceneCodes(scenes));
+
+        entity.setUpdateTime(LocalDateTime.now());
+
+        this.updateById(entity);
+        return true;
+
+    }
+
+    /**
+     * 传入参数是一个数组json字符串
+     * @param param
+     */
+    private String getSceneCodes(String param){
+        JSONArray array = JSONArray.parseArray(param);
+        List<String> list = new ArrayList<>();
+        for (Object o : array) {
+            JSONObject parse = JSONObject.parseObject(o.toString());
+            String sceneCode = parse.getString("sceneCode");
+            list.add(sceneCode);
+        }
+        String join = StringUtils.join(list, ",");
+        return join;
+
+
+    }
+
+
+
+    /**
+     * 更新someData.json
+     */
+    private void updateSomeData(SomeDataDto param) {
+
+        String id = param.getId();
+        // 存放到工作目录, 已workId为目录
+        String someDataPath = configConstant.serverBasePath + "/work/" + id + "/someData.json";
+        // 写入服务器
+        FileUtil.writeUtf8String(param.getSomeData(), someDataPath);
+
+    }
+
+
+
+    @Override
+    public Result uploadFix(MultipartFile file, String sceneCode) {
+        // 检查非法文件上传
+        BaseRuntimeException.isHas(!fileUtils.checkFile(file), null, "上传文件格式有误, 请重新上传");
+        Map<String, Object> uploadMap = fileUtils.uploadMap(file, "/" + sceneCode, true);
+        return Result.success(uploadMap);
+    }
+
+
+    @Override
+    public Result upload(MultipartFile file, String sceneCode) {
+        // 检查非法文件上传
+        BaseRuntimeException.isHas(!fileUtils.checkFile(file), null, "上传文件格式有误, 请重新上传");
+        Map<String, Object> uploadMap = fileUtils.uploadMap(file, "/" + sceneCode + "/edit", false);
+        return Result.success(uploadMap);
+    }
+
+    @Override
+    public Result uploadFixByWork(MultipartFile file, String workId) {
+        // 检查非法文件上传
+        BaseRuntimeException.isHas(!fileUtils.checkFile(file), null, "上传文件格式有误, 请重新上传");
+        Map<String, Object> uploadMap = fileUtils.uploadMap(file, "/work/" + workId, true);
+        return Result.success(uploadMap);
+    }
+
+
+
+
+
+
+}

+ 46 - 0
gis_pano/src/main/resources/someData.json

@@ -0,0 +1,46 @@
+{
+  "isPassword": 0,
+  "password": "",
+  "ossSomeData": "",
+  "icon": "",
+  "description": "",
+  "updateTime": "",
+  "sceneIndex": "",
+  "catalogRoot": [
+    {
+      "id": 100,
+      "name": "一级分组",
+      "children": [1]
+    }
+  ],
+  "firstScene": "",
+  "userId": "",
+  "isLogo": 1,
+  "appIcon": "",
+  "qrCode": "",
+  "createTime": "",
+  "catalogs": [
+    {
+      "id": 1,
+      "name": "默认二级分组"
+    }
+  ],
+  "isRemind": 1,
+  "name": "",
+  "pcIcon": "",
+  "scenes": [],
+  "isAuto": 1,
+  "logo": "",
+  "logoChange": false,
+  "share": "",
+  "id": "",
+  "remindTime": 1,
+  "bgm": {
+    "url": "",
+    "name": ""
+  },
+  "guideDefaultTime": "",
+  "expandHotStyles": [],
+  "scenesOrder": [],
+  "status": 0
+}

+ 9 - 0
gis_pano/src/main/resources/zip.sh

@@ -0,0 +1,9 @@
+#!/bin/bash
+workPace=$1    #工作目录
+output=$2      #输出目录
+inDir=$3       #下载目录参数
+echo 工作目录 $1
+echo 输出目录 $2
+echo 目录参数 $3
+cd workPace
+zip -r $2 $3

+ 44 - 28
pom.xml

@@ -20,8 +20,9 @@
     <module>gis_common</module>
     <module>gis_admin</module>
     <module>gis_application</module>
-    <module>gis_scene</module>
+    <!--<module>gis_scene</module>-->
     <module>gis_cms</module>
+    <module>gis_pano</module>
   </modules>
 
 
@@ -32,7 +33,6 @@
     <java.version>1.8</java.version>
     <spring.boot.version>2.3.4.RELEASE</spring.boot.version>
     <gis.version>1.0.0</gis.version>
-    <druid.version>1.1.14</druid.version>
     <hutool.version>5.3.3</hutool.version>
     <poi.version>3.17</poi.version>
     <lombok.version>1.18.2</lombok.version>
@@ -40,6 +40,8 @@
     <lang3.version>3.7</lang3.version>
     <knife4j.version>2.0.2</knife4j.version>
     <mysql.version>8.0.15</mysql.version>
+    <druid.version>1.2.6</druid.version>
+    <mybatis-plus.version>3.4.3.4</mybatis-plus.version>
     <shiro.version>1.7.1</shiro.version>
     <jwt.version>3.2.0</jwt.version>
     <jjwt.version>0.6.0</jjwt.version>
@@ -47,9 +49,9 @@
     <aliyun.dysmsapi.version>1.1.0</aliyun.dysmsapi.version>
     <aliyun.oss.version>2.5.0</aliyun.oss.version>
     <!--<mybatis.version>3.5.7</mybatis.version>-->
-    <tk.mybatis.version>2.0.2</tk.mybatis.version>
-    <tk.mapper.version>4.0.3</tk.mapper.version>
-    <pagehelper.version>1.2.5</pagehelper.version>
+    <!--<tk.mybatis.version>2.0.2</tk.mybatis.version>-->
+    <!--<tk.mapper.version>4.0.3</tk.mapper.version>-->
+    <!--<pagehelper.version>1.2.5</pagehelper.version>-->
   </properties>
 
 
@@ -76,15 +78,21 @@
         <version>${gis.version}</version>
       </dependency>
 
+      <!--<dependency>-->
+        <!--<groupId>com.gis</groupId>-->
+        <!--<artifactId>gis_scene</artifactId>-->
+        <!--<version>${gis.version}</version>-->
+      <!--</dependency>-->
+
       <dependency>
-        <groupId>com.gis</groupId>
-        <artifactId>gis_scene</artifactId>
-        <version>${gis.version}</version>
-      </dependency>
+      <groupId>com.gis</groupId>
+      <artifactId>gis_cms</artifactId>
+      <version>${gis.version}</version>
+    </dependency>
 
       <dependency>
         <groupId>com.gis</groupId>
-        <artifactId>gis_cms</artifactId>
+        <artifactId>gis_pano</artifactId>
         <version>${gis.version}</version>
       </dependency>
 
@@ -162,6 +170,14 @@
         <version>${mysql.version}</version>
       </dependency>
 
+
+      <!-- mybatis-plus 3.3以上版本要配合druid 1.2版本使用-->
+      <dependency>
+        <groupId>com.baomidou</groupId>
+        <artifactId>mybatis-plus-boot-starter</artifactId>
+        <version>${mybatis-plus.version}</version>
+      </dependency>
+
       <!-- 工具类 -->
       <dependency>
         <groupId>cn.hutool</groupId>
@@ -213,31 +229,31 @@
 
 
       <!--tk.mybatis 依赖-->
-      <dependency>
-        <groupId>tk.mybatis</groupId>
-        <artifactId>mapper-spring-boot-starter</artifactId>
-        <version>${tk.mybatis.version}</version>
-        <!-- tk.mybatis 跟springboot jap 包冲突-->
-        <exclusions>
-          <exclusion>
-            <groupId>javax.persistence</groupId>
-            <artifactId>persistence-api</artifactId>
-          </exclusion>
-        </exclusions>
+      <!--<dependency>-->
+        <!--<groupId>tk.mybatis</groupId>-->
+        <!--<artifactId>mapper-spring-boot-starter</artifactId>-->
+        <!--<version>${tk.mybatis.version}</version>-->
+        <!--&lt;!&ndash; tk.mybatis 跟springboot jap 包冲突&ndash;&gt;-->
+        <!--<exclusions>-->
+          <!--<exclusion>-->
+            <!--<groupId>javax.persistence</groupId>-->
+            <!--<artifactId>persistence-api</artifactId>-->
+          <!--</exclusion>-->
+        <!--</exclusions>-->
 
-      </dependency>
+      <!--</dependency>-->
 
 
 
 
 
 
-      <!--分页插件-->
-      <dependency>
-        <groupId>com.github.pagehelper</groupId>
-        <artifactId>pagehelper-spring-boot-starter</artifactId>
-        <version>${pagehelper.version}</version>
-      </dependency>
+      <!--&lt;!&ndash;分页插件&ndash;&gt;-->
+      <!--<dependency>-->
+        <!--<groupId>com.github.pagehelper</groupId>-->
+        <!--<artifactId>pagehelper-spring-boot-starter</artifactId>-->
+        <!--<version>${pagehelper.version}</version>-->
+      <!--</dependency>-->
 
     </dependencies>
   </dependencyManagement>