Kaynağa Gözat

首次提交

wuweihao 4 yıl önce
ebeveyn
işleme
d690adca9e
100 değiştirilmiş dosya ile 1531 ekleme ve 880 silme
  1. 8 1
      README.md
  2. 9 12
      gis_web/src/main/java/com/gis/web/controller/BaseController.java
  3. 6 7
      gis_web/src/main/java/com/gis/web/controller/IndexController.java
  4. 9 9
      gis_web/src/main/java/com/gis/web/controller/LogController.java
  5. 96 0
      gis_admin/src/main/java/com/gis/controller/SysRoleController.java
  6. 12 35
      gis_web/src/main/java/com/gis/web/controller/SysUserController.java
  7. 28 0
      gis_admin/src/main/java/com/gis/entity/dto/LoginDto.java
  8. 21 0
      gis_admin/src/main/java/com/gis/entity/dto/PasswordRequest.java
  9. 31 0
      gis_admin/src/main/java/com/gis/entity/dto/RoleDto.java
  10. 64 0
      gis_admin/src/main/java/com/gis/entity/dto/UserDto.java
  11. 1 1
      gis_mapper/src/main/java/com/gis/mapper/provider/LogProvider.java
  12. 140 0
      gis_admin/src/main/java/com/gis/shiro/JWTFilter.java
  13. 23 0
      gis_admin/src/main/java/com/gis/shiro/JWTToken.java
  14. 130 0
      gis_admin/src/main/java/com/gis/shiro/MyRealm.java
  15. 114 0
      gis_admin/src/main/java/com/gis/shiro/ShiroConfig.java
  16. 7 1
      gis_application/pom.xml
  17. 1 1
      gis_application/src/main/resources/application-dev.properties
  18. 1 1
      gis_application/src/main/resources/application-pro.properties
  19. 1 1
      gis_application/src/main/resources/application-sit.properties
  20. 0 19
      gis_common/src/main/java/com/gis/common/admin/mapper/SysUserMapper.java
  21. 0 62
      gis_common/src/main/java/com/gis/common/admin/po/SysUserEntity.java
  22. 0 19
      gis_common/src/main/java/com/gis/common/admin/service/SysUserService.java
  23. 0 36
      gis_common/src/main/java/com/gis/common/admin/service/impl/SysUserServiceImpl.java
  24. 1 1
      gis_service/src/main/java/com/gis/service/aop/WebControllerLog.java
  25. 4 4
      gis_service/src/main/java/com/gis/service/aop/WebLogAspect.java
  26. 1 2
      gis_domain/src/main/java/com/gis/domain/dto/PageDateDto.java
  27. 1 1
      gis_common/src/main/java/com/gis/common/admin/dto/PageDto.java
  28. 1 1
      gis_common/src/main/java/com/gis/common/admin/po/BaseEntity.java
  29. 39 0
      gis_common/src/main/java/com/gis/common/base/entity/po/LogEntity.java
  30. 2 2
      gis_domain/src/main/java/com/gis/domain/vo/LogVo.java
  31. 3 3
      gis_common/src/main/java/com/gis/common/admin/mapper/IBaseMapper.java
  32. 5 6
      gis_mapper/src/main/java/com/gis/mapper/LogMapper.java
  33. 41 0
      gis_common/src/main/java/com/gis/common/base/mapper/provider/LogProvider.java
  34. 1 1
      gis_common/src/main/java/com/gis/common/admin/service/IBaseService.java
  35. 4 5
      gis_service/src/main/java/com/gis/service/LogService.java
  36. 6 6
      gis_common/src/main/java/com/gis/common/admin/service/impl/IBaseServiceImpl.java
  37. 8 9
      gis_service/src/main/java/com/gis/service/impl/LogServiceImpl.java
  38. 140 140
      gis_common/src/main/java/com/gis/common/shiro/JWTFilter.java
  39. 23 23
      gis_common/src/main/java/com/gis/common/shiro/JWTToken.java
  40. 115 115
      gis_common/src/main/java/com/gis/common/shiro/MyRealm.java
  41. 114 114
      gis_common/src/main/java/com/gis/common/shiro/ShiroConfig.java
  42. 28 28
      gis_domain/src/main/java/com/gis/domain/dto/LoginDto.java
  43. 21 21
      gis_domain/src/main/java/com/gis/domain/dto/PasswordRequest.java
  44. 1 1
      gis_domain/src/main/java/com/gis/domain/dto/ScenePageDto.java
  45. 2 1
      gis_domain/src/main/java/com/gis/domain/dto/StatusPageDataDto.java
  46. 5 1
      gis_domain/src/main/java/com/gis/domain/dto/TypePageDateDto.java
  47. 62 62
      gis_domain/src/main/java/com/gis/domain/dto/UserDto.java
  48. 2 1
      gis_domain/src/main/java/com/gis/domain/po/AuditLogEntity.java
  49. 1 1
      gis_domain/src/main/java/com/gis/domain/po/BarrageEntity.java
  50. 0 17
      gis_domain/src/main/java/com/gis/domain/po/Carousel.java
  51. 1 1
      gis_domain/src/main/java/com/gis/domain/po/CommentEntity.java
  52. 1 1
      gis_domain/src/main/java/com/gis/domain/po/FileEntity.java
  53. 1 1
      gis_domain/src/main/java/com/gis/domain/po/GoodsEntity.java
  54. 1 1
      gis_domain/src/main/java/com/gis/domain/po/LogEntity.java
  55. 1 1
      gis_domain/src/main/java/com/gis/domain/po/MartyrEntity.java
  56. 1 1
      gis_domain/src/main/java/com/gis/domain/po/MournEntity.java
  57. 1 1
      gis_domain/src/main/java/com/gis/domain/po/NewsEntity.java
  58. 4 2
      gis_domain/src/main/java/com/gis/domain/po/QuestionAnswerEntity.java
  59. 1 1
      gis_domain/src/main/java/com/gis/domain/po/QuestionGroupEntity.java
  60. 35 0
      gis_domain/src/main/java/com/gis/domain/po/QuestionUserEntity.java
  61. 7 1
      gis_domain/src/main/java/com/gis/domain/po/SceneEntity.java
  62. 1 1
      gis_domain/src/main/java/com/gis/domain/po/SensitiveEntity.java
  63. 1 1
      gis_domain/src/main/java/com/gis/domain/vo/BarrageVo.java
  64. 1 1
      gis_domain/src/main/java/com/gis/domain/vo/CommentVo.java
  65. 1 2
      gis_mapper/src/main/java/com/gis/mapper/AuditLogMapper.java
  66. 2 6
      gis_mapper/src/main/java/com/gis/mapper/BarrageMapper.java
  67. 2 4
      gis_mapper/src/main/java/com/gis/mapper/CommentMapper.java
  68. 1 1
      gis_mapper/src/main/java/com/gis/mapper/FileMapper.java
  69. 2 2
      gis_mapper/src/main/java/com/gis/mapper/GoodsMapper.java
  70. 1 2
      gis_mapper/src/main/java/com/gis/mapper/MartyrMapper.java
  71. 1 2
      gis_mapper/src/main/java/com/gis/mapper/MournMapper.java
  72. 1 2
      gis_mapper/src/main/java/com/gis/mapper/NewsMapper.java
  73. 1 2
      gis_mapper/src/main/java/com/gis/mapper/QuestionAnswerMapper.java
  74. 1 2
      gis_mapper/src/main/java/com/gis/mapper/QuestionGroupMapper.java
  75. 18 0
      gis_mapper/src/main/java/com/gis/mapper/QuestionUserMapper.java
  76. 9 5
      gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java
  77. 1 2
      gis_mapper/src/main/java/com/gis/mapper/SensitiveMapper.java
  78. 1 1
      gis_mapper/src/main/java/com/gis/mapper/provider/BarrageProvider.java
  79. 1 1
      gis_mapper/src/main/java/com/gis/mapper/provider/CommentProvider.java
  80. 10 6
      gis_mapper/src/main/java/com/gis/mapper/provider/GoodsProvider.java
  81. 1 1
      gis_mapper/src/main/java/com/gis/mapper/provider/SceneProvider.java
  82. 1 1
      gis_service/src/main/java/com/gis/service/AuditLogService.java
  83. 2 4
      gis_service/src/main/java/com/gis/service/BarrageService.java
  84. 4 2
      gis_service/src/main/java/com/gis/service/CommentService.java
  85. 1 1
      gis_service/src/main/java/com/gis/service/FileService.java
  86. 2 2
      gis_service/src/main/java/com/gis/service/GoodsService.java
  87. 2 2
      gis_service/src/main/java/com/gis/service/MartyrService.java
  88. 3 5
      gis_service/src/main/java/com/gis/service/MournService.java
  89. 2 4
      gis_service/src/main/java/com/gis/service/NewsService.java
  90. 1 1
      gis_service/src/main/java/com/gis/service/QuestionAnswerService.java
  91. 2 4
      gis_service/src/main/java/com/gis/service/QuestionGroupService.java
  92. 25 0
      gis_service/src/main/java/com/gis/service/QuestionUserService.java
  93. 6 2
      gis_service/src/main/java/com/gis/service/SceneService.java
  94. 2 2
      gis_service/src/main/java/com/gis/service/SensitiveService.java
  95. 2 2
      gis_service/src/main/java/com/gis/service/impl/AuditLogServiceImpl.java
  96. 3 10
      gis_service/src/main/java/com/gis/service/impl/BarrageServiceImpl.java
  97. 23 6
      gis_service/src/main/java/com/gis/service/impl/CommentServiceImpl.java
  98. 2 2
      gis_service/src/main/java/com/gis/service/impl/FileServiceImpl.java
  99. 4 4
      gis_service/src/main/java/com/gis/service/impl/GoodsServiceImpl.java
  100. 0 0
      gis_service/src/main/java/com/gis/service/impl/MartyrServiceImpl.java

+ 8 - 1
README.md

@@ -1,3 +1,10 @@
 # army_xinjiang
 
-新疆军史馆
+新疆军史馆
+
+
+需求: 角色权限
+
+      系统管理的角色: 角色key只能写死 , 权限控制到api级别, 系统管理可以使用角色key控制, 系统管理的可以,要预先设置且不能删除
+      内容管理角色: 权限控制到ui, 内容管理直接使用资源key
+

+ 9 - 12
gis_web/src/main/java/com/gis/web/controller/BaseController.java

@@ -1,14 +1,11 @@
-package com.gis.web.controller;
+package com.gis.controller;
 
 import cn.hutool.core.io.FileUtil;
+import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.JwtUtil;
-import com.gis.domain.po.LogEntity;
-import com.gis.service.LogService;
-import com.gis.common.admin.service.SysUserService;
+import com.gis.service.SysUserService;
 import com.github.pagehelper.PageHelper;
-
-import com.gis.common.admin.dto.PageDto;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,8 +27,8 @@ public class BaseController {
 
 
 
-    @Autowired
-    private LogService logService;
+//    @Autowired
+//    private LogService logService;
 
 
     @Autowired
@@ -65,10 +62,10 @@ public class BaseController {
     /**
      * 保存操作日志
      */
-    void saveLog(LogEntity param){
-        // 保存数据库
-        logService.save(param);
-    }
+//    void saveLog(LogEntity param){
+//        // 保存数据库
+//        logService.save(param);
+//    }
 
 
     /**

+ 6 - 7
gis_web/src/main/java/com/gis/web/controller/IndexController.java

@@ -1,12 +1,11 @@
-package com.gis.web.controller;
+package com.gis.controller;
 
-import com.gis.common.admin.po.SysUserEntity;
 import com.gis.common.util.JwtUtil;
 import com.gis.common.util.PasswordUtils;
 import com.gis.common.util.Result;
-import com.gis.domain.dto.LoginDto;
-import com.gis.domain.po.LogEntity;
-import com.gis.common.admin.service.SysUserService;
+import com.gis.entity.dto.LoginDto;
+import com.gis.entity.po.SysUserEntity;
+import com.gis.service.SysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -27,7 +26,7 @@ import java.util.concurrent.TimeUnit;
 /**
  * Created by owen on 2020/2/19 0019 15:53
  */
-@Api(tags = "s登录")
+@Api(tags = "sys-登录")
 @RestController
 @Log4j2
 public class IndexController extends BaseController{
@@ -87,7 +86,7 @@ public class IndexController extends BaseController{
 
         // 保存操作日志
         String remoteAddr = request.getRemoteAddr();
-        saveLog(new LogEntity(entity.getId(),"登录管理","用户登录", remoteAddr));
+//        saveLog(new LogEntity(entity.getId(),"登录管理","用户登录", remoteAddr));
 
 
         // 更新到 redis, 有效期24h, 旧token无效, 做单用户登录

+ 9 - 9
gis_web/src/main/java/com/gis/web/controller/LogController.java

@@ -1,11 +1,10 @@
-package com.gis.web.controller;
+package com.gis.controller;
 
 
+import com.gis.common.base.entity.dto.PageDateDto;
 import com.gis.common.util.Result;
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.vo.LogVo;
-import com.gis.service.LogService;
-import com.github.pagehelper.PageInfo;
+import com.gis.common.base.entity.vo.LogVo;
+import com.gis.common.base.service.LogService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -23,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
  * 日志管理,只有admin权限访问
  */
 @Log4j2
-@Api(tags = "s日志管理")
+@Api(tags = "sys-日志管理")
 @RestController
 @RequestMapping("manage/log")
 @RequiresRoles(value = {"sys_admin"}, logical = Logical.OR)
@@ -36,9 +35,10 @@ public class LogController extends BaseController {
     @ApiOperation("列表")
     @PostMapping("list")
     public Result<LogVo> list(@RequestBody PageDateDto param) {
-        startPage(param);
-        PageInfo<LogVo> page = new PageInfo<>(logService.search(param));
-        return Result.success(page);
+//        startPage(param);
+//        PageInfo<LogVo> page = new PageInfo<>(logService.search(param));
+//        return Result.success(page);
+        return Result.success();
     }
 
 }

+ 96 - 0
gis_admin/src/main/java/com/gis/controller/SysRoleController.java

@@ -0,0 +1,96 @@
+package com.gis.controller;
+
+import com.gis.common.base.aop.WebControllerLog;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import com.gis.entity.dto.RoleDto;
+import com.gis.service.SysResourceService;
+import com.gis.service.SysRoleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresRoles;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+/**
+ * Created by owen on 2021/6/29 0018 12:17
+ * 需要admin权限
+ */
+@Slf4j
+@Api(tags = "sys-角色管理")
+@RestController
+@RequestMapping("manage/role")
+@RequiresRoles("sys_admin") //需要admin角色才可以访问此controller
+public class SysRoleController extends BaseController {
+
+    @Autowired
+    private SysRoleService roleService;
+
+    @Autowired
+    private SysResourceService resourceService;
+
+
+    /**
+     * 超级管理员角色只有一个
+     */
+//    @RequiresPermissions("admin:role:list")
+    @WebControllerLog(description = "角色权限-查询列表")
+    @ApiOperation("列表/搜索")
+    @PostMapping("list")
+    public Result list(@RequestBody PageDto param){
+        return roleService.search(param);
+    }
+
+    /**
+     * 超级管理员角色只有一个
+     */
+//    @ApiOperation("获取角色")
+//    @GetMapping("")
+//    public Result find(){
+//        Condition condition = new Condition(SysRoleEntity.class);
+//        condition.and().andNotEqualTo("roleKey", "admin");
+//        List<SysRoleEntity> result = roleService.findAll(condition, "sort desc");
+//        return Result.success(result);
+//    }
+
+    @ApiOperation("获取资源")
+    @GetMapping("getResource")
+    public Result getResource() {
+        return resourceService.getResource();
+    }
+
+
+
+
+    @ApiOperation("查询角色对应的权限")
+    @GetMapping("detail/{id}")
+    public Result detail(@PathVariable Long id) {
+        return roleService.detail(id);
+
+    }
+
+
+
+    @WebControllerLog(description = "角色权限-新增/修改", addDb = true)
+    @ApiOperation("新增或修改")
+    @PostMapping("save")
+    public Result save(@Valid @RequestBody RoleDto param){
+        return roleService.saveEntity(param);
+
+
+    }
+
+    @WebControllerLog(description = "角色权限-角色删除")
+    @ApiOperation("删除角色")
+    @GetMapping("remove/{id}")
+    public Result remove(@PathVariable Long id){
+        return roleService.remove(id);
+
+    }
+
+
+}

+ 12 - 35
gis_web/src/main/java/com/gis/web/controller/SysUserController.java

@@ -1,13 +1,12 @@
-package com.gis.web.controller;
+package com.gis.controller;
 
 
-import com.gis.common.admin.po.SysUserEntity;
 import com.gis.common.util.PasswordUtils;
 import com.gis.common.util.Result;
-import com.gis.domain.dto.UserDto;
-import com.gis.domain.dto.PasswordRequest;
-import com.gis.common.admin.service.SysUserService;
-import com.gis.service.aop.WebControllerLog;
+import com.gis.entity.dto.PasswordRequest;
+import com.gis.entity.dto.UserDto;
+import com.gis.entity.po.SysUserEntity;
+import com.gis.service.SysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -28,7 +27,7 @@ import java.util.List;
  * Created by owen on 2020/2/18 0018 12:17
  */
 @Log4j2
-@Api(tags = "s用户管理")
+@Api(tags = "sys-用户管理")
 @RestController
 @RequestMapping("manage/user")
 @Transactional
@@ -51,33 +50,11 @@ public class SysUserController extends BaseController {
 //        return Result.success(page);
 //    }
 
-    @WebControllerLog(description = "用户管理-修改用户")
+//    @WebControllerLog(description = "用户管理-修改用户")
     @ApiOperation("新增/修改用户信息")
     @PostMapping("save")
     public Result save(@Valid @RequestBody UserDto param) {
-
-        SysUserEntity entity = null;
-        if (param.getId() == null) {
-            entity = userService.findByUserName(param.getUserName());
-            if (entity != null) {
-                return Result.failure("身份证号已存在");
-            }
-            entity = new SysUserEntity();
-            BeanUtils.copyProperties(param, entity);
-            entity.setPassword(PasswordUtils.encrypt(param.getUserName(), "123456", PasswordUtils.getStaticSalt()));
-            userService.save(entity);
-        } else {
-            entity = userService.findById(param.getId());
-            if (entity == null) {
-                log.error("用户不存在: {}", param.getId());
-                return Result.failure("用户不存在");
-            }
-            BeanUtils.copyProperties(param, entity);
-            entity.setUpdateTime(LocalDateTime.now());
-            userService.update(entity);
-        }
-
-        return Result.success();
+        return userService.saveEntity(param);
     }
 
 
@@ -93,7 +70,7 @@ public class SysUserController extends BaseController {
         return Result.success(user);
     }
 
-    @WebControllerLog(description = "用户管理-修改密码", addDb = true)
+//    @WebControllerLog(description = "用户管理-修改密码", addDb = true)
     @ApiOperation("修改密码")
     @PostMapping("updatePwd")
     public Result updatePwd(@Valid @RequestBody PasswordRequest param) {
@@ -113,7 +90,7 @@ public class SysUserController extends BaseController {
         return Result.success();
     }
 
-    @WebControllerLog(description = "用户管理-重置密码")
+//    @WebControllerLog(description = "用户管理-重置密码")
     @RequiresRoles(value = {"sys_admin"}, logical = Logical.OR)
     @ApiOperation("重置密码")
     @GetMapping("resetPass/{id}")
@@ -131,7 +108,7 @@ public class SysUserController extends BaseController {
         return Result.success();
     }
 
-    @WebControllerLog(description = "用户管理-启用、停用、注销账户")
+//    @WebControllerLog(description = "用户管理-启用、停用、注销账户")
     @RequiresRoles(value = {"sys_admin"}, logical = Logical.OR)
     @ApiOperation("启用、停用、注销账户")
     @GetMapping("setStatus/{id}/{status}")
@@ -155,7 +132,7 @@ public class SysUserController extends BaseController {
     }
 
 
-    @WebControllerLog(description = "用户管理-删除")
+//    @WebControllerLog(description = "用户管理-删除")
     @RequiresRoles(value = {"sys_admin"}, logical = Logical.OR)
     @ApiOperation("删除")
     @GetMapping("removes/{ids}")

+ 28 - 0
gis_admin/src/main/java/com/gis/entity/dto/LoginDto.java

@@ -0,0 +1,28 @@
+package com.gis.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Created by owen on 2020/5/9 0009 12:20
+ */
+@Data
+public class LoginDto {
+
+    @NotBlank(message = "用户名不能为空")
+    @ApiModelProperty(value = "用户名", name = "userName", required = true)
+    private String userName;
+
+
+    @NotBlank(message = "密码不能为空")
+    @ApiModelProperty(value = "密码", name = "password", required = true)
+    private String password;
+
+//    @NotBlank(message = "from不能为空")
+//    @ApiModelProperty(value = "区分用户去向,cms:管理后台,web:展示页")
+//    private String from;
+
+
+}

+ 21 - 0
gis_admin/src/main/java/com/gis/entity/dto/PasswordRequest.java

@@ -0,0 +1,21 @@
+package com.gis.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Created by owen on 2020/5/9 0009 12:20
+ */
+@Data
+public class PasswordRequest {
+
+    @NotBlank(message = "旧密码不能为空")
+    @ApiModelProperty(value = "旧密码", name = "oldPassword", required = true)
+    private String oldPassword;
+
+    @NotBlank(message = "新密码不能为空")
+    @ApiModelProperty(value = "新密码", name = "newPassword", required = true)
+    private String newPassword;
+}

+ 31 - 0
gis_admin/src/main/java/com/gis/entity/dto/RoleDto.java

@@ -0,0 +1,31 @@
+package com.gis.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Set;
+
+/**
+ * Created by owen on 2020/2/18 0018 17:09
+ */
+@Data
+public class RoleDto {
+
+    private Long id;
+
+    @NotBlank(message = "角色名称不能为空")
+    @ApiModelProperty(value = "资源id", required = true)
+    private String roleName;
+
+    // 描述
+    private String roleDesc;
+
+    private String roleKey;
+
+    // 资源id
+    @NotNull(message = "权限不能为空")
+    @ApiModelProperty(value = "资源id", required = true)
+    private Set<Long> resources;
+}

+ 64 - 0
gis_admin/src/main/java/com/gis/entity/dto/UserDto.java

@@ -0,0 +1,64 @@
+package com.gis.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Created by owen on 2020/5/28 0028 16:36
+ */
+@Data
+public class UserDto {
+
+    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+    private Long id;
+
+
+//    @NotBlank(message = "真实姓名不能为空")
+    @ApiModelProperty(value = "真实姓名")
+    private String realName;
+
+
+    @NotBlank(message = "管理员账号不能为空")
+    @ApiModelProperty(value = "管理员账号", required = true)
+    private String userName;
+
+//    @NotBlank(message = "昵称不能为空")
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+//    @NotNull(message = "性别不能为空")
+    @ApiModelProperty(value = "性别 0:男  1:女")
+    private Integer sex;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+//    @NotBlank(message = "单位不能为空")
+    @ApiModelProperty(value = "单位")
+    private String unit;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @NotNull(message = "启用状态不能为空")
+    @ApiModelProperty(value = "状态 1:启用  0:停用 ")
+    private Integer status;
+
+    @ApiModelProperty(value = "高清图url")
+    private String img;
+
+    @ApiModelProperty(value = "缩略图url")
+    private String thumb;
+
+
+//    @NotNull(message = "角色不能为空")
+//    @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客" ,required = true)
+//    private String role;
+    @NotNull(message = "角色不能为空")
+    @ApiModelProperty(value = "角色id",notes = "目前一个用户只有一个角色", required = true)
+    private Long roleId;
+
+}

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/provider/LogProvider.java

@@ -1,6 +1,6 @@
 package com.gis.mapper.provider;
 
-import com.gis.domain.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDateDto;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 

+ 140 - 0
gis_admin/src/main/java/com/gis/shiro/JWTFilter.java

@@ -0,0 +1,140 @@
+package com.gis.shiro;
+
+import com.alibaba.fastjson.JSONObject;
+import com.gis.common.exception.JwtAuthenticationException;
+import lombok.extern.log4j.Log4j2;
+import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.time.LocalDateTime;
+
+
+/**
+ * 自定义拦截规则
+ */
+@Log4j2
+public class JWTFilter extends BasicHttpAuthenticationFilter {
+
+    /**
+     * 执行登录验证
+     */
+    @Override
+    protected boolean executeLogin(ServletRequest request, ServletResponse response) {
+        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+        String authorization = httpServletRequest.getHeader("token");
+        JWTToken token = new JWTToken(authorization);
+
+        // 提交给realm进行登入,如果错误他会抛出异常并被捕获
+        getSubject(request, response).login(token);
+
+        // 如果没有抛出异常则代表登入成功,返回true
+        return true;
+    }
+
+    /**
+     * 这里我们详细说明下为什么最终返回的都是true,即允许访问
+     * 例如我们提供一个地址 GET /article
+     * 登入用户和游客看到的内容是不同的
+     * 如果在这里返回了false,请求会被直接拦截,用户看不到任何东西
+     * 所以我们在这里返回true,Controller中可以通过 subject.isAuthenticated() 来判断用户是否登入
+     * 如果有些资源只有登入用户才能访问,我们只需要在方法上面加上 @RequiresAuthentication 注解即可
+     * 但是这样做有一个缺点,就是不能够对GET,POST等请求进行分别过滤鉴权(因为我们重写了官方的方法),但实际上对应用影响不大
+     *
+     * owen:
+     *  return false ,表示全局拦截,必须登录才可以访问接口,除非配置了免拦截
+     *  "" @RequiresAuthentication 现在不需要配置这个注解来免登录
+     *
+     */
+    @Override
+    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
+        try {
+            executeLogin(request, response);
+            return true;
+        } catch (Exception e) {
+            /**
+             * 这个异常需要自己写,全局捕获不了
+             * 认证出现异常,传递错误信息msg
+             */
+            exceptionMsg(e, response);
+        }
+        // 前端没有响应,接收不到异常
+         return false;
+
+
+
+    }
+
+    /**
+     * 对跨域提供支持
+     * 只对需要token验证的有效,不需要验证的还是需要用注解处理一下
+     *
+     */
+    @Override
+    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
+        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
+        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
+        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
+        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
+        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
+            httpServletResponse.setStatus(HttpStatus.OK.value());
+            return false;
+        }
+        return super.preHandle(request, response);
+    }
+
+
+    /**
+     * 无需转发,直接返回Response信息
+     *
+     */
+    private void writeResponse(ServletResponse response, JSONObject msg) {
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("application/json; charset=utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            outputStream = response.getOutputStream();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        assert outputStream != null;
+        PrintWriter printWriter = new PrintWriter(outputStream, true);
+        printWriter.write(msg.toString());//直接将json输出到页面
+        printWriter.flush();
+        printWriter.close();
+
+    }
+
+    /**
+     * 封装异常信息
+     */
+    private void exceptionMsg(Exception e, ServletResponse response) {
+        // 认证出现异常,传递错误信息msg
+        String msg = e.getMessage();
+        // 获取应用异常(该Cause是导致抛出此throwable(异常)的throwable(异常))
+        Throwable throwable = e.getCause();
+        JSONObject jsonObject = new JSONObject();
+        if (throwable instanceof JwtAuthenticationException) {
+            jsonObject.put("code", ((JwtAuthenticationException) throwable).getCode());
+            jsonObject.put("msg", ((JwtAuthenticationException) throwable).getMsg());
+        } else {
+            log.error(msg);
+            jsonObject.put("code", 5002);
+            jsonObject.put("msg", "token invalid");
+
+        }
+        jsonObject.put("timestamp", LocalDateTime.now());
+        // 直接返回Response信息
+        this.writeResponse(response, jsonObject);
+
+    }
+}

+ 23 - 0
gis_admin/src/main/java/com/gis/shiro/JWTToken.java

@@ -0,0 +1,23 @@
+package com.gis.shiro;
+
+import org.apache.shiro.authc.AuthenticationToken;
+
+public class JWTToken implements AuthenticationToken {
+
+    // 密钥
+    private String token;
+
+    public JWTToken(String token) {
+        this.token = token;
+    }
+
+    @Override
+    public Object getPrincipal() {
+        return token;
+    }
+
+    @Override
+    public Object getCredentials() {
+        return token;
+    }
+}

+ 130 - 0
gis_admin/src/main/java/com/gis/shiro/MyRealm.java

@@ -0,0 +1,130 @@
+package com.gis.shiro;
+
+import com.gis.common.constant.ConfigConstant;
+import com.gis.common.exception.JwtAuthenticationException;
+import com.gis.common.util.JwtUtil;
+import com.gis.entity.po.SysUserEntity;
+import com.gis.service.SysResourceService;
+import com.gis.service.SysUserService;
+import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authc.AuthenticationException;
+import org.apache.shiro.authc.AuthenticationInfo;
+import org.apache.shiro.authc.AuthenticationToken;
+import org.apache.shiro.authc.SimpleAuthenticationInfo;
+import org.apache.shiro.authz.AuthorizationInfo;
+import org.apache.shiro.authz.SimpleAuthorizationInfo;
+import org.apache.shiro.realm.AuthorizingRealm;
+import org.apache.shiro.subject.PrincipalCollection;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.Set;
+
+/**
+ * Created by owen on 2021/6/19 0019 10:22
+ * 配置不校验的话,是不会走这个方法的
+ */
+@Slf4j
+@Service
+public class MyRealm extends AuthorizingRealm {
+
+
+
+    @Autowired
+    private RedisTemplate<String, String> redisTemplate;
+
+    @Autowired
+    private SysUserService userService;
+
+    @Autowired
+    ConfigConstant configConstant;
+
+    @Autowired
+    SysResourceService sysResourceService;
+
+
+
+    /**
+     * 大坑!,必须重写此方法,不然Shiro会报错
+     */
+    @Override
+    public boolean supports(AuthenticationToken token) {
+        return token instanceof JWTToken;
+    }
+
+
+
+
+    /**
+     * 只有当需要检测用户权限的时候才会调用此方法,例如checkRole,checkPermission之类的
+     *
+     * principals: 是token
+     * 添加了角色、权限注解,才会调用此方法
+     */
+    @Override
+    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+        String username = JwtUtil.getUsername(principals.toString());
+
+        SysUserEntity dbUserEntity = userService.findByUserName(username);
+
+        SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
+
+        // 设置角色权限
+        log.info("role: {}", dbUserEntity.getRole());
+        simpleAuthorizationInfo.addRole(dbUserEntity.getRole());
+        // 设置资源权限
+        Set<String> permissions = sysResourceService.getPermissionByUserId(dbUserEntity.getId());
+        log.info("permissions: {}", permissions);
+        simpleAuthorizationInfo.addStringPermissions(permissions);
+        return simpleAuthorizationInfo;
+    }
+
+
+    /**
+     * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可。
+     */
+    @Override
+    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
+        String token = (String) auth.getCredentials();
+
+        if (StringUtils.isBlank(token)) {
+            log.error("token is null ");
+            throw new JwtAuthenticationException(5001, "header token is null");
+        }
+
+
+        // 解密获得username,用于和数据库进行对比
+        String username = JwtUtil.getUsername(token);
+        if (username == null) {
+            log.error("error token username");
+            throw new JwtAuthenticationException(5001, "token invalid");
+        }
+
+        SysUserEntity userEntity = userService.findByUserName(username);
+        if (userEntity == null) {
+            log.error("error token userEntity");
+            throw new JwtAuthenticationException(5001, "User didn't existed!");
+        }
+
+        // 校验请求token是否跟redis token一致
+        // 校验请求token是否跟redis token一致
+        String redisToken = redisTemplate.opsForValue().get(configConstant.redisPrefix + token);
+
+        if (!token.equals(redisToken)) {
+            log.error("redis token is null");
+            throw new JwtAuthenticationException(5001, "redis token is null");
+
+        }
+
+
+        if (! JwtUtil.isVerify(token, username)) {
+            log.error("error token username or password");
+            throw new JwtAuthenticationException(5001, "token invalid");
+        }
+
+        return new SimpleAuthenticationInfo(token, token, "my_realm");
+    }
+}

+ 114 - 0
gis_admin/src/main/java/com/gis/shiro/ShiroConfig.java

@@ -0,0 +1,114 @@
+package com.gis.shiro;
+
+import lombok.extern.log4j.Log4j2;
+import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
+import org.apache.shiro.mgt.DefaultSubjectDAO;
+import org.apache.shiro.spring.LifecycleBeanPostProcessor;
+import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
+import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+
+import javax.servlet.Filter;
+import java.util.HashMap;
+import java.util.Map;
+
+@Log4j2
+@Configuration
+public class ShiroConfig {
+
+    @Bean("securityManager")
+    public DefaultWebSecurityManager getManager(MyRealm realm) {
+        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
+        // 使用自己的realm
+        manager.setRealm(realm);
+
+        /*
+         * 关闭shiro自带的session,详情见文档
+         * http://shiro.apache.org/session-management.html#SessionManagement-StatelessApplications%28Sessionless%29
+         */
+        DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
+        DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator();
+        defaultSessionStorageEvaluator.setSessionStorageEnabled(false);
+        subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
+        manager.setSubjectDAO(subjectDAO);
+
+        return manager;
+    }
+
+    @Bean("shiroFilter")
+    public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) {
+        ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
+
+        // 添加自己的过滤器并且取名为jwt
+        Map<String, Filter> filterMap = new HashMap<>();
+        filterMap.put("jwt", new JWTFilter());
+
+
+
+
+        factoryBean.setFilters(filterMap);
+
+        factoryBean.setSecurityManager(securityManager);
+        factoryBean.setUnauthorizedUrl("/401");
+
+        /*
+         * 自定义url规则
+         * http://shiro.apache.org/web.html#urls-
+         */
+        Map<String, String> filterRuleMap = new HashMap<>();
+
+        // 不拦截
+        filterRuleMap.put("/login", "anon");
+        filterRuleMap.put("/logout", "anon");
+        filterRuleMap.put("/admin", "anon");
+        filterRuleMap.put("/admin/login", "anon");
+        filterRuleMap.put("/test/**", "anon");
+
+
+        // swagger 不拦截
+        filterRuleMap.put("/swagger-resources/**", "anon");
+        filterRuleMap.put("/webjars/**", "anon");
+        filterRuleMap.put("/v2/**", "anon");
+        filterRuleMap.put("/swagger-ui.html/**", "anon");
+
+
+        // 所有请求通过我们自己的JWT Filter
+        filterRuleMap.put("/manage/**", "jwt");
+
+
+        // 访问401和404页面不通过我们的Filter
+        filterRuleMap.put("/401", "anon");
+        factoryBean.setFilterChainDefinitionMap(filterRuleMap);
+        return factoryBean;
+    }
+
+    /**
+     * 下面的代码是添加注解支持
+     */
+    @Bean
+    @DependsOn("lifecycleBeanPostProcessor")
+    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
+        DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
+        // 强制使用cglib,防止重复代理和可能引起代理出错的问题
+        // https://zhuanlan.zhihu.com/p/29161098
+        defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
+        return defaultAdvisorAutoProxyCreator;
+    }
+
+    @Bean
+    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
+        return new LifecycleBeanPostProcessor();
+    }
+
+    @Bean
+    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
+        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
+        advisor.setSecurityManager(securityManager);
+        return advisor;
+    }
+
+}

+ 7 - 1
gis_application/pom.xml

@@ -22,12 +22,18 @@
         <java.version>1.8</java.version>
     </properties>
 
-
+    <!-- 包含controller层需要添加依赖到启动类配置文件-->
     <dependencies>
         <dependency>
             <groupId>com.gis</groupId>
             <artifactId>gis_web</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_admin</artifactId>
+            <version>1.0.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
gis_application/src/main/resources/application-dev.properties

@@ -66,7 +66,7 @@ spring.mvc.static-path-pattern=/**
 spring.resources.static-locations=file:${server.file.path}
 
 # swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
-swagger.package=com.gis.web.controller
+swagger.package=com.gis.controller
 swagger.title=${project.sc}-dev
 swagger.description=${swagger.title}
 swagger.version=1.0

+ 1 - 1
gis_application/src/main/resources/application-pro.properties

@@ -66,7 +66,7 @@ server.file.path=/root/data/${project.en}_data
 #server.url.prefix=/data/
 
 # swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
-swagger.package=com.gis.web.controller
+swagger.package=com.gis.controller
 swagger.title=${project.sc}-pro
 swagger.description=${swagger.title}
 swagger.version=1.0

+ 1 - 1
gis_application/src/main/resources/application-sit.properties

@@ -61,7 +61,7 @@ server.file.path=/root/data/${project.en}_data
 #server.url.prefix=/data/
 
 # swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
-swagger.package=com.gis.web.controller
+swagger.package=com.gis.controller
 swagger.title=${project.sc}-sit
 swagger.description=${swagger.title}
 swagger.version=1.0

+ 0 - 19
gis_common/src/main/java/com/gis/common/admin/mapper/SysUserMapper.java

@@ -1,19 +0,0 @@
-package com.gis.common.admin.mapper;
-
-
-import com.gis.common.admin.po.SysUserEntity;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.springframework.stereotype.Component;
-
-
-@Component
-@Mapper
-public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
-
-
-    @Select(value = "select * from sys_user where is_delete = '0' AND user_name= #{userName}")
-    SysUserEntity findByUserName(String userName);
-
-
-}

+ 0 - 62
gis_common/src/main/java/com/gis/common/admin/po/SysUserEntity.java

@@ -1,62 +0,0 @@
-package com.gis.common.admin.po;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import java.io.Serializable;
-
-/**
- * 用户表
- */
-@Data
-@Entity
-@Table(name = "sys_user")
-public class SysUserEntity extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = -853504493430501564L;
-
-    @ApiModelProperty(value = "身份证号(军号)")
-    private String userName;
-
-    @JSONField(serialize = false)
-    private String password;
-
-    @ApiModelProperty(value = "真实姓名")
-    private String realName;
-
-    @ApiModelProperty(value = "昵称")
-    private String nickName;
-
-    @ApiModelProperty(value = "性别 0:男  1:女")
-    private Integer sex;
-
-    @ApiModelProperty(value = "电话")
-    private String phone;
-
-    @ApiModelProperty(value = "单位")
-    private String unit;
-
-//    @ApiModelProperty(value = "地址")
-//    private String address;
-
-//    @ApiModelProperty(value = "超级管理员,1:是, 0:否")
-//    private Integer sysManager;
-
-    @ApiModelProperty(value = "状态 1:启用  0:停用 ")
-    private Integer status;
-
-//    @ApiModelProperty(value = "高清图url")
-//    private String img;
-
-    @ApiModelProperty(value = "缩略图url")
-    private String thumb;
-
-    @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客")
-    private String role;
-
-
-
-}

+ 0 - 19
gis_common/src/main/java/com/gis/common/admin/service/SysUserService.java

@@ -1,19 +0,0 @@
-package com.gis.common.admin.service;
-
-
-import com.gis.common.admin.po.SysUserEntity;
-
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:14
- */
-public interface SysUserService extends IBaseService<SysUserEntity, Long> {
-
-
-    SysUserEntity findByUserName(String userName);
-
-
-
-
-}

+ 0 - 36
gis_common/src/main/java/com/gis/common/admin/service/impl/SysUserServiceImpl.java

@@ -1,36 +0,0 @@
-package com.gis.common.admin.service.impl;
-
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.mapper.SysUserMapper;
-import com.gis.common.admin.po.SysUserEntity;
-import com.gis.common.admin.service.SysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:16
- */
-@Service
-public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> implements SysUserService {
-
-    @Autowired
-    private SysUserMapper entityMapper;
-
-    @Override
-    public IBaseMapper<SysUserEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
-
-    @Override
-    public SysUserEntity findByUserName(String userName) {
-        return entityMapper.findByUserName(userName);
-    }
-
-
-
-
-
-
-}

+ 1 - 1
gis_service/src/main/java/com/gis/service/aop/WebControllerLog.java

@@ -1,4 +1,4 @@
-package com.gis.service.aop;
+package com.gis.common.base.aop;
 
 import java.lang.annotation.*;
 

+ 4 - 4
gis_service/src/main/java/com/gis/service/aop/WebLogAspect.java

@@ -1,8 +1,8 @@
-package com.gis.service.aop;
+package com.gis.common.base.aop;
 
+import com.gis.common.base.entity.po.LogEntity;
+import com.gis.common.base.service.LogService;
 import com.gis.common.util.JwtUtil;
-import com.gis.domain.po.LogEntity;
-import com.gis.service.LogService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.JoinPoint;
@@ -41,7 +41,7 @@ public class WebLogAspect {
 
 
 
-    @Pointcut("execution(* com.gis.web.controller.*.*(..))")//切入点描述 这个是controller包的切入点
+    @Pointcut("execution(* com.gis.controller.*.*(..))")//切入点描述 这个是controller包的切入点
     public void controllerLog(){}//签名,可以理解成这个切入点的一个名称
 
     @Before("controllerLog()") //在切入点的方法run之前要干的

+ 1 - 2
gis_domain/src/main/java/com/gis/domain/dto/PageDateDto.java

@@ -1,6 +1,5 @@
-package com.gis.domain.dto;
+package com.gis.common.base.entity.dto;
 
-import com.gis.common.admin.dto.PageDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_common/src/main/java/com/gis/common/admin/dto/PageDto.java

@@ -1,4 +1,4 @@
-package com.gis.common.admin.dto;
+package com.gis.common.base.entity.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
gis_common/src/main/java/com/gis/common/admin/po/BaseEntity.java

@@ -1,4 +1,4 @@
-package com.gis.common.admin.po;
+package com.gis.common.base.entity.po;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnore;

+ 39 - 0
gis_common/src/main/java/com/gis/common/base/entity/po/LogEntity.java

@@ -0,0 +1,39 @@
+package com.gis.common.base.entity.po;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * 收集日志实体类
+ */
+@NoArgsConstructor                 //无参构造
+@AllArgsConstructor                //有参构造
+@Data
+@Table(name = "tb_log")
+public class LogEntity extends BaseEntity implements Serializable {
+
+
+    private static final long serialVersionUID = -3394791736156714542L;
+
+    /**
+     * 操作者用户id
+     */
+    private Long userId;
+
+    /**
+     * 操作类型
+     */
+    private String type;
+
+    /**
+     * 操作记录
+     */
+    private String description;
+
+    /** ip */
+    private String ip;
+}

+ 2 - 2
gis_domain/src/main/java/com/gis/domain/vo/LogVo.java

@@ -1,6 +1,6 @@
-package com.gis.domain.vo;
+package com.gis.common.base.entity.vo;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 3 - 3
gis_common/src/main/java/com/gis/common/admin/mapper/IBaseMapper.java

@@ -1,6 +1,6 @@
-package com.gis.common.admin.mapper;
+package com.gis.common.base.mapper;
 
-import com.gis.common.admin.po.BaseEntity;
+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;
@@ -9,7 +9,7 @@ import tk.mybatis.mapper.common.special.InsertListMapper;
 import java.io.Serializable;
 
 /**
- * Created by owen on 2020/2/18 0018 11:27
+ * Created by owen on 2021/6/28 0018 11:27
  */
 
 public interface IBaseMapper<T extends BaseEntity, ID extends Serializable> extends BaseMapper<T>,

+ 5 - 6
gis_mapper/src/main/java/com/gis/mapper/LogMapper.java

@@ -1,11 +1,10 @@
-package com.gis.mapper;
+package com.gis.common.base.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.LogEntity;
-import com.gis.domain.vo.LogVo;
-import com.gis.mapper.provider.LogProvider;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.entity.vo.LogVo;
+import com.gis.common.base.mapper.provider.LogProvider;
+import com.gis.common.base.entity.po.LogEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.SelectProvider;
 import org.springframework.stereotype.Component;

+ 41 - 0
gis_common/src/main/java/com/gis/common/base/mapper/provider/LogProvider.java

@@ -0,0 +1,41 @@
+package com.gis.common.base.mapper.provider;
+
+import com.gis.common.base.entity.dto.PageDateDto;
+import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
+
+
+/**
+ * Created by owen on 2020/5/13.
+ */
+@Log4j2
+public class LogProvider {
+
+    public String findBySearchKey(PageDateDto param){
+        StringBuffer sql = new StringBuffer(
+                "select z.type, z.description, z.create_time, z.ip, u.user_name from tb_log z left join sys_user u on z.user_id = u.id where z.is_delete = '0' ");
+
+
+        if(StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())){
+
+            sql.append(" and z.create_time >= ").append("'").append(param.getStartTime()).append("'");
+            sql.append(" and z.create_time <= ").append("'").append(param.getEndTime()).append("'");
+        }
+
+        String searchKey = param.getSearchKey();
+        if(!StringUtils.isAllBlank(searchKey)){
+            searchKey = StringUtils.trim(searchKey);
+            sql.append(" and (");
+            sql.append("  u.user_name like '%").append(searchKey).append("%'");
+//            sql.append(" or ( z.description like '%").append(searchKey).append("%' )");
+            sql.append(" )");
+        }
+
+        sql.append(" order by z.create_time desc");
+        log.info("sql: {}", sql.toString());
+        return sql.toString();
+    }
+
+
+
+}

+ 1 - 1
gis_common/src/main/java/com/gis/common/admin/service/IBaseService.java

@@ -1,4 +1,4 @@
-package com.gis.common.admin.service;
+package com.gis.common.base.service;
 
 import com.github.pagehelper.PageInfo;
 import tk.mybatis.mapper.entity.Condition;

+ 4 - 5
gis_service/src/main/java/com/gis/service/LogService.java

@@ -1,10 +1,9 @@
-package com.gis.service;
+package com.gis.common.base.service;
 
 
-import com.gis.common.admin.service.IBaseService;
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.LogEntity;
-import com.gis.domain.vo.LogVo;
+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 java.util.List;
 

+ 6 - 6
gis_common/src/main/java/com/gis/common/admin/service/impl/IBaseServiceImpl.java

@@ -1,9 +1,9 @@
-package com.gis.common.admin.service.impl;
+package com.gis.common.base.service.impl;
 
-import com.gis.common.admin.dto.PageDto;
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.po.BaseEntity;
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.entity.po.BaseEntity;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.FileUtils;
 import com.gis.common.util.JwtUtil;
@@ -14,7 +14,6 @@ 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;
@@ -227,4 +226,5 @@ public abstract class IBaseServiceImpl<T extends BaseEntity, ID extends Serializ
     public String getToken(HttpServletRequest request){
         return request.getHeader("token");
     }
+
 }

+ 8 - 9
gis_service/src/main/java/com/gis/service/impl/LogServiceImpl.java

@@ -1,12 +1,11 @@
-package com.gis.service.impl;
-
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.LogEntity;
-import com.gis.domain.vo.LogVo;
-import com.gis.mapper.LogMapper;
-import com.gis.service.LogService;
+package com.gis.common.base.service.impl;
+
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.entity.po.LogEntity;
+import com.gis.common.base.entity.vo.LogVo;
+import com.gis.common.base.mapper.LogMapper;
+import com.gis.common.base.service.LogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 140 - 140
gis_common/src/main/java/com/gis/common/shiro/JWTFilter.java

@@ -1,140 +1,140 @@
-package com.gis.common.shiro;
-
-import com.alibaba.fastjson.JSONObject;
-import com.gis.common.exception.JwtAuthenticationException;
-import lombok.extern.log4j.Log4j2;
-import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.time.LocalDateTime;
-
-
-/**
- * 自定义拦截规则
- */
-@Log4j2
-public class JWTFilter extends BasicHttpAuthenticationFilter {
-
-    /**
-     * 执行登录验证
-     */
-    @Override
-    protected boolean executeLogin(ServletRequest request, ServletResponse response) {
-        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-        String authorization = httpServletRequest.getHeader("token");
-        JWTToken token = new JWTToken(authorization);
-
-        // 提交给realm进行登入,如果错误他会抛出异常并被捕获
-        getSubject(request, response).login(token);
-
-        // 如果没有抛出异常则代表登入成功,返回true
-        return true;
-    }
-
-    /**
-     * 这里我们详细说明下为什么最终返回的都是true,即允许访问
-     * 例如我们提供一个地址 GET /article
-     * 登入用户和游客看到的内容是不同的
-     * 如果在这里返回了false,请求会被直接拦截,用户看不到任何东西
-     * 所以我们在这里返回true,Controller中可以通过 subject.isAuthenticated() 来判断用户是否登入
-     * 如果有些资源只有登入用户才能访问,我们只需要在方法上面加上 @RequiresAuthentication 注解即可
-     * 但是这样做有一个缺点,就是不能够对GET,POST等请求进行分别过滤鉴权(因为我们重写了官方的方法),但实际上对应用影响不大
-     *
-     * owen:
-     *  return false ,表示全局拦截,必须登录才可以访问接口,除非配置了免拦截
-     *  "" @RequiresAuthentication 现在不需要配置这个注解来免登录
-     *
-     */
-    @Override
-    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
-        try {
-            executeLogin(request, response);
-            return true;
-        } catch (Exception e) {
-            /**
-             * 这个异常需要自己写,全局捕获不了
-             * 认证出现异常,传递错误信息msg
-             */
-            exceptionMsg(e, response);
-        }
-        // 前端没有响应,接收不到异常
-         return false;
-
-
-
-    }
-
-    /**
-     * 对跨域提供支持
-     * 只对需要token验证的有效,不需要验证的还是需要用注解处理一下
-     *
-     */
-    @Override
-    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
-        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
-        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
-        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
-        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
-        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
-            httpServletResponse.setStatus(HttpStatus.OK.value());
-            return false;
-        }
-        return super.preHandle(request, response);
-    }
-
-
-    /**
-     * 无需转发,直接返回Response信息
-     *
-     */
-    private void writeResponse(ServletResponse response, JSONObject msg) {
-        response.setCharacterEncoding("UTF-8");
-        response.setContentType("application/json; charset=utf-8");
-        ServletOutputStream outputStream = null;
-        try {
-            outputStream = response.getOutputStream();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        assert outputStream != null;
-        PrintWriter printWriter = new PrintWriter(outputStream, true);
-        printWriter.write(msg.toString());//直接将json输出到页面
-        printWriter.flush();
-        printWriter.close();
-
-    }
-
-    /**
-     * 封装异常信息
-     */
-    private void exceptionMsg(Exception e, ServletResponse response) {
-        // 认证出现异常,传递错误信息msg
-        String msg = e.getMessage();
-        // 获取应用异常(该Cause是导致抛出此throwable(异常)的throwable(异常))
-        Throwable throwable = e.getCause();
-        JSONObject jsonObject = new JSONObject();
-        if (throwable instanceof JwtAuthenticationException) {
-            jsonObject.put("code", ((JwtAuthenticationException) throwable).getCode());
-            jsonObject.put("msg", ((JwtAuthenticationException) throwable).getMsg());
-        } else {
-            log.error(msg);
-            jsonObject.put("code", 5002);
-            jsonObject.put("msg", "token invalid");
-
-        }
-        jsonObject.put("timestamp", LocalDateTime.now());
-        // 直接返回Response信息
-        this.writeResponse(response, jsonObject);
-
-    }
-}
+//package com.gis.common.shiro;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.gis.common.exception.JwtAuthenticationException;
+//import lombok.extern.log4j.Log4j2;
+//import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
+//import org.springframework.http.HttpStatus;
+//import org.springframework.web.bind.annotation.RequestMethod;
+//
+//import javax.servlet.ServletOutputStream;
+//import javax.servlet.ServletRequest;
+//import javax.servlet.ServletResponse;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.io.PrintWriter;
+//import java.time.LocalDateTime;
+//
+//
+///**
+// * 自定义拦截规则
+// */
+//@Log4j2
+//public class JWTFilter extends BasicHttpAuthenticationFilter {
+//
+//    /**
+//     * 执行登录验证
+//     */
+//    @Override
+//    protected boolean executeLogin(ServletRequest request, ServletResponse response) {
+//        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+//        String authorization = httpServletRequest.getHeader("token");
+//        JWTToken token = new JWTToken(authorization);
+//
+//        // 提交给realm进行登入,如果错误他会抛出异常并被捕获
+//        getSubject(request, response).login(token);
+//
+//        // 如果没有抛出异常则代表登入成功,返回true
+//        return true;
+//    }
+//
+//    /**
+//     * 这里我们详细说明下为什么最终返回的都是true,即允许访问
+//     * 例如我们提供一个地址 GET /article
+//     * 登入用户和游客看到的内容是不同的
+//     * 如果在这里返回了false,请求会被直接拦截,用户看不到任何东西
+//     * 所以我们在这里返回true,Controller中可以通过 subject.isAuthenticated() 来判断用户是否登入
+//     * 如果有些资源只有登入用户才能访问,我们只需要在方法上面加上 @RequiresAuthentication 注解即可
+//     * 但是这样做有一个缺点,就是不能够对GET,POST等请求进行分别过滤鉴权(因为我们重写了官方的方法),但实际上对应用影响不大
+//     *
+//     * owen:
+//     *  return false ,表示全局拦截,必须登录才可以访问接口,除非配置了免拦截
+//     *  "" @RequiresAuthentication 现在不需要配置这个注解来免登录
+//     *
+//     */
+//    @Override
+//    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
+//        try {
+//            executeLogin(request, response);
+//            return true;
+//        } catch (Exception e) {
+//            /**
+//             * 这个异常需要自己写,全局捕获不了
+//             * 认证出现异常,传递错误信息msg
+//             */
+//            exceptionMsg(e, response);
+//        }
+//        // 前端没有响应,接收不到异常
+//         return false;
+//
+//
+//
+//    }
+//
+//    /**
+//     * 对跨域提供支持
+//     * 只对需要token验证的有效,不需要验证的还是需要用注解处理一下
+//     *
+//     */
+//    @Override
+//    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
+//        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+//        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+//        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
+//        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
+//        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
+//        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
+//        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
+//            httpServletResponse.setStatus(HttpStatus.OK.value());
+//            return false;
+//        }
+//        return super.preHandle(request, response);
+//    }
+//
+//
+//    /**
+//     * 无需转发,直接返回Response信息
+//     *
+//     */
+//    private void writeResponse(ServletResponse response, JSONObject msg) {
+//        response.setCharacterEncoding("UTF-8");
+//        response.setContentType("application/json; charset=utf-8");
+//        ServletOutputStream outputStream = null;
+//        try {
+//            outputStream = response.getOutputStream();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+//        assert outputStream != null;
+//        PrintWriter printWriter = new PrintWriter(outputStream, true);
+//        printWriter.write(msg.toString());//直接将json输出到页面
+//        printWriter.flush();
+//        printWriter.close();
+//
+//    }
+//
+//    /**
+//     * 封装异常信息
+//     */
+//    private void exceptionMsg(Exception e, ServletResponse response) {
+//        // 认证出现异常,传递错误信息msg
+//        String msg = e.getMessage();
+//        // 获取应用异常(该Cause是导致抛出此throwable(异常)的throwable(异常))
+//        Throwable throwable = e.getCause();
+//        JSONObject jsonObject = new JSONObject();
+//        if (throwable instanceof JwtAuthenticationException) {
+//            jsonObject.put("code", ((JwtAuthenticationException) throwable).getCode());
+//            jsonObject.put("msg", ((JwtAuthenticationException) throwable).getMsg());
+//        } else {
+//            log.error(msg);
+//            jsonObject.put("code", 5002);
+//            jsonObject.put("msg", "token invalid");
+//
+//        }
+//        jsonObject.put("timestamp", LocalDateTime.now());
+//        // 直接返回Response信息
+//        this.writeResponse(response, jsonObject);
+//
+//    }
+//}

+ 23 - 23
gis_common/src/main/java/com/gis/common/shiro/JWTToken.java

@@ -1,23 +1,23 @@
-package com.gis.common.shiro;
-
-import org.apache.shiro.authc.AuthenticationToken;
-
-public class JWTToken implements AuthenticationToken {
-
-    // 密钥
-    private String token;
-
-    public JWTToken(String token) {
-        this.token = token;
-    }
-
-    @Override
-    public Object getPrincipal() {
-        return token;
-    }
-
-    @Override
-    public Object getCredentials() {
-        return token;
-    }
-}
+//package com.gis.common.shiro;
+//
+//import org.apache.shiro.authc.AuthenticationToken;
+//
+//public class JWTToken implements AuthenticationToken {
+//
+//    // 密钥
+//    private String token;
+//
+//    public JWTToken(String token) {
+//        this.token = token;
+//    }
+//
+//    @Override
+//    public Object getPrincipal() {
+//        return token;
+//    }
+//
+//    @Override
+//    public Object getCredentials() {
+//        return token;
+//    }
+//}

+ 115 - 115
gis_common/src/main/java/com/gis/common/shiro/MyRealm.java

@@ -1,115 +1,115 @@
-package com.gis.common.shiro;
-
-import com.gis.common.admin.po.SysUserEntity;
-import com.gis.common.constant.ConfigConstant;
-import com.gis.common.exception.JwtAuthenticationException;
-import com.gis.common.util.JwtUtil;
-import com.gis.common.admin.service.SysUserService;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.authc.AuthenticationException;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.realm.AuthorizingRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
-/**
- * 配置不校验的话,是不会走这个方法的
- */
-@Log4j2
-@Service
-public class MyRealm extends AuthorizingRealm {
-
-
-
-    @Autowired
-    private RedisTemplate<String, String> redisTemplate;
-
-    @Autowired
-    private SysUserService userService;
-
-    @Autowired
-    ConfigConstant configConstant;
-
-
-
-    /**
-     * 大坑!,必须重写此方法,不然Shiro会报错
-     */
-    @Override
-    public boolean supports(AuthenticationToken token) {
-        return token instanceof JWTToken;
-    }
-
-
-
-
-    /**
-     * 只有当需要检测用户权限的时候才会调用此方法,例如checkRole,checkPermission之类的
-     *
-     * principals: 是token
-     */
-    @Override
-    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
-        String username = JwtUtil.getUsername(principals.toString());
-
-        SysUserEntity dbUserEntity = userService.findByUserName(username);
-
-        SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
-
-        simpleAuthorizationInfo.addRole(dbUserEntity.getRole());
-        return simpleAuthorizationInfo;
-    }
-
-
-    /**
-     * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可。
-     */
-    @Override
-    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
-        String token = (String) auth.getCredentials();
-
-        if (StringUtils.isBlank(token)) {
-            log.error("token is null ");
-            throw new JwtAuthenticationException(5001, "header token is null");
-        }
-
-
-        // 解密获得username,用于和数据库进行对比
-        String username = JwtUtil.getUsername(token);
-        if (username == null) {
-            log.error("error token username");
-            throw new JwtAuthenticationException(5001, "token invalid");
-        }
-
-        SysUserEntity userEntity = userService.findByUserName(username);
-        if (userEntity == null) {
-            log.error("error token userEntity");
-            throw new JwtAuthenticationException(5001, "User didn't existed!");
-        }
-
-        // 校验请求token是否跟redis token一致
-        // 校验请求token是否跟redis token一致
-        String redisToken = redisTemplate.opsForValue().get(configConstant.redisPrefix + token);
-
-        if (!token.equals(redisToken)) {
-            log.error("redis token is null");
-            throw new JwtAuthenticationException(5001, "redis token is null");
-
-        }
-
-
-        if (! JwtUtil.isVerify(token, username)) {
-            log.error("error token username or password");
-            throw new JwtAuthenticationException(5001, "token invalid");
-        }
-
-        return new SimpleAuthenticationInfo(token, token, "my_realm");
-    }
-}
+//package com.gis.common.shiro;
+//
+//import com.gis.po.SysUserEntity;
+//import com.gis.common.constant.ConfigConstant;
+//import com.gis.common.exception.JwtAuthenticationException;
+//import com.gis.common.util.JwtUtil;
+//import com.gis.service.SysUserService;
+//import lombok.extern.log4j.Log4j2;
+//import org.apache.commons.lang3.StringUtils;
+//import org.apache.shiro.authc.AuthenticationException;
+//import org.apache.shiro.authc.AuthenticationInfo;
+//import org.apache.shiro.authc.AuthenticationToken;
+//import org.apache.shiro.authc.SimpleAuthenticationInfo;
+//import org.apache.shiro.authz.AuthorizationInfo;
+//import org.apache.shiro.authz.SimpleAuthorizationInfo;
+//import org.apache.shiro.realm.AuthorizingRealm;
+//import org.apache.shiro.subject.PrincipalCollection;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.stereotype.Service;
+//
+///**
+// * 配置不校验的话,是不会走这个方法的
+// */
+//@Log4j2
+//@Service
+//public class MyRealm extends AuthorizingRealm {
+//
+//
+//
+//    @Autowired
+//    private RedisTemplate<String, String> redisTemplate;
+//
+//    @Autowired
+//    private SysUserService userService;
+//
+//    @Autowired
+//    ConfigConstant configConstant;
+//
+//
+//
+//    /**
+//     * 大坑!,必须重写此方法,不然Shiro会报错
+//     */
+//    @Override
+//    public boolean supports(AuthenticationToken token) {
+//        return token instanceof JWTToken;
+//    }
+//
+//
+//
+//
+//    /**
+//     * 只有当需要检测用户权限的时候才会调用此方法,例如checkRole,checkPermission之类的
+//     *
+//     * principals: 是token
+//     */
+//    @Override
+//    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+//        String username = JwtUtil.getUsername(principals.toString());
+//
+//        SysUserEntity dbUserEntity = userService.findByUserName(username);
+//
+//        SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
+//
+//        simpleAuthorizationInfo.addRole(dbUserEntity.getRole());
+//        return simpleAuthorizationInfo;
+//    }
+//
+//
+//    /**
+//     * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可。
+//     */
+//    @Override
+//    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
+//        String token = (String) auth.getCredentials();
+//
+//        if (StringUtils.isBlank(token)) {
+//            log.error("token is null ");
+//            throw new JwtAuthenticationException(5001, "header token is null");
+//        }
+//
+//
+//        // 解密获得username,用于和数据库进行对比
+//        String username = JwtUtil.getUsername(token);
+//        if (username == null) {
+//            log.error("error token username");
+//            throw new JwtAuthenticationException(5001, "token invalid");
+//        }
+//
+//        SysUserEntity userEntity = userService.findByUserName(username);
+//        if (userEntity == null) {
+//            log.error("error token userEntity");
+//            throw new JwtAuthenticationException(5001, "User didn't existed!");
+//        }
+//
+//        // 校验请求token是否跟redis token一致
+//        // 校验请求token是否跟redis token一致
+//        String redisToken = redisTemplate.opsForValue().get(configConstant.redisPrefix + token);
+//
+//        if (!token.equals(redisToken)) {
+//            log.error("redis token is null");
+//            throw new JwtAuthenticationException(5001, "redis token is null");
+//
+//        }
+//
+//
+//        if (! JwtUtil.isVerify(token, username)) {
+//            log.error("error token username or password");
+//            throw new JwtAuthenticationException(5001, "token invalid");
+//        }
+//
+//        return new SimpleAuthenticationInfo(token, token, "my_realm");
+//    }
+//}

+ 114 - 114
gis_common/src/main/java/com/gis/common/shiro/ShiroConfig.java

@@ -1,114 +1,114 @@
-package com.gis.common.shiro;
-
-import lombok.extern.log4j.Log4j2;
-import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
-import org.apache.shiro.mgt.DefaultSubjectDAO;
-import org.apache.shiro.spring.LifecycleBeanPostProcessor;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.DependsOn;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.Map;
-
-@Log4j2
-@Configuration
-public class ShiroConfig {
-
-    @Bean("securityManager")
-    public DefaultWebSecurityManager getManager(MyRealm realm) {
-        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
-        // 使用自己的realm
-        manager.setRealm(realm);
-
-        /*
-         * 关闭shiro自带的session,详情见文档
-         * http://shiro.apache.org/session-management.html#SessionManagement-StatelessApplications%28Sessionless%29
-         */
-        DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
-        DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator();
-        defaultSessionStorageEvaluator.setSessionStorageEnabled(false);
-        subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
-        manager.setSubjectDAO(subjectDAO);
-
-        return manager;
-    }
-
-    @Bean("shiroFilter")
-    public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) {
-        ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
-
-        // 添加自己的过滤器并且取名为jwt
-        Map<String, Filter> filterMap = new HashMap<>();
-        filterMap.put("jwt", new JWTFilter());
-
-
-
-
-        factoryBean.setFilters(filterMap);
-
-        factoryBean.setSecurityManager(securityManager);
-        factoryBean.setUnauthorizedUrl("/401");
-
-        /*
-         * 自定义url规则
-         * http://shiro.apache.org/web.html#urls-
-         */
-        Map<String, String> filterRuleMap = new HashMap<>();
-
-        // 不拦截
-        filterRuleMap.put("/login", "anon");
-        filterRuleMap.put("/logout", "anon");
-        filterRuleMap.put("/admin", "anon");
-        filterRuleMap.put("/admin/login", "anon");
-        filterRuleMap.put("/test/**", "anon");
-
-
-        // swagger 不拦截
-        filterRuleMap.put("/swagger-resources/**", "anon");
-        filterRuleMap.put("/webjars/**", "anon");
-        filterRuleMap.put("/v2/**", "anon");
-        filterRuleMap.put("/swagger-ui.html/**", "anon");
-
-
-        // 所有请求通过我们自己的JWT Filter
-        filterRuleMap.put("/manage/**", "jwt");
-
-
-        // 访问401和404页面不通过我们的Filter
-        filterRuleMap.put("/401", "anon");
-        factoryBean.setFilterChainDefinitionMap(filterRuleMap);
-        return factoryBean;
-    }
-
-    /**
-     * 下面的代码是添加注解支持
-     */
-    @Bean
-    @DependsOn("lifecycleBeanPostProcessor")
-    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
-        DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
-        // 强制使用cglib,防止重复代理和可能引起代理出错的问题
-        // https://zhuanlan.zhihu.com/p/29161098
-        defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
-        return defaultAdvisorAutoProxyCreator;
-    }
-
-    @Bean
-    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
-        return new LifecycleBeanPostProcessor();
-    }
-
-    @Bean
-    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
-        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
-        advisor.setSecurityManager(securityManager);
-        return advisor;
-    }
-
-}
+//package com.gis.common.shiro;
+//
+//import lombok.extern.log4j.Log4j2;
+//import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
+//import org.apache.shiro.mgt.DefaultSubjectDAO;
+//import org.apache.shiro.spring.LifecycleBeanPostProcessor;
+//import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
+//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+//import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.DependsOn;
+//
+//import javax.servlet.Filter;
+//import java.util.HashMap;
+//import java.util.Map;
+//
+//@Log4j2
+//@Configuration
+//public class ShiroConfig {
+//
+//    @Bean("securityManager")
+//    public DefaultWebSecurityManager getManager(MyRealm realm) {
+//        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
+//        // 使用自己的realm
+//        manager.setRealm(realm);
+//
+//        /*
+//         * 关闭shiro自带的session,详情见文档
+//         * http://shiro.apache.org/session-management.html#SessionManagement-StatelessApplications%28Sessionless%29
+//         */
+//        DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
+//        DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator();
+//        defaultSessionStorageEvaluator.setSessionStorageEnabled(false);
+//        subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
+//        manager.setSubjectDAO(subjectDAO);
+//
+//        return manager;
+//    }
+//
+//    @Bean("shiroFilter")
+//    public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) {
+//        ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
+//
+//        // 添加自己的过滤器并且取名为jwt
+//        Map<String, Filter> filterMap = new HashMap<>();
+//        filterMap.put("jwt", new JWTFilter());
+//
+//
+//
+//
+//        factoryBean.setFilters(filterMap);
+//
+//        factoryBean.setSecurityManager(securityManager);
+//        factoryBean.setUnauthorizedUrl("/401");
+//
+//        /*
+//         * 自定义url规则
+//         * http://shiro.apache.org/web.html#urls-
+//         */
+//        Map<String, String> filterRuleMap = new HashMap<>();
+//
+//        // 不拦截
+//        filterRuleMap.put("/login", "anon");
+//        filterRuleMap.put("/logout", "anon");
+//        filterRuleMap.put("/admin", "anon");
+//        filterRuleMap.put("/admin/login", "anon");
+//        filterRuleMap.put("/test/**", "anon");
+//
+//
+//        // swagger 不拦截
+//        filterRuleMap.put("/swagger-resources/**", "anon");
+//        filterRuleMap.put("/webjars/**", "anon");
+//        filterRuleMap.put("/v2/**", "anon");
+//        filterRuleMap.put("/swagger-ui.html/**", "anon");
+//
+//
+//        // 所有请求通过我们自己的JWT Filter
+//        filterRuleMap.put("/manage/**", "jwt");
+//
+//
+//        // 访问401和404页面不通过我们的Filter
+//        filterRuleMap.put("/401", "anon");
+//        factoryBean.setFilterChainDefinitionMap(filterRuleMap);
+//        return factoryBean;
+//    }
+//
+//    /**
+//     * 下面的代码是添加注解支持
+//     */
+//    @Bean
+//    @DependsOn("lifecycleBeanPostProcessor")
+//    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
+//        DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
+//        // 强制使用cglib,防止重复代理和可能引起代理出错的问题
+//        // https://zhuanlan.zhihu.com/p/29161098
+//        defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
+//        return defaultAdvisorAutoProxyCreator;
+//    }
+//
+//    @Bean
+//    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
+//        return new LifecycleBeanPostProcessor();
+//    }
+//
+//    @Bean
+//    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
+//        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
+//        advisor.setSecurityManager(securityManager);
+//        return advisor;
+//    }
+//
+//}

+ 28 - 28
gis_domain/src/main/java/com/gis/domain/dto/LoginDto.java

@@ -1,28 +1,28 @@
-package com.gis.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * Created by owen on 2020/5/9 0009 12:20
- */
-@Data
-public class LoginDto {
-
-    @NotBlank(message = "用户名不能为空")
-    @ApiModelProperty(value = "用户名", name = "userName", required = true)
-    private String userName;
-
-
-    @NotBlank(message = "密码不能为空")
-    @ApiModelProperty(value = "密码", name = "password", required = true)
-    private String password;
-
-//    @NotBlank(message = "from不能为空")
-//    @ApiModelProperty(value = "区分用户去向,cms:管理后台,web:展示页")
-//    private String from;
-
-
-}
+//package com.gis.domain.dto;
+//
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//import javax.validation.constraints.NotBlank;
+//
+///**
+// * Created by owen on 2020/5/9 0009 12:20
+// */
+//@Data
+//public class LoginDto {
+//
+//    @NotBlank(message = "用户名不能为空")
+//    @ApiModelProperty(value = "用户名", name = "userName", required = true)
+//    private String userName;
+//
+//
+//    @NotBlank(message = "密码不能为空")
+//    @ApiModelProperty(value = "密码", name = "password", required = true)
+//    private String password;
+//
+////    @NotBlank(message = "from不能为空")
+////    @ApiModelProperty(value = "区分用户去向,cms:管理后台,web:展示页")
+////    private String from;
+//
+//
+//}

+ 21 - 21
gis_domain/src/main/java/com/gis/domain/dto/PasswordRequest.java

@@ -1,21 +1,21 @@
-package com.gis.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * Created by owen on 2020/5/9 0009 12:20
- */
-@Data
-public class PasswordRequest {
-
-    @NotBlank(message = "旧密码不能为空")
-    @ApiModelProperty(value = "旧密码", name = "oldPassword", required = true)
-    private String oldPassword;
-
-    @NotBlank(message = "新密码不能为空")
-    @ApiModelProperty(value = "新密码", name = "newPassword", required = true)
-    private String newPassword;
-}
+//package com.gis.domain.dto;
+//
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//import javax.validation.constraints.NotBlank;
+//
+///**
+// * Created by owen on 2020/5/9 0009 12:20
+// */
+//@Data
+//public class PasswordRequest {
+//
+//    @NotBlank(message = "旧密码不能为空")
+//    @ApiModelProperty(value = "旧密码", name = "oldPassword", required = true)
+//    private String oldPassword;
+//
+//    @NotBlank(message = "新密码不能为空")
+//    @ApiModelProperty(value = "新密码", name = "newPassword", required = true)
+//    private String newPassword;
+//}

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/dto/ScenePageDto.java

@@ -1,6 +1,6 @@
 package com.gis.domain.dto;
 
-import com.gis.common.admin.dto.PageDto;
+import com.gis.common.base.entity.dto.PageDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 2 - 1
gis_domain/src/main/java/com/gis/domain/dto/StatusPageDataDto.java

@@ -1,5 +1,6 @@
 package com.gis.domain.dto;
 
+import com.gis.common.base.entity.dto.PageDateDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -8,7 +9,7 @@ import lombok.Data;
  * Created by owen on 2021/6/23 0023 17:53
  */
 @Data
-public class StatusPageDataDto extends PageDateDto{
+public class StatusPageDataDto extends PageDateDto {
 
     @ApiModelProperty(value = "状态")
     private Integer status;

+ 5 - 1
gis_domain/src/main/java/com/gis/domain/dto/TypePageDateDto.java

@@ -1,5 +1,6 @@
 package com.gis.domain.dto;
 
+import com.gis.common.base.entity.dto.PageDateDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -7,11 +8,14 @@ import lombok.Data;
  * Created by owen on 2020/5/9 0009 12:20
  */
 @Data
-public class TypePageDateDto extends PageDateDto{
+public class TypePageDateDto extends PageDateDto {
 
     @ApiModelProperty(value = "类型")
     private String type;
 
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+
 
 
 

+ 62 - 62
gis_domain/src/main/java/com/gis/domain/dto/UserDto.java

@@ -1,62 +1,62 @@
-package com.gis.domain.dto;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-/**
- * Created by owen on 2020/5/28 0028 16:36
- */
-@Data
-public class UserDto {
-
-    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
-    private Long id;
-
-
-//    @NotBlank(message = "真实姓名不能为空")
-    @ApiModelProperty(value = "真实姓名")
-    private String realName;
-
-
-    @NotBlank(message = "管理员账号不能为空")
-    @ApiModelProperty(value = "管理员账号", required = true)
-    private String userName;
-
-//    @NotBlank(message = "昵称不能为空")
-    @ApiModelProperty(value = "昵称")
-    private String nickName;
-
-//    @NotNull(message = "性别不能为空")
-    @ApiModelProperty(value = "性别 0:男  1:女")
-    private Integer sex;
-
-    @ApiModelProperty(value = "电话")
-    private String phone;
-
-//    @NotBlank(message = "单位不能为空")
-    @ApiModelProperty(value = "单位")
-    private String unit;
-
-    @ApiModelProperty(value = "地址")
-    private String address;
-
-    @NotNull(message = "启用状态不能为空")
-    @ApiModelProperty(value = "状态 1:启用  0:停用 ")
-    private Integer status;
-
-    @ApiModelProperty(value = "高清图url")
-    private String img;
-
-    @ApiModelProperty(value = "缩略图url")
-    private String thumb;
-
-
-    @NotNull(message = "角色不能为空")
-    @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客" ,required = true)
-    private String role;
-
-}
+//package com.gis.domain.dto;
+//
+//import com.alibaba.fastjson.annotation.JSONField;
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//import javax.validation.constraints.NotBlank;
+//import javax.validation.constraints.NotNull;
+//
+///**
+// * Created by owen on 2020/5/28 0028 16:36
+// */
+//@Data
+//public class UserDto {
+//
+//    @ApiModelProperty(value = "id, 修改时必须传,新增忽略", name = "id")
+//    private Long id;
+//
+//
+////    @NotBlank(message = "真实姓名不能为空")
+//    @ApiModelProperty(value = "真实姓名")
+//    private String realName;
+//
+//
+//    @NotBlank(message = "管理员账号不能为空")
+//    @ApiModelProperty(value = "管理员账号", required = true)
+//    private String userName;
+//
+////    @NotBlank(message = "昵称不能为空")
+//    @ApiModelProperty(value = "昵称")
+//    private String nickName;
+//
+////    @NotNull(message = "性别不能为空")
+//    @ApiModelProperty(value = "性别 0:男  1:女")
+//    private Integer sex;
+//
+//    @ApiModelProperty(value = "电话")
+//    private String phone;
+//
+////    @NotBlank(message = "单位不能为空")
+//    @ApiModelProperty(value = "单位")
+//    private String unit;
+//
+//    @ApiModelProperty(value = "地址")
+//    private String address;
+//
+//    @NotNull(message = "启用状态不能为空")
+//    @ApiModelProperty(value = "状态 1:启用  0:停用 ")
+//    private Integer status;
+//
+//    @ApiModelProperty(value = "高清图url")
+//    private String img;
+//
+//    @ApiModelProperty(value = "缩略图url")
+//    private String thumb;
+//
+//
+//    @NotNull(message = "角色不能为空")
+//    @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客" ,required = true)
+//    private String role;
+//
+//}

+ 2 - 1
gis_domain/src/main/java/com/gis/domain/po/AuditLogEntity.java

@@ -1,10 +1,11 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.persistence.Table;
+import javax.persistence.Transient;
 import java.io.Serializable;
 
 /**

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/BarrageEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 0 - 17
gis_domain/src/main/java/com/gis/domain/po/Carousel.java

@@ -1,17 +0,0 @@
-package com.gis.domain.po;
-
-import com.gis.common.admin.po.BaseEntity;
-import lombok.Data;
-
-import javax.persistence.Table;
-import java.io.Serializable;
-
-/**
- * Created by owen on 2021/6/21 0021 14:05
- * 轮播图
- */
-@Data
-@Table(name = "tb_carousel")
-public class Carousel extends BaseEntity implements Serializable {
-    private static final long serialVersionUID = -4962447213741855372L;
-}

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/CommentEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/FileEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/GoodsEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/LogEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/MartyrEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/MournEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/NewsEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 4 - 2
gis_domain/src/main/java/com/gis/domain/po/QuestionAnswerEntity.java

@@ -1,6 +1,7 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -23,6 +24,7 @@ public class QuestionAnswerEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "答案" )
     private String answer;
 
+    @JSONField(serialize = false)
     @ApiModelProperty(value = "正确答案" )
     private String correct;
 
@@ -30,5 +32,5 @@ public class QuestionAnswerEntity extends BaseEntity implements Serializable {
     private Integer sort;
 
     @ApiModelProperty(value = "题组id" )
-    private Integer questionGroupId;
+    private Long questionGroupId;
 }

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/QuestionGroupEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 35 - 0
gis_domain/src/main/java/com/gis/domain/po/QuestionUserEntity.java

@@ -0,0 +1,35 @@
+package com.gis.domain.po;
+
+import com.gis.common.base.entity.po.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * Created by owen on 2021/6/28 0024 18:18
+ * 用户答题详情表
+ */
+@Data
+@Table(name = "tb_question_user")
+public class QuestionUserEntity extends BaseEntity implements Serializable {
+
+
+    private static final long serialVersionUID = 3783139422057364975L;
+
+
+    @ApiModelProperty(value = "题组id" )
+    private Long questionGroupId;
+
+    @ApiModelProperty(value = "用户id" )
+    private Long userId;
+
+    @ApiModelProperty(value = "答对数量" )
+    private Integer score;
+
+    @ApiModelProperty(value = "提交答案" )
+    private String answer;
+
+
+}

+ 7 - 1
gis_domain/src/main/java/com/gis/domain/po/SceneEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -54,4 +54,10 @@ public class SceneEntity extends BaseEntity implements Serializable {
 //    @ApiModelProperty(value = "排序")
 //    private Integer sort;
 
+    @ApiModelProperty(value = "浏览量")
+    private Integer visit;
+
+    @ApiModelProperty(value = "点赞量")
+    private Integer star;
+
 }

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/SensitiveEntity.java

@@ -1,6 +1,6 @@
 package com.gis.domain.po;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/vo/BarrageVo.java

@@ -1,6 +1,6 @@
 package com.gis.domain.vo;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/vo/CommentVo.java

@@ -1,6 +1,6 @@
 package com.gis.domain.vo;
 
-import com.gis.common.admin.po.BaseEntity;
+import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/AuditLogMapper.java

@@ -1,9 +1,8 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.AuditLogEntity;
-import com.gis.domain.po.MartyrEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;
 

+ 2 - 6
gis_mapper/src/main/java/com/gis/mapper/BarrageMapper.java

@@ -1,19 +1,15 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.BarrageEntity;
-import com.gis.domain.po.CommentEntity;
 import com.gis.domain.vo.BarrageVo;
 import com.gis.mapper.provider.BarrageProvider;
-import com.gis.mapper.provider.SceneProvider;
 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.time.LocalDate;
 import java.util.List;
 
 @Component

+ 2 - 4
gis_mapper/src/main/java/com/gis/mapper/CommentMapper.java

@@ -1,12 +1,10 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.CommentEntity;
-import com.gis.domain.vo.BarrageVo;
 import com.gis.domain.vo.CommentVo;
-import com.gis.mapper.provider.BarrageProvider;
 import com.gis.mapper.provider.CommentProvider;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/FileMapper.java

@@ -1,7 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.FileEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;

+ 2 - 2
gis_mapper/src/main/java/com/gis/mapper/GoodsMapper.java

@@ -1,7 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.dto.TypePageDateDto;
 import com.gis.domain.po.GoodsEntity;
 import com.gis.mapper.provider.GoodsProvider;
@@ -18,7 +18,7 @@ public interface GoodsMapper extends IBaseMapper<GoodsEntity, Long> {
 
 
     @SelectProvider(type = GoodsProvider.class, method = "search")
-    List<GoodsEntity> search(TypePageDateDto param);
+    List<GoodsEntity> search(TypePageDateDto param, Integer display);
 
 
 

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/MartyrMapper.java

@@ -1,9 +1,8 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.MartyrEntity;
-import com.gis.domain.po.ZoneEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;
 

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/MournMapper.java

@@ -1,8 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.po.MartyrEntity;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.MournEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/NewsMapper.java

@@ -1,8 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.po.MartyrEntity;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.NewsEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/QuestionAnswerMapper.java

@@ -1,9 +1,8 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.QuestionAnswerEntity;
-import com.gis.domain.po.QuestionGroupEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/QuestionGroupMapper.java

@@ -1,8 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.po.MartyrEntity;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.QuestionGroupEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;

+ 18 - 0
gis_mapper/src/main/java/com/gis/mapper/QuestionUserMapper.java

@@ -0,0 +1,18 @@
+package com.gis.mapper;
+
+
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.domain.po.QuestionUserEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@Mapper
+public interface QuestionUserMapper extends IBaseMapper<QuestionUserEntity, Long> {
+
+    @Select("select * from tb_question_user where is_delete=0 order by score desc limit 10")
+    List<QuestionUserEntity> ranking();
+}

+ 9 - 5
gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java

@@ -1,8 +1,8 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.dto.PageDto;
-import com.gis.common.admin.mapper.IBaseMapper;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.SceneEntity;
 import com.gis.mapper.provider.SceneProvider;
 import org.apache.ibatis.annotations.Mapper;
@@ -17,17 +17,21 @@ import java.util.List;
 @Mapper
 public interface SceneMapper extends IBaseMapper<SceneEntity, Long> {
 
-    @Select("select * from tb_scene where scene_code = #{m}")
+    @Select("select * from tb_scene where is_delete=0 and scene_code = #{m}")
     SceneEntity findBySceneCode(String m);
 
     @SelectProvider(type = SceneProvider.class, method = "search")
     List<SceneEntity> search(PageDto param);
 
-    @Update("update tb_scene set display = 0 , update_time = NOW() where display = 1 ")
+    @Update("update tb_scene set display = 0 , update_time = NOW() where is_delete=0 and display = 1 ")
     void setDisable();
 
-    @Update("update tb_scene set display = 1 , update_time = NOW() where id = #{id} ")
+    @Update("update tb_scene set display = 1 , update_time = NOW() where is_delete=0 and id = #{id} ")
     void setDisplay(Long id);
 
+    @Update("update tb_scene set star=star+1 , update_time = NOW() where is_delete=0 and id = #{id} ")
+    void addStar(Long id);
 
+    @Update("update tb_scene set visit=visit+1 , update_time = NOW() where is_delete=0 and id = #{id} ")
+    void addVisit(Long id);
 }

+ 1 - 2
gis_mapper/src/main/java/com/gis/mapper/SensitiveMapper.java

@@ -1,8 +1,7 @@
 package com.gis.mapper;
 
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.domain.po.NewsEntity;
+import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.domain.po.SensitiveEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Component;

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/provider/BarrageProvider.java

@@ -1,6 +1,6 @@
 package com.gis.mapper.provider;
 
-import com.gis.domain.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDateDto;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/provider/CommentProvider.java

@@ -1,6 +1,6 @@
 package com.gis.mapper.provider;
 
-import com.gis.domain.dto.PageDateDto;
+import com.gis.common.base.entity.dto.PageDateDto;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 

+ 10 - 6
gis_mapper/src/main/java/com/gis/mapper/provider/GoodsProvider.java

@@ -12,7 +12,7 @@ import org.apache.commons.lang3.StringUtils;
 public class GoodsProvider {
 
 
-    public String search(TypePageDateDto param) {
+    public String search(TypePageDateDto param, Integer display) {
         StringBuffer sql = new StringBuffer(
                 "select * from tb_goods where is_delete = '0' ");
 
@@ -28,14 +28,18 @@ public class GoodsProvider {
             sql.append(" and ( name like '%").append(searchKey).append("%' )");
         }
 
-//        Long zoneId = param.getZoneId();
-//        if (zoneId != null) {
-//            sql.append(" and  zone_id = ").append(zoneId);
-//        }
+        if (display != null) {
+            sql.append(" and  display = ").append(display);
+        }
 
         String type = param.getType();
         if (StringUtils.isNotBlank(type)) {
-            sql.append(" and type = '").append(type).append("'");
+
+        }
+
+        Integer status = param.getStatus();
+        if (status != null) {
+            sql.append(" and status = ").append(status);
         }
 
 

+ 1 - 1
gis_mapper/src/main/java/com/gis/mapper/provider/SceneProvider.java

@@ -1,6 +1,6 @@
 package com.gis.mapper.provider;
 
-import com.gis.common.admin.dto.PageDto;
+import com.gis.common.base.entity.dto.PageDto;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 

+ 1 - 1
gis_service/src/main/java/com/gis/service/AuditLogService.java

@@ -1,7 +1,7 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.StatusPageDataDto;
 import com.gis.domain.po.AuditLogEntity;

+ 2 - 4
gis_service/src/main/java/com/gis/service/BarrageService.java

@@ -1,16 +1,14 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.CommentDto;
-import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.po.BarrageEntity;
 import com.gis.domain.vo.BarrageVo;
 import com.github.pagehelper.PageInfo;
 
-import java.time.LocalDate;
-
 
 /**
  * Created by owen on 2020/3/11 0011 16:14

+ 4 - 2
gis_service/src/main/java/com/gis/service/CommentService.java

@@ -1,10 +1,10 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.CommentDto;
-import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.po.CommentEntity;
 import com.gis.domain.vo.CommentVo;
 import com.github.pagehelper.PageInfo;
@@ -25,4 +25,6 @@ public interface CommentService extends IBaseService<CommentEntity, Long> {
     Result remove(Long id);
 
     Result saveEntity(CommentDto param);
+
+    Result<CommentVo> listTree(PageDateDto param, Integer display);
 }

+ 1 - 1
gis_service/src/main/java/com/gis/service/FileService.java

@@ -1,7 +1,7 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.domain.po.FileEntity;
 import org.springframework.web.multipart.MultipartFile;
 

+ 2 - 2
gis_service/src/main/java/com/gis/service/GoodsService.java

@@ -1,7 +1,7 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.AuditDto;
 import com.gis.domain.dto.GoodsDto;
@@ -16,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
 public interface GoodsService extends IBaseService<GoodsEntity, Long> {
 
 
-    Result<GoodsEntity> search(TypePageDateDto param);
+    Result<GoodsEntity> search(TypePageDateDto param, Integer display);
 
     Result saveEntity(GoodsDto param);
 

+ 2 - 2
gis_service/src/main/java/com/gis/service/MartyrService.java

@@ -1,7 +1,7 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.AuditDto;
 import com.gis.domain.dto.MartyrDto;
@@ -24,7 +24,7 @@ public interface MartyrService extends IBaseService<MartyrEntity, Long> {
 
     Result upload(MultipartFile file, String type);
 
-    Result<MartyrEntity> search(StatusPageDataDto param);
+    Result<MartyrEntity> search(StatusPageDataDto param, Integer display);
 
     Result apply(Long id);
 

+ 3 - 5
gis_service/src/main/java/com/gis/service/MournService.java

@@ -1,13 +1,11 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
-import com.gis.domain.dto.AuditDto;
 import com.gis.domain.dto.MournDto;
-import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.po.MournEntity;
-import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -22,7 +20,7 @@ public interface MournService extends IBaseService<MournEntity, Long> {
 
     Result<MournEntity> detail(Long id);
 
-    Result<MournEntity> search(PageDateDto param);
+    Result<MournEntity> search(PageDateDto param, Integer display);
 
 
     Result updateDisplay(Long id, Integer display);

+ 2 - 4
gis_service/src/main/java/com/gis/service/NewsService.java

@@ -1,14 +1,12 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.AuditDto;
 import com.gis.domain.dto.NewsDto;
 import com.gis.domain.dto.NewsPageDataDto;
-import com.gis.domain.dto.StatusPageDataDto;
 import com.gis.domain.po.NewsEntity;
-import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -23,7 +21,7 @@ public interface NewsService extends IBaseService<NewsEntity, Long> {
 
     Result<NewsEntity> detail(Long id);
 
-    Result<NewsEntity> search(NewsPageDataDto param);
+    Result<NewsEntity> search(NewsPageDataDto param, Integer display);
 
     Result apply(Long id);
 

+ 1 - 1
gis_service/src/main/java/com/gis/service/QuestionAnswerService.java

@@ -1,7 +1,7 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.QuestionAnswerDto;
 import com.gis.domain.po.QuestionAnswerEntity;

+ 2 - 4
gis_service/src/main/java/com/gis/service/QuestionGroupService.java

@@ -1,14 +1,12 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.AuditDto;
-import com.gis.domain.dto.ContentDto;
 import com.gis.domain.dto.QuestionGroupDto;
 import com.gis.domain.dto.StatusPageDataDto;
 import com.gis.domain.po.QuestionGroupEntity;
-import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -23,7 +21,7 @@ public interface QuestionGroupService extends IBaseService<QuestionGroupEntity,
 
     Result<QuestionGroupEntity> detail(Long id);
 
-    Result<QuestionGroupEntity> search(StatusPageDataDto param);
+    Result<QuestionGroupEntity> search(StatusPageDataDto param, Integer display);
 
     Result apply(Long id);
 

+ 25 - 0
gis_service/src/main/java/com/gis/service/QuestionUserService.java

@@ -0,0 +1,25 @@
+package com.gis.service;
+
+
+import com.gis.common.base.service.IBaseService;
+import com.gis.common.util.Result;
+import com.gis.domain.po.QuestionGroupEntity;
+import com.gis.domain.po.QuestionUserEntity;
+
+import java.util.Map;
+
+
+/**
+ * Created by owen on 2020/3/11 0011 16:14
+ */
+public interface QuestionUserService extends IBaseService<QuestionUserEntity, Long> {
+    Result<QuestionGroupEntity> submit(Long questionGroupId, Map<String, String> answers);
+
+    Result ranking();
+
+
+//    Result saveEntity(QuestionUserDto param);
+
+
+
+}

+ 6 - 2
gis_service/src/main/java/com/gis/service/SceneService.java

@@ -1,9 +1,9 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
-import com.gis.common.admin.dto.PageDto;
 import com.gis.domain.dto.RoamViableDto;
 import com.gis.domain.dto.SceneDataDto;
 import com.gis.domain.po.SceneEntity;
@@ -24,4 +24,8 @@ public interface SceneService extends IBaseService<SceneEntity, Long> {
     Result edit(SceneDataDto param);
 
     Result display(Long id);
+
+    Result addStar(Long id);
+
+    Result addVisit(Long id);
 }

+ 2 - 2
gis_service/src/main/java/com/gis/service/SensitiveService.java

@@ -1,8 +1,8 @@
 package com.gis.service;
 
 
-import com.gis.common.admin.dto.PageDto;
-import com.gis.common.admin.service.IBaseService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.service.IBaseService;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.ContentDto;
 import com.gis.domain.po.SensitiveEntity;

+ 2 - 2
gis_service/src/main/java/com/gis/service/impl/AuditLogServiceImpl.java

@@ -1,7 +1,7 @@
 package com.gis.service.impl;
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.constant.TypeCode;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.StatusPageDataDto;

+ 3 - 10
gis_service/src/main/java/com/gis/service/impl/BarrageServiceImpl.java

@@ -1,29 +1,22 @@
 package com.gis.service.impl;
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.CommentDto;
-import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.po.BarrageEntity;
-import com.gis.domain.po.CommentEntity;
-import com.gis.domain.po.MartyrEntity;
-import com.gis.domain.po.SceneEntity;
 import com.gis.domain.vo.BarrageVo;
 import com.gis.mapper.BarrageMapper;
 import com.gis.service.BarrageService;
 import com.github.pagehelper.PageInfo;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Condition;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.List;
 
 
 /**

+ 23 - 6
gis_service/src/main/java/com/gis/service/impl/CommentServiceImpl.java

@@ -1,18 +1,17 @@
 package com.gis.service.impl;
 
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
+import com.gis.common.base.entity.dto.PageDateDto;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.CommentDto;
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.BarrageEntity;
 import com.gis.domain.po.CommentEntity;
-import com.gis.domain.vo.BarrageVo;
 import com.gis.domain.vo.CommentVo;
 import com.gis.mapper.CommentMapper;
 import com.gis.service.CommentService;
+import com.gis.tree.CommentTreeUtil;
+import com.gis.tree.vo.CommentTree;
 import com.github.pagehelper.PageInfo;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -22,6 +21,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
@@ -75,4 +75,21 @@ public class CommentServiceImpl extends IBaseServiceImpl<CommentEntity, Long> im
         this.save(entity);
         return Result.success();
     }
+
+    @Override
+    public Result<CommentVo> listTree(PageDateDto param, Integer display) {
+        startPage(param);
+        Condition condition  =  new Condition(CommentEntity.class);
+        if (display != null){
+            condition.and().andEqualTo("display", display);
+        }
+        condition.orderBy("createTime").desc();
+        List<CommentEntity> all =  this.findAll(condition);
+
+        CommentTreeUtil commentTreeUtil = new CommentTreeUtil(all);
+        List<CommentTree> commentTrees = commentTreeUtil.buildTree();
+
+        PageInfo<CommentTree> page = new PageInfo<>(commentTrees);
+        return Result.success(page);
+    }
 }

+ 2 - 2
gis_service/src/main/java/com/gis/service/impl/FileServiceImpl.java

@@ -2,8 +2,8 @@ package com.gis.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.exception.BaseRuntimeException;
 import com.gis.common.util.RegexUtil;
 import com.gis.domain.po.FileEntity;

+ 4 - 4
gis_service/src/main/java/com/gis/service/impl/GoodsServiceImpl.java

@@ -2,8 +2,8 @@ package com.gis.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
-import com.gis.common.admin.mapper.IBaseMapper;
-import com.gis.common.admin.service.impl.IBaseServiceImpl;
+import com.gis.common.base.mapper.IBaseMapper;
+import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.constant.MsgCode;
 import com.gis.common.constant.TypeCode;
 import com.gis.common.exception.BaseRuntimeException;
@@ -59,9 +59,9 @@ public class GoodsServiceImpl extends IBaseServiceImpl<GoodsEntity, Long> implem
 
 
     @Override
-    public Result<GoodsEntity> search(TypePageDateDto param) {
+    public Result<GoodsEntity> search(TypePageDateDto param, Integer display) {
         startPage(param);
-        return Result.success(new PageInfo<>(entityMapper.search(param)));
+        return Result.success(new PageInfo<>(entityMapper.search(param, display)));
     }
 
     @Override

+ 0 - 0
gis_service/src/main/java/com/gis/service/impl/MartyrServiceImpl.java


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor