songxinlu 3 éve
szülő
commit
55564b16ab
37 módosított fájl, 1122 hozzáadás és 741 törlés
  1. 0 65
      common/src/main/java/com/lantone/common/dto/DoctorDTO.java
  2. 36 0
      common/src/main/java/com/lantone/common/dto/GetDataAuthByIdDTO.java
  3. 1 24
      common/src/main/java/com/lantone/common/dto/DataAuthDTO.java
  4. 36 0
      common/src/main/java/com/lantone/common/dto/GetDoctorPageDTO.java
  5. 73 0
      common/src/main/java/com/lantone/common/dto/GetMenuByIdDTO.java
  6. 53 0
      common/src/main/java/com/lantone/common/dto/GetMenusTreeDTO.java
  7. 4 0
      common/src/main/java/com/lantone/common/dto/RoleDTO.java
  8. 25 0
      common/src/main/java/com/lantone/common/dto/SoftwareMenuDTO.java
  9. 26 0
      common/src/main/java/com/lantone/common/vo/AddAuthVO.java
  10. 49 0
      common/src/main/java/com/lantone/common/vo/AddDataAuthVO.java
  11. 69 0
      common/src/main/java/com/lantone/common/vo/AddMenuVO.java
  12. 3 7
      common/src/main/java/com/lantone/common/vo/DataAuthDetailVO.java
  13. 3 18
      common/src/main/java/com/lantone/common/vo/DataAuthVO.java
  14. 35 0
      common/src/main/java/com/lantone/common/vo/GetDoctorPageVO.java
  15. 28 0
      common/src/main/java/com/lantone/common/vo/GetMenusTreeVo.java
  16. 7 1
      common/src/main/java/com/lantone/common/vo/RoleVO.java
  17. 0 32
      common/src/main/java/com/lantone/common/vo/SoftwareDataAuthVO.java
  18. 8 18
      common/src/main/java/com/lantone/common/vo/SysSoftwareVO.java
  19. 26 0
      common/src/main/java/com/lantone/common/vo/UpdateAuthVO.java
  20. 52 0
      common/src/main/java/com/lantone/common/vo/UpdateDataAuthVO.java
  21. 72 0
      common/src/main/java/com/lantone/common/vo/UpdateMenuVO.java
  22. 7 20
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/DataAuthMapper.java
  23. 8 3
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/DoctorMapper.java
  24. 2 2
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/MenuMapper.java
  25. 14 0
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/RoleMapper.java
  26. 4 8
      dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/RoleSoftwareMenuMapper.java
  27. 3 9
      dblayer-mbg/src/main/resources/mapper/DataAuthMapper.xml
  28. 1 1
      dblayer-mbg/src/main/resources/mapper/DoctorMapper.xml
  29. 5 5
      dblayer-mbg/src/main/resources/mapper/MenuMapper.xml
  30. 16 1
      dblayer-mbg/src/main/resources/mapper/RoleMapper.xml
  31. 1 2
      dblayer-mbg/src/main/resources/mapper/RoleSoftwareMenuMapper.xml
  32. 54 187
      security-center/src/main/java/com/lantone/security/facade/DataAuthHandleFacade.java
  33. 54 197
      security-center/src/main/java/com/lantone/security/facade/FuncManagementFacade.java
  34. 228 0
      security-center/src/main/java/com/lantone/security/facade/RoleManagementFacade.java
  35. 36 56
      security-center/src/main/java/com/lantone/security/web/DataAuthManagementController.java
  36. 31 40
      security-center/src/main/java/com/lantone/security/web/FuncManagementController.java
  37. 52 45
      security-center/src/main/java/com/lantone/security/web/RoleManagementController.java

+ 0 - 65
common/src/main/java/com/lantone/common/dto/DoctorDTO.java

@@ -1,65 +0,0 @@
-package com.lantone.common.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * <p>
- * 医生表
- * </p>
- */
-@Data
-public class DoctorDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "编号")
-    private Long id;
-    @ApiModelProperty(value = "医院编号")
-    private Long hospitalId;
-    @ApiModelProperty(value = "科室编号")
-    private Long deptId;
-
-    @ApiModelProperty(value = "医生编码")
-    private String code;
-
-    @ApiModelProperty(value = "医院名称")
-    private String hospitalName;
-    @ApiModelProperty(value = "科室名称")
-    private String deptName;
-    @ApiModelProperty(value = "医生姓名")
-    private String name;
-
-    @ApiModelProperty(value = "手机号")
-    private String mobilePhone;
-
-    @ApiModelProperty(value = "职称")
-    private String professor;
-
-    @ApiModelProperty(value = "职业医师资格(0:无,1:有)")
-    private String occup;
-
-    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
-    private String isDeleted;
-
-    @ApiModelProperty(value = "记录创建时间")
-    private Date gmtCreate;
-
-    @ApiModelProperty(value = "记录修改时间,如果时间是1970年则表示纪录未修改")
-    private Date gmtModified;
-
-    @ApiModelProperty(value = "创建人,0表示无创建人值")
-    private String creator;
-
-    @ApiModelProperty(value = "修改人,如果为0则表示纪录未修改")
-    private String modifier;
-
-    @ApiModelProperty(value = "备注")
-    private String remark;
-    @ApiModelProperty(value = "已关联未关联")
-    private String relation;
-
-}

+ 36 - 0
common/src/main/java/com/lantone/common/dto/GetDataAuthByIdDTO.java

@@ -0,0 +1,36 @@
+package com.lantone.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName: DataAuthDTO
+ * @Description: 数据权限返回对象
+ * @Author songxl
+ * @Date 2021/7/22
+ * @Version 1.0
+ */
+@Data
+public class GetDataAuthByIdDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    private Long id;
+
+    @ApiModelProperty(value = "数据权限名称")
+    private String name;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用")
+    private String status;
+
+    /**
+     * 系统列表
+     */
+    private List<SysServiceDTO> sysServiceDTOS;
+
+
+
+}

+ 1 - 24
common/src/main/java/com/lantone/common/dto/DataAuthDTO.java

@@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
 
 /**
  * @ClassName: DataAuthDTO
@@ -15,7 +13,7 @@ import java.util.List;
  * @Version 1.0
  */
 @Data
-public class DataAuthDTO implements Serializable {
+public class GetDataAuthPageDTO implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "编号")
@@ -32,25 +30,4 @@ public class DataAuthDTO implements Serializable {
     @ApiModelProperty(value = "状态 0:禁用,1:启用")
     private String status;
 
-    @ApiModelProperty(value = "排序")
-    private String orderNo;
-
-    @ApiModelProperty(value = "医院ID")
-    private String hospitalId;
-
-    @ApiModelProperty(value = "创建用户编号")
-    private Long creator;
-
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
-
-    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
-    private String isDeleted;
-    /**
-     * 系统列表
-     */
-    private List<SysServiceDTO> sysServiceDTOS;
-
-
-
 }

+ 36 - 0
common/src/main/java/com/lantone/common/dto/GetDoctorPageDTO.java

@@ -0,0 +1,36 @@
+package com.lantone.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医生表
+ * </p>
+ */
+@Data
+public class GetDoctorPageDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    private Long id;
+    @ApiModelProperty(value = "医院编号")
+    private Long hospitalId;
+    @ApiModelProperty(value = "科室编号")
+    private Long deptId;
+    @ApiModelProperty(value = "医院名称")
+    private String hospitalName;
+    @ApiModelProperty(value = "科室名称")
+    private String deptName;
+    @ApiModelProperty(value = "医生姓名")
+    private String name;
+    @ApiModelProperty(value = "手机号")
+    private String mobilePhone;
+    @ApiModelProperty(value = "已关联未关联")
+    private String relation;
+
+}

+ 73 - 0
common/src/main/java/com/lantone/common/dto/GetMenuByIdDTO.java

@@ -0,0 +1,73 @@
+package com.lantone.common.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单功能DTO
+ * </p>
+ */
+@Data
+@ApiModel(value = "MenuDTO对象", description = "菜单功能DTO")
+public class GetMenuByIdDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    private Long id;
+
+    @ApiModelProperty(value = "父级编号")
+    private Long parentId;
+    @ApiModelProperty(value = "资源权限编号")
+    private Long resourceId;
+
+    @ApiModelProperty(value = "服务id")
+    private Long softwareId;
+    @ApiModelProperty(value = "服务名称")
+    private String softwareName;
+
+    @ApiModelProperty(value = "功能名称")
+    private String name;
+    @ApiModelProperty(value = "父类功能名称")
+    private String parentName;
+
+    @ApiModelProperty(value = "类型:0:目录,1菜单,2按钮,3:超链接")
+    private String type;
+
+    @ApiModelProperty(value = "页面路由")
+    private String url;
+
+    @ApiModelProperty(value = "资源权限")
+    private String permission;
+
+    @ApiModelProperty(value = "图标")
+    private String icon;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用")
+    private String status;
+
+    @ApiModelProperty(value = "描述")
+    private String menuDescribe;
+
+
+    @ApiModelProperty(value = "记录创建时间")
+    private Date gmtCreate;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "子集")
+    private List<GetMenuByIdDTO> sonMenu;
+
+
+
+}

+ 53 - 0
common/src/main/java/com/lantone/common/dto/GetMenusTreeDTO.java

@@ -0,0 +1,53 @@
+package com.lantone.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单功能DTO
+ * </p>
+ */
+@Data
+public class GetMenusTreeDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    private Long id;
+
+    @ApiModelProperty(value = "父级编号")
+    private Long parentId;
+    @ApiModelProperty(value = "资源权限编号")
+    private Long resourceId;
+
+    @ApiModelProperty(value = "功能名称")
+    private String name;
+
+    @ApiModelProperty(value = "类型:0:目录,1菜单,2按钮,3:超链接")
+    private String type;
+
+    @ApiModelProperty(value = "页面路由")
+    private String url;
+
+    @ApiModelProperty(value = "资源权限")
+    private String permission;
+
+    @ApiModelProperty(value = "图标")
+    private String icon;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用")
+    private String status;
+
+    @ApiModelProperty(value = "子集")
+    private List<GetMenusTreeDTO> sonMenu;
+
+
+
+}

+ 4 - 0
common/src/main/java/com/lantone/common/dto/RoleDTO.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName: RoleDTO
@@ -43,4 +44,7 @@ public class RoleDTO implements Serializable {
 
     @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
     private String isDeleted;
+
+    @ApiModelProperty(value = "系统服务菜单返回对象列表")
+    private List<SoftwareMenuDTO> softwareMenus;
 }

+ 25 - 0
common/src/main/java/com/lantone/common/dto/SoftwareMenuDTO.java

@@ -0,0 +1,25 @@
+package com.lantone.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName: SoftwareMenuDTO
+ * @Description:系统服务菜单返回对象
+ * @Author songxl
+ * @Date 2021/7/30
+ * @Version 1.0
+ */
+@Data
+public class SoftwareMenuDTO {
+    @ApiModelProperty(value = "编号")
+    private Long id;
+
+    @ApiModelProperty(value = "服务名称")
+    private String name;
+
+    @ApiModelProperty(value = "服务菜单列表")
+    private List<MenuDTO> menus;
+}

+ 26 - 0
common/src/main/java/com/lantone/common/vo/AddAuthVO.java

@@ -0,0 +1,26 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @ClassName: ServiceDataAuthVO
+ * @Description: 系统数据权限对象
+ * @Author songxl
+ * @Date 2021/7/21
+ * @Version 1.0
+ */
+@Data
+public class AddAuthVO {
+    @ApiModelProperty(value = "数据权限对象", required = true)
+    @NotNull(message = "数据权限对象为空")
+    private AddDataAuthVO addDataAuthVO;
+
+    @ApiModelProperty(value = "角色列表", required = true)
+    @NotEmpty(message = "角色列表为空")
+    private List<RoleVO> roles;
+}

+ 49 - 0
common/src/main/java/com/lantone/common/vo/AddDataAuthVO.java

@@ -0,0 +1,49 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: DataAuthVO
+ * @Description: 添加时数据权限对象
+ * @Author songxl
+ * @Date 2021/7/21
+ * @Version 1.0
+ */
+@Data
+public class AddDataAuthVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "数据权限名称", required = true)
+    @NotBlank(message = ("数据权限名称为空"))
+    private String name;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用", required = true)
+    @NotBlank(message = ("数据权限状态为空"))
+    private String status;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "医院ID")
+    private String hospitalId;
+
+    @ApiModelProperty(value = "创建用户编号")
+    private Long creator;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "系统列表", required = true)
+    @NotEmpty(message = "系统列表为空")
+    private List<SysSoftwareVO> softwareVOS;
+
+}

+ 69 - 0
common/src/main/java/com/lantone/common/vo/AddMenuVO.java

@@ -0,0 +1,69 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单功能VO
+ * </p>
+ */
+@Data
+@ApiModel(value="MenuVO对象", description="菜单功能VO")
+public class AddMenuVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "父级编号",required = true)
+    @NotNull(message = "父级编号为空")
+    private Long parentId;
+
+    @ApiModelProperty(value = "服务id列表",required = true)
+    @NotEmpty(message = "服务id列表为空")
+    private List<Long> softwares;
+
+    @ApiModelProperty(value = "功能名称",required = true)
+    private String name;
+
+    @ApiModelProperty(value = "权限标识")
+    private List<String> permissions;
+
+    @ApiModelProperty(value = "类型:0:目录,1菜单,2按钮,3:超链接",required = true)
+    @NotBlank(message = "类型为空")
+    private String type;
+
+    @ApiModelProperty(value = "页面路由")
+    private String url;
+
+    @ApiModelProperty(value = "图标")
+    private String icon;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用",required = true)
+    @NotBlank(message = "状态为空")
+    private String status;
+
+    @ApiModelProperty(value = "描述")
+    private String menuDescribe;
+
+    @ApiModelProperty(value = "记录创建时间")
+    private Date gmtCreate;
+
+    @ApiModelProperty(value = "创建人,0表示无创建人值")
+    private String creator;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 3 - 7
common/src/main/java/com/lantone/common/vo/DataAuthDetailVO.java

@@ -3,6 +3,7 @@ package com.lantone.common.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -17,13 +18,11 @@ import java.util.Date;
 public class DataAuthDetailVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "编号")
-    private Long id;
-
     @ApiModelProperty(value = "数据权限编号")
     private Long serviceDataAuthId;
 
-    @ApiModelProperty(value = "数据范围类型::1:全部组织,2:全部科室,3:全部科室除本科室外,4:本科室,5:本医疗组,6:本人,7:自定义")
+    @ApiModelProperty(value = "数据范围类型::1:全部组织,2:全部科室,3:全部科室除本科室外,4:本科室,5:本医疗组,6:本人,7:自定义" ,required = true)
+    @NotNull(message = "数据范围类型为空")
     private Integer dataType;
 
     @ApiModelProperty(value = "detail_id的类型 1:detail_id为医院id 2:为科室id3:为医生id")
@@ -37,7 +36,4 @@ public class DataAuthDetailVO implements Serializable {
 
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
-
-    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
-    private String isDeleted;
 }

+ 3 - 18
common/src/main/java/com/lantone/common/vo/DataAuthVO.java

@@ -16,33 +16,18 @@ import java.util.List;
  * @Version 1.0
  */
 @Data
-public class DataAuthVO extends Page implements Serializable {
+public class GetDataAuthPageVO extends Page implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "编号")
-    private Long id;
 
     @ApiModelProperty(value = "数据权限名称")
     private String name;
-
     @ApiModelProperty(value = "状态 0:禁用,1:启用")
     private String status;
-
-    @ApiModelProperty(value = "排序")
-    private String orderNo;
-
-    @ApiModelProperty(value = "医院ID")
-    private String hospitalId;
-
+    @ApiModelProperty("角色id列表")
+    private List<Long> roles;
     @ApiModelProperty(value = "创建用户编号")
     private Long creator;
 
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
-
-    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
-    private String isDeleted;
-    @ApiModelProperty("系统列表")
-    private List<SysSoftwareVO> softwareVOS;
 
 }

+ 35 - 0
common/src/main/java/com/lantone/common/vo/GetDoctorPageVO.java

@@ -0,0 +1,35 @@
+package com.lantone.common.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 医生表
+ * </p>
+ */
+@Data
+public class GetDoctorPageVO extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    private String mobilePhone;
+
+    @ApiModelProperty(value = "科室id集合")
+    private List<Long> depts;
+
+    @ApiModelProperty(value = "医院id集合")
+    private List<Long> hospitals;
+    @ApiModelProperty(value = "已关联,未关联")
+    private String relation;
+}

+ 28 - 0
common/src/main/java/com/lantone/common/vo/GetMenusTreeVo.java

@@ -0,0 +1,28 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 角色系统功能菜单VO
+ * </p>
+ */
+@Data
+public class GetMenusTreeVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "角色id列表", required = true)
+    @NotEmpty(message = "角色id列表为空")
+    private List<Long> roles;
+    @ApiModelProperty(value = "服务id", required = true)
+    @NotNull(message = "服务id为空")
+    private Long softwareId;
+
+
+}

+ 7 - 1
common/src/main/java/com/lantone/common/vo/RoleVO.java

@@ -1,10 +1,12 @@
 package com.lantone.common.vo;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName: RoleVO
@@ -14,7 +16,7 @@ import java.util.Date;
  * @Version 1.0
  */
 @Data
-public class RoleVO implements Serializable {
+public class RoleVO extends Page implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "编号")
@@ -43,4 +45,8 @@ public class RoleVO implements Serializable {
 
     @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
     private String isDeleted;
+    @ApiModelProperty(value = "系统服务对象")
+    private List<SysSoftwareVO> softwares;
+    @ApiModelProperty("操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
+    private int opeType;
 }

+ 0 - 32
common/src/main/java/com/lantone/common/vo/SoftwareDataAuthVO.java

@@ -1,32 +0,0 @@
-package com.lantone.common.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @ClassName: ServiceDataAuthVO
- * @Description: 系统数据权限对象
- * @Author songxl
- * @Date 2021/7/21
- * @Version 1.0
- */
-@Data
-public class SoftwareDataAuthVO {
-    /**
-     * 数据权限对象
-     */
-    @ApiModelProperty("数据权限对象")
-    private DataAuthVO dataAuthVO;
-    /**
-     * 角色列表
-     */
-    @ApiModelProperty("角色列表")
-    private List<RoleVO> roles;
-    /**
-     * 操作码 1:新增;2:修改
-     */
-    @ApiModelProperty("操作码 1:新增;2:修改")
-    private int  type;
-}

+ 8 - 18
common/src/main/java/com/lantone/common/vo/SysSoftwareVO.java

@@ -3,6 +3,8 @@ package com.lantone.common.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
@@ -18,28 +20,16 @@ import java.util.List;
 public class SysSoftwareVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "编号")
+    @ApiModelProperty(value = "编号",required = true)
+    @NotNull(message = "系统服务编号为空")
     private Long id;
 
     @ApiModelProperty(value = "服务名称")
     private String name;
 
-    @ApiModelProperty(value = "备注")
-    private String remark;
-
-    @ApiModelProperty(value = "创建用户编号")
-    private Long creator;
-
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
-
-    @ApiModelProperty(value = "排序")
-    private String orderNo;
-
-    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
-    private String isDeleted;
-    @ApiModelProperty(value = "数据权限详情列表")
+    @ApiModelProperty(value = "数据权限详情列表",required = true)
+    @NotEmpty(message = "数据权限详情列表为空")
     private List<DataAuthDetailVO> dataAuthDetailVOS;
-    @ApiModelProperty(value = "角色列表")
-    private List<RoleVO> roles;
+    @ApiModelProperty(value = "功能菜单列表")
+    private List<MenuVO> menus;
 }

+ 26 - 0
common/src/main/java/com/lantone/common/vo/UpdateAuthVO.java

@@ -0,0 +1,26 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @ClassName: ServiceDataAuthVO
+ * @Description: 系统数据权限对象
+ * @Author songxl
+ * @Date 2021/7/21
+ * @Version 1.0
+ */
+@Data
+public class UpdateAuthVO {
+    @ApiModelProperty(value = "数据权限对象", required = true)
+    @NotNull(message = "数据权限对象为空")
+    private UpdateDataAuthVO updateDataAuthVO;
+
+    @ApiModelProperty(value = "角色列表", required = true)
+    @NotEmpty(message = "角色列表为空")
+    private List<RoleVO> roles;
+}

+ 52 - 0
common/src/main/java/com/lantone/common/vo/UpdateDataAuthVO.java

@@ -0,0 +1,52 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: DataAuthVO
+ * @Description: 添加时数据权限对象
+ * @Author songxl
+ * @Date 2021/7/21
+ * @Version 1.0
+ */
+@Data
+public class UpdateDataAuthVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号", required = true)
+    @NotNull(message = "数据权限名称为空")
+    private Long id;
+
+    @ApiModelProperty(value = "数据权限名称", required = true)
+    @NotBlank(message = "数据权限名称为空")
+    private String name;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用", required = true)
+    @NotBlank(message = "数据权限状态为空")
+    private String status;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "医院ID")
+    private String hospitalId;
+
+    @ApiModelProperty(value = "创建用户编号")
+    private Long creator;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "系统列表", required = true)
+    @NotEmpty(message = "系统列表为空")
+    private List<SysSoftwareVO> softwareVOS;
+
+}

+ 72 - 0
common/src/main/java/com/lantone/common/vo/UpdateMenuVO.java

@@ -0,0 +1,72 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 菜单功能VO
+ * </p>
+ */
+@Data
+@ApiModel(value="MenuVO对象", description="菜单功能VO")
+public class UpdateMenuVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号",required = true)
+    @NotNull(message = "编号为空")
+    private Long id;
+
+    @ApiModelProperty(value = "父级编号",required = true)
+    @NotNull(message = "父级编号为空")
+    private Long parentId;
+
+    @ApiModelProperty(value = "服务id列表",required = true)
+    @NotEmpty(message = "服务id列表为空")
+    private List<Long> softwares;
+
+    @ApiModelProperty(value = "功能名称",required = true)
+    private String name;
+
+    @ApiModelProperty(value = "权限标识")
+    private List<String> permissions;
+
+    @ApiModelProperty(value = "类型:0:目录,1菜单,2按钮,3:超链接",required = true)
+    @NotBlank(message = "类型为空")
+    private String type;
+
+    @ApiModelProperty(value = "页面路由")
+    private String url;
+
+    @ApiModelProperty(value = "图标")
+    private String icon;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "状态 0:禁用,1:启用",required = true)
+    @NotBlank(message = "状态为空")
+    private String status;
+
+    @ApiModelProperty(value = "描述")
+    private String menuDescribe;
+
+    @ApiModelProperty(value = "记录创建时间")
+    private Date gmtCreate;
+
+    @ApiModelProperty(value = "创建人,0表示无创建人值")
+    private String creator;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}

+ 7 - 20
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/DataAuthMapper.java

@@ -2,10 +2,9 @@ package com.lantone.dblayermbg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.lantone.common.dto.DataAuthDTO;
+import com.lantone.common.dto.GetDataAuthPageDTO;
 import com.lantone.common.dto.SoftwareRoleDataAuthDetailDTO;
-import com.lantone.common.vo.DataAuthVO;
-import com.lantone.common.vo.SoftwareDataAuthVO;
+import com.lantone.common.vo.GetDataAuthPageVO;
 import com.lantone.dblayermbg.entity.DataAuth;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,37 +18,25 @@ import java.util.List;
 public interface DataAuthMapper extends BaseMapper<DataAuth> {
 
     /**
-     * @param softwareDataAuthVO
-     * @Method getDataAuthById
-     * @Author songxl
-     * @Version 1.0
+     * @param Id
      * @Description通过数据权限id和角色id获取数据权限
      * @Return java.util.List<com.lantone.common.dto.SoftwareRoleDataAuthDetailDTO>
-     * @Date 2021/7/29
      */
-    List<SoftwareRoleDataAuthDetailDTO> getDataAuthById(@Param("softwareDataAuthVO") SoftwareDataAuthVO softwareDataAuthVO);
+    List<SoftwareRoleDataAuthDetailDTO> getDataAuthById(@Param("Id") Long Id);
 
     /**
      * @param softwareID
      * @param dataDetailID
-     * @Method getOneSoftwareRoleDataAuthDetail
-     * @Author songxl
-     * @Version 1.0
      * @Description获取数据权限详情
      * @Return java.util.List<com.lantone.common.dto.SoftwareRoleDataAuthDetailDTO>
-     * @Date 2021/7/29
      */
     List<SoftwareRoleDataAuthDetailDTO> getOneSoftwareRoleDataAuthDetail(@Param("softwareID") Long softwareID, @Param("dataDetailID") Long dataDetailID);
 
 
     /**
-     * @param dataAuthVO
-     * @Method getDataAuthPage
-     * @Author songxl
-     * @Version 1.0
+     * @param getDataAuthPageVO
      * @Description获取数据权限列表
-     * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.common.dto.DataAuthDTO>
-     * @Date 2021/7/29
+     * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.common.dto.GetDataAuthPageDTO>
      */
-    IPage<DataAuthDTO> getDataAuthPage(@Param("dataAuthVO") DataAuthVO dataAuthVO);
+    IPage<GetDataAuthPageDTO> getDataAuthPage(@Param("dataAuthVO") GetDataAuthPageVO getDataAuthPageVO);
 }

+ 8 - 3
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/DoctorMapper.java

@@ -2,8 +2,8 @@ package com.lantone.dblayermbg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.lantone.common.dto.DoctorDTO;
-import com.lantone.common.vo.DoctorVO;
+import com.lantone.common.dto.GetDoctorPageDTO;
+import com.lantone.common.vo.GetDoctorPageVO;
 import com.lantone.dblayermbg.entity.Doctor;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,5 +13,10 @@ import org.apache.ibatis.annotations.Param;
  * </p>
  */
 public interface DoctorMapper extends BaseMapper<Doctor> {
-    IPage<DoctorDTO> getDoctorPage(@Param("doctorVO") DoctorVO doctorVO);
+    /**
+     * @Description获取医生列表
+     * @param getDoctorPageVO
+     * @Return 
+     */
+    IPage<GetDoctorPageDTO> getDoctorPage(@Param("doctorVO") GetDoctorPageVO getDoctorPageVO);
 }

+ 2 - 2
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/MenuMapper.java

@@ -1,7 +1,7 @@
 package com.lantone.dblayermbg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.lantone.common.dto.MenuDTO;
+import com.lantone.common.dto.GetMenuByIdDTO;
 import com.lantone.common.vo.MenuVO;
 import com.lantone.dblayermbg.entity.Menu;
 import org.apache.ibatis.annotations.Param;
@@ -13,5 +13,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface MenuMapper extends BaseMapper<Menu> {
 
-    MenuDTO getMenuById(@Param("menuVO") MenuVO menuVO);
+    GetMenuByIdDTO getMenuById(@Param("id") Long id,@Param("softwareId") Long softwareId);
 }

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

@@ -1,7 +1,11 @@
 package com.lantone.dblayermbg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.common.vo.RoleVO;
 import com.lantone.dblayermbg.entity.Role;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -9,5 +13,15 @@ import com.lantone.dblayermbg.entity.Role;
  * </p>
  */
 public interface RoleMapper extends BaseMapper<Role> {
+    /**
+     * @Method getRolePage
+     * @Author songxl
+     * @Version  1.0
+     * @Description获取角色列表
+     * @param roleVO
+     * @Return java.util.List<com.lantone.dblayermbg.entity.Role>
+     * @Date 2021/7/30
+     */
+    List<Role> getRolePage(@Param("roleVO") RoleVO roleVO);
 
 }

+ 4 - 8
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/RoleSoftwareMenuMapper.java

@@ -1,8 +1,8 @@
 package com.lantone.dblayermbg.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.lantone.common.dto.MenuDTO;
-import com.lantone.common.vo.RoleSoftwareMenuVo;
+import com.lantone.common.dto.GetMenusTreeDTO;
+import com.lantone.common.vo.GetMenusTreeVo;
 import com.lantone.dblayermbg.entity.RoleSoftwareMenu;
 import org.apache.ibatis.annotations.Param;
 
@@ -15,13 +15,9 @@ import java.util.List;
  */
 public interface RoleSoftwareMenuMapper extends BaseMapper<RoleSoftwareMenu> {
     /**
-     * @param roleSoftwareMenuVo
-     * @Method getMenus
-     * @Author songxl
-     * @Version 1.0
+     * @param getMenusTreeVo
      * @Description普通用户获取对应系统的菜单列表
      * @Return java.util.List<com.lantone.common.dto.MenuDTO>
-     * @Date 2021/7/28
      */
-    List<MenuDTO> getMenus(@Param("roleSoftwareMenuVos") RoleSoftwareMenuVo roleSoftwareMenuVo);
+    List<GetMenusTreeDTO> getMenus(@Param("roleSoftwareMenuVos") GetMenusTreeVo getMenusTreeVo);
 }

+ 3 - 9
dblayer-mbg/src/main/resources/mapper/DataAuthMapper.xml

@@ -30,14 +30,8 @@
         AND rsd.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND sd.is_deleted = 'N'
-        <if test="softwareDataAuthVO.roles !=null and softwareDataAuthVO.roles.size!=0">
-            AND rsd.role_id in
-            <foreach collection="softwareDataAuthVO.roles" item="role" open="(" close=")" separator=",">
-                #{role.id}
-            </foreach>
-        </if>
-        <if test="softwareDataAuthVO.dataAuthVO.id != null ">
-            AND d.id = #{softwareDataAuthVO.dataAuthVO.id}
+        <if test="Id != null ">
+            AND d.id = #{Id}
         </if>
     </select>
 
@@ -74,7 +68,7 @@
             AND s.id = #{softwareID}
         </if>
     </select>
-    <select id="getDataAuthPage" resultType="com.lantone.common.dto.DataAuthDTO">
+    <select id="getDataAuthPage" resultType="com.lantone.common.dto.GetDataAuthPageDTO">
         SELECT DISTINCT
         auth.id,
         auth.name,

+ 1 - 1
dblayer-mbg/src/main/resources/mapper/DoctorMapper.xml

@@ -1,7 +1,7 @@
 <?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.DoctorMapper">
-    <select id="getDoctorPage" resultType="com.lantone.common.dto.DoctorDTO">
+    <select id="getDoctorPage" resultType="com.lantone.common.dto.GetDoctorPageDTO">
         SELECT
         *
         FROM

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

@@ -1,7 +1,7 @@
 <?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.MenuMapper">
-    <select id="getMenuById" resultType="com.lantone.common.dto.MenuDTO">
+    <select id="getMenuById" resultType="com.lantone.common.dto.GetMenuByIdDTO">
         SELECT DISTINCT
         sm.software_id softwareId,
         IF (
@@ -30,11 +30,11 @@
         AND m.is_deleted = 'N'
         AND mr.is_deleted = 'N'
         AND r.is_deleted = 'N'
-        <if test="menuVO.softwareId != null and menuVO.softwareId !=''">
-            AND sm.software_id = #{menuVO.softwareId}
+        <if test="softwareId != null ">
+            AND sm.software_id = #{softwareId}
         </if>
-        <if test="menuVO.id != null and menuVO.id !=''">
-            AND m.id = #{menuVO.id}
+        <if test="menuVO.id != null ">
+            AND m.id = #{id}
         </if>
     </select>
 </mapper>

+ 16 - 1
dblayer-mbg/src/main/resources/mapper/RoleMapper.xml

@@ -1,5 +1,20 @@
 <?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">
-
+    <select id="getRolePage" resultType="com.lantone.common.vo.RoleVO">
+        SELECT
+            *
+        FROM
+            sys_role r
+        WHERE
+            r.is_deleted = 'N'
+        AND r.creator = #{roleVO.creator}
+        AND r.hospital_id = #{roleVO.hospitalId}
+        <if test="roleVo.name!=null and roleVo.name!=''">
+            AND r.`name` LIKE concat('%',#{roleVo.name},'%')
+        </if>
+        <if test="roleVo.status!=null and roleVo.status!=''">
+            AND r.`status` = #{roleVO.status}
+        </if>
+    </select>
 </mapper>

+ 1 - 2
dblayer-mbg/src/main/resources/mapper/RoleSoftwareMenuMapper.xml

@@ -1,12 +1,11 @@
 <?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.RoleSoftwareMenuMapper">
-    <select id="getMenus" resultType="com.lantone.common.dto.MenuDTO">
+    <select id="getMenus" resultType="com.lantone.common.dto.GetMenusTreeDTO">
         SELECT
         m.id,
         m.`name`,
         m.parent_id,
-        m.`menu_describe`,
         m.`status`,
         m.order_no,
         m.remark,

+ 54 - 187
security-center/src/main/java/com/lantone/security/facade/DataAuthHandleFacade.java

@@ -3,10 +3,11 @@ package com.lantone.security.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.lantone.common.dto.DataAuthDTO;
 import com.lantone.common.dto.DataAuthDetailDTO;
 import com.lantone.common.dto.DeptDTO;
-import com.lantone.common.dto.DoctorDTO;
+import com.lantone.common.dto.GetDataAuthByIdDTO;
+import com.lantone.common.dto.GetDataAuthPageDTO;
+import com.lantone.common.dto.GetDoctorPageDTO;
 import com.lantone.common.dto.HospitalDTO;
 import com.lantone.common.dto.RoleDTO;
 import com.lantone.common.dto.SoftwareRoleDataAuthDetailDTO;
@@ -14,13 +15,13 @@ import com.lantone.common.dto.SysServiceDTO;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.ListUtil;
-import com.lantone.common.util.StringUtil;
+import com.lantone.common.vo.AddAuthVO;
 import com.lantone.common.vo.DataAuthDetailVO;
-import com.lantone.common.vo.DataAuthVO;
-import com.lantone.common.vo.DoctorVO;
+import com.lantone.common.vo.GetDataAuthPageVO;
+import com.lantone.common.vo.GetDoctorPageVO;
 import com.lantone.common.vo.RoleVO;
-import com.lantone.common.vo.SoftwareDataAuthVO;
 import com.lantone.common.vo.SysSoftwareVO;
+import com.lantone.common.vo.UpdateAuthVO;
 import com.lantone.dblayermbg.entity.DataAuth;
 import com.lantone.dblayermbg.entity.DataAuthDetail;
 import com.lantone.dblayermbg.entity.Dept;
@@ -34,8 +35,6 @@ import com.lantone.dblayermbg.facade.DoctorFacade;
 import com.lantone.dblayermbg.facade.HospitalFacade;
 import com.lantone.dblayermbg.facade.RoleSoftwareDataAuthFacade;
 import com.lantone.dblayermbg.facade.SoftwareDataAuthFacade;
-import com.lantone.dblayermbg.service.impl.DataAuthServiceImpl;
-import com.lantone.security.enums.CRUDEnum;
 import com.lantone.security.enums.DataAuthDataTypeEnum;
 import com.lantone.security.enums.DataAuthDetailTypeEnum;
 import com.lantone.security.enums.HospitalTypeEnum;
@@ -44,7 +43,6 @@ import com.lantone.security.enums.ServiceEnum;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -62,7 +60,7 @@ import java.util.stream.Collectors;
  * @Version 1.0
  */
 @Component
-public class DataAuthHandleFacade  {
+public class DataAuthManagementFacade {
     @Autowired
     private DataAuthFacade dataAuthFacade;
     @Autowired
@@ -78,72 +76,36 @@ public class DataAuthHandleFacade  {
     @Autowired
     private DoctorFacade doctorFacade;
 
-    /**
-     * @Author songxl
-     * @Description 数据权限CRUD方法
-     * @Date 2021/7/21
-     * @Param [serviceDataAuthVO]
-     * @Return void
-     * @MethodName CRUDOperation
-     */
-    @Transactional
-    public boolean CRUDOperation(SoftwareDataAuthVO softwareDataAuthVO) {
-        try {
-            //1.入参校验
-            inputParamCheck(softwareDataAuthVO);
-            //2.执行操作
-            if (CRUDEnum.ADD.getKey() == softwareDataAuthVO.getType()) {                 //添加
-                return addDataAuth(softwareDataAuthVO);
-            } else if (CRUDEnum.UPDATE.getKey() == softwareDataAuthVO.getType()) {       //修改
-                return updateDataAuth(softwareDataAuthVO);
-            } else if (CRUDEnum.DELETE.getKey() == softwareDataAuthVO.getType()) {       //删除
-                return deleteDataAuth(softwareDataAuthVO);
-            } else if (CRUDEnum.DISBALE.getKey() == softwareDataAuthVO.getType()) {       //启用禁用
-                return disableDataAuth(softwareDataAuthVO);
-            } else {
-                Asserts.fail("操作码错误");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            Asserts.fail(e.toString());
-        }
-        return false;
-    }
 
     /**
-     * @Author songxl
+     * @param Id
+     * @param status
      * @Description禁用启用数据权限
-     * @Date 2021/7/23
-     * @Param [serviceDataAuthVO]
      * @Return boolean
-     * @MethodName disableDataAuth
      */
-    private boolean disableDataAuth(SoftwareDataAuthVO serviceDataAuthVO) {
+    public boolean disableDataAuth(Long Id, String status) {
         return dataAuthFacade.update(new UpdateWrapper<DataAuth>()
-                .set("status", serviceDataAuthVO.getDataAuthVO().getStatus())
-                .eq("id", serviceDataAuthVO.getDataAuthVO().getId())
+                .set("status", status)
+                .eq("id", Id)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
     }
 
     /**
-     * @Author songxl
      * @Description修改数据权限
-     * @Date 2021/7/23
      * @Param [softwareDataAuthVO]
      * @Return boolean
-     * @MethodName updateDataAuth
      */
-    private boolean updateDataAuth(SoftwareDataAuthVO softwareDataAuthVO) {
+    public boolean updateDataAuth(UpdateAuthVO updateAuthVO) {
 
         //1.修改数据权限
         boolean dataAuthUpdate = dataAuthFacade.update(new UpdateWrapper<DataAuth>()
-                .set("name", softwareDataAuthVO.getDataAuthVO().getName())
-                .eq("id", softwareDataAuthVO.getDataAuthVO().getId())
+                .set("name", updateAuthVO.getUpdateDataAuthVO().getName())
+                .eq("id", updateAuthVO.getUpdateDataAuthVO().getId())
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
         if (dataAuthUpdate) {
             //2.获取该权限 系统与数据权限信息关联表(sys_service_data_auth)的关联id
             List<Long> serviceDataAuthIDS = softwareDataAuthFacade.list(new QueryWrapper<SoftwareDataAuth>()
-                    .eq("data_auth_id", softwareDataAuthVO.getDataAuthVO().getId())
+                    .eq("data_auth_id", updateAuthVO.getUpdateDataAuthVO().getId())
                     .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(SoftwareDataAuth::getId).collect(Collectors.toList());
             //3.通过serviceDataAuthIDS 删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail 对应关系
             if (ListUtil.isNotEmpty(serviceDataAuthIDS)) {
@@ -152,7 +114,7 @@ public class DataAuthHandleFacade  {
                 }
             }
             //4.插入新建数据权限与系统的关系
-            saveServiceDataAuth(softwareDataAuthVO, softwareDataAuthVO.getDataAuthVO().getId());
+            saveServiceDataAuth(updateAuthVO.getUpdateDataAuthVO().getSoftwareVOS(), updateAuthVO.getRoles(), updateAuthVO.getUpdateDataAuthVO().getId());
         } else {
             Asserts.fail("数据权限修改失败");
         }
@@ -160,14 +122,11 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
      * @Description通过serviceDataAuthIDS删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail对应关系
-     * @Date 2021/7/23
      * @Param [serviceDataAuthIDS]
      * @Return void
-     * @MethodName deleteServiceDataAuth
      */
-    private boolean deleteServiceDataAuth(List<Long> serviceDataAuthIDS) {
+    public boolean deleteServiceDataAuth(List<Long> serviceDataAuthIDS) {
         if (dataAuthDetailFacade.remove(new UpdateWrapper<DataAuthDetail>()
                 .in("software_data_auth_id", serviceDataAuthIDS)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()))) {
@@ -187,22 +146,19 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
+     * @param Id
      * @Description删除数据权限
-     * @Date 2021/7/23
-     * @Param [serviceDataAuthVO]
      * @Return boolean
-     * @MethodName deleteDataAuth
      */
-    private boolean deleteDataAuth(SoftwareDataAuthVO serviceDataAuthVO) {
+    public boolean deleteDataAuth(Long Id) {
         //1.删除数据权限
         boolean dataAuthdelete = dataAuthFacade.remove(new UpdateWrapper<DataAuth>()
-                .eq("id", serviceDataAuthVO.getDataAuthVO().getId())
+                .eq("id", Id)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
         if (dataAuthdelete) {
             //2.获取该权限 系统与数据权限信息关联表(sys_service_data_auth)的关联id
             List<Long> serviceDataAuthIDS = softwareDataAuthFacade.list(new QueryWrapper<SoftwareDataAuth>()
-                    .eq("data_auth_id", serviceDataAuthVO.getDataAuthVO().getId())
+                    .eq("data_auth_id", Id)
                     .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(SoftwareDataAuth::getId).collect(Collectors.toList());
             //3.通过serviceDataAuthIDS 删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail 对应关系
             if (ListUtil.isNotEmpty(serviceDataAuthIDS)) {
@@ -219,18 +175,15 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
+     * @param addAuthVO
      * @Description添加数据权限
-     * @Date 2021/7/21
-     * @Param [serviceDataAuthVO]
-     * @Return void
-     * @MethodName addDataAuth
+     * @Return boolean
      */
-    private boolean addDataAuth(SoftwareDataAuthVO serviceDataAuthVO) {
+    public boolean addDataAuth(AddAuthVO addAuthVO) {
         //1.插入新建数据权限
         DataAuth dataAuth = new DataAuth();
         //        dataAuth.setCreator(Long.parseLong(SysUserUtils.getCurrentPrincipleID()));
-        BeanUtils.copyProperties(serviceDataAuthVO.getDataAuthVO(), dataAuth);
+        BeanUtils.copyProperties(addAuthVO.getAddDataAuthVO(), dataAuth);
         dataAuth.setGmtCreate(DateUtil.now());
         dataAuth.setCreator("1");//###当前登录人
         boolean dataAuthInsert = dataAuthFacade.save(dataAuth);
@@ -241,7 +194,7 @@ public class DataAuthHandleFacade  {
                     .eq("is_deleted", IsDeleteEnum.N.getKey())).get(0).getId();
 
             //3.插入新建数据权限与系统的关系
-            saveServiceDataAuth(serviceDataAuthVO, dataAuthId);
+            saveServiceDataAuth(addAuthVO.getAddDataAuthVO().getSoftwareVOS(), addAuthVO.getRoles(), dataAuthId);
 
         } else {
             Asserts.fail("数据权限插入失败");
@@ -251,15 +204,15 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
      * @Description插入新建数据权限与系统的关系
-     * @Date 2021/7/23
-     * @Param [serviceDataAuthVO, dataAuthId]
+     * @param softwareVOS
+     * @param roles
+     * @param dataAuthId
      * @Return void
-     * @MethodName saveServiceDataAuth
      */
-    private void saveServiceDataAuth(SoftwareDataAuthVO serviceDataAuthVO, Long dataAuthId) {
-        for (SysSoftwareVO sysServiceVO : serviceDataAuthVO.getDataAuthVO().getSoftwareVOS()) {
+    private void saveServiceDataAuth(List<SysSoftwareVO> softwareVOS, List<RoleVO> roles, Long dataAuthId) {
+
+        for (SysSoftwareVO sysServiceVO : softwareVOS) {
             SoftwareDataAuth serviceDataAuth = new SoftwareDataAuth();
             serviceDataAuth.setSoftwareId(sysServiceVO.getId());
             serviceDataAuth.setDataAuthId(dataAuthId);
@@ -275,7 +228,7 @@ public class DataAuthHandleFacade  {
                         .eq("is_deleted", IsDeleteEnum.N.getKey())).get(0).getId();
 
                 //2.插入数据权限系统关联表与角色管理sys_role_service_data_auth
-                for (RoleVO role : serviceDataAuthVO.getRoles()) {
+                for (RoleVO role : roles) {
                     RoleSoftwareDataAuth roleServiceDataAuth = new RoleSoftwareDataAuth();
                     roleServiceDataAuth.setRoleId(role.getId());
                     roleServiceDataAuth.setSoftwareDataAuthId(serviceDataAuthId);
@@ -286,7 +239,6 @@ public class DataAuthHandleFacade  {
                         Asserts.fail("角色对应服务数据权限关系插入失败");
                     }
                 }
-
                 //3.插入数据权限详细信息。sys_data_auth_detail
                 for (DataAuthDetailVO dataAuthDetailVO : sysServiceVO.getDataAuthDetailVOS()) {
                     DataAuthDetail dataAuthDetail = new DataAuthDetail();
@@ -307,80 +259,13 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
-     * @Description 入参校验
-     * @Date 2021/7/21
-     * @Param [serviceDataAuthVO]
-     * @Return void
-     * @MethodName inputParamCheck
-     */
-    private void inputParamCheck(SoftwareDataAuthVO serviceDataAuthVO) {
-        if (serviceDataAuthVO == null) {
-            Asserts.fail("入参为空");
-        }
-        if (serviceDataAuthVO.getType() == 0) {
-            Asserts.fail("操作码为空");
-        }
-        switch (serviceDataAuthVO.getType()) {
-            case 1:
-                if (StringUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getName())) {
-                    Asserts.fail("数据权限名称为空");
-                }
-                if (ListUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getSoftwareVOS())) {
-                    Asserts.fail("数据权限对应系统未选择");
-                }
-                if (ListUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getSoftwareVOS().get(0).getDataAuthDetailVOS())) {
-                    Asserts.fail("系统对应数据权限明细未选择");
-                }
-                break;
-            case 2:
-                if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
-                    Asserts.fail("数据权限ID为空");
-                }
-                if (StringUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getName())) {
-                    Asserts.fail("数据权限名称为空");
-                }
-                if (ListUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getSoftwareVOS())) {
-                    Asserts.fail("数据权限对应系统未选择");
-                }
-                if (ListUtil.isEmpty(serviceDataAuthVO.getDataAuthVO().getSoftwareVOS().get(0).getDataAuthDetailVOS())) {
-                    Asserts.fail("系统对应数据权限明细未选择");
-                }
-                break;
-            case 3:
-                if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
-                    Asserts.fail("数据权限ID为空");
-                }
-                break;
-            case 5:
-                if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
-                    Asserts.fail("数据权限ID为空");
-                }
-                if (serviceDataAuthVO.getDataAuthVO().getStatus() == null) {
-                    Asserts.fail("status为空");
-                }
-                break;
-            default:
-
-                break;
-        }
-
-    }
-
-    /**
-     * @Author songxl
-     * @Description通过数据权限id和角色id获取数据权限详情
-     * @Date 2021/7/22
+     * @Description通过数据权限id获取数据权限详情
      * @Param [serviceDataAuthVO]
      * @Return com.lantone.security.dto.DataAuthDTO
-     * @MethodName getDataAuthById
      */
-    public DataAuthDTO getDataAuthById(SoftwareDataAuthVO serviceDataAuthVO) {
-        if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
-            Asserts.fail("数据权限ID为空");
-        }
-        DataAuthDTO dataAuthDTO = new DataAuthDTO();
-        List<SoftwareRoleDataAuthDetailDTO> serviceRoleDataAuthDetailDTOS = dataAuthFacade.getBaseMapper().getDataAuthById(serviceDataAuthVO);
+    public GetDataAuthByIdDTO getDataAuthById(Long Id) {
+        GetDataAuthByIdDTO dataAuthDTO = new GetDataAuthByIdDTO();
+        List<SoftwareRoleDataAuthDetailDTO> serviceRoleDataAuthDetailDTOS = dataAuthFacade.getBaseMapper().getDataAuthById(Id);
         if (ListUtil.isNotEmpty(serviceRoleDataAuthDetailDTOS)) {
             //1.添加数据权限信息
             dataAuthDTO.setId(serviceRoleDataAuthDetailDTOS.get(0).getDataAuthId());
@@ -397,7 +282,7 @@ public class DataAuthHandleFacade  {
                 //4.1添加数据权限详情列表
                 //                List<ServiceRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = serviceRoleDataAuthDetailDTOS.stream()
                 //                        .filter(serviceRoleDataAuthDetailDTO -> serviceRoleDataAuthDetailDTO.getServiceId() == id).collect(Collectors.toList());
-                List<SoftwareRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = dataAuthFacade.getBaseMapper().getOneSoftwareRoleDataAuthDetail(id, serviceDataAuthVO.getDataAuthVO().getId());
+                List<SoftwareRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = dataAuthFacade.getBaseMapper().getOneSoftwareRoleDataAuthDetail(id, Id);
 
                 List<DataAuthDetailDTO> dataAuthDetailDTOS = new ArrayList<>();
                 //4.2.1是否获取当前组织-科室信息 dataAuthDetailDTOS去重
@@ -436,17 +321,13 @@ public class DataAuthHandleFacade  {
         } else {
             Asserts.fail("请检查角色id或数据权限id");
         }
-
         return dataAuthDTO;
     }
 
     /**
-     * @Author songxl
      * @Description 获取组织-科室信息以及自定义科室
-     * @Date 2021/7/22
-     * @Param [dataAuthDetailDTO]
+     * @param dataAuthDetailDTO
      * @Return void
-     * @MethodName getDeptDetial
      */
     public void getDeptDetial(DataAuthDetailDTO dataAuthDetailDTO) {
         //1.获取医院信息
@@ -467,14 +348,13 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
-     * @Description获取对应医院的科室信息
-     * @Date 2021/7/23
-     * @Param [hospitalDTO, dataAuthDetailDTOS]
+     * @Description取对应医院的科室信息
+     * @param hospitalDTO
+     * @param dataAuthDetailDTO
      * @Return void
-     * @MethodName getDeptInfo
      */
     private void getDeptInfo(HospitalDTO hospitalDTO, DataAuthDetailDTO dataAuthDetailDTO) {
+
         if (hospitalDTO != null) {
             if (ListUtil.isNotEmpty(hospitalDTO.getHospitalDTOS())) {
                 for (HospitalDTO oneHospitalDTO : hospitalDTO.getHospitalDTOS()) {
@@ -502,16 +382,12 @@ public class DataAuthHandleFacade  {
                 hospitalDTO.setDepts(deptDTOS);
             }
         }
-
     }
 
     /**
-     * @Author songxl
      * @Description 获取医院对应的子医院信息
-     * @Date 2021/7/23
-     * @Param [hospitalDTOS]
+     * @param hospitalDTOS
      * @Return void
-     * @MethodName getAllHospitalDTO
      */
     private void getAllHospitalDTO(List<HospitalDTO> hospitalDTOS) {
         if (ListUtil.isNotEmpty(hospitalDTOS)) {
@@ -522,12 +398,9 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
+     * @param hospitalDTO
      * @Description获取医院信息
-     * @Date 2021/7/22
-     * @Param [parentId]
      * @Return java.util.List<com.lantone.common.dto.HospitalDTO>
-     * @MethodName getHospitalInfo
      */
     private List<HospitalDTO> getHospitalInfo(HospitalDTO hospitalDTO) {
         List<HospitalDTO> hospitalDTOS = new ArrayList<>();
@@ -546,27 +419,21 @@ public class DataAuthHandleFacade  {
     }
 
     /**
-     * @Author songxl
+     * @param getDoctorPageVO
      * @Description通过医院id或科室id获取医生列表
-     * @Date 2021/7/27
-     * @Param [hospitalVO]
      * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.common.dto.DoctorDTO>
-     * @MethodName getDoctorPage
      */
-    public IPage<DoctorDTO> getDoctorPage(DoctorVO doctorVO) {
-        return doctorFacade.getBaseMapper().getDoctorPage(doctorVO);
+    public IPage<GetDoctorPageDTO> getDoctorPage(GetDoctorPageVO getDoctorPageVO) {
+        return doctorFacade.getBaseMapper().getDoctorPage(getDoctorPageVO);
     }
 
     /**
-     * @Author songxl
+     * @param getDataAuthPageVO
      * @Description获取数据权限列表
-     * @Date 2021/7/27
-     * @Param [dataAuthVO]
      * @Return com.baomidou.mybatisplus.core.metadata.IPage<com.lantone.common.dto.DataAuthDTO>
-     * @MethodName getDataAuthPage
      */
-    public IPage<DataAuthDTO> getDataAuthPage(DataAuthVO dataAuthVO) {
-        dataAuthVO.setCreator(1l);//###当前登录人
-        return dataAuthFacade.getBaseMapper().getDataAuthPage(dataAuthVO);
+    public IPage<GetDataAuthPageDTO> getDataAuthPage(GetDataAuthPageVO getDataAuthPageVO) {
+        getDataAuthPageVO.setCreator(1l);//###当前登录人
+        return dataAuthFacade.getBaseMapper().getDataAuthPage(getDataAuthPageVO);
     }
 }

+ 54 - 197
security-center/src/main/java/com/lantone/security/facade/FuncManagementFacade.java

@@ -2,14 +2,19 @@ package com.lantone.security.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.lantone.common.dto.GetMenuByIdDTO;
+import com.lantone.common.dto.GetMenusTreeDTO;
 import com.lantone.common.dto.MenuDTO;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.EntityUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.common.vo.AddMenuVO;
+import com.lantone.common.vo.GetMenusTreeVo;
 import com.lantone.common.vo.MenuVO;
 import com.lantone.common.vo.RoleSoftwareMenuVo;
+import com.lantone.common.vo.UpdateMenuVO;
 import com.lantone.dblayermbg.entity.Menu;
 import com.lantone.dblayermbg.entity.MenuResource;
 import com.lantone.dblayermbg.entity.Resource;
@@ -52,26 +57,19 @@ public class FuncManagementFacade {
     private SoftwareMenuFacade softwareMenuFacade;
 
     /**
-     * @param roleSoftwareMenuVo
-     * @Method getMenus
-     * @Author songxl
-     * @Version 1.0
+     * @param getMenusTreeVo
      * @Description获取功能菜单树
-     * @Return java.util.List<com.lantone.common.dto.MenuDTO>
-     * @Date 2021/7/28
+     * @Return java.util.List<com.lantone.common.dto.GetMenusTreeDTO>
      */
-    public List<MenuDTO> getMenusTree(RoleSoftwareMenuVo roleSoftwareMenuVo) {
-
-        //1.入参校验
-        inputParamCheck(roleSoftwareMenuVo);
-        List<MenuDTO> menuList = null;
+    public List<GetMenusTreeDTO> getMenusTree(GetMenusTreeVo getMenusTreeVo) {
+        List<GetMenusTreeDTO> menuList = null;
         //2.1获取菜单列表
-        menuList = roleSoftwareMenuFacade.getBaseMapper().getMenus(roleSoftwareMenuVo);
+        menuList = roleSoftwareMenuFacade.getBaseMapper().getMenus(getMenusTreeVo);
         //3.整理菜单
         if (ListUtil.isNotEmpty(menuList)) {
-            Map<Long, List<MenuDTO>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
-            List<MenuDTO> menuRes = menuMap.get(0L);
-            for (MenuDTO bean : menuRes) {
+            Map<Long, List<GetMenusTreeDTO>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
+            List<GetMenusTreeDTO> menuRes = menuMap.get(0L);
+            for (GetMenusTreeDTO bean : menuRes) {
                 getSonMenu(bean, menuMap);
             }
             return menuRes;
@@ -81,92 +79,7 @@ public class FuncManagementFacade {
         return null;
     }
 
-    /**
-     * @param roleSoftwareMenuVo
-     * @Method inputParamCheck
-     * @Author songxl
-     * @Version 1.0
-     * @Description入参校验
-     * @Return void
-     * @Date 2021/7/28
-     */
-    private void inputParamCheck(RoleSoftwareMenuVo roleSoftwareMenuVo) {
-        if (roleSoftwareMenuVo == null) {
-            Asserts.fail("入参为空");
-        }
-        if (ListUtil.isEmpty(roleSoftwareMenuVo.getRoles())) {
-            Asserts.fail("角色列表为空");
-        }
-        if (roleSoftwareMenuVo.getSoftwareId() == null) {
-            Asserts.fail("服务id为空");
-        }
-    }
 
-    /**
-     * @param menuVO
-     * @Method inputParamCheck
-     * @Author songxl
-     * @Version 1.0
-     * @Description入参校验
-     * @Return void
-     * @Date 2021/7/28
-     */
-    private void inputParamCheck(MenuVO menuVO) {
-        if (menuVO == null) {
-            Asserts.fail("入参为空");
-        }
-        if (menuVO.getOpeType() == 0) {
-            Asserts.fail("操作码为空");
-        }
-        switch (menuVO.getOpeType()) {
-            case 1:
-                if (StringUtil.isEmpty(menuVO.getName())) {
-                    Asserts.fail("功能菜单名称为空");
-                }
-                if (menuVO.getParentId() == null) {
-                    Asserts.fail("功能菜单父级ID为空");
-                }
-                if (ListUtil.isEmpty(menuVO.getSoftwares())) {
-                    Asserts.fail("功能菜单所属服务ID列表为空");
-                }
-                if (menuVO.getType() == null) {
-                    Asserts.fail("功能菜单类型为空");
-                }
-                break;
-            case 2:
-                if (menuVO.getId() == null) {
-                    Asserts.fail("功能菜单ID为空");
-                }
-                if (StringUtil.isEmpty(menuVO.getName())) {
-                    Asserts.fail("功能菜单名称为空");
-                }
-                if (menuVO.getParentId() == null) {
-                    Asserts.fail("功能菜单父级ID为空");
-                }
-                if (ListUtil.isEmpty(menuVO.getSoftwares())) {
-                    Asserts.fail("功能菜单所属服务ID列表为空");
-                }
-                if (menuVO.getType() == null) {
-                    Asserts.fail("功能菜单类型为空");
-                }
-                break;
-            case 3:
-                if (menuVO.getId() == null) {
-                    Asserts.fail("功能菜单ID为空");
-                }
-                break;
-            case 5:
-                if (menuVO.getId() == null) {
-                    Asserts.fail("功能菜单ID为空");
-                }
-                if (menuVO.getStatus() == null) {
-                    Asserts.fail("status为空");
-                }
-                break;
-            default:
-                break;
-        }
-    }
 
 
     /**
@@ -176,12 +89,12 @@ public class FuncManagementFacade {
      * @param menuMap 菜单集
      * @return 菜单结构
      */
-    public List<MenuDTO> getSonMenu(MenuDTO menu, Map<Long, List<MenuDTO>> menuMap) {
-        List<MenuDTO> sonMenu = new ArrayList<>();
-        List<MenuDTO> menuList = menuMap.get(menu.getId());
+    public List<GetMenusTreeDTO> getSonMenu(GetMenusTreeDTO menu, Map<Long, List<GetMenusTreeDTO>> menuMap) {
+        List<GetMenusTreeDTO> sonMenu = new ArrayList<>();
+        List<GetMenusTreeDTO> menuList = menuMap.get(menu.getId());
         if (ListUtil.isNotEmpty(menuList)) {
             menu.setSonMenu(menuList);
-            for (MenuDTO bean : menuList) {
+            for (GetMenusTreeDTO bean : menuList) {
                 getSonMenu(bean, menuMap);
             }
         }
@@ -189,29 +102,25 @@ public class FuncManagementFacade {
     }
 
     /**
-     * @param menuVO
-     * @Method addMenu
-     * @Author songxl
-     * @Version 1.0
+     * @param addMenuVO
      * @Description添加功能菜单
      * @Return java.lang.Boolean
-     * @Date 2021/7/28
      */
-    private Boolean addMenu(MenuVO menuVO) {
+    public Boolean addMenu(AddMenuVO addMenuVO) {
         //1.插入sys_menu
         //1.1插入sys_menu
         Menu menu = new Menu();
-        BeanUtils.copyProperties(menuVO, menu);
+        BeanUtils.copyProperties(addMenuVO, menu);
         menu.setGmtCreate(DateUtil.now());
         if (menuFacade.save(menu)) {
             //1.2插入成功获取 menuID
             Long menuID = menuFacade.list(new QueryWrapper<Menu>()
-                    .eq("parent_id", menuVO.getParentId())
-                    .eq("name", menuVO.getName())
-                    .eq("type", menuVO.getType())
+                    .eq("parent_id", addMenuVO.getParentId())
+                    .eq("name", addMenuVO.getName())
+                    .eq("type", addMenuVO.getType())
                     .eq("is_deleted", IsDeleteEnum.N.getKey())).get(0).getId();
             //插入sys_resource、sys_menu_resource
-            return saveMenuResource(menuVO, menuID);
+            return saveMenuResource(addMenuVO.getPermissions(),addMenuVO.getSoftwares(), menuID);
         } else {
             Asserts.fail("菜单详情插入失败");
         }
@@ -219,18 +128,16 @@ public class FuncManagementFacade {
     }
 
     /**
-     * @param menuVO
-     * @Method saveMenuResource
-     * @Author songxl
-     * @Version 1.0
-     * @Description
-     * @Return void
-     * @Date 2021/7/28
+     * @Description插入sys_resource、sys_menu_resource
+     * @param permissions
+     * @param softwares
+     * @param menuID
+     * @Return boolean
      */
-    private boolean saveMenuResource(MenuVO menuVO, Long menuID) {
+    private boolean saveMenuResource(List<String> permissions,List<Long> softwares, Long menuID) {
         //2.3 判断该功能菜单是否有对应权限
-        if (ListUtil.isNotEmpty(menuVO.getPermissions())) {
-            menuVO.getPermissions().stream().forEach(permission -> {
+        if (ListUtil.isNotEmpty(permissions)) {
+            permissions.stream().forEach(permission -> {
                 //2.4 有权限 则插入sys_resource
                 Resource resource = new Resource();
                 resource.setUrl(permission);
@@ -254,7 +161,7 @@ public class FuncManagementFacade {
                 }
             });
         }
-        menuVO.getSoftwares().stream().forEach(softwareId -> {
+        softwares.stream().forEach(softwareId -> {
             //3.插入超级管理员对应系统 sys_software_menu和sys_role_software_menu
             savaRoleSoftwareMenu(menuID, softwareId, 1l);
         });
@@ -294,70 +201,31 @@ public class FuncManagementFacade {
         }
     }
 
-    /**
-     * @param menuVO
-     * @Method CRUDOperation
-     * @Author songxl
-     * @Version 1.0
-     * @Description功能菜单CRUD方法
-     * @Return java.lang.Boolean
-     * @Date 2021/7/28
-     */
-    public Boolean CRUDOperation(MenuVO menuVO) {
-
-        try {
-            //1.入参校验
-            inputParamCheck(menuVO);
-            //2.执行操作
-            if (CRUDEnum.ADD.getKey() == menuVO.getOpeType()) {                 //添加
-                return addMenu(menuVO);
-            } else if (CRUDEnum.UPDATE.getKey() == menuVO.getOpeType()) {       //修改
-                return updateDataAuth(menuVO);
-            } else if (CRUDEnum.DELETE.getKey() == menuVO.getOpeType()) {       //删除
-                return deleteDataAuth(menuVO);
-            } else if (CRUDEnum.DISBALE.getKey() == menuVO.getOpeType()) {       //启用禁用
-                return disableDataAuth(menuVO);
-            } else {
-                Asserts.fail("操作码错误");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            Asserts.fail(e.toString());
-        }
-        return false;
-    }
 
     /**
-     * @param menuVO
-     * @Method disableDataAuth
-     * @Author songxl
-     * @Version 1.0
+     * @param id
+     * @param status
      * @Description启用禁用功能菜单
      * @Return java.lang.Boolean
-     * @Date 2021/7/28
      */
-    private Boolean disableDataAuth(MenuVO menuVO) {
+    public Boolean disableMenu(Long id,String status) {
         return menuFacade.update(new UpdateWrapper<Menu>()
-                .set("status",menuVO.getStatus())
-                .eq("id",menuVO.getId())
+                .set("status",status)
+                .eq("id",id)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
     }
 
     /**
-     * @param menuVO
-     * @Method deleteDataAuth
-     * @Author songxl
-     * @Version 1.0
+     * @param id
      * @Description删除功能菜单
      * @Return java.lang.Boolean
-     * @Date 2021/7/28
      */
-    private Boolean deleteDataAuth(MenuVO menuVO) {
+    public Boolean deleteMenu(Long id) {
         //1.删除原来menu关联插入的数据
         if(menuFacade.remove(new UpdateWrapper<Menu>()
-                .eq("id",menuVO.getId())
+                .eq("id",id)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()))){
-            return deleteMenuJoinDate(menuVO, 1l);
+            return deleteMenuJoinDate(id, 1l);
         }else {
             Asserts.fail("菜单详情删除失败");
         }
@@ -365,20 +233,16 @@ public class FuncManagementFacade {
     }
 
     /**
-     * @param menuVO
-     * @Method updateDataAuth
-     * @Author songxl
-     * @Version 1.0
+     * @param updateMenuVO
      * @Description修改功能菜单
      * @Return java.lang.Boolean
-     * @Date 2021/7/28
      */
-    private Boolean updateDataAuth(MenuVO menuVO) {
+    public Boolean updateMenu(UpdateMenuVO updateMenuVO) {
         //1.删除原来menu关联插入的数据
-        if(deleteMenuJoinDate(menuVO, 1l)){
+        if(deleteMenuJoinDate(updateMenuVO.getId(), 1l)){
             //2.修改sys_menu 菜单表
             Menu menu = new Menu();
-            BeanUtils.copyProperties(menuVO, menu);
+            BeanUtils.copyProperties(updateMenuVO, menu);
            if( menuFacade.update(new UpdateWrapper<Menu>()
                    .set("name",menu.getName())
                    .set("type",menu.getType())
@@ -389,26 +253,22 @@ public class FuncManagementFacade {
                    .set("status",menu.getStatus())
                    .eq("id", menu.getId()))){
                //3.重新插入上面删除的数据
-               return saveMenuResource(menuVO,menuVO.getId());
+               return saveMenuResource(updateMenuVO.getPermissions(),updateMenuVO.getSoftwares(),updateMenuVO.getId());
            }
         }
         return false;
     }
     /**
-     * @Method deleteMenuJoinDate
-     * @Author songxl
-     * @Version  1.0
      * @Description清除原菜单关联的数据
-     * @param menuVO
+     * @param id
      * @param roleId
      * @Return boolean
-     * @Date 2021/7/29
      */
-    private boolean deleteMenuJoinDate(MenuVO menuVO, Long roleId) {
+    private boolean deleteMenuJoinDate(Long id, Long roleId) {
 
         //2.1删除sys_resource、sys_menu_resource原先对应menu的资源权限
         List<MenuResource> menuResources = menuResourceFacade.list(new QueryWrapper<MenuResource>()
-                .eq("menu_id", menuVO.getId())
+                .eq("menu_id", id)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
         //2.1有对应的资源权限
         if (ListUtil.isNotEmpty(menuResources) && menuResources.get(0).getResourceId() != null) {
@@ -430,7 +290,7 @@ public class FuncManagementFacade {
         List<Long> softwareMenuIds = roleSoftwareMenuFacade.list(new QueryWrapper<RoleSoftwareMenu>()
                 .eq("role_id", roleId)
                 .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(RoleSoftwareMenu::getSoftwareMenuId).collect(Collectors.toList());
-        List<SoftwareMenu> softwareMenus = softwareMenuFacade.getBaseMapper().getSoftwareMenu(menuVO.getId(), softwareMenuIds);
+        List<SoftwareMenu> softwareMenus = softwareMenuFacade.getBaseMapper().getSoftwareMenu(id, softwareMenuIds);
         //如果改菜单没有超级管理员对应关系
         if(ListUtil.isEmpty(softwareMenus)){
             return true;
@@ -453,15 +313,12 @@ public class FuncManagementFacade {
     }
 
     /**
-     * @Method getMenuById
-     * @Author songxl
-     * @Version  1.0
      * @Description获取菜单详情
-     * @param menuVO
+     * @param id
      * @Return com.lantone.common.dto.MenuDTO
      * @Date 2021/7/29
      */
-    public MenuDTO getMenuById(MenuVO menuVO) {
-        return menuFacade.getBaseMapper().getMenuById(menuVO);
+    public GetMenuByIdDTO getMenuById(Long id,Long softwareId) {
+        return menuFacade.getBaseMapper().getMenuById(id,softwareId);
     }
 }

+ 228 - 0
security-center/src/main/java/com/lantone/security/facade/RoleManagementFacade.java

@@ -0,0 +1,228 @@
+package com.lantone.security.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.dto.RoleDTO;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.DateUtil;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
+import com.lantone.common.vo.RoleSoftwareMenuVo;
+import com.lantone.common.vo.RoleVO;
+import com.lantone.dblayermbg.entity.Role;
+import com.lantone.dblayermbg.facade.RoleFacade;
+import com.lantone.security.enums.CRUDEnum;
+import com.lantone.security.enums.IsDeleteEnum;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+/**
+ * @ClassName: FuncManagementFacade
+ * @Description: 功能管理API
+ * @Author songxl
+ * @Date 2021/7/28
+ * @Version 1.0
+ */
+@Component
+public class RoleManagementFacade {
+    @Autowired
+    private RoleFacade roleFacade;
+
+    /**
+     * @param roleSoftwareMenuVo
+     * @Method inputParamCheck
+     * @Author songxl
+     * @Version 1.0
+     * @Description入参校验
+     * @Return void
+     * @Date 2021/7/28
+     */
+    private void inputParamCheck(RoleSoftwareMenuVo roleSoftwareMenuVo) {
+        if (roleSoftwareMenuVo == null) {
+            Asserts.fail("入参为空");
+        }
+        if (ListUtil.isEmpty(roleSoftwareMenuVo.getRoles())) {
+            Asserts.fail("角色列表为空");
+        }
+        if (roleSoftwareMenuVo.getSoftwareId() == null) {
+            Asserts.fail("服务id为空");
+        }
+    }
+
+    /**
+     * @param roleVO
+     * @Method inputParamCheck
+     * @Author songxl
+     * @Version 1.0
+     * @Description入参校验
+     * @Return void
+     * @Date 2021/7/28
+     */
+    private void inputParamCheck(RoleVO roleVO) {
+        if (roleVO == null) {
+            Asserts.fail("入参为空");
+        }
+        if (roleVO.getOpeType() == 0) {
+            Asserts.fail("操作码为空");
+        }
+        switch (roleVO.getOpeType()) {
+            case 1:
+                if (StringUtil.isEmpty(roleVO.getName())) {
+                    Asserts.fail("角色名称为空");
+                }
+                if (ListUtil.isEmpty(roleVO.getSoftwares())){
+                    Asserts.fail("角色开放系统至少要选择一个");
+                }
+                roleVO.getSoftwares().stream().forEach(sysSoftwareVO -> {
+                    if (ListUtil.isEmpty(sysSoftwareVO.getMenus())){
+                        Asserts.fail("角色开放系统对应的菜单列表为空");
+                    }
+                });
+                if(StringUtil.isEmpty(roleVO.getStatus())){
+                    Asserts.fail("角色启用禁用状态为空");
+                }
+
+                break;
+            case 2:
+                if (roleVO.getId() == null) {
+                    Asserts.fail("角色ID为空");
+                }
+                if (StringUtil.isEmpty(roleVO.getName())) {
+                    Asserts.fail("角色名称为空");
+                }
+                if (ListUtil.isEmpty(roleVO.getSoftwares())){
+                    Asserts.fail("角色开放系统至少要选择一个");
+                }
+                roleVO.getSoftwares().stream().forEach(sysSoftwareVO -> {
+                    if (ListUtil.isEmpty(sysSoftwareVO.getMenus())){
+                        Asserts.fail("角色开放系统对应的菜单列表为空");
+                    }
+                });
+                if(StringUtil.isEmpty(roleVO.getStatus())){
+                    Asserts.fail("角色启用禁用状态为空");
+                }
+                break;
+            case 3:
+                if (roleVO.getId() == null) {
+                    Asserts.fail("角色ID为空");
+                }
+                break;
+            case 5:
+                if (roleVO.getId() == null) {
+                    Asserts.fail("角色ID为空");
+                }
+                if (roleVO.getStatus() == null) {
+                    Asserts.fail("status为空");
+                }
+                break;
+            default:
+                break;
+        }
+    }
+
+
+
+    /**
+     * @param roleVO
+     * @Method CRUDOperation
+     * @Author songxl
+     * @Version 1.0
+     * @Description角色CRUD方法
+     * @Return java.lang.Boolean
+     * @Date 2021/7/28
+     */
+    public Boolean CRUDOperation(RoleVO roleVO) {
+
+        try {
+            //1.入参校验
+            inputParamCheck(roleVO);
+            //2.执行操作
+            if (CRUDEnum.ADD.getKey() == roleVO.getOpeType()) {                 //添加
+                return addRole(roleVO);
+            } else if (CRUDEnum.UPDATE.getKey() == roleVO.getOpeType()) {       //修改
+                return updateRole(roleVO);
+            } else if (CRUDEnum.DELETE.getKey() == roleVO.getOpeType()) {       //删除
+                return deleteRole(roleVO);
+            } else if (CRUDEnum.DISBALE.getKey() == roleVO.getOpeType()) {       //启用禁用
+                return disableRole(roleVO);
+            } else {
+                Asserts.fail("操作码错误");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            Asserts.fail(e.toString());
+        }
+        return false;
+    }
+
+    private Boolean deleteRole(RoleVO roleVO) {
+        return false;
+    }
+
+    private Boolean disableRole(RoleVO roleVO) {
+        return false;
+    }
+
+    /**
+     * @Method addRole
+     * @Author songxl
+     * @Version  1.0
+     * @Description添加角色
+     * @param roleVO
+     * @Return java.lang.Boolean
+     * @Date 2021/7/30
+     */
+    private Boolean addRole(RoleVO roleVO) {
+        //1.角色表插入角色信息
+        roleVO.setCreator("0");//###当前登录人
+        roleVO.setHospitalId(2l);//###当前登录人的组织
+        Role role = new Role();
+        BeanUtils.copyProperties(roleVO,role);
+        role.setGmtCreate(DateUtil.now());
+        if(roleFacade.save(role)){
+            Long roleId =  roleFacade.list(new QueryWrapper<Role>()
+                    .eq("hospital_id",role.getHospitalId())
+                    .eq("name",role.getName())
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())).get(0).getId();
+            //2.插入角色与系统、菜单的对应关系
+            return saveRoleSoftwareMenu(roleVO,roleId);
+        }else {
+            Asserts.fail("角色插入失败");
+        }
+        return false;
+    }
+    /**
+     * @Description插入角色与系统、菜单的对应关系
+     * @param roleVO
+     * @param roleId
+     * @Return void
+     */
+    private Boolean saveRoleSoftwareMenu(RoleVO roleVO, Long roleId) {
+        return false;
+    }
+
+    private Boolean updateRole(RoleVO roleVO) {
+        return false;
+    }
+
+    /**
+     * @Method getRolePage
+     * @Author songxl
+     * @Version  1.0
+     * @Description获取角色列表
+     * @param roleVO
+     * @Return java.util.List<com.lantone.common.dto.RoleDTO>
+     * @Date 2021/7/30
+     */
+    public List<Role> getRolePage(RoleVO roleVO) {
+        //1.获取当前登录人id和组织id
+        roleVO.setCreator("0");//###当前登录人
+        roleVO.setHospitalId(2l);//###当前登录人的组织
+        return roleFacade.getBaseMapper().getRolePage(roleVO);
+    }
+
+    public RoleDTO getRoleById(RoleVO roleVO) {
+        return null;
+    }
+}

+ 36 - 56
security-center/src/main/java/com/lantone/security/web/DataAuthManagementController.java

@@ -2,12 +2,14 @@ package com.lantone.security.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
-import com.lantone.common.dto.DataAuthDTO;
-import com.lantone.common.dto.DoctorDTO;
-import com.lantone.common.vo.DataAuthVO;
-import com.lantone.common.vo.DoctorVO;
-import com.lantone.common.vo.SoftwareDataAuthVO;
-import com.lantone.security.facade.DataAuthHandleFacade;
+import com.lantone.common.dto.GetDataAuthByIdDTO;
+import com.lantone.common.dto.GetDataAuthPageDTO;
+import com.lantone.common.dto.GetDoctorPageDTO;
+import com.lantone.common.vo.AddAuthVO;
+import com.lantone.common.vo.GetDataAuthPageVO;
+import com.lantone.common.vo.GetDoctorPageVO;
+import com.lantone.common.vo.UpdateAuthVO;
+import com.lantone.security.facade.DataAuthManagementFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * @ClassName: DataAuthController
  * @Description: 数据权限API
@@ -25,80 +30,55 @@ import org.springframework.web.bind.annotation.RestController;
  * @Version 1.0
  */
 @RestController
-@Api( value = "数据权限API",tags = "DataAuthController")
-@RequestMapping("/data/auth")
+@Api(value = "数据权限API", tags = "DataAuthManagementController")
+@RequestMapping("/dataAuthManage")
 public class DataAuthManagementController {
     @Autowired
-    private DataAuthHandleFacade dataAuthHandleFacade;
+    private DataAuthManagementFacade dataAuthHandleFacade;
 
-    @ApiOperation(value = "新增数据权限[by:songxl]",
-            notes = "dataAuthVO:数据权限对象,必填<br>" +
-                    "name:数据权限对象-数据权限名称,必填<br>" +
-                    "status:数据权限对象-1:默认启用,必填<br>" +
-                    "softwareVOS:数据权限对象-系统列表,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "type:操作码 1:新增;2:修改;3:删除;5:启用禁用")
+    @ApiOperation(value = "新增数据权限[by:songxl]")
     @PostMapping("/addAuth")
     @Transactional
-    public CommonResult<Boolean> addAuth(@RequestBody SoftwareDataAuthVO softwareDataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.CRUDOperation(softwareDataAuthVO));
+    public CommonResult<Boolean> addAuth(@RequestBody AddAuthVO addAuthVO) {
+        return CommonResult.success(dataAuthHandleFacade.addDataAuth(addAuthVO));
     }
 
-    @ApiOperation(value = "修改数据权限[by:songxl]",
-            notes = "dataAuthVO:数据权限对象,必填<br>" +
-                    "id:数据权限对象-数据权限id,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "type:操作码 1:新增;2:修改;3:删除;5:启用禁用")
+    @ApiOperation(value = "修改数据权限[by:songxl]")
     @PostMapping("/updateAuth")
     @Transactional
-    public CommonResult<Boolean> updateAuth(@RequestBody SoftwareDataAuthVO softwareDataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.CRUDOperation(softwareDataAuthVO));
+    public CommonResult<Boolean> updateAuth(@RequestBody UpdateAuthVO updateAuthVO) {
+        return CommonResult.success(dataAuthHandleFacade.updateDataAuth(updateAuthVO));
     }
-    @ApiOperation(value = "启用禁用数据权限[by:songxl]",
-            notes = "dataAuthVO:数据权限对象,必填<br>" +
-                    "id:数据权限对象-数据权限id,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "type:操作码 1:新增;2:修改;3:删除;5:启用禁用")
+
+    @ApiOperation(value = "启用禁用数据权限[by:songxl]")
     @PostMapping("/disableAuth")
     @Transactional
-    public CommonResult<Boolean> disableAuth(@RequestBody SoftwareDataAuthVO softwareDataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.CRUDOperation(softwareDataAuthVO));
+    public CommonResult<Boolean> disableAuth(@RequestBody @NotNull(message = "数据权限id为空") Long id, @NotBlank(message = "启用禁用status为空") String status) {
+        return CommonResult.success(dataAuthHandleFacade.disableDataAuth(id, status));
     }
 
-    @ApiOperation(value = "删除数据权限[by:songxl]",
-            notes = "dataAuthVO:数据权限对象,必填<br>" +
-                    "id:数据权限对象-数据权限id,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "type:操作码 1:新增;2:修改;3:删除;5:启用禁用")
+    @ApiOperation(value = "删除数据权限[by:songxl]")
     @PostMapping("/deleteAuth")
     @Transactional
-    public CommonResult<Boolean> deleteAuth(@RequestBody SoftwareDataAuthVO softwareDataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.CRUDOperation(softwareDataAuthVO));
+    public CommonResult<Boolean> deleteAuth(@RequestBody @NotNull(message = "数据权限id为空") Long Id) {
+        return CommonResult.success(dataAuthHandleFacade.deleteDataAuth(Id));
     }
 
-    @ApiOperation(value = "通过数据权限id和角色id获取数据权限详情[by:songxl]",
-            notes = "dataAuthVO:数据权限对象,必填<br>" +
-                    "id:数据权限对象-数据权限id,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "type:操作码 1:新增;2:修改;3:删除;5:启用禁用")
+    @ApiOperation(value = "通过数据权限id和角色id获取数据权限详情[by:songxl]")
     @PostMapping("/getDataAuthById")
-    public CommonResult<DataAuthDTO> getDataAuthById(@RequestBody SoftwareDataAuthVO softwareDataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.getDataAuthById(softwareDataAuthVO));
+    public CommonResult<GetDataAuthByIdDTO> getDataAuthById(@RequestBody @NotNull(message = "数据权限id为空") Long Id) {
+        return CommonResult.success(dataAuthHandleFacade.getDataAuthById(Id));
     }
 
-
-    @ApiOperation(value = "获取医生列表[by:songxl]",
-            notes = "id:医院编号,必填<br>" +
-                    "depts:该医院的科室列表" )
+    @ApiOperation(value = "获取医生列表[by:songxl]")
     @PostMapping("/getDoctorPage")
-    public CommonResult<IPage<DoctorDTO>> getDoctorPage(@RequestBody DoctorVO doctorVO) {
-        return CommonResult.success(dataAuthHandleFacade.getDoctorPage(doctorVO));
+    public CommonResult<IPage<GetDoctorPageDTO>> getDoctorPage(@RequestBody GetDoctorPageVO getDoctorPageVO) {
+        return CommonResult.success(dataAuthHandleFacade.getDoctorPage(getDoctorPageVO));
     }
 
-    @ApiOperation(value = "获取数据权限列表[by:songxl]",
-            notes = "" )
+    @ApiOperation(value = "获取数据权限列表[by:songxl]")
     @PostMapping("/getDataAuthPage")
-    public CommonResult<IPage<DataAuthDTO>> getDataAuthPage(@RequestBody DataAuthVO dataAuthVO) {
-        return CommonResult.success(dataAuthHandleFacade.getDataAuthPage(dataAuthVO));
+    public CommonResult<IPage<GetDataAuthPageDTO>> getDataAuthPage(@RequestBody GetDataAuthPageVO getDataAuthPageVO) {
+        return CommonResult.success(dataAuthHandleFacade.getDataAuthPage(getDataAuthPageVO));
     }
 }

+ 31 - 40
security-center/src/main/java/com/lantone/security/web/FuncManagementController.java

@@ -1,9 +1,14 @@
 package com.lantone.security.web;
 
 import com.lantone.common.api.CommonResult;
+import com.lantone.common.dto.GetMenuByIdDTO;
+import com.lantone.common.dto.GetMenusTreeDTO;
 import com.lantone.common.dto.MenuDTO;
+import com.lantone.common.vo.AddMenuVO;
+import com.lantone.common.vo.GetMenusTreeVo;
 import com.lantone.common.vo.MenuVO;
 import com.lantone.common.vo.RoleSoftwareMenuVo;
+import com.lantone.common.vo.UpdateMenuVO;
 import com.lantone.security.facade.FuncManagementFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -14,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -25,65 +32,49 @@ import java.util.List;
  */
 @RestController
 @Api(value = "功能管理API", tags = "FuncManagementController")
-@RequestMapping("/func/management")
+@RequestMapping("/funcManage")
 public class FuncManagementController {
     @Autowired
     private FuncManagementFacade funcManagementFacade;
 
-    @ApiOperation(value = "获取功能菜单列表 [by:songxl]",
-            notes = "roles:角色id列表,必填<br>" +
-                    "serviceId:服务id ,必填<br>")
-    @PostMapping("/getMenus")
-    public CommonResult<List<MenuDTO>> getMenus(@RequestBody RoleSoftwareMenuVo roleServiceMenuVo) {
-        return CommonResult.success(funcManagementFacade.getMenusTree(roleServiceMenuVo));
+    @ApiOperation(value = "获取功能菜单列表 [by:songxl]")
+    @PostMapping("/getMenusTree")
+    public CommonResult<List<GetMenusTreeDTO>> getMenusTree(@RequestBody GetMenusTreeVo getMenusTreeVo) {
+        return CommonResult.success(funcManagementFacade.getMenusTree(getMenusTreeVo));
     }
 
-    @ApiOperation(value = "添加功能菜单 [by:songxl]",
-            notes = "parentId:父级编号,必填<br>" +
-                    "softwares:服务id列表,必填<br>" +
-                    "name:功能名称,必填<br>" +
-                    "type:类型:0:目录,1菜单,2按钮,3:超链接,必填<br>" +
-                    "status:状态 0:禁用,1:启用,必填<br>" +
-                    "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
+    @ApiOperation(value = "添加功能菜单 [by:songxl]")
     @PostMapping("/addMenu")
     @Transactional
-    public CommonResult<Boolean> addMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    public CommonResult<Boolean> addMenu(@RequestBody AddMenuVO addMenuVO) {
+        return CommonResult.success(funcManagementFacade.addMenu(addMenuVO));
     }
-    @ApiOperation(value = "修改功能菜单 [by:songxl]",
-            notes = "Id:编号,必填<br>" +
-                    "parentId:父级编号,必填<br>" +
-                    "softwares:服务id列表,必填<br>" +
-                    "name:功能名称,必填<br>" +
-                    "type:类型:0:目录,1菜单,2按钮,3:超链接,必填<br>" +
-                    "status:状态 0:禁用,1:启用,必填<br>" +
-                    "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
+
+    @ApiOperation(value = "修改功能菜单 [by:songxl]")
     @PostMapping("/updateMenu")
     @Transactional
-    public CommonResult<Boolean> updateMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    public CommonResult<Boolean> updateMenu(@RequestBody UpdateMenuVO updateMenuVO) {
+        return CommonResult.success(funcManagementFacade.updateMenu(updateMenuVO));
     }
-    @ApiOperation(value = "获取菜单详情 [by:songxl]",
-            notes = "Id:编号,必填<br>" )
+
+    @ApiOperation(value = "获取菜单详情 [by:songxl]")
     @PostMapping("/getMenuById")
-    public CommonResult<MenuDTO> getMenuById(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.getMenuById(menuVO));
+    public CommonResult<GetMenuByIdDTO> getMenuById(@RequestBody @NotNull(message = "功能菜单编号为空") Long id,@NotNull(message = "系统编号为空") Long softwareId) {
+        return CommonResult.success(funcManagementFacade.getMenuById(id,softwareId));
     }
-    @ApiOperation(value = "删除功能菜单 [by:songxl]",
-            notes = "Id:编号,必填<br>" +
-                    "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
+
+    @ApiOperation(value = "删除功能菜单 [by:songxl]")
     @PostMapping("/deleteMenu")
     @Transactional
-    public CommonResult<Boolean> deleteMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    public CommonResult<Boolean> deleteMenu(@RequestBody @NotNull(message = "功能菜单编号为空") Long id) {
+        return CommonResult.success(funcManagementFacade.deleteMenu(id));
     }
-    @ApiOperation(value = "启用禁用功能菜单 [by:songxl]",
-            notes = "Id:编号,必填<br>" +
-                    "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
+
+    @ApiOperation(value = "启用禁用功能菜单 [by:songxl]")
     @PostMapping("/disableMenu")
     @Transactional
-    public CommonResult<Boolean> disableMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    public CommonResult<Boolean> disableMenu(@RequestBody @NotNull(message = "功能菜单id为空") Long id, @NotBlank(message = "启用禁用status为空") String status) {
+        return CommonResult.success(funcManagementFacade.disableMenu(id, status));
     }
 
 }

+ 52 - 45
security-center/src/main/java/com/lantone/security/web/RoleManagementController.java

@@ -2,9 +2,12 @@ package com.lantone.security.web;
 
 import com.lantone.common.api.CommonResult;
 import com.lantone.common.dto.MenuDTO;
+import com.lantone.common.dto.RoleDTO;
 import com.lantone.common.vo.MenuVO;
 import com.lantone.common.vo.RoleSoftwareMenuVo;
-import com.lantone.security.facade.FuncManagementFacade;
+import com.lantone.common.vo.RoleVO;
+import com.lantone.dblayermbg.entity.Role;
+import com.lantone.security.facade.RoleManagementFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,65 +20,69 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.List;
 
 /**
- * @ClassName: FuncManagementController
- * @Description: 功能管理API
+ * @ClassName: RoleManagementController
+ * @Description: 角色管理API
  * @Author songxl
  * @Date 2021/7/27
  * @Version 1.0
  */
 @RestController
-@Api(value = "功能管理API", tags = "FuncManagementController")
-@RequestMapping("/func/management")
+@Api(value = "角色管理API", tags = "RoleManagementController")
+@RequestMapping("/role/management")
 public class RoleManagementController {
     @Autowired
-    private FuncManagementFacade funcManagementFacade;
+    private RoleManagementFacade roleManagementFacade;
 
-    @ApiOperation(value = "获取功能菜单列表 [by:songxl]",
-            notes = "RoleServiceMenuVo:角色系统功能菜单对象,必填<br>" +
-                    "roles:角色列表,必填<br>" +
-                    "serviceId:服务id ,必填<br>")
-    @PostMapping("/getMenus")
-    public CommonResult<List<MenuDTO>> getMenus(@RequestBody RoleSoftwareMenuVo roleServiceMenuVo) {
-        return CommonResult.success(funcManagementFacade.getMenusTree(roleServiceMenuVo));
+    @ApiOperation(value = "获取角色列表 [by:songxl]",
+            notes = "")
+    @PostMapping("/getRolePage")
+    public CommonResult<List<Role>> getRolePage(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.getRolePage(roleVO));
     }
-
-    @ApiOperation(value = "添加功能菜单 [by:songxl]",
-            notes = "menuVO:功能菜单对象,必填<br>" +
+    @ApiOperation(value = "添加角色 [by:songxl]",
+            notes = "name:角色名称,必填<br>" +
+                    "softwares:系统服务对象,必填<br>" +
+                    "id:系统服务对象-id,必填<br>" +
+                    "menus:功能菜单列表,必填<br>" +
+                    "id:功能菜单列表-id,必填<br>" +
+                    "status:状态 0:禁用,1:启用,必填<br>" +
                     "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
-    @PostMapping("/addMenu")
-    @Transactional
-    public CommonResult<Boolean> addMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    @PostMapping("/addRole")
+    public CommonResult<Boolean> addRole(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.CRUDOperation(roleVO));
     }
-    @ApiOperation(value = "修改功能菜单 [by:songxl]",
-            notes = "menuVO:功能菜单对象,必填<br>" +
+    @ApiOperation(value = "修改角色 [by:songxl]",
+            notes = "id:角色id,必填<br>" +
+                    "name:角色名称,必填<br>" +
+                    "softwares:系统服务对象,必填<br>" +
+                    "id:系统服务对象-id,必填<br>" +
+                    "menus:功能菜单列表,必填<br>" +
+                    "id:功能菜单列表-id,必填<br>" +
+                    "status:状态 0:禁用,1:启用,必填<br>" +
                     "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
-    @PostMapping("/updateMenu")
-    @Transactional
-    public CommonResult<Boolean> updateMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
-    }
-    @ApiOperation(value = "获取菜单详情 [by:songxl]",
-            notes = "menuVO:功能菜单对象")
-    @PostMapping("/getMenuById")
-    public CommonResult<MenuDTO> getMenuById(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.getMenuById(menuVO));
+    @PostMapping("/updateRole")
+    public CommonResult<Boolean> updateRole(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.CRUDOperation(roleVO));
     }
-    @ApiOperation(value = "删除功能菜单 [by:songxl]",
-            notes = "menuVO:功能菜单对象,必填<br>" +
+    @ApiOperation(value = "删除角色 [by:songxl]",
+            notes = "id:角色id,必填<br>" +
                     "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
-    @PostMapping("/deleteMenu")
-    @Transactional
-    public CommonResult<Boolean> deleteMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    @PostMapping("/deleteRole")
+    public CommonResult<Boolean> deleteRole(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.CRUDOperation(roleVO));
     }
-    @ApiOperation(value = "启用禁用功能菜单 [by:songxl]",
-            notes = "menuVO:功能菜单对象,必填<br>" +
+    @ApiOperation(value = "禁用|启用角色 [by:songxl]",
+            notes = "id:角色id,必填<br>" +
+                    "status:状态 0:禁用,1:启用,必填<br>" +
                     "opeType:操作码 1:新增;2:修改 ;3:删除;5:启用禁用")
-    @PostMapping("/disableMenu")
-    @Transactional
-    public CommonResult<Boolean> disableMenu(@RequestBody MenuVO menuVO) {
-        return CommonResult.success(funcManagementFacade.CRUDOperation(menuVO));
+    @PostMapping("/deleteRole")
+    public CommonResult<Boolean> disableRole(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.CRUDOperation(roleVO));
+    }
+    @ApiOperation(value = "通过角色id获取角色详情 [by:songxl]",
+            notes = "id:角色id,必填<br>")
+    @PostMapping("/getRoleById")
+    public CommonResult<RoleDTO> getRoleById(@RequestBody RoleVO roleVO) {
+        return CommonResult.success(roleManagementFacade.getRoleById(roleVO));
     }
-
 }