Browse Source

权限管理模块-登录接口开发

songxinlu 3 years ago
parent
commit
683195d930
44 changed files with 1289 additions and 133 deletions
  1. 114 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/MenuInfo.java
  2. 96 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/Organize.java
  3. 78 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/Role.java
  4. 46 34
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/User.java
  5. 72 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/UserRole.java
  6. 15 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/MenuInfoFacade.java
  7. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/OrganizeFacade.java
  8. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/RoleFacade.java
  9. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/UserRoleFacade.java
  10. 26 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/MenuInfoMapper.java
  11. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/OrganizeMapper.java
  12. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/RoleMapper.java
  13. 5 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/UserMapper.java
  14. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/UserRoleMapper.java
  15. 13 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/MenuInfoService.java
  16. 13 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/OrganizeService.java
  17. 13 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/RoleService.java
  18. 13 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/UserRoleService.java
  19. 18 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/MenuInfoServiceImpl.java
  20. 17 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/OrganizeServiceImpl.java
  21. 17 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/RoleServiceImpl.java
  22. 17 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/UserRoleServiceImpl.java
  23. 1 1
      dblayer-mbg/src/main/resources/application.yml
  24. 26 0
      dblayer-mbg/src/main/resources/mapper/MenuInfoMapper.xml
  25. 5 0
      dblayer-mbg/src/main/resources/mapper/OrganizeMapper.xml
  26. 5 0
      dblayer-mbg/src/main/resources/mapper/RoleMapper.xml
  27. 38 0
      dblayer-mbg/src/main/resources/mapper/UserMapper.xml
  28. 5 0
      dblayer-mbg/src/main/resources/mapper/UserRoleMapper.xml
  29. 24 0
      dblayer-mbg/src/main/resources/mapper/base/BaseMenuInfoMapper.xml
  30. 21 0
      dblayer-mbg/src/main/resources/mapper/base/BaseOrganizeMapper.xml
  31. 18 0
      dblayer-mbg/src/main/resources/mapper/base/BaseRoleMapper.xml
  32. 10 8
      dblayer-mbg/src/main/resources/mapper/base/BaseUserMapper.xml
  33. 17 0
      dblayer-mbg/src/main/resources/mapper/base/BaseUserRoleMapper.xml
  34. 3 3
      dblayer-mbg/src/test/java/com/lantone/dblayermbg/CodeAutoGenerator.java
  35. 6 2
      security-center/src/main/java/com/lantone/security/dto/JwtDTO.java
  36. 98 0
      security-center/src/main/java/com/lantone/security/dto/MenuInfoDTO.java
  37. 81 0
      security-center/src/main/java/com/lantone/security/dto/OrganizeDTO.java
  38. 3 2
      security-center/src/main/java/com/lantone/security/enums/ConstantEnum.java
  39. 141 0
      security-center/src/main/java/com/lantone/security/facade/UserLoginFacade.java
  40. 102 0
      security-center/src/main/java/com/lantone/security/facade/UserMenuInfoFacade.java
  41. 4 6
      security-center/src/main/java/com/lantone/security/service/UrlUserService.java
  42. 18 0
      security-center/src/main/java/com/lantone/security/vo/SysUserBaseVO.java
  43. 6 3
      security-center/src/main/java/com/lantone/security/web/SysUserController.java
  44. 0 74
      security-center/src/main/resources/bootstrap.yml

+ 114 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/MenuInfo.java

@@ -0,0 +1,114 @@
+package com.lantone.dblayermbg.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 菜单功能表
+ * </p>
+ */
+@Data
+@TableName("sys_menu_info")
+public class MenuInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 父级编号
+     */
+    @TableField("parent_id")
+    private Long parentId;
+
+    /**
+     * 系统id
+     */
+    @TableField("system_id")
+    private Long systemId;
+
+    /**
+     * 功能名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 类型:0:目录,1菜单,2按钮,3:超链接
+     */
+    @TableField("type")
+    private String type;
+
+    /**
+     * 页面路由
+     */
+    @TableField("url")
+    private String url;
+
+    /**
+     * 权限标识
+     */
+    @TableField("permission")
+    private String permission;
+
+    /**
+     * 图标
+     */
+    @TableField("icon")
+    private String icon;
+
+    /**
+     * 排序
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 状态 0:禁用,1:启用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 描述
+     */
+    @TableField("describe")
+    private String describe;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 创建用户编号
+     */
+    @TableField("creator")
+    private Long creator;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+
+}

+ 96 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/Organize.java

@@ -0,0 +1,96 @@
+package com.lantone.dblayermbg.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 组织表
+ * </p>
+ */
+@Data
+@TableName("sys_organize")
+public class Organize implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 组织编号
+     */
+    @TableField("organize_id")
+    private String organizeId;
+
+    /**
+     * 父级编号
+     */
+    @TableField("parent_id")
+    private String parentId;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 归属区域
+     */
+    @TableField("region")
+    private String region;
+
+    /**
+     * 组织编码
+     */
+    @TableField("code")
+    private String code;
+
+    /**
+     * 组织类型(集团医院、医共、医联、医院)
+     */
+    @TableField("type")
+    private String type;
+
+    /**
+     * 排序
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 状态 0:禁用,1:启用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 创建者编号
+     */
+    @TableField("creator")
+    private Long creator;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+
+}

+ 78 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/Role.java

@@ -0,0 +1,78 @@
+package com.lantone.dblayermbg.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 角色表
+ * </p>
+ */
+@Data
+@TableName("sys_role")
+public class Role implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 角色名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 角色描述
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 状态 0:禁用,1:启用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 组织id
+     */
+    @TableField("organize_id")
+    private String organizeId;
+
+    /**
+     * 创建用户id
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 排序
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+
+}

+ 46 - 34
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/User.java

@@ -11,7 +11,7 @@ import java.util.Date;
 
 
 /**
 /**
  * <p>
  * <p>
- * 系统用户表
+ * 用户表
  * </p>
  * </p>
  */
  */
 @Data
 @Data
@@ -21,76 +21,88 @@ public class User implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     /**
     /**
-     * 用户ID
+     * 编号
      */
      */
     @TableId(value = "id", type = IdType.AUTO)
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
     private Long id;
 
 
     /**
     /**
-     * 是否删除,N:未删除,Y:删除
+     * 用户名
      */
      */
-    @TableField("is_deleted")
-    private String isDeleted;
+    @TableField("username")
+    private String username;
 
 
     /**
     /**
-     * 记录创建时间
+     * 密码
      */
      */
-    @TableField("gmt_create")
-    private Date gmtCreate;
+    @TableField("password")
+    private String password;
 
 
     /**
     /**
-     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     * 姓名
      */
      */
-    @TableField("gmt_modified")
-    private Date gmtModified;
+    @TableField("name")
+    private String name;
 
 
     /**
     /**
-     * 创建人,0表示无创建人值
+     * 性别
      */
      */
-    @TableField("creator")
-    private String creator;
+    @TableField("sex")
+    private Integer sex;
 
 
     /**
     /**
-     * 修改人,如果为0则表示纪录未修改
+     * 手机号
      */
      */
-    @TableField("modifier")
-    private String modifier;
+    @TableField("mobile_phone")
+    private String mobilePhone;
 
 
     /**
     /**
-     * 用户名
+     * 身份证号
      */
      */
-    @TableField("username")
-    private String username;
+    @TableField("idcard")
+    private String idcard;
 
 
     /**
     /**
-     * 用户密码
+     * 职称编号
      */
      */
-    @TableField("password")
-    private String password;
+    @TableField("title_id")
+    private String titleId;
+
+    /**
+     * 工号
+     */
+    @TableField("job_no")
+    private Integer jobNo;
 
 
     /**
     /**
-     * 联系人
+     * 排序
      */
      */
-    @TableField("linkman")
-    private String linkman;
+    @TableField("order_no")
+    private Integer orderNo;
 
 
     /**
     /**
-     * 是否启用(0:停用,1:启用)
+     * 状态 0:禁用,1:启用
      */
      */
     @TableField("status")
     @TableField("status")
-    private Integer status;
+    private String status;
+
+    /**
+     * 创建者编号
+     */
+    @TableField("creator")
+    private Long creator;
 
 
     /**
     /**
-     * 1内部用户,0外部用户(默认0)
+     * 创建时间
      */
      */
-    @TableField("type")
-    private Integer type;
+    @TableField("create_time")
+    private Date createTime;
 
 
     /**
     /**
-     * 备注
+     * 是否删除,N:未删除,Y:删除
      */
      */
-    @TableField("remark")
-    private String remark;
+    @TableField("is_deleted")
+    private String isDeleted;
 
 
 
 
 }
 }

+ 72 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/UserRole.java

@@ -0,0 +1,72 @@
+package com.lantone.dblayermbg.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户角色关联表
+ * </p>
+ */
+@Data
+@TableName("sys_user_role")
+public class UserRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户编号
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 角色编号
+     */
+    @TableField("role_id")
+    private Long roleId;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 创建用户编号
+     */
+    @TableField("creator")
+    private Long creator;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 排序
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+
+}

+ 15 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/MenuInfoFacade.java

@@ -0,0 +1,15 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.dblayermbg.service.impl.MenuInfoServiceImpl;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * <p>
+ * 菜单功能表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class MenuInfoFacade extends MenuInfoServiceImpl {
+
+}

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/OrganizeFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.dblayermbg.service.impl.OrganizeServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 组织表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class OrganizeFacade extends OrganizeServiceImpl {
+
+}

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/RoleFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.dblayermbg.service.impl.RoleServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 角色表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class RoleFacade extends RoleServiceImpl {
+
+}

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/UserRoleFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.dblayermbg.service.impl.UserRoleServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 用户角色关联表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class UserRoleFacade extends UserRoleServiceImpl {
+
+}

+ 26 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/MenuInfoMapper.java

@@ -0,0 +1,26 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.MenuInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单功能表 Mapper 接口
+ * </p>
+ */
+public interface MenuInfoMapper extends BaseMapper<MenuInfo> {
+
+    /**
+     * @Author songxl
+     * @Description 通过用户id获取用户所有菜单id
+     * @Date 2021/7/20
+     * @Param [userId]
+     * @Return java.util.List<java.lang.Long>
+     * @MethodName queryAllMenuIdByUserId
+     */
+    List<Long> queryAllMenuIdByUserId(@Param("userID") Long userID, @Param("organizeID")String organizeId);
+}
+

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/OrganizeMapper.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.Organize;
+
+/**
+ * <p>
+ * 组织表 Mapper 接口
+ * </p>
+ */
+public interface OrganizeMapper extends BaseMapper<Organize> {
+
+}
+

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/RoleMapper.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.Role;
+
+/**
+ * <p>
+ * 角色表 Mapper 接口
+ * </p>
+ */
+public interface RoleMapper extends BaseMapper<Role> {
+
+}
+

+ 5 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/UserMapper.java

@@ -1,7 +1,10 @@
 package com.lantone.dblayermbg.mapper;
 package com.lantone.dblayermbg.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.Organize;
+import com.lantone.dblayermbg.entity.Role;
 import com.lantone.dblayermbg.entity.User;
 import com.lantone.dblayermbg.entity.User;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -14,6 +17,8 @@ public interface UserMapper extends BaseMapper<User> {
 
 
 
 
     List<User> getalle();
     List<User> getalle();
+    List<Organize> getUserOrganizeByUserID(Long userID);
 
 
+    List<Role> getUserRoleByUserID(@Param("userID") Long userID, @Param("organizeId")String organizeId);
 }
 }
 
 

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/UserRoleMapper.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.UserRole;
+
+/**
+ * <p>
+ * 用户角色关联表 Mapper 接口
+ * </p>
+ */
+public interface UserRoleMapper extends BaseMapper<UserRole> {
+
+}
+

+ 13 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/MenuInfoService.java

@@ -0,0 +1,13 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.MenuInfo;
+
+/**
+ * <p>
+ * 菜单功能表 服务类
+ * </p>
+ */
+public interface MenuInfoService extends IService<MenuInfo> {
+
+}

+ 13 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/OrganizeService.java

@@ -0,0 +1,13 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.Organize;
+
+/**
+ * <p>
+ * 组织表 服务类
+ * </p>
+ */
+public interface OrganizeService extends IService<Organize> {
+
+}

+ 13 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/RoleService.java

@@ -0,0 +1,13 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.Role;
+
+/**
+ * <p>
+ * 角色表 服务类
+ * </p>
+ */
+public interface RoleService extends IService<Role> {
+
+}

+ 13 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/UserRoleService.java

@@ -0,0 +1,13 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.UserRole;
+
+/**
+ * <p>
+ * 用户角色关联表 服务类
+ * </p>
+ */
+public interface UserRoleService extends IService<UserRole> {
+
+}

+ 18 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/MenuInfoServiceImpl.java

@@ -0,0 +1,18 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.MenuInfo;
+import com.lantone.dblayermbg.mapper.MenuInfoMapper;
+import com.lantone.dblayermbg.service.MenuInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 菜单功能表 服务实现类
+ * </p>
+ */
+@Service
+public class MenuInfoServiceImpl extends ServiceImpl<MenuInfoMapper, MenuInfo> implements MenuInfoService {
+
+
+}

+ 17 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/OrganizeServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.Organize;
+import com.lantone.dblayermbg.mapper.OrganizeMapper;
+import com.lantone.dblayermbg.service.OrganizeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 组织表 服务实现类
+ * </p>
+ */
+@Service
+public class OrganizeServiceImpl extends ServiceImpl<OrganizeMapper, Organize> implements OrganizeService {
+
+}

+ 17 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/RoleServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.Role;
+import com.lantone.dblayermbg.mapper.RoleMapper;
+import com.lantone.dblayermbg.service.RoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 角色表 服务实现类
+ * </p>
+ */
+@Service
+public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
+
+}

+ 17 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/UserRoleServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.UserRole;
+import com.lantone.dblayermbg.mapper.UserRoleMapper;
+import com.lantone.dblayermbg.service.UserRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户角色关联表 服务实现类
+ * </p>
+ */
+@Service
+public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
+
+}

+ 1 - 1
dblayer-mbg/src/main/resources/application.yml

@@ -3,7 +3,7 @@ spring:
     druid:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      url: jdbc:mysql://192.168.2.236:3306/security?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
       username: root
       username: root
       password: lantone
       password: lantone
       # 连接池的配置信息
       # 连接池的配置信息

+ 26 - 0
dblayer-mbg/src/main/resources/mapper/MenuInfoMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.MenuInfoMapper">
+
+    <select id="queryAllMenuIdByUserId" resultType="java.lang.Long">
+        SELECT DISTINCT
+            m.id
+        FROM
+            sys_user_role ur,
+            sys_role r,
+            sys_role_system rs,
+            sys_role_system_menu rsm,
+            sys_menu_info m
+        WHERE
+            ur.role_id = r.id
+        AND ur.role_id = rs.role_id
+        AND rs.id = rsm.role_sys_id
+        AND rsm.menu_id = m.id
+        <if test="userID != null ">
+            AND ur.user_id = #{userID}
+        </if>
+        <if test="organizeID != null ">
+            AND r.organize_id = #{organizeID}
+        </if>
+    </select>
+</mapper>

+ 5 - 0
dblayer-mbg/src/main/resources/mapper/OrganizeMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.OrganizeMapper">
+
+</mapper>

+ 5 - 0
dblayer-mbg/src/main/resources/mapper/RoleMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.RoleMapper">
+
+</mapper>

+ 38 - 0
dblayer-mbg/src/main/resources/mapper/UserMapper.xml

@@ -7,4 +7,42 @@
         select * from sys_user
         select * from sys_user
     </select>
     </select>
 
 
+    <select id="getUserOrganizeByUserID" resultType="com.lantone.dblayermbg.entity.Organize">
+        SELECT
+            organize.*
+        FROM
+            sys_user u,
+            sys_user_organize uorganize,
+            sys_organize organize
+        WHERE
+            u.id = uorganize.user_id
+        AND organize.organize_id = uorganize.organize_id
+        AND u.is_deleted = 'N'
+        AND uorganize.is_deleted = 'N'
+        AND organize.is_deleted = 'N'
+        <if test="userID != null ">
+            AND u.id = #{userID}
+        </if>
+    </select>
+    <select id="getUserRoleByUserID" resultType="com.lantone.dblayermbg.entity.Role">
+        SELECT
+        r.*
+        FROM
+        sys_user u,
+        sys_user_role sr,
+        sys_role r
+        WHERE
+        u.id = sr.user_id
+        AND r.id = sr.role_id
+        AND u.is_deleted = 'N'
+        AND sr.is_deleted = 'N'
+        AND r.is_deleted = 'N'
+        <if test="userID != null ">
+            AND u.id = #{userID}
+        </if>
+        <if test="organizeId != null ">
+            AND r.organize_id = #{organizeId}
+        </if>
+    </select>
+
 </mapper>
 </mapper>

+ 5 - 0
dblayer-mbg/src/main/resources/mapper/UserRoleMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.UserRoleMapper">
+
+</mapper>

+ 24 - 0
dblayer-mbg/src/main/resources/mapper/base/BaseMenuInfoMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.MenuInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.MenuInfo">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="system_id" property="systemId"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="url" property="url"/>
+        <result column="permission" property="permission"/>
+        <result column="icon" property="icon"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="status" property="status"/>
+        <result column="describe" property="describe"/>
+        <result column="remark" property="remark"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 21 - 0
dblayer-mbg/src/main/resources/mapper/base/BaseOrganizeMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.OrganizeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.Organize">
+        <id column="id" property="id"/>
+        <result column="organize_id" property="organizeId"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="name" property="name"/>
+        <result column="region" property="region"/>
+        <result column="code" property="code"/>
+        <result column="type" property="type"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="status" property="status"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 18 - 0
dblayer-mbg/src/main/resources/mapper/base/BaseRoleMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.RoleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.Role">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="remark" property="remark"/>
+        <result column="status" property="status"/>
+        <result column="organize_id" property="organizeId"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 10 - 8
dblayer-mbg/src/main/resources/mapper/base/BaseUserMapper.xml

@@ -5,17 +5,19 @@
     <!-- 通用查询映射结果 -->
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.User">
     <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.User">
         <id column="id" property="id"/>
         <id column="id" property="id"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="gmt_create" property="gmtCreate"/>
-        <result column="gmt_modified" property="gmtModified"/>
-        <result column="creator" property="creator"/>
-        <result column="modifier" property="modifier"/>
         <result column="username" property="username"/>
         <result column="username" property="username"/>
         <result column="password" property="password"/>
         <result column="password" property="password"/>
-        <result column="linkman" property="linkman"/>
+        <result column="name" property="name"/>
+        <result column="sex" property="sex"/>
+        <result column="mobile_phone" property="mobilePhone"/>
+        <result column="idcard" property="idcard"/>
+        <result column="title_id" property="titleId"/>
+        <result column="job_no" property="jobNo"/>
+        <result column="order_no" property="orderNo"/>
         <result column="status" property="status"/>
         <result column="status" property="status"/>
-        <result column="type" property="type"/>
-        <result column="remark" property="remark"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="is_deleted" property="isDeleted"/>
     </resultMap>
     </resultMap>
 
 
 </mapper>
 </mapper>

+ 17 - 0
dblayer-mbg/src/main/resources/mapper/base/BaseUserRoleMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.UserRoleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.dblayermbg.entity.UserRole">
+        <id column="id" property="id"/>
+        <result column="user_id" property="userId"/>
+        <result column="role_id" property="roleId"/>
+        <result column="remark" property="remark"/>
+        <result column="creator" property="creator"/>
+        <result column="create_time" property="createTime"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 3 - 3
dblayer-mbg/src/test/java/com/lantone/dblayermbg/CodeAutoGenerator.java

@@ -14,18 +14,18 @@ public class CodeAutoGenerator {
      */
      */
     private static String username = "root";
     private static String username = "root";
     private static String password = "lantone";
     private static String password = "lantone";
-    private static String url = "jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
+    private static String url = "jdbc:mysql://192.168.2.236:3306/security?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
 
 
     /**
     /**
      * 表名
      * 表名
      */
      */
     private static String[] TABLES = {
     private static String[] TABLES = {
-            "med_check_info"
+            "sys_user_role"
     };
     };
     /**
     /**
      * 生成的实体类忽略表前缀: 不需要则置空
      * 生成的实体类忽略表前缀: 不需要则置空
      */
      */
-    private static String[] ENTITY_IGNORE_PREFIX = { "med_" };
+    private static String[] ENTITY_IGNORE_PREFIX = { "sys_" };
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
         GeneratorUtil.create(username, password, url, TABLES, ENTITY_IGNORE_PREFIX);
         GeneratorUtil.create(username, password, url, TABLES, ENTITY_IGNORE_PREFIX);

+ 6 - 2
security-center/src/main/java/com/lantone/security/dto/JwtDTO.java

@@ -1,8 +1,12 @@
 package com.lantone.security.dto;
 package com.lantone.security.dto;
 
 
+import com.lantone.dblayermbg.entity.Organize;
+import com.lantone.dblayermbg.entity.Role;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
+import java.util.List;
+
 
 
 /**
 /**
  * @Description: jwt 输出类
  * @Description: jwt 输出类
@@ -16,8 +20,8 @@ public class JwtDTO {
     private String refreshToken;
     private String refreshToken;
     private Integer type; //用户类型
     private Integer type; //用户类型
     private String typeCn; //用户类型中文
     private String typeCn; //用户类型中文
-    //用户权限列表
-//    private List<SysRoleDTO> selRoles;
+    //用户组织列表
+    private List<OrganizeDTO> organizes;
     //用户密码复杂度是否符合
     //用户密码复杂度是否符合
 //    private String passwordComplexity;
 //    private String passwordComplexity;
 }
 }

+ 98 - 0
security-center/src/main/java/com/lantone/security/dto/MenuInfoDTO.java

@@ -0,0 +1,98 @@
+package com.lantone.security.dto;
+
+
+
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: MenuDTO
+ * @Description: 用户菜单对象
+ * @Author songxl
+ * @Date 2021/7/19
+ * @Version 1.0
+ */
+@Data
+public class MenuInfoDTO {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 父级编号
+     */
+    private Long parentId;
+
+    /**
+     * 系统id
+     */
+    private Long systemId;
+
+    /**
+     * 功能名称
+     */
+    private String name;
+
+    /**
+     * 类型:0:目录,1菜单,2按钮,3:超链接
+     */
+    private String type;
+
+    /**
+     * 页面路由
+     */
+    private String url;
+
+    /**
+     * 权限标识
+     */
+    private String permission;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 排序
+     */
+    private String orderNo;
+
+    /**
+     * 状态 0:禁用,1:启用
+     */
+    private String status;
+
+    /**
+     * 描述
+     */
+    private String describe;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建用户编号
+     */
+    private Long creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private List<MenuInfoDTO> sonMenuInfo;
+}

+ 81 - 0
security-center/src/main/java/com/lantone/security/dto/OrganizeDTO.java

@@ -0,0 +1,81 @@
+package com.lantone.security.dto;
+
+import com.lantone.dblayermbg.entity.Role;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 用户组织对象
+ * </p>
+ */
+@Data
+public class OrganizeDTO {
+
+
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 组织编号
+     */
+    private String organizeId;
+
+    /**
+     * 父级编号
+     */
+    private String parentId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 归属区域
+     */
+    private String region;
+
+    /**
+     * 组织编码
+     */
+    private String code;
+
+    /**
+     * 组织类型(集团医院、医共、医联、医院)
+     */
+    private String type;
+
+    /**
+     * 排序
+     */
+    private String orderNo;
+
+    /**
+     * 状态 0:禁用,1:启用
+     */
+    private String status;
+
+    /**
+     * 创建者编号
+     */
+    private Long creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 用户在该组织下的角色列表
+     */
+    private List<Role> roles;
+}

+ 3 - 2
security-center/src/main/java/com/lantone/security/enums/ConstantEnum.java

@@ -10,8 +10,9 @@ import lombok.Setter;
  */
  */
 public enum ConstantEnum implements KeyedNamed {
 public enum ConstantEnum implements KeyedNamed {
 
 
-    INNER_USER(1, "用户-朗通"),
-    OUTER_USER(0, "用户-客户");
+//    INNER_USER(1, "用户-朗通"),
+//    OUTER_USER(0, "用户-客户");
+    SUPER_USER(0, "用户-超级管理员");
 
 
 
 
     @Setter
     @Setter

+ 141 - 0
security-center/src/main/java/com/lantone/security/facade/UserLoginFacade.java

@@ -0,0 +1,141 @@
+package com.lantone.security.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.lantone.dblayermbg.entity.Organize;
+import com.lantone.dblayermbg.entity.Role;
+import com.lantone.dblayermbg.entity.User;
+import com.lantone.dblayermbg.entity.UserRole;
+import com.lantone.dblayermbg.facade.UserRoleFacade;
+import com.lantone.dblayermbg.service.impl.UserServiceImpl;
+import com.lantone.security.client.AuthServiceClient;
+import com.lantone.security.dto.JWT;
+import com.lantone.security.dto.JwtDTO;
+import com.lantone.security.dto.JwtStore;
+import com.lantone.security.dto.MenuInfoDTO;
+import com.lantone.security.dto.OrganizeDTO;
+import com.lantone.security.enums.StatusEnum;
+import com.lantone.security.exception.ServiceErrorCode;
+import com.lantone.security.util.SysUserUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.factory.PasswordEncoderFactories;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.DigestUtils;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <p>
+ * 系统用户表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class UserLoginFacade extends UserServiceImpl {
+    @Autowired
+    private TokenFacade tokenFacade;
+    @Autowired
+    private AuthServiceClient authServiceClient;
+    @Autowired
+    private UserRoleFacade userRoleFacade;
+
+
+    /**
+     * 获取jwt
+     *
+     * @param username 用户名
+     * @param password 密码
+     * @return jwt
+     */
+    public JwtDTO getJwt(String username, String password) {
+        JwtDTO data = new JwtDTO();
+        if (StringUtil.isBlank(username)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请输入用户名");
+        }
+        if (StringUtil.isBlank(password)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请输入密码");
+        }
+        //使用MD5对密码进行加密
+        String MD5Password = DigestUtils.md5DigestAsHex(password.getBytes());
+        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
+        userQueryWrapper.eq("username", username)
+                .eq("status", StatusEnum.Enable.getKey())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+        User user = this.getOne(userQueryWrapper, false);
+        if (null == user) {
+            throw new CommonException(ServiceErrorCode.USER_NOT_FOUND);
+        }
+        PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
+        if (!passwordEncoder.matches(MD5Password, user.getPassword())) {
+            throw new CommonException(ServiceErrorCode.USER_PASSWORD_ERROR);
+        }
+        JWT jwt = authServiceClient.getToken("Basic dWFhLXNlcnZpY2U6MTIzNDU2",
+                "password", username, MD5Password);
+        if (null == jwt) {
+            throw new CommonException(ServiceErrorCode.GET_TOKEN_FAIL);
+        }
+        data.setAccessToken(jwt.getAccess_token());
+        data.setRefreshToken(jwt.getRefresh_token());
+        //获取用户组织信息
+        Long id = user.getId();
+        List<Organize> organizes = this.baseMapper.getUserOrganizeByUserID(id);
+        if (organizes != null && !organizes.isEmpty()) {
+            List<OrganizeDTO> organizeDTOS = new ArrayList<>();
+            //获取用户当前组织下的角色信息
+            for (Organize organize : organizes) {
+                OrganizeDTO organizeDTO = new OrganizeDTO();
+                BeanUtils.copyProperties(organize,organizeDTO);
+                if(StringUtil.isNotBlank(organize.getOrganizeId())){
+                    List<Role> roles= this.baseMapper.getUserRoleByUserID(id,organize.getOrganizeId());
+                    organizeDTO.setRoles(roles);
+                }
+                organizeDTOS.add(organizeDTO);
+            }
+            data.setOrganizes(organizeDTOS);
+        }
+
+        //token存入redis
+        JwtStore jwtStore = new JwtStore();
+        jwtStore.setAccessToken(jwt.getAccess_token());
+        jwtStore.setRefreshToken(jwt.getRefresh_token());
+        tokenFacade.createToken(jwtStore);
+        return data;
+    }
+    /**
+     * @Author songxl
+     * @Description 获取用户显示的菜单
+     * @Date  2021/7/19
+     * @Param []
+     * @Return com.lantone.security.dto.MenuInfoDTO
+     * @MethodName getUserOrgMenu
+     */
+    public MenuInfoDTO getUserOrgMenu() {
+        MenuInfoDTO menuInfoDTO = new MenuInfoDTO();
+        Set<String> roleSet = new HashSet<>();
+        Long userId = Long.parseLong(SysUserUtils.getCurrentPrincipleID());
+        //获取当前登录用户角色
+        List<UserRole> userRoles = userRoleFacade.list(new QueryWrapper<UserRole>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("status", StatusEnum.Enable.getKey())
+                .eq("id", userId));
+        //1.超级管理员
+        if(!ListUtil.isEmpty(userRoles)&&userRoles.contains(0)){
+
+        }
+        //添加菜单信息
+        return menuInfoDTO;
+    }
+
+}

+ 102 - 0
security-center/src/main/java/com/lantone/security/facade/UserMenuInfoFacade.java

@@ -0,0 +1,102 @@
+package com.lantone.security.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.lantone.common.util.ListUtil;
+import com.lantone.dblayermbg.entity.MenuInfo;
+import com.lantone.dblayermbg.service.impl.MenuInfoServiceImpl;
+import com.lantone.security.dto.MenuInfoDTO;
+import com.lantone.security.enums.ConstantEnum;
+import com.lantone.security.enums.StatusEnum;
+import org.springframework.beans.BeanUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName: SysMenuInfoDTOFacade
+ * @Description: 菜单管理facade
+ * @Author songxl
+ * @Date 2021/7/19
+ * @Version 1.0
+ */
+public class UserMenuInfoFacade extends MenuInfoServiceImpl {
+
+    /**
+     * @Author songxl
+     * @Description 获取用户显示的菜单
+     * @Date 2021/7/20
+     * @Param [userId]
+     * @Return java.util.List<com.lantone.security.dto.MenuInfoDTO>
+     * @MethodName getUserMenuList
+     */
+    public List<MenuInfoDTO> getUserMenuList(Long userId) {
+
+        //系统管理员,拥有最高权限
+        if (userId.intValue() == ConstantEnum.SUPER_USER.getKey()) {
+            return getAllMenuList(null);
+        }
+
+        //用户菜单列表
+        List<Long> menuIdList = this.baseMapper.queryAllMenuIdByUserId(userId, null);
+        return getAllMenuList(menuIdList);
+    }
+
+    /**
+     * @Author songxl
+     * @Description 获取所有菜单列表
+     * @Date 2021/7/20
+     * @Param [menuIdList]
+     * @Return java.util.List<com.lantone.security.dto.MenuInfoDTO>
+     * @MethodName getAllMenuList
+     */
+    private List<MenuInfoDTO> getAllMenuList(List<Long> menuIdList) {
+        //查询根菜单列表
+        List<MenuInfoDTO> menuList = queryListParentId(0L, menuIdList);
+        //递归获取子菜单
+        getMenuTreeList(menuList, menuIdList);
+
+        return menuList;
+    }
+
+    /**
+     * 递归
+     */
+    private List<MenuInfoDTO> getMenuTreeList(List<MenuInfoDTO> menuList, List<Long> menuIdList) {
+        List<MenuInfoDTO> subMenuList = new ArrayList();
+
+        for (MenuInfoDTO menuInfoDTO : menuList) {
+            menuInfoDTO.setSonMenuInfo(getMenuTreeList(queryListParentId(menuInfoDTO.getId(), menuIdList), menuIdList));
+            subMenuList.add(menuInfoDTO);
+        }
+
+        return subMenuList;
+    }
+
+    public List<MenuInfoDTO> queryListParentId(Long parentId, List<Long> menuIdList) {
+        List<MenuInfo> menuListEntity = this.list(new QueryWrapper<MenuInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("status", StatusEnum.Enable.getKey())
+                .eq("parent_id", parentId));
+        List<MenuInfoDTO> menuList = new ArrayList<>();
+        if (ListUtil.isNotEmpty(menuListEntity)) {
+            menuListEntity.stream().forEach(menuInfo -> {
+                MenuInfoDTO menuInfoDTO = new MenuInfoDTO();
+                BeanUtils.copyProperties(menuInfo, menuInfoDTO);
+                menuList.add(menuInfoDTO);
+            });
+        }
+
+        if (menuIdList == null) {
+            return menuList;
+        }
+
+        List<MenuInfoDTO> userMenuList = new ArrayList<>();
+        for (MenuInfoDTO menu : menuList) {
+            if (menuIdList.contains(menu.getId())) {
+                userMenuList.add(menu);
+            }
+        }
+        return userMenuList;
+    }
+}

+ 4 - 6
security-center/src/main/java/com/lantone/security/service/UrlUserService.java

@@ -2,8 +2,6 @@ package com.lantone.security.service;
 
 
 import com.lantone.security.entity.SysUserUaa;
 import com.lantone.security.entity.SysUserUaa;
 import com.lantone.security.enums.ConstantEnum;
 import com.lantone.security.enums.ConstantEnum;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UserDetailsService;
@@ -39,7 +37,7 @@ public class UrlUserService implements UserDetailsService {
 //            }
 //            }
             //2.1将库中的功能权限赋给用户
             //2.1将库中的功能权限赋给用户
             user.setGrantedAuthorities(grantedAuthorities);
             user.setGrantedAuthorities(grantedAuthorities);
-            if (user.getType().equals(ConstantEnum.OUTER_USER.getKey())) {
+//            if (user.getType().equals(ConstantEnum.OUTER_USER.getKey())) {
                 //2.2获取用户医院信息
                 //2.2获取用户医院信息
 //                SysUserUaa userHosp = userUaaMapper.getHospByUserName(userName);
 //                SysUserUaa userHosp = userUaaMapper.getHospByUserName(userName);
 //                if (null == userHosp) {
 //                if (null == userHosp) {
@@ -47,9 +45,9 @@ public class UrlUserService implements UserDetailsService {
 //                } else {
 //                } else {
 //                    user.setHospitalId(userHosp.getHospitalId());
 //                    user.setHospitalId(userHosp.getHospitalId());
 //                }
 //                }
-            } else {
-                user.setHospitalId(-1L);
-            }
+//            } else {
+//                user.setHospitalId(-1L);
+//            }
 
 
 
 
             //3.获取当前登录用户的功能权限
             //3.获取当前登录用户的功能权限

+ 18 - 0
security-center/src/main/java/com/lantone/security/vo/SysUserBaseVO.java

@@ -0,0 +1,18 @@
+package com.lantone.security.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/28 9:23
+ */
+@Getter
+@Setter
+public class SysUserBaseVO {
+    @NotNull(message = "请输入用户ID")
+    private Long userId;
+}

+ 6 - 3
security-center/src/main/java/com/lantone/security/web/SysUserController.java

@@ -4,6 +4,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.lantone.security.dto.JwtDTO;
 import com.lantone.security.dto.JwtDTO;
 import com.lantone.security.entity.Token;
 import com.lantone.security.entity.Token;
+import com.lantone.security.facade.UserLoginFacade;
 import com.lantone.security.facade.TokenFacade;
 import com.lantone.security.facade.TokenFacade;
 import com.lantone.security.vo.JwtVO;
 import com.lantone.security.vo.JwtVO;
 import com.lantone.security.vo.UserLoginNoPassVO;
 import com.lantone.security.vo.UserLoginNoPassVO;
@@ -28,10 +29,12 @@ import springfox.documentation.annotations.ApiIgnore;
 @Api(value = "用户账号API", tags = { "用户账号API" })
 @Api(value = "用户账号API", tags = { "用户账号API" })
 @RequestMapping("/sys/user")
 @RequestMapping("/sys/user")
 @SuppressWarnings("unchecked")
 @SuppressWarnings("unchecked")
-public class SysUserController {
+public class UserLoginController {
 
 
     @Autowired
     @Autowired
     private TokenFacade tokenFacade;
     private TokenFacade tokenFacade;
+    @Autowired
+    private UserLoginFacade userFacade;
 
 
     @ApiOperation(value = "验证token有效性[by:gaodm]",
     @ApiOperation(value = "验证token有效性[by:gaodm]",
             notes = "token:token信息,必填<br>")
             notes = "token:token信息,必填<br>")
@@ -50,8 +53,8 @@ public class SysUserController {
     @PostMapping("/getJwt")
     @PostMapping("/getJwt")
     @SysLogger("getJwt")
     @SysLogger("getJwt")
     public RespDTO<JwtDTO> getJwt(@RequestBody UserLoginVO userLoginVO) {
     public RespDTO<JwtDTO> getJwt(@RequestBody UserLoginVO userLoginVO) {
-//        JwtDTO data = userFacade.getJwt(userLoginVO.getUsername(), userLoginVO.getPassword());
-        return RespDTO.onSuc(null);
+        JwtDTO data = userFacade.getJwt(userLoginVO.getUsername(), userLoginVO.getPassword());
+        return RespDTO.onSuc(data);
     }
     }
 
 
     @ApiOperation(value = "登录获取jwt[by:gaodm]",
     @ApiOperation(value = "登录获取jwt[by:gaodm]",

+ 0 - 74
security-center/src/main/resources/bootstrap.yml

@@ -57,52 +57,6 @@ management:
 spring:
 spring:
   application:
   application:
     name: security-center
     name: security-center
-  datasource:
-    druid:
-      driver-class-name: com.mysql.cj.jdbc.Driver
-      platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
-      username: root
-      password: lantone
-      # 连接池的配置信息
-      # 初始化大小,最小,最大
-      initialSize: 5
-      minIdle: 5
-      maxActive: 20
-      # 配置获取连接等待超时的时间
-      maxWait: 60000
-      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-      timeBetweenEvictionRunsMillis: 60000
-      # 配置一个连接在池中最小生存的时间,单位是毫秒
-      minEvictableIdleTimeMillis: 300000
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      # 打开PSCache,并且指定每个连接上PSCache的大小
-      poolPreparedStatements: true
-      maxPoolPreparedStatementPerConnectionSize: 20
-      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-      filters.commons-log.connection-logger-name: wall,log4j
-      filter:
-        stat:
-          enabled: true
-          mergeSql: true
-          log-slow-sql: true
-          slow-sql-millis: 2000
-      #监控配置
-      web-stat-filter:
-        enabled: true
-        url-pattern: /*
-        exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*'
-
-      # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
-      stat-view-servlet:
-        enabled: true
-        url-pattern: /druid/*
-        reset-enable: false
-        login-username: root
-        login-password: root
   cloud:
   cloud:
     config:
     config:
       discovery:
       discovery:
@@ -135,34 +89,6 @@ spring:
     multipart:
     multipart:
       max-request-size: 2048MB
       max-request-size: 2048MB
 
 
-#mybatis
-mybatis-plus:
-  mapper-locations: classpath:/mapper/*Mapper.xml
-  #实体扫描,多个package用逗号或者分号分隔
-  typeAliasesPackage: com.diagbot.entity
-  global-config:
-    #刷新mapper 调试神器
-    db-config:
-      #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-      id-type: id_worker
-      #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
-      field-strategy: not_empty
-      #驼峰下划线转换
-      column-underline: true
-      #数据库大写下划线转换
-      #capital-mode: true
-      #刷新mapper 调试神器
-      refresh-mapper: true
-      #逻辑删除配置
-      logic-delete-value: 0
-      logic-not-delete-value: 1
-      #自定义填充策略接口实现
-      #meta-object-handler: com.baomidou.springboot.xxx
-      #自定义SQL注入器
-      #sql-injector: com.baomidou.springboot.xxx
-  configuration:
-    map-underscore-to-camel-case: true
-    cache-enabled: false
 
 
 
 
 myhost: localhost
 myhost: localhost