Pārlūkot izejas kodu

已部署项目sit 8.135.106.227

wuweihao 3 gadi atpakaļ
vecāks
revīzija
0fc0847075
31 mainītis faili ar 976 papildinājumiem un 256 dzēšanām
  1. 4 1
      README.md
  2. 23 72
      gis_admin/src/main/java/com/gis/admin/controller/LoginController.java
  3. 8 9
      gis_admin/src/main/java/com/gis/admin/controller/SysRoleController.java
  4. 3 2
      gis_admin/src/main/java/com/gis/admin/controller/SysUserController.java
  5. 14 7
      gis_admin/src/main/java/com/gis/admin/entity/dto/RoleAuthDto.java
  6. 6 0
      gis_admin/src/main/java/com/gis/admin/entity/po/SysRoleEntity.java
  7. 34 35
      gis_admin/src/main/java/com/gis/admin/entity/po/SysRolePermEntity.java
  8. 4 0
      gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java
  9. 7 0
      gis_admin/src/main/java/com/gis/admin/mapper/SysRoleMapper.java
  10. 33 33
      gis_admin/src/main/java/com/gis/admin/mapper/SysRolePermMapper.java
  11. 2 0
      gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java
  12. 8 6
      gis_admin/src/main/java/com/gis/admin/service/SysRoleService.java
  13. 67 47
      gis_admin/src/main/java/com/gis/admin/service/impl/SysRoleServiceImpl.java
  14. 5 31
      gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java
  15. 1 1
      gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java
  16. 37 0
      gis_application/pom.xml
  17. 14 0
      gis_application/src/main/java/com/gis/GisApplication.java
  18. 74 0
      gis_application/src/main/resources/application-dev.properties
  19. 79 0
      gis_application/src/main/resources/application-pro.properties
  20. 75 0
      gis_application/src/main/resources/application-sit.properties
  21. 46 0
      gis_application/src/main/resources/application.properties
  22. 113 0
      gis_application/src/main/resources/data/data_tep.md
  23. 156 0
      gis_application/src/main/resources/logback-spring.xml
  24. 11 0
      gis_application/src/main/resources/sh/shutdown.sh
  25. 123 0
      gis_application/src/main/resources/sh/startJar.sh
  26. 11 0
      gis_application/src/main/resources/sh/startup.sh
  27. 1 1
      gis_cms/src/main/java/com/gis/cms/controller/HotelController.java
  28. 3 0
      gis_cms/src/main/java/com/gis/cms/entity/dto/RoomDto.java
  29. 3 0
      gis_cms/src/main/java/com/gis/cms/entity/po/HotelEntity.java
  30. 4 4
      gis_cms/src/main/java/com/gis/cms/service/impl/HotelServiceImpl.java
  31. 7 7
      gis_common/src/main/java/com/gis/common/util/JwtUtil.java

+ 4 - 1
README.md

@@ -1,3 +1,6 @@
 # gov_zhuhai_isolation 2022-3-24
 
-政企类-香洲区隔离酒店 
+政企类-香洲区隔离酒店 
+
+# sit 
+    2022-3-26 已部署项目sit 8.135.106.227 gov_zhuhai_isolation_8014

+ 23 - 72
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -62,9 +62,15 @@ public class LoginController {
     // 目前是24h
     private static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
 
+    /**
+     *
+     * @param param
+     * @param pwdEncrypt 是否明文登录, 开发调试用
+     * @return
+     */
     @ApiOperation("登录")
     @PostMapping(value = "admin/login")
-    public Result login(@Valid @RequestBody LoginDto param)  {
+    public Result login(@Valid @RequestBody LoginDto param, String pwdEncrypt)  {
 
 
         // 1.获取用户
@@ -76,14 +82,17 @@ public class LoginController {
 
         Long userId = entity.getId();
 
+        boolean decryptName;
+        if ("owen".equals(pwdEncrypt)){ // 测试使用
+            // 不加密
+             decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
+        } else {
+            // 解密密码
+            String password = Base64Converter.decodePassword(param.getPassword());
+            // 验证密码,解密出来是明文密码,在跟输入密码比较
+             decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
+        }
 
-        // 解密密码
-        String password = Base64Converter.decodePassword(param.getPassword());
-        // 验证密码,解密出来是明文密码,在跟输入密码比较
-        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
-
-        // 不加密
-//        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
         if (!decryptName) {
             log.error("密码错误");
             return Result.failure("密码错误");
@@ -97,20 +106,24 @@ public class LoginController {
 
         // 创建新token
         HashMap<String, Object> tokenMap = new HashMap<>();
+
         tokenMap.put("userName", entity.getUserName());
         tokenMap.put("id", userId);
+
+        SysRoleEntity roleEntity = getRole(userId);
         if (entity.getIsAdmin() == 1) {
             // 设置角色权限
             tokenMap.put("roleKey", Arrays.asList("sys_admin"));
+            roleEntity.setPerm("1,2,3");
         }
-        SysRoleEntity roleEntity = getRole(userId);
+
         BaseRuntimeException.isNull(roleEntity, ErrorEnum.FAILURE_SYS_2001);
         tokenMap.put("roleId", roleEntity.getId());
         tokenMap.put("isAdmin", entity.getIsAdmin());
 
         String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
 
-
+        entity.setPerm(roleEntity.getPerm());
         HashMap<String, Object> result = new HashMap<>();
         result.put("user", entity);
         result.put("token", token);
@@ -137,68 +150,6 @@ public class LoginController {
     }
 
 
-    @ApiOperation("test-登录")
-    @PostMapping(value = "admin/testLogin")
-    public Result testLogin(@Valid @RequestBody LoginDto param)  {
-
-
-        // 1.获取用户
-        SysUserEntity entity = userService.findByUserName(param.getUserName());
-        if (entity == null){
-            log.error("用户不存在");
-            return Result.failure("用户不存在");
-        }
-
-        Long userId = entity.getId();
-
-
-        // 解密密码
-//        String password = Base64Converter.decodePassword(param.getPassword());
-        // 验证密码,解密出来是明文密码,在跟输入密码比较
-//        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
-
-        // 不加密
-        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
-        if (!decryptName) {
-            log.error("密码错误");
-            return Result.failure("密码错误");
-        }
-
-        // 检查账号是否启用
-        if (entity.getIsEnabled() != 1) {
-            log.error("此账号已停用: {}", entity.getUserName());
-            return Result.failure("此账号已停用");
-        }
-
-        // 创建新token
-        HashMap<String, Object> tokenMap = new HashMap<>();
-        tokenMap.put("userName", entity.getUserName());
-        tokenMap.put("id", userId);
-        if (entity.getIsAdmin() == 1) {
-            // 设置角色权限
-            tokenMap.put("roleKey", Arrays.asList("sys_admin"));
-        }
-        SysRoleEntity roleEntity = getRole(userId);
-        BaseRuntimeException.isNull(roleEntity, ErrorEnum.FAILURE_SYS_2001);
-        tokenMap.put("roleId", roleEntity.getId());
-        tokenMap.put("isAdmin", entity.getIsAdmin());
-
-        String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
-
-
-        HashMap<String, Object> result = new HashMap<>();
-        result.put("user", entity);
-        result.put("token", token);
-
-        // 保存操作日志
-        saveLog(userId);
-
-        redisUtil.set(configConstant.redisPrefix + token, token, 86400);
-
-
-        return Result.success(result);
-
-    }
 
     @ApiOperation(value = "检查登录状态", notes = "true:已登录, false:已退出")
     @GetMapping("admin/checkLogin")

+ 8 - 9
gis_admin/src/main/java/com/gis/admin/controller/SysRoleController.java

@@ -21,9 +21,9 @@ import javax.validation.Valid;
  * 需要admin权限
  */
 @Slf4j
-@Api(tags = "sys-角色管理")
+@Api(tags = "v0.1-sys-角色管理")
 @RestController
-@RequestMapping("sys/role")
+@RequestMapping("/sys/role")
 @RequiresRoles("sys_admin") //需要admin角色才可以访问此controller
 public class SysRoleController  {
 
@@ -51,14 +51,14 @@ public class SysRoleController  {
 
 
     @WebControllerLog(description = "角色权限-授权", addDb = true)
-    @ApiOperation("授权")
+    @ApiOperation("v0.1-授权")
     @PostMapping("authorize")
     public Result authorize(@Valid @RequestBody RoleAuthDto dto){
         return roleService.authorize(dto);
     }
 
 
-    @ApiOperation("查询角色对应的权限")
+    @ApiOperation("v0.1-查询角色对应的权限")
     @GetMapping("detail/{id}")
     public Result detail(@PathVariable Long id) {
         return roleService.detail(id);
@@ -77,14 +77,13 @@ public class SysRoleController  {
     @GetMapping("remove/{id}")
     public Result remove(@PathVariable Long id){
         return roleService.remove(id);
-
     }
 
 
-    @ApiOperation("获取资源")
-    @GetMapping("getPerm")
-    public Result getPerm() {
-        return roleService.getPerm();
+    @ApiOperation("v0.1-获取资源(酒店)")
+    @GetMapping("getHotel")
+    public Result getHotel() {
+        return roleService.getHotel();
     }
 
 

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

@@ -23,7 +23,7 @@ import javax.validation.Valid;
  */
 @Api(tags = "sys-用户管理")
 @RestController
-@RequestMapping("sys/user")
+@RequestMapping("/sys/user")
 public class SysUserController {
 
     @Autowired
@@ -50,7 +50,8 @@ public class SysUserController {
     @ApiOperation("详情")
     @GetMapping("detail/{id}")
     public Result<SysUserEntity> detail(@PathVariable Long id) {
-        return Result.success(userService.getById(id));
+//        return Result.success(userService.getById(id));
+        return userService.detail(id);
     }
 
     @WebControllerLog(description = "用户管理-修改密码", addDb = true)

+ 14 - 7
gis_admin/src/main/java/com/gis/admin/entity/dto/RoleAuthDto.java

@@ -3,9 +3,8 @@ package com.gis.admin.entity.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import java.util.List;
-import java.util.Map;
 
 
 /**
@@ -16,11 +15,19 @@ public class RoleAuthDto {
 
     @NotNull(message = "角色id不能为空")
     @ApiModelProperty(value = "角色id", required = true)
-    private Long roleId;
+    private Long id;
 
-    @NotNull(message = "角色id不能为空")
-    @ApiModelProperty(value = "权限, key:酒店id, value:数据权限-> 1:编辑 2:是否显示 3:隔离人数, 多个以逗号隔开", required = true)
-//    private List<Map<String, String>> auth;
-    private Map<String, String> auth;
+//    @NotNull(message = "角色id不能为空")
+//    @ApiModelProperty(value = "权限, key:权限id-> 1:编辑 2:是否显示 3:隔离人数, 多个以逗号隔开:, value:酒店id,多个用逗号隔开", required = true)
+////    private List<Map<String, String>> auth;
+//    private Map<String, String> auth;
+
+    @NotBlank(message = "功能权限不能为空")
+    @ApiModelProperty(value = "功能权限", required = true)
+    private String perm;
+
+    @NotBlank(message = "酒店id不能为空")
+    @ApiModelProperty(value = "酒店id", required = true)
+    private String scope;
 
 }

+ 6 - 0
gis_admin/src/main/java/com/gis/admin/entity/po/SysRoleEntity.java

@@ -47,4 +47,10 @@ public class SysRoleEntity extends BaseEntity implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "该角色的用户数")
     private Integer count;
+
+    @ApiModelProperty(value = "权限id 1:编辑 2:是否显示 3:隔离人数, 多个以逗号隔开")
+    private String perm;
+
+    @ApiModelProperty(value = "数据权限, (酒店id)")
+    private String scope;
 }

+ 34 - 35
gis_admin/src/main/java/com/gis/admin/entity/po/SysRolePermEntity.java

@@ -1,35 +1,34 @@
-package com.gis.admin.entity.po;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.gis.common.base.entity.po.BaseEntity;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * Created by owen on 2021/6/28 0010 17:39
- * 角色-权限中间表
- */
-
-@Data
-@TableName(value = "sys_role_perm")
-public class SysRolePermEntity extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = -8093446477843493946L;
-
-    @ApiModelProperty(value = "角色id")
-    private Long roleId;
-
-    @ApiModelProperty(value = "权限id (酒店id)")
-    private Long permId;
-
-    @ApiModelProperty(value = "数据权限, 1:编辑 2:是否显示 3:隔离人数, 多个以逗号隔开")
-    private String scope;
-
-    @TableField(exist  = false)
-    @ApiModelProperty(value = "权限名称")
-    private String permName;
-
-}
+//package com.gis.admin.entity.po;
+//
+//import com.baomidou.mybatisplus.annotation.TableName;
+//import com.gis.common.base.entity.po.BaseEntity;
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//import java.io.Serializable;
+//
+///**
+// * Created by owen on 2021/6/28 0010 17:39
+// * 角色-权限中间表
+// */
+//
+//@Data
+//@TableName(value = "sys_role_perm")
+//public class SysRolePermEntity extends BaseEntity implements Serializable {
+//
+//    private static final long serialVersionUID = -8093446477843493946L;
+//
+//    @ApiModelProperty(value = "角色id")
+//    private Long roleId;
+//
+//    @ApiModelProperty(value = "权限id 1:编辑 2:是否显示 3:隔离人数, 多个以逗号隔开")
+//    private String perm;
+//
+//    @ApiModelProperty(value = "数据权限, (酒店id)")
+//    private String scope;
+//
+////    @TableField(exist  = false)
+////    @ApiModelProperty(value = "权限名称")
+////    private String permName;
+//
+//}

+ 4 - 0
gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java

@@ -48,6 +48,10 @@ public class SysUserEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "缩略图url")
     private String thumb;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "角色权限")
+    private String perm;
+
 
 
 

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

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -55,4 +56,10 @@ public interface SysRoleMapper extends BaseMapper<SysRoleEntity> {
 
     @Select("delete from sys_role where id=#{id}")
     void delById(Long id);
+
+        @Select("select id, name from tb_hotel where is_delete=0")
+    List<Map> getHotel();
+
+    @Select("select scope from sys_role where is_delete=0 and id=#{roleId}")
+    String getScopeById(Long roleId);
 }

+ 33 - 33
gis_admin/src/main/java/com/gis/admin/mapper/SysRolePermMapper.java

@@ -1,33 +1,33 @@
-package com.gis.admin.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.gis.admin.entity.po.SysRoleEntity;
-import com.gis.admin.entity.po.SysRolePermEntity;
-import com.gis.admin.mapper.provider.SysRoleProvider;
-import com.gis.common.base.entity.dto.PageDto;
-import org.apache.ibatis.annotations.*;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-
-/**
- * Created by owen on 2020/2/18 0018 11:13
- */
-@Component
-@Mapper
-public interface SysRolePermMapper extends BaseMapper<SysRolePermEntity> {
-
-
-    @Select("select a.*, b.name as permName from sys_role_perm a left join tb_hotel b on b.id=perm_id where b.is_delete=0 and role_id=#{roleId}")
-    List<SysRolePermEntity> getPermByRoleId(Long roleId);
-
-    @Select("select id, name from tb_hotel where is_delete=0")
-    List<Map> getPerm();
-
-    @Select("select perm_id from sys_role_perm a left join tb_hotel b on b.id=perm_id where b.is_delete=0 and role_id=#{roleId}")
-    List<Long> getPermIdByRoleId(Long roleId);
-}
+//package com.gis.admin.mapper;
+//
+//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.gis.admin.entity.po.SysRoleEntity;
+//import com.gis.admin.entity.po.SysRolePermEntity;
+//import com.gis.admin.mapper.provider.SysRoleProvider;
+//import com.gis.common.base.entity.dto.PageDto;
+//import org.apache.ibatis.annotations.*;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.List;
+//import java.util.Map;
+//import java.util.Set;
+//
+//
+///**
+// * Created by owen on 2020/2/18 0018 11:13
+// */
+//@Component
+//@Mapper
+//public interface SysRolePermMapper extends BaseMapper<SysRolePermEntity> {
+//
+//
+//    @Select("select a.*, b.name as permName from sys_role_perm a left join tb_hotel b on b.id=perm_id where b.is_delete=0 and role_id=#{roleId}")
+//    List<SysRolePermEntity> getPermByRoleId(Long roleId);
+//
+//    @Select("select id, name from tb_hotel where is_delete=0")
+//    List<Map> getPerm();
+//
+//    @Select("select perm_id from sys_role_perm a left join tb_hotel b on b.id=perm_id where b.is_delete=0 and role_id=#{roleId}")
+//    List<Long> getPermIdByRoleId(Long roleId);
+//}

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

@@ -36,4 +36,6 @@ public interface SysUserMapper extends BaseMapper<SysUserEntity> {
     @SelectProvider(type = SysUserProvider.class, method = "search")
     List<SysUserEntity> search(UserPageDateDto param);
 
+    @Select("select a.*, c.perm as perm from sys_user a left join sys_user_role b on b.user_id=a.id left join sys_role c on c.id=b.role_id where a.is_delete=0 and a.id=#{id}")
+    SysUserEntity mpDetail(Long id);
 }

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

@@ -16,9 +16,9 @@ import java.util.Set;
  */
 public interface SysRoleService extends IService<SysRoleEntity> {
 
-    void saveRoleResource(Long roleId, Long resourceId);
+//    void saveRoleResource(Long roleId, Long resourceId);
 
-    void deleteRoleResource(Long roleId);
+//    void deleteRoleResource(Long roleId);
 
     Set<String> findRoleKeyByUserId(Long userId);
 
@@ -26,9 +26,9 @@ public interface SysRoleService extends IService<SysRoleEntity> {
 
     Result search(PageDto param);
 
-    void deleteUserRoleByUserId(Long userId);
+//    void deleteUserRoleByUserId(Long userId);
 
-    void saveUserRole(Long userId, Long roleId);
+//    void saveUserRole(Long userId, Long roleId);
 
     Result remove(Long id);
 
@@ -44,8 +44,10 @@ public interface SysRoleService extends IService<SysRoleEntity> {
 
     Result authorize(RoleAuthDto param);
 
-    Result getPerm();
+    Result getHotel();
 
-    List<Long> getPermIdByRoleId(Long roleId);
+    List<String> getScopeById(Long roleId);
+
+//    List<Long> getPermIdByRoleId(Long roleId);
 
 }

+ 67 - 47
gis_admin/src/main/java/com/gis/admin/service/impl/SysRoleServiceImpl.java

@@ -1,12 +1,11 @@
 package com.gis.admin.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.admin.entity.dto.RoleAuthDto;
-import com.gis.admin.entity.po.SysRolePermEntity;
-import com.gis.admin.mapper.SysRolePermMapper;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.constant.ErrorEnum;
@@ -38,18 +37,18 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
     @Autowired
     SysRoleMapper entityMapper;
 
-    @Autowired
-    SysRolePermMapper rolePermMapper;
+//    @Autowired
+//    SysRolePermMapper rolePermMapper;
 
-    @Override
-    public void saveRoleResource(Long roleId, Long resourceId) {
-        entityMapper.saveRoleResource(roleId, resourceId);
-    }
-
-    @Override
-    public void deleteRoleResource(Long roleId) {
-        entityMapper.deleteRoleResource(roleId);
-    }
+//    @Override
+//    public void saveRoleResource(Long roleId, Long resourceId) {
+//        entityMapper.saveRoleResource(roleId, resourceId);
+//    }
+//
+//    @Override
+//    public void deleteRoleResource(Long roleId) {
+//        entityMapper.deleteRoleResource(roleId);
+//    }
 
 
     @Override
@@ -98,15 +97,15 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
         return Result.success();
     }
 
-    @Override
-    public void deleteUserRoleByUserId(Long userId) {
-        entityMapper.deleteUserRoleByUserId(userId);
-    }
-
-    @Override
-    public void saveUserRole(Long userId, Long roleId) {
-        entityMapper.saveUserRole(userId, roleId);
-    }
+//    @Override
+//    public void deleteUserRoleByUserId(Long userId) {
+//        entityMapper.deleteUserRoleByUserId(userId);
+//    }
+//
+//    @Override
+//    public void saveUserRole(Long userId, Long roleId) {
+//        entityMapper.saveUserRole(userId, roleId);
+//    }
 
     /**
      * 删除角色
@@ -139,22 +138,22 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
     public Result detail(Long roleId) {
         SysRoleEntity roleEntity = this.getById(roleId);
 
-        HashMap<Object, Object> resultMap = new HashMap<>();
-        resultMap.put("role", roleEntity);
-        resultMap.put("permission", getPermByRoleId(roleId));
+//        HashMap<Object, Object> resultMap = new HashMap<>();
+//        resultMap.put("role", roleEntity);
+//        resultMap.put("permission", getPermByRoleId(roleId));
 
-        return Result.success(resultMap);
+        return Result.success(roleEntity);
     }
 
-    private List<SysRolePermEntity> getPermByRoleId(Long roleId){
-       List<SysRolePermEntity> list = rolePermMapper.getPermByRoleId(roleId);
-       return list;
-    }
+//    private List<SysRolePermEntity> getPermByRoleId(Long roleId){
+//       List<SysRolePermEntity> list = rolePermMapper.getPermByRoleId(roleId);
+//       return list;
+//    }
 
-    @Override
-    public List<Long> getPermIdByRoleId(Long roleId){
-        return rolePermMapper.getPermIdByRoleId(roleId);
-    }
+//    @Override
+//    public List<Long> getPermIdByRoleId(Long roleId){
+//        return rolePermMapper.getPermIdByRoleId(roleId);
+//    }
 
     @Override
     public Result editStatus(Long id, Integer isDisable) {
@@ -183,28 +182,49 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
     @Override
     public Result authorize(RoleAuthDto param) {
         // 先删除旧权限, 再重新添加
-        Long roleId = param.getRoleId();
-        deleteRoleResource(roleId);
+//        Long roleId = param.getRoleId();
+//        deleteRoleResource(roleId);
 
         // 保存数据
-        Map<String, String> auth = param.getAuth();
-        SysRolePermEntity entity;
-        for (Map.Entry<String, String> mp : auth.entrySet()) {
-            entity = new SysRolePermEntity();
-            entity.setRoleId(roleId);
-            entity.setPermId(Long.valueOf(mp.getKey()));
-            entity.setScope(mp.getValue());
-            rolePermMapper.insert(entity);
-        }
+//        Map<String, String> auth = param.getAuth();
+//        SysRolePermEntity entity;
+//        for (Map.Entry<String, String> mp : auth.entrySet()) {
+//            entity = new SysRolePermEntity();
+//            entity.setRoleId(roleId);
+//            entity.setPermId(Long.valueOf(mp.getKey()));
+//            entity.setScope(mp.getValue());
+//            rolePermMapper.insert(entity);
+//        }
+
+//        SysRolePermEntity entity = new SysRolePermEntity();
+//        BeanUtils.copyProperties(param, entity);
+//        rolePermMapper.insert(entity);
+
+        SysRoleEntity entity = this.getById(param.getId());
+        BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+
+        BeanUtils.copyProperties(param, entity);
+
+        this.updateById(entity);
+
         return Result.success();
     }
 
     @Override
-    public Result getPerm() {
-        List<Map> list = rolePermMapper.getPerm();
+    public Result getHotel() {
+        List<Map> list = entityMapper.getHotel();
         return Result.success(list);
     }
 
+    @Override
+    public List<String> getScopeById(Long roleId) {
+        String hotelIds = entityMapper.getScopeById(roleId);
+        BaseRuntimeException.isBlank(hotelIds, ErrorEnum.FAILURE_SYS_2001);
+        String[] split = hotelIds.split(",");
+        return Arrays.asList(split);
+
+    }
+
 
     /**
      * 检查角色名称

+ 5 - 31
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -97,9 +97,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
                 log.error("管理员账户不能删除 {}", entity.getId());
                 return Result.failure("管理员账户不能删除");
             }
-//            entity.setIsDelete(1);
-//            entity.setUpdateTime(LocalDateTime.now());
-//            this.update(entity);
         }
         this.removeByIds(idList);
 
@@ -113,8 +110,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
         IPage<SysUserEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
         LambdaQueryWrapper<SysUserEntity> wrapper = new LambdaQueryWrapper<>();
 
-//            wrapper.eq(SysUserEntity::getIsEnabled, 1);
-
 
         String startTime = param.getStartTime();
         String endTime = param.getEndTime();
@@ -135,20 +130,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
     }
 
 
-    private void updatePassword(PasswordDto param) {
-//        SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
-//
-//        // 验证原密码
-//        Boolean isBoolean = PasswordUtils.decrypt(user.getPassword(), param.getOldPassword(), PasswordUtils.getStaticSalt());
-//        if (!isBoolean) {
-//            log.error("原始密码错误");
-//            throw new BaseRuntimeException("原始密码错误");
-//        }
-//
-//        user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
-//        user.setUpdateTime(LocalDateTime.now());
-//        this.update(user);
-    }
+
 
     @Override
     public Result updatePwd(PasswordDto param) {
@@ -159,7 +141,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
         param.setOldPassword(oldPassword);
         SysUserEntity user = this.findByUserName(JwtUtil.getUsername(request.getHeader("token")));
         updatePwd(param, user, true);
-//        updatePassword(param);
         return Result.success();
     }
 
@@ -176,7 +157,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
 
         user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
         user.setUpdateTime(LocalDateTime.now());
-//        this.saveOrUpdate(user);
         this.updateById(user);
     }
 
@@ -236,12 +216,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
         entity.setIsEnabled(1);
         this.save(entity);
 
-        // 设置默认角色, 2:sys_visitor游客角色
-        Long userId = entity.getId();
-//        sysRoleService.saveUserRole(userId, Long.valueOf("2"));
-
-        // 保存操作日志
-//        logService.save(new LogEntity(userId,"用户注册","新增用户", request.getRemoteAddr()));
         return Result.success();
     }
 
@@ -249,7 +223,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
 
     @Override
     public Result<SysUserEntity> detail(Long id) {
-        SysUserEntity user = this.getById(id);
+        SysUserEntity user = entityMapper.mpDetail(id);
+        if (user.getIsAdmin() == 1){
+            user.setPerm("1,2,3");
+        }
         return Result.success(user);
     }
 
@@ -261,7 +238,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
      */
     @Override
     public Result retrievePassword(ResetPasswordDto param) {
-        String userName = param.getUserName();
         SysUserEntity entity = entityMapper.findByUserName(param.getUserName());
         if (entity == null) {
             return Result.success(false);
@@ -271,11 +247,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
             return Result.success(false);
         }
 
-        String redisKey = RESET_PASSWORD_KEY + userName;
         String code = RandomUtil.randomString(9);
 
         // code 有效期5分钟
-//        redisUtil.set(redisKey, code , 300);
         return Result.success((Object) code);
     }
 

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

@@ -90,7 +90,7 @@ public class ShiroRealm extends AuthorizingRealm {
         String token = request.getHeader("token");
 //        log.info("token: {}", token);
         if (StringUtils.isNotBlank(token)){
-            List userRole = JwtUtil.getUserRole(token);
+            List userRole = JwtUtil.getRoleKey(token);
 //            userId = JwtUtil.getUserId(token);
             // list to set 添加角色sys_admin,sys
             if (CollectionUtil.isNotEmpty(userRole)){

+ 37 - 0
gis_application/pom.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>gov_zhuhai_isolation</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>gis_application</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_admin</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_cms</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+        <finalName>${parent.artifactId}</finalName>
+    </build>
+</project>

+ 14 - 0
gis_application/src/main/java/com/gis/GisApplication.java

@@ -0,0 +1,14 @@
+package com.gis;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+
+@SpringBootApplication
+public class GisApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GisApplication.class, args);
+    }
+
+}

+ 74 - 0
gis_application/src/main/resources/application-dev.properties

@@ -0,0 +1,74 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://8.135.106.227:3306/${project.en}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.password=4dkk2021testproject%
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09
+spring.redis.database=0
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+spring.redis.password=
+# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4 \u5355\u4F4D ms\uFF08\u6BEB\u79D2\uFF09
+spring.redis.timeout=3000ms
+# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F8\u3002
+spring.redis.jedis.pool.max-idle=8
+#\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F0\u3002
+spring.redis.jedis.pool.min-idle=0
+# \u5982\u679C\u8D4B\u503C\u4E3A-1\uFF0C\u5219\u8868\u793A\u4E0D\u9650\u5236\uFF1B\u5982\u679Cpool\u5DF2\u7ECF\u5206\u914D\u4E86maxActive\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u5219\u6B64\u65F6pool\u7684\u72B6\u6001\u4E3Aexhausted(\u8017\u5C3D)\u3002
+spring.redis.jedis.pool.max-active=8
+# \u7B49\u5F85\u53EF\u7528\u8FDE\u63A5\u7684\u6700\u5927\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF0C\u9ED8\u8BA4\u503C\u4E3A-1\uFF0C\u8868\u793A\u6C38\u4E0D\u8D85\u65F6\u3002\u5982\u679C\u8D85\u8FC7\u7B49\u5F85\u65F6\u95F4\uFF0C\u5219\u76F4\u63A5\u629B\u51FAJedisConnectionException
+spring.redis.jedis.pool.max-wait=-1ms
+
+
+#log
+logging.file.path=E:/log/${project.en}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+# file info
+server.file.path=E:\\data\\${project.en}_data
+
+
+#
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84\uFF0C \u6CE8\u610Ffile\u540E\u9762\u7684/ \uFF0Cwindows:\\  , linxu:\u5168\u8DEF\u5F84, \u4E0D\u9700\u8981\u7279\u522B\u52A0\u659C\u6760
+spring.resources.static-locations=file:\\${server.file.path}
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+swagger.package=com.gis
+swagger.title=${project.sc}-dev
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+
+
+
+
+

+ 79 - 0
gis_application/src/main/resources/application-pro.properties

@@ -0,0 +1,79 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://pengcheng-mysql:3306/${project.en}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.password=4dkk2021testproject%
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09
+spring.redis.database=0
+spring.redis.host=pengcheng-redis
+spring.redis.port=6379
+spring.redis.password=
+# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4 \u5355\u4F4D ms\uFF08\u6BEB\u79D2\uFF09
+spring.redis.timeout=3000ms
+# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F8\u3002
+spring.redis.jedis.pool.max-idle=8
+#\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F0\u3002
+spring.redis.jedis.pool.min-idle=0
+# \u5982\u679C\u8D4B\u503C\u4E3A-1\uFF0C\u5219\u8868\u793A\u4E0D\u9650\u5236\uFF1B\u5982\u679Cpool\u5DF2\u7ECF\u5206\u914D\u4E86maxActive\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u5219\u6B64\u65F6pool\u7684\u72B6\u6001\u4E3Aexhausted(\u8017\u5C3D)\u3002
+spring.redis.jedis.pool.max-active=8
+# \u7B49\u5F85\u53EF\u7528\u8FDE\u63A5\u7684\u6700\u5927\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF0C\u9ED8\u8BA4\u503C\u4E3A-1\uFF0C\u8868\u793A\u6C38\u4E0D\u8D85\u65F6\u3002\u5982\u679C\u8D85\u8FC7\u7B49\u5F85\u65F6\u95F4\uFF0C\u5219\u76F4\u63A5\u629B\u51FAJedisConnectionException
+spring.redis.jedis.pool.max-wait=-1ms
+
+
+#log
+logging.file.path=/root/log/${project.en}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+# file info
+server.file.path=/root/data/${project.en}_data
+#\u8BBF\u95EE\u57DF\u540D+\u7AEF\u53E3
+server.domain=
+
+#
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84\uFF0C \u6CE8\u610Ffile\u540E\u9762\u7684/ \uFF0Cwindows:\\  , linxu:\u5168\u8DEF\u5F84, \u4E0D\u9700\u8981\u7279\u522B\u52A0\u659C\u6760
+spring.resources.static-locations=file:${server.file.path}
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+
+
+swagger.package=com.gis
+swagger.title=${project.sc}-sit
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+#swagger login
+knife4j.basic.enable=true
+knife4j.basic.username=owen
+knife4j.basic.password=owen
+
+
+

+ 75 - 0
gis_application/src/main/resources/application-sit.properties

@@ -0,0 +1,75 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://8.135.106.227:3306/${project.en}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.password=4dkk2021testproject%
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09
+spring.redis.database=0
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+spring.redis.password=
+# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4 \u5355\u4F4D ms\uFF08\u6BEB\u79D2\uFF09
+spring.redis.timeout=3000ms
+# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F8\u3002
+spring.redis.jedis.pool.max-idle=8
+#\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F0\u3002
+spring.redis.jedis.pool.min-idle=0
+# \u5982\u679C\u8D4B\u503C\u4E3A-1\uFF0C\u5219\u8868\u793A\u4E0D\u9650\u5236\uFF1B\u5982\u679Cpool\u5DF2\u7ECF\u5206\u914D\u4E86maxActive\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u5219\u6B64\u65F6pool\u7684\u72B6\u6001\u4E3Aexhausted(\u8017\u5C3D)\u3002
+spring.redis.jedis.pool.max-active=8
+# \u7B49\u5F85\u53EF\u7528\u8FDE\u63A5\u7684\u6700\u5927\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF0C\u9ED8\u8BA4\u503C\u4E3A-1\uFF0C\u8868\u793A\u6C38\u4E0D\u8D85\u65F6\u3002\u5982\u679C\u8D85\u8FC7\u7B49\u5F85\u65F6\u95F4\uFF0C\u5219\u76F4\u63A5\u629B\u51FAJedisConnectionException
+spring.redis.jedis.pool.max-wait=-1ms
+
+
+#log
+logging.file.path=/root/log/${project.en}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+# file info
+server.file.path=/root/data/${project.en}_data
+
+
+
+#
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84\uFF0C \u6CE8\u610Ffile\u540E\u9762\u7684/ \uFF0Cwindows:\\  , linxu:\u5168\u8DEF\u5F84, \u4E0D\u9700\u8981\u7279\u522B\u52A0\u659C\u6760
+spring.resources.static-locations=file:${server.file.path}
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+swagger.package=com.gis
+swagger.title=${project.sc}-sit
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+
+
+
+
+

+ 46 - 0
gis_application/src/main/resources/application.properties

@@ -0,0 +1,46 @@
+server.port=8005
+
+spring.profiles.active=dev
+
+# \u9879\u76EE\u540D\u79F0
+project.en=gov_zhuhai_isolation
+project.sc=\u9999\u6D32\u533A-\u9694\u79BB\u9152\u5E97
+# redis token \u524D\u7F00
+redis.prefix=${project.en}:token:
+
+# \u5141\u8BB8\u4E0A\u4F20\u6587\u4EF6\u540E\u7F00
+server.file.allow=.jpg,.gif,.png,.ico,.bmp,.jpeg,.zip,.zp,.rar,.mp3,.mp4,.avi,.mov,.flv,.3gp,.rmvb,.4dage,.wav,.wma,.m4a,.obj,.pdf,.audio,.ppt,.pptx,.xls,.doc,.docx,.txt
+
+
+
+# \u8BBF\u95EE\u9759\u6001\u8D44\u6E90\u8BBE\u7F6E
+spring.resources.static-locations=classpath:templates/,classpath:static/,classpath:web/
+
+#\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F
+spring.servlet.multipart.enabled=true
+spring.servlet.multipart.max-file-size=2048MB
+spring.servlet.multipart.max-request-size=2048MB
+
+
+#\u5F00\u542Fsql\u65E5\u5FD7
+mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
+# \u8BE5\u914D\u7F6E\u5C31\u662F\u5C06\u5E26\u6709\u4E0B\u5212\u7EBF\u7684\u8868\u5B57\u6BB5\u6620\u5C04\u4E3A\u9A7C\u5CF0\u683C\u5F0F\u7684\u5B9E\u4F53\u7C7B\u5C5E\u6027
+mybatis-plus.configuration.map-underscore-to-camel-case=true
+mybatis-plus.configuration.call-setters-on-nulls=true
+# \u903B\u8F91\u5220\u9664\u8BBE\u7F6E
+mybatis-plus.global-config.db-config.logic-delete-value=1
+mybatis-plus.global-config.db-config.logic-not-delete-value=0
+mybatis-plus.global-config.db-config.logic-delete-field = isDelete
+mybatis-plus.mapper-locations=classpath*:/mappers/**.xml
+
+
+
+
+
+
+
+
+
+
+
+

+ 113 - 0
gis_application/src/main/resources/data/data_tep.md

@@ -0,0 +1,113 @@
+
+园区概况:
+
+//    @ApiModelProperty(value = "综合大楼")
+//    private String complexBuilding;
+//
+//    @ApiModelProperty(value = "学术交流中心")
+//    private String exchangeCentre;
+//
+//    @ApiModelProperty(value = "公寓楼")
+//    private String apartment;
+//
+//    @ApiModelProperty(value = "综合服务中心")
+//    private String serviceCentre ;
+//
+//    @ApiModelProperty(value = "科研楼")
+//    private String scientificBuilding;
+
+{
+  "complexBuilding": "1",
+  "exchangeCentre": "2",
+  "apartment": "3",
+  "serviceCentre": "2",
+  "scientificBuilding": "2"
+}
+
+
+物联网设备-设备统计
+{
+"id":1,
+"data":{
+  "camera": "1",
+  "cruiser": "1",
+  "door": "1",
+  "aerial": "1"
+},
+"type":"statistics"
+}
+
+物联网设备-设备情况
+{
+"id":2,
+"data":{
+  "cameraStart": "1",
+  "cameraStop": "1",
+  "cruiserStart": "1",
+  "cruiserStop": "1",
+  "doorStart": "1",
+  "doorStop": "1",
+  "aerialStart": "1",
+  "aerialStop": "1"
+},
+"type":"info"
+}
+
+
+能耗管理
+{
+"1":"1",
+"2":"1",
+"3":"1",
+"4":"1",
+"5":"1",
+"6":"1",
+"7":"1",
+"8":"1",
+"9":"1",
+"10":"1",
+"11":"1",
+"12":"1"
+}
+
+
+安防管理-摄像头信息
+{
+"total":"1",
+"alive":"1",
+"normal":"1",
+"error":"1",
+"indoor":"1",
+"outdoor":"1"
+}
+
+
+工地监控-环境情况
+{
+"temp":"1",
+"tempScope":"1",
+"humidity":"1",
+"pm25Scope":"1",
+"pm25Scope":"1",
+"pm10":"1",
+"noise":"1",
+"windSpeed":"1",
+"aiq":"1",
+"tsp":"1"
+}
+
+
+无人机巡检-无人机监控情况
+{
+"check":"1",
+"photo":"1",
+"video":"1"
+}
+
+
+无人机巡检-巡检管理
+{
+"visualAerial":"1",
+"crossAerial ":"1",
+"spiralAerial ":"1"
+}

+ 156 - 0
gis_application/src/main/resources/logback-spring.xml

@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <property name="LOG_MAX_HISTORY" value="180"/>
+    <springProperty scope="context" name="LOG_PATH" source="logging.path"/>
+
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+            <pattern>${LOG_PATH}/%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{50} - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件:主项目日志 -->
+    <appender name="file.all" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 追加日志到原文件结尾 -->
+        <Prudent>true</Prudent>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名 -->
+            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{500} - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+    </appender>
+
+    <!--info日志统一输出到这里-->
+    <appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <Prudent>true</Prudent>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名 每小时生成日志文件 -->
+            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/info/console-info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
+            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
+            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+        <!-- 此日志文件只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--错误日志统一输出到这里-->
+    <appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <Prudent>true</Prudent>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error/console-error.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
+            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+        <!-- 此日志文件只记录error级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--warn日志统一输出到这里-->
+    <appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <Prudent>true</Prudent>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名 按小时生成日志-->
+            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/warn/console-warn.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
+            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+        <!-- 此日志文件只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--debug级别日志统一输出到这里-->
+    <appender name="file.debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <Prudent>true</Prudent>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名 按小时生成日志-->
+            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/debug/console-debug.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <!-- 除按日志记录之外,还配置了日志文件不能超过5M,若超过5M,日志文件会以索引0开始,命名日志文件,例如console-debug.2018-08-24-09.1.log -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
+            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
+            <!--<charset>utf-8</charset>-->
+        </encoder>
+        <!-- 此日志文件只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY </onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
+    <appender name="file.async" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="file.all" />
+    </appender>
+
+    <!--  日志输出级别 -->
+    <!-- TRACE\DEBUG\INFO\WARN\ERROR\FATAL\OFF -->
+    <root level="INFO">
+        <appender-ref ref="console" />
+        <appender-ref ref="file.async"/>
+        <appender-ref ref="file.error" />
+        <appender-ref ref="file.info" />
+        <appender-ref ref="file.debug" />
+        <appender-ref ref="file.warn" />
+    </root>
+
+</configuration>

+ 11 - 0
gis_application/src/main/resources/sh/shutdown.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+RESOURCE_NAME=gov_zhuhai_isolation.jar
+   Pid=`awk '{print $1}' tpid`
+
+if [ ${Pid} ]; then
+kill -9 $Pid
+echo 'Kill Process!'
+else
+echo 'Stop failed!'
+fi
+

+ 123 - 0
gis_application/src/main/resources/sh/startJar.sh

@@ -0,0 +1,123 @@
+APP_NAME=
+APP_DEBUG=
+
+usage() {
+    echo "case: sh run.sh [start|stop|restart|status]"
+    echo "请类似这样执行 ./*.sh start   or  ./*sh restart"
+    exit 1
+}
+
+checkEnv(){
+      if [ -z "${APP_NAME}" ] || [ -z "${APP_DEBUG}" ]; then #判断pid是否为空
+           if [[ $1 = 'prod' ]];   then
+                        echo "prod start"
+                        APP_NAME=changeing-prod.jar
+                        APP_DEBUG=5526
+                      elif  [[ $1 = 'uat' ]] ; then
+                        echo "uat start"
+                        APP_NAME=changeing-uat.jar
+                        APP_DEBUG=5520
+                      elif  [[ $1 = 'devuat' ]] ; then
+                        echo "devuat start"
+                        APP_NAME=changeing-devuat.jar
+                        APP_DEBUG=5526
+                      else
+                        echo "没有设置环境"
+            fi
+     # else
+         #    echo "已经设置-${APP_NAME}-${APP_DEBUG}"
+     fi
+}
+
+# 判断当前服务是否已经启动的函数
+is_exist(){
+    checkEnv $1
+    pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
+    if [ -z "${pid}" ]; then #判断pid是否为空
+        echo "pid 不存在"
+        return 1
+    else
+        echo "pid 存在"
+        return 0
+    fi
+}
+
+
+start(){
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
+        echo "${APP_NAME} running. pid=${pid}"
+    else
+        nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${APP_DEBUG} $APP_NAME > logs.log 2>error.log &  # 说明pid为空
+        # 执行java -jar 命令启动服务
+        echo "${APP_NAME} started启动"
+    fi
+}
+
+
+stop(){
+    echo "执行 stop 方法"
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
+        kill -9 $pid
+        echo "${pid} stopped-停止"
+    else
+        echo "${APP_NAME} 没有运行"
+    fi
+}
+
+
+status(){
+    echo "执行 status 方法"
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then
+        echo "${APP_NAME} running-启动. Pid is ${pid}"
+    else
+        echo "${APP_NAME} 没有运行"
+    fi
+}
+
+
+# 重启命令其实就是先执行关闭命令 再执行重启命令
+restart(){
+        echo "执行 restart 方法"
+        checkEnv $1
+        is_exist
+        if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
+            kill -9 $pid
+            echo "${pid} stopped-停止"
+        else
+            echo "${APP_NAME} 没有运行"
+        fi
+        sleep 5
+        is_exist
+        if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
+            echo "${APP_NAME} running. pid=${pid}"
+        else
+            nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${APP_DEBUG} $APP_NAME > logs.log 2>error.log &  # 说明pid为空 执行java -jar 命令启动服务
+            echo "${APP_NAME} started启动"
+        fi
+}
+
+
+# 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
+case "$1" in
+    "start")
+        start $2
+        ;;
+    "stop")
+        stop $2
+        ;;
+    "status")
+        status $2
+        ;;
+    "restart")
+        restart $2
+        ;;
+    *)
+    usage
+    ;;
+esac

+ 11 - 0
gis_application/src/main/resources/sh/startup.sh

@@ -0,0 +1,11 @@
+#!/bin/sh
+RESOURCE_NAME=gov_zhuhai_isolation.jar
+APP_DEBUG=5005
+rm -f tpid
+nohup java -jar -Xmx3072M -Xms512M ./$RESOURCE_NAME --spring.profiles.active=sit --server.port=8014 & echo $! > tpid
+echo Start Success!
+
+
+
+
+

+ 1 - 1
gis_cms/src/main/java/com/gis/cms/controller/HotelController.java

@@ -61,7 +61,7 @@ public class HotelController {
 
 
     @ApiOperation("房间数据-编辑")
-    @GetMapping("roomEdit")
+    @PostMapping("roomEdit")
     public Result<HotelEntity> roomEdit(@Valid @RequestBody RoomDto param) {
         return entityService.roomEdit(param);
     }

+ 3 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/RoomDto.java

@@ -20,4 +20,7 @@ public class RoomDto {
 
     @ApiModelProperty(value = "可用")
     private Integer usable;
+
+    @ApiModelProperty(value = "其他房间数")
+    private Integer other;
 }

+ 3 - 0
gis_cms/src/main/java/com/gis/cms/entity/po/HotelEntity.java

@@ -58,6 +58,9 @@ public class HotelEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "可用")
     private Integer usable;
 
+    @ApiModelProperty(value = "其他房间数")
+    private Integer other;
+
 
     @ApiModelProperty(value = "创建者id")
     private Long creatorId;

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

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.gis.admin.mapper.SysRolePermMapper;
 import com.gis.admin.service.SysRoleService;
 import com.gis.cms.entity.dto.HotelDto;
 import com.gis.cms.entity.dto.HotelPageDto;
@@ -47,8 +46,7 @@ public class HotelServiceImpl extends ServiceImpl<HotelMapper, HotelEntity> impl
 
         Long roleId = iBaseService.getRoleId();
         log.info("角色id: {}", roleId);
-        List<Long> permIds = roleService.getPermIdByRoleId(roleId);
-        log.info("酒店id: {}", permIds);
+
 
 
         BaseUtil.startPage(param);
@@ -73,7 +71,9 @@ public class HotelServiceImpl extends ServiceImpl<HotelMapper, HotelEntity> impl
         Integer isAdmin = iBaseService.getIsAdmin();
         if (isAdmin != 1){
             log.info("非管理员查询");
-            wrapper.in(HotelEntity::getId, permIds);
+            List<String> hotelIds = roleService.getScopeById(roleId);
+            log.info("酒店id: {}", hotelIds);
+            wrapper.in(HotelEntity::getId, hotelIds);
         }
 
         String searchKey = param.getSearchKey();

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

@@ -134,9 +134,9 @@ public class JwtUtil {
     }
 
 
-    public static List getUserRole(String token) {
+    public static List getRoleKey(String token) {
         DecodedJWT jwt = JWT.decode(token);
-        Claim role = jwt.getClaim("role");
+        Claim role = jwt.getClaim("roleKey");
         Assert.notNull(role, "token role is null ");
         return role.as(List.class);
     }
@@ -239,11 +239,11 @@ public class JwtUtil {
         System.out.println(exp);
     }
 
-    public static void test2() {
-        String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGUiOlsiYWRtaW4iLCJyb290Il0sImlkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIiwiaWF0IjoxNTgzODA5MzkzLCJqdGkiOiJkNjZiZTFkYi00MTQ0LTQxMTYtYTNlNi01ZDBjNjhlNTI3ODAifQ.-4AdsVP2RwmPS2grtO4aC8ov9PwkilzaGdThGetBJok";
-        System.out.println(getUserRole(token));
-
-    }
+//    public static void test2() {
+//        String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGUiOlsiYWRtaW4iLCJyb290Il0sImlkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIiwiaWF0IjoxNTgzODA5MzkzLCJqdGkiOiJkNjZiZTFkYi00MTQ0LTQxMTYtYTNlNi01ZDBjNjhlNTI3ODAifQ.-4AdsVP2RwmPS2grtO4aC8ov9PwkilzaGdThGetBJok";
+//        System.out.println(getUserRole(token));
+//
+//    }
 
     public static void test3() {
         HashMap<String, Object> map = new HashMap<>();