mirror of https://gitee.com/stylefeng/roses
parent
a956a8d882
commit
ead4ad12e9
|
@ -32,6 +32,13 @@
|
|||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--资源扫描的api-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>scanner-api</artifactId>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.auth.api.pojo.auth;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -44,37 +45,44 @@ public class LoginRequest extends BaseRequest {
|
|||
* 账号
|
||||
*/
|
||||
@NotBlank(message = "账号不能为空")
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
@NotBlank(message = "密码不能为空")
|
||||
@ChineseDescription("密码")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 记住我,不传就是false
|
||||
*/
|
||||
@ChineseDescription("记住我,不传就是false")
|
||||
private Boolean rememberMe = false;
|
||||
|
||||
/**
|
||||
* 验证码图形对应的缓存key
|
||||
*/
|
||||
@ChineseDescription("验证码图形对应的缓存key")
|
||||
private String verKey;
|
||||
|
||||
/**
|
||||
* 用户输入的验证码的值
|
||||
*/
|
||||
@ChineseDescription("用户输入的验证码的值")
|
||||
private String verCode;
|
||||
|
||||
/**
|
||||
* 是否写入cookie会话信息
|
||||
*/
|
||||
@ChineseDescription("是否写入cookie会话信息")
|
||||
private Boolean createCookie = false;
|
||||
|
||||
/**
|
||||
* 租户编码
|
||||
*/
|
||||
@ChineseDescription("租户编码")
|
||||
private String tenantCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.auth.api.pojo.auth;
|
||||
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
|
@ -39,26 +40,31 @@ public class LoginResponse {
|
|||
/**
|
||||
* 登录人的信息
|
||||
*/
|
||||
@ChineseDescription("登录人的信息")
|
||||
private LoginUser loginUser;
|
||||
|
||||
/**
|
||||
* 登录人的token
|
||||
*/
|
||||
@ChineseDescription("登录人的token")
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 到期时间
|
||||
*/
|
||||
@ChineseDescription("到期时间")
|
||||
private Long expireAt;
|
||||
|
||||
/**
|
||||
* 使用单点登录
|
||||
*/
|
||||
@ChineseDescription("使用单点登录")
|
||||
private Boolean ssoLogin;
|
||||
|
||||
/**
|
||||
* 单点登录的loginCode
|
||||
*/
|
||||
@ChineseDescription("单点登录的loginCode")
|
||||
private String ssoLoginCode;
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,6 +30,7 @@ import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -50,73 +51,97 @@ public class LoginUser implements Serializable {
|
|||
/**
|
||||
* 用户主键id
|
||||
*/
|
||||
@ChineseDescription("用户主键id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 超级管理员标识,true-是超级管理员
|
||||
*/
|
||||
@ChineseDescription("超级管理员标识,true-是超级管理员")
|
||||
private Boolean superAdmin;
|
||||
|
||||
/**
|
||||
* 用户基本信息
|
||||
*/
|
||||
@ChineseDescription("用户基本信息")
|
||||
private SimpleUserInfo simpleUserInfo;
|
||||
|
||||
/**
|
||||
* 用户角色信息
|
||||
*/
|
||||
@ChineseDescription("用户角色信息")
|
||||
private List<SimpleRoleInfo> simpleRoleInfoList;
|
||||
|
||||
/**
|
||||
* 公司/组织id
|
||||
*/
|
||||
@ChineseDescription("公司/组织id")
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 职务信息
|
||||
*/
|
||||
@ChineseDescription("职务信息")
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 用户数据范围信息
|
||||
* 用户数据范围枚举
|
||||
*/
|
||||
@ChineseDescription("用户数据范围枚举")
|
||||
private Set<DataScopeTypeEnum> dataScopeTypeEnums;
|
||||
|
||||
/**
|
||||
* 用户数据范围用户信息
|
||||
*/
|
||||
@ChineseDescription("用户数据范围用户信息")
|
||||
private Set<Long> dataScopeUserIds;
|
||||
|
||||
/**
|
||||
* 用户数据范围组织信息
|
||||
*/
|
||||
@ChineseDescription("用户数据范围组织信息")
|
||||
private Set<Long> dataScopeOrganizationIds;
|
||||
|
||||
/**
|
||||
* 可用资源集合
|
||||
*/
|
||||
@ChineseDescription("可用资源集合")
|
||||
private Set<String> resourceUrls;
|
||||
|
||||
/**
|
||||
* 用户拥有的按钮编码集合
|
||||
*/
|
||||
@ChineseDescription("用户拥有的按钮编码集合")
|
||||
private Set<String> buttonCodes;
|
||||
|
||||
/**
|
||||
* 登录的时间
|
||||
*/
|
||||
@ChineseDescription("登录的时间")
|
||||
private Date loginTime;
|
||||
|
||||
/**
|
||||
* 用户的token,当返回用户会话信息时候回带token
|
||||
*/
|
||||
@ChineseDescription("用户的token,当返回用户会话信息时候回带token")
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 其他信息,Dict为Map的拓展
|
||||
*/
|
||||
@ChineseDescription("其他信息,Dict为Map的拓展")
|
||||
private Dict otherInfos;
|
||||
|
||||
/**
|
||||
* 用户的ws-url
|
||||
*/
|
||||
@ChineseDescription("用户的ws-url")
|
||||
private String wsUrl;
|
||||
|
||||
/**
|
||||
|
@ -126,11 +151,13 @@ public class LoginUser implements Serializable {
|
|||
* <p>
|
||||
* 默认语种是中文
|
||||
*/
|
||||
@ChineseDescription("当前用户语种的标识")
|
||||
private String tranLanguageCode = RuleConstants.CHINES_TRAN_LANGUAGE_CODE;
|
||||
|
||||
/**
|
||||
* 租户的编码
|
||||
*/
|
||||
@ChineseDescription("租户的编码")
|
||||
private String tenantCode;
|
||||
|
||||
public String getWsUrl() {
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.scanner.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -43,26 +44,31 @@ public class FieldMetadata {
|
|||
* <p>
|
||||
* uuid,标识一个字段的唯一性
|
||||
*/
|
||||
@ChineseDescription("生成给前端用")
|
||||
private String metadataId;
|
||||
|
||||
/**
|
||||
* 字段中文名称,例如:创建用户
|
||||
*/
|
||||
@ChineseDescription("字段中文名称")
|
||||
private String chineseName;
|
||||
|
||||
/**
|
||||
* 字段类型,例如:String
|
||||
*/
|
||||
@ChineseDescription("字段类型")
|
||||
private String fieldClassType;
|
||||
|
||||
/**
|
||||
* 字段名称,例如:createUser
|
||||
*/
|
||||
@ChineseDescription("字段名称")
|
||||
private String fieldName;
|
||||
|
||||
/**
|
||||
* 字段的注解,例如:NotBlack,NotNull
|
||||
*/
|
||||
@ChineseDescription("字段的注解")
|
||||
private Set<String> annotations;
|
||||
|
||||
/**
|
||||
|
@ -71,16 +77,19 @@ public class FieldMetadata {
|
|||
* 例如:
|
||||
* key = add, value = [不能为空,最大多少位,邮箱类型]
|
||||
*/
|
||||
@ChineseDescription("按校验组分的注解集合")
|
||||
private Map<String, Set<String>> groupValidationMessage;
|
||||
|
||||
/**
|
||||
* 校验信息的提示信息
|
||||
*/
|
||||
@ChineseDescription("校验信息的提示信息")
|
||||
private String validationMessages;
|
||||
|
||||
/**
|
||||
* 泛型或object类型的字段的描述
|
||||
*/
|
||||
@ChineseDescription("泛型或object类型的字段的描述")
|
||||
private Set<FieldMetadata> genericFieldMetadata;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.scanner.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -42,16 +43,19 @@ public class ResourceDefinition implements Serializable {
|
|||
/**
|
||||
* 应用的标识
|
||||
*/
|
||||
@ChineseDescription("应用的标识")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 资源的标识
|
||||
*/
|
||||
@ChineseDescription("资源的标识")
|
||||
private String resourceCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
@ChineseDescription("资源名称")
|
||||
private String resourceName;
|
||||
|
||||
/**
|
||||
|
@ -61,31 +65,37 @@ public class ResourceDefinition implements Serializable {
|
|||
*
|
||||
* @since 2.2.12
|
||||
*/
|
||||
@ChineseDescription("项目编码")
|
||||
private String projectCode;
|
||||
|
||||
/**
|
||||
* 控制器类名称
|
||||
*/
|
||||
@ChineseDescription("控制器类名称")
|
||||
private String className;
|
||||
|
||||
/**
|
||||
* 控制器中的方法名称
|
||||
*/
|
||||
@ChineseDescription("控制器中的方法名称")
|
||||
private String methodName;
|
||||
|
||||
/**
|
||||
* 资源所属模块
|
||||
*/
|
||||
@ChineseDescription("资源所属模块")
|
||||
private String modularCode;
|
||||
|
||||
/**
|
||||
* 模块中文名称
|
||||
*/
|
||||
@ChineseDescription("模块中文名称")
|
||||
private String modularName;
|
||||
|
||||
/**
|
||||
* 初始化资源的机器的ip地址
|
||||
*/
|
||||
@ChineseDescription("初始化资源的机器的ip地址")
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
|
@ -94,51 +104,61 @@ public class ResourceDefinition implements Serializable {
|
|||
* 视图类型的接口会渲染出html界面,而不是json数据,
|
||||
* 视图层一般会在前后端不分离项目出现
|
||||
*/
|
||||
@ChineseDescription("是否是视图类型")
|
||||
private Boolean viewFlag;
|
||||
|
||||
/**
|
||||
* 资源的请求路径
|
||||
*/
|
||||
@ChineseDescription("资源的请求路径")
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* http请求方法
|
||||
*/
|
||||
@ChineseDescription("http请求方法")
|
||||
private String httpMethod;
|
||||
|
||||
/**
|
||||
* 是否需要登录
|
||||
*/
|
||||
@ChineseDescription("是否需要登录")
|
||||
private Boolean requiredLoginFlag;
|
||||
|
||||
/**
|
||||
* 是否需要鉴权
|
||||
*/
|
||||
@ChineseDescription("是否需要鉴权")
|
||||
private Boolean requiredPermissionFlag;
|
||||
|
||||
/**
|
||||
* 需要进行参数校验的分组
|
||||
*/
|
||||
@ChineseDescription("需要进行参数校验的分组")
|
||||
private Set<String> validateGroups;
|
||||
|
||||
/**
|
||||
* 接口参数的字段描述
|
||||
*/
|
||||
@ChineseDescription("接口参数的字段描述")
|
||||
private Set<FieldMetadata> paramFieldDescriptions;
|
||||
|
||||
/**
|
||||
* 接口返回结果的字段描述
|
||||
*/
|
||||
@ChineseDescription("接口返回结果的字段描述")
|
||||
private Set<FieldMetadata> responseFieldDescriptions;
|
||||
|
||||
/**
|
||||
* 资源添加日期
|
||||
*/
|
||||
@ChineseDescription("资源添加日期")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ChineseDescription("创建人")
|
||||
private String createUser;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,14 @@
|
|||
<version>7.0.4</version>
|
||||
</dependency>
|
||||
|
||||
<!--资源api模块-->
|
||||
<!--用在资源控制器,资源扫描上-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>scanner-api</artifactId>
|
||||
<version>7.0.4</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.security.api.pojo;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -40,11 +41,13 @@ public class EasyCaptcha {
|
|||
/**
|
||||
* 缓存Key
|
||||
*/
|
||||
@ChineseDescription("缓存Key")
|
||||
private String verKey;
|
||||
|
||||
/**
|
||||
* Base64 图形验证码
|
||||
*/
|
||||
@ChineseDescription("Base64 图形验证码")
|
||||
private String verImage;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.app;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
|
@ -47,6 +48,7 @@ public class SysAppRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "appId不能为空", groups = {edit.class, delete.class, detail.class, updateActiveFlag.class, updateStatus.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
|
@ -60,6 +62,7 @@ public class SysAppRequest extends BaseRequest {
|
|||
columnName = "app_name",
|
||||
idFieldName = "app_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("名称不能为空")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
|
@ -73,11 +76,13 @@ public class SysAppRequest extends BaseRequest {
|
|||
columnName = "app_code",
|
||||
idFieldName = "app_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("编码不能为空")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开
|
||||
*/
|
||||
@ChineseDescription("是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开")
|
||||
private String activeFlag;
|
||||
|
||||
/**
|
||||
|
@ -85,6 +90,7 @@ public class SysAppRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "状态为空", groups = {updateStatus.class})
|
||||
@StatusValue(groups = updateStatus.class)
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.login;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -44,36 +45,43 @@ public class CurrentUserInfoResponse {
|
|||
/**
|
||||
* 用户主键id
|
||||
*/
|
||||
@ChineseDescription("用户主键id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 公司/组织id
|
||||
*/
|
||||
@ChineseDescription("公司/组织id")
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 登录人的ws-url
|
||||
*/
|
||||
@ChineseDescription("登录人的ws-url")
|
||||
private String wsUrl;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
@ChineseDescription("昵称")
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 用户头像(url)
|
||||
*/
|
||||
@ChineseDescription("用户头像(url)")
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 用户拥有的资源权限
|
||||
*/
|
||||
@ChineseDescription("用户拥有的资源权限")
|
||||
private Set<String> authorities;
|
||||
|
||||
/**
|
||||
* 用户拥有的角色编码
|
||||
*/
|
||||
@ChineseDescription("用户拥有的角色编码")
|
||||
private Set<String> roles;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
@ -48,24 +49,28 @@ public class SysMenuButtonRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "按钮id不能为空", groups = {edit.class, detail.class, delete.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long buttonId;
|
||||
|
||||
/**
|
||||
* 菜单按钮主键集合
|
||||
*/
|
||||
@NotEmpty(message = "菜单按钮主键集合不能为空", groups = {batchDelete.class})
|
||||
@ChineseDescription("菜单按钮主键集合")
|
||||
private Set<@NotNull(message = "菜单按钮主键集合不能为空", groups = {batchDelete.class}) Long> buttonIds;
|
||||
|
||||
/**
|
||||
* 菜单id,按钮需要挂在菜单下
|
||||
*/
|
||||
@NotNull(message = "菜单id不能为空", groups = {add.class, edit.class, list.class, def.class})
|
||||
@ChineseDescription("菜单id,按钮需要挂在菜单下")
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 按钮的名称
|
||||
*/
|
||||
@NotBlank(message = "按钮名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("按钮的名称")
|
||||
private String buttonName;
|
||||
|
||||
/**
|
||||
|
@ -79,6 +84,7 @@ public class SysMenuButtonRequest extends BaseRequest {
|
|||
columnName = "button_code",
|
||||
idFieldName = "button_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("按钮的编码")
|
||||
private String buttonCode;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.flag.FlagValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
|
@ -48,12 +49,14 @@ public class SysMenuRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "menuId不能为空", groups = {edit.class, delete.class, detail.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 父id
|
||||
*/
|
||||
@NotNull(message = "menuParentId不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("父id")
|
||||
private Long menuParentId;
|
||||
|
||||
/**
|
||||
|
@ -67,6 +70,7 @@ public class SysMenuRequest extends BaseRequest {
|
|||
columnName = "menu_name",
|
||||
idFieldName = "menu_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("菜单名称")
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
|
@ -80,69 +84,82 @@ public class SysMenuRequest extends BaseRequest {
|
|||
columnName = "menu_code",
|
||||
idFieldName = "menu_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("菜单的编码")
|
||||
private String menuCode;
|
||||
|
||||
/**
|
||||
* 应用分类(应用编码)
|
||||
*/
|
||||
@NotBlank(message = "appCode不能为空", groups = {add.class, edit.class, getAppMenusAntdVue.class})
|
||||
@ChineseDescription("应用分类(应用编码)")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否可见(Y-是,N-否)
|
||||
*/
|
||||
@FlagValue(message = "是否可见格式错误,正确格式应该Y或者N", groups = {add.class, edit.class}, required = false)
|
||||
@ChineseDescription("是否可见(Y-是,N-否)")
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@NotNull(message = "排序不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal menuSort;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ChineseDescription("备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 菜单的路径(适用于layui-beetl版本)
|
||||
*/
|
||||
@ChineseDescription("菜单的路径(适用于layui-beetl版本)")
|
||||
private String layuiPath;
|
||||
|
||||
/**
|
||||
* 菜单的图标(适用于layui-beetl版本)
|
||||
*/
|
||||
@ChineseDescription("菜单的图标(适用于layui-beetl版本)")
|
||||
private String layuiIcon;
|
||||
|
||||
/**
|
||||
* 路由地址,浏览器显示的URL,例如/menu(适用于antd vue版本)
|
||||
*/
|
||||
@ChineseDescription("路由地址,浏览器显示的URL,例如/menu(适用于antd vue版本)")
|
||||
private String antdvRouter;
|
||||
|
||||
/**
|
||||
* 图标(适用于antd vue版本)
|
||||
*/
|
||||
@ChineseDescription("图标(适用于antd vue版本)")
|
||||
private String antdvIcon;
|
||||
|
||||
/**
|
||||
* 前端组件名(适用于antd vue版本)
|
||||
*/
|
||||
@ChineseDescription("前端组件名(适用于antd vue版本)")
|
||||
private String antdvComponent;
|
||||
|
||||
/**
|
||||
* 外部链接打开方式:1-内置打开外链,2-新页面外链(适用于antd vue版本)
|
||||
*/
|
||||
@ChineseDescription("外部链接打开方式:1-内置打开外链,2-新页面外链(适用于antd vue版本)")
|
||||
private Integer antdvLinkOpenType;
|
||||
|
||||
/**
|
||||
* 外部链接地址(适用于antd vue版本)
|
||||
*/
|
||||
@ChineseDescription("外部链接地址(适用于antd vue版本)")
|
||||
private String antdvLinkUrl;
|
||||
|
||||
/**
|
||||
* 查询时传递:是否查询所有的菜单,true-所有的
|
||||
*/
|
||||
@ChineseDescription("查询时传递:是否查询所有的菜单,true-所有的")
|
||||
private Boolean totalMenus = false;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
@ -42,31 +43,37 @@ public class AntdMenuSelectTreeNode implements AbstractTreeNode<AntdMenuSelectTr
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ChineseDescription("主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父id
|
||||
*/
|
||||
@ChineseDescription("父id")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ChineseDescription("名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
@ChineseDescription("值")
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 排序,越小优先级越高
|
||||
*/
|
||||
@ChineseDescription("排序,越小优先级越高")
|
||||
private BigDecimal weight;
|
||||
|
||||
/**
|
||||
* 子节点
|
||||
*/
|
||||
@ChineseDescription("子节点")
|
||||
private List<AntdMenuSelectTreeNode> children;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.menu.antd;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -40,36 +41,43 @@ public class AntdSysMenuDTO {
|
|||
/**
|
||||
* 菜单的名称
|
||||
*/
|
||||
@ChineseDescription("菜单的名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单的图标
|
||||
*/
|
||||
@ChineseDescription("菜单的图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 路由地址(要以/开头),必填
|
||||
*/
|
||||
@ChineseDescription("路由地址(要以/开头),必填")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 组件地址(组件要放在view目录下),父级可以省略
|
||||
*/
|
||||
@ChineseDescription("组件地址(组件要放在view目录下),父级可以省略")
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 为true只注册路由不显示在左侧菜单(比如独立的添加页面)
|
||||
*/
|
||||
@ChineseDescription("为true只注册路由不显示在左侧菜单(比如独立的添加页面)")
|
||||
private Boolean hide;
|
||||
|
||||
/**
|
||||
* 比如修改页面不在侧边栏,打开后侧边栏就没有选中了,这个可以配置选中地址
|
||||
*/
|
||||
@ChineseDescription("比如修改页面不在侧边栏,打开后侧边栏就没有选中了,这个可以配置选中地址")
|
||||
private String uid;
|
||||
|
||||
/**
|
||||
* 子级
|
||||
*/
|
||||
@ChineseDescription("子级")
|
||||
private List<AntdSysMenuDTO> children;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.menu.layui;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -41,36 +42,43 @@ public class LayuiMenuAndButtonTreeResponse implements AbstractTreeNode<LayuiMen
|
|||
/**
|
||||
* 节点ID
|
||||
*/
|
||||
@ChineseDescription("节点ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 节点父ID
|
||||
*/
|
||||
@ChineseDescription("节点父ID")
|
||||
private Long pid;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
@ChineseDescription("节点名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 是否是菜单(如果是false,则pid是菜单的id)
|
||||
*/
|
||||
@ChineseDescription("是否是菜单(如果是false,则pid是菜单的id)")
|
||||
private Boolean menuFlag;
|
||||
|
||||
/**
|
||||
* 是否选择(已拥有的是true)
|
||||
*/
|
||||
@ChineseDescription("是否选择(已拥有的是true)")
|
||||
private Boolean checked;
|
||||
|
||||
/**
|
||||
* 按钮code
|
||||
*/
|
||||
@ChineseDescription("按钮code")
|
||||
private String buttonCode;
|
||||
|
||||
/**
|
||||
* 子节点集合
|
||||
*/
|
||||
@ChineseDescription("子节点集合")
|
||||
private List<LayuiMenuAndButtonTreeResponse> children;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.notice;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
@ -47,22 +48,27 @@ public class SysNoticeRequest extends BaseRequest {
|
|||
* 通知id
|
||||
*/
|
||||
@NotNull(message = "noticeId不能为空", groups = {edit.class, delete.class, detail.class})
|
||||
@ChineseDescription("通知id")
|
||||
private Long noticeId;
|
||||
|
||||
/**
|
||||
* 通知标题
|
||||
*/
|
||||
@NotBlank(message = "通知标题不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("通知标题")
|
||||
private String noticeTitle;
|
||||
|
||||
/**
|
||||
* 通知摘要
|
||||
*/
|
||||
@ChineseDescription("通知摘要")
|
||||
private String noticeSummary;
|
||||
|
||||
/**
|
||||
* 通知优先级
|
||||
*/
|
||||
@NotBlank(message = "通知优先级不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("通知优先级")
|
||||
private String priorityLevel;
|
||||
|
||||
|
||||
|
@ -71,6 +77,7 @@ public class SysNoticeRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "通知开始时间不能为空", groups = {add.class, edit.class})
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ChineseDescription("通知开始时间")
|
||||
private Date noticeBeginTime;
|
||||
|
||||
|
||||
|
@ -79,16 +86,19 @@ public class SysNoticeRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "通知开始时间不能为空", groups = {add.class, edit.class})
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ChineseDescription("通知结束时间")
|
||||
private Date noticeEndTime;
|
||||
|
||||
/**
|
||||
* 通知内容
|
||||
*/
|
||||
@ChineseDescription("通知内容")
|
||||
private String noticeContent;
|
||||
|
||||
/**
|
||||
* 通知范围
|
||||
*/
|
||||
@ChineseDescription("通知范围")
|
||||
private String noticeScope;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.organization;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
|
@ -48,23 +49,27 @@ public class HrOrganizationRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 父id
|
||||
*/
|
||||
@NotNull(message = "父id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("父id")
|
||||
private Long orgParentId;
|
||||
|
||||
/**
|
||||
* 父ids
|
||||
*/
|
||||
@ChineseDescription("父ids")
|
||||
private String orgPids;
|
||||
|
||||
/**
|
||||
* 组织名称
|
||||
*/
|
||||
@NotBlank(message = "组织名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("组织名称")
|
||||
private String orgName;
|
||||
|
||||
/**
|
||||
|
@ -78,12 +83,14 @@ public class HrOrganizationRequest extends BaseRequest {
|
|||
columnName = "org_code",
|
||||
idFieldName = "org_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("组织编码")
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@NotNull(message = "排序不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal orgSort;
|
||||
|
||||
/**
|
||||
|
@ -91,23 +98,27 @@ public class HrOrganizationRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "状态不能为空", groups = {updateStatus.class})
|
||||
@StatusValue(groups = updateStatus.class)
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ChineseDescription("描述")
|
||||
private String orgRemark;
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@NotNull(message = "角色id不能为空", groups = roleBindOrgScope.class)
|
||||
@ChineseDescription("角色id")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 用户id(作为查询条件)
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = userBindOrgScope.class)
|
||||
@ChineseDescription("用户id(作为查询条件)")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.organization;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
|
@ -49,12 +50,14 @@ public class HrPositionRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = {edit.class, detail.class, delete.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 职位名称
|
||||
*/
|
||||
@NotBlank(message = "职位名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("职位名称")
|
||||
private String positionName;
|
||||
|
||||
/**
|
||||
|
@ -68,12 +71,14 @@ public class HrPositionRequest extends BaseRequest {
|
|||
columnName = "position_code",
|
||||
idFieldName = "position_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("职位编码")
|
||||
private String positionCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@NotNull(message = "排序不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal positionSort;
|
||||
|
||||
/**
|
||||
|
@ -81,17 +86,20 @@ public class HrPositionRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "状态不能为空", groups = {updateStatus.class})
|
||||
@StatusValue(groups = updateStatus.class)
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ChineseDescription("备注")
|
||||
private String positionRemark;
|
||||
|
||||
/**
|
||||
* 职位id集合(用在批量操作)
|
||||
*/
|
||||
@NotNull(message = "职位id集合不能为空", groups = {batchDelete.class})
|
||||
@ChineseDescription("职位id集合(用在批量操作)")
|
||||
private List<Long> positionIds;
|
||||
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.organization;
|
|||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.xmtree.base.AbstractXmSelectNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -42,31 +43,37 @@ public class OrganizationTreeNode implements AbstractTreeNode<OrganizationTreeNo
|
|||
/**
|
||||
* 父id,一级节点父id是0
|
||||
*/
|
||||
@ChineseDescription("父id,一级节点父id是0")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
@ChineseDescription("节点名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 节点值
|
||||
*/
|
||||
@ChineseDescription("节点值")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 是否展开状态 不展开-false 展开-true
|
||||
*/
|
||||
@ChineseDescription("是否展开状态 不展开-false 展开-true")
|
||||
private boolean spread = true;
|
||||
|
||||
/**
|
||||
* 是否选中
|
||||
*/
|
||||
@ChineseDescription("是否选中")
|
||||
private boolean selected = false;
|
||||
|
||||
/**
|
||||
* 子节点的集合
|
||||
*/
|
||||
@ChineseDescription("子节点的集合")
|
||||
private List<OrganizationTreeNode> children;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -23,33 +24,39 @@ public class ApiGroupRequest extends BaseRequest {
|
|||
* 资源分组主键
|
||||
*/
|
||||
@NotNull(message = "资源分组主键不能为空", groups = {edit.class, delete.class, detail.class})
|
||||
@ChineseDescription("资源分组主键")
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 分组名称
|
||||
*/
|
||||
@NotBlank(message = "分组名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("分组名称")
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 分组父ID
|
||||
*/
|
||||
@NotNull(message = "分组名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("分组父ID")
|
||||
private Long groupPid;
|
||||
|
||||
/**
|
||||
* 分组父ID集合
|
||||
*/
|
||||
@ChineseDescription("分组父ID集合")
|
||||
private String groupPids;
|
||||
|
||||
/**
|
||||
* 分组排序
|
||||
*/
|
||||
@NotNull(message = "分组名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("分组排序")
|
||||
private java.math.BigDecimal groupSort;
|
||||
|
||||
@Valid
|
||||
@NotNull(message = "分组名称不能为空", groups = {treeSort.class})
|
||||
@NotNull(message = "树节点排序不能为空", groups = {treeSort.class})
|
||||
@ChineseDescription("树节点排序")
|
||||
private List<TreeSortRequest> treeSortRequestList;
|
||||
|
||||
/**
|
||||
|
|
|
@ -52,6 +52,11 @@ public class ApiGroupTreeWrapper implements AbstractTreeNode<ApiGroupTreeWrapper
|
|||
*/
|
||||
private BigDecimal sort;
|
||||
|
||||
/**
|
||||
* 节点URL
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
|
|
|
@ -83,7 +83,6 @@ public class ApiResourceRequest extends BaseRequest {
|
|||
/**
|
||||
* 资源排序
|
||||
*/
|
||||
@NotNull(message = "接口自定义名称不能为空", groups = {edit.class})
|
||||
@ChineseDescription("资源排序")
|
||||
private java.math.BigDecimal resourceSort;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -43,21 +44,25 @@ public class LayuiApiResourceTreeNode implements AbstractTreeNode<LayuiApiResour
|
|||
/**
|
||||
* 资源的上级编码
|
||||
*/
|
||||
@ChineseDescription("资源的上级编码")
|
||||
private String parentId;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
@ChineseDescription("节点名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 资源的编码
|
||||
*/
|
||||
@ChineseDescription("资源的编码")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 是否展开状态 不展开-false 展开-true
|
||||
*/
|
||||
@ChineseDescription("是否展开状态 不展开-false 展开-true")
|
||||
private Boolean spread = false;
|
||||
|
||||
/**
|
||||
|
@ -66,16 +71,25 @@ public class LayuiApiResourceTreeNode implements AbstractTreeNode<LayuiApiResour
|
|||
* true-是资源标识
|
||||
* false-虚拟节点,不是一个具体资源
|
||||
*/
|
||||
@ChineseDescription("是否是资源标识")
|
||||
private Boolean resourceFlag;
|
||||
|
||||
/**
|
||||
* 节点URL
|
||||
*/
|
||||
@ChineseDescription("节点URL")
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@ChineseDescription("图标")
|
||||
private Map<String, String> slots = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 子节点的集合
|
||||
*/
|
||||
@ChineseDescription("子节点的集合")
|
||||
private List<LayuiApiResourceTreeNode> children;
|
||||
|
||||
public void setSlotsValue() {
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -45,27 +46,32 @@ public class ResourceRequest extends BaseRequest {
|
|||
/**
|
||||
* 应用编码
|
||||
*/
|
||||
@ChineseDescription("应用编码")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
@ChineseDescription("资源名称")
|
||||
private String resourceName;
|
||||
|
||||
/**
|
||||
* 资源编码
|
||||
*/
|
||||
@ChineseDescription("资源编码")
|
||||
@NotBlank(message = "资源编码为空", groups = detail.class)
|
||||
private String resourceCode;
|
||||
|
||||
/**
|
||||
* 资源地址
|
||||
*/
|
||||
@ChineseDescription("资源地址")
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 是否是菜单(Y-是,N-否)
|
||||
*/
|
||||
@ChineseDescription("是否是菜单(Y-是,N-否)")
|
||||
private String menuFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.role.dto;
|
|||
|
||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -40,51 +41,61 @@ public class SysRoleDTO extends BaseRequest {
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ChineseDescription("主键")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ChineseDescription("名称")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@ChineseDescription("编码")
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@ChineseDescription("排序")
|
||||
private Integer roleSort;
|
||||
|
||||
/**
|
||||
* 数据范围类型:10-全部数据,20-本部门及以下数据,30-本部门数据,40-仅本人数据,50-自定义数据
|
||||
*/
|
||||
@ChineseDescription("数据范围类型:10-全部数据,20-本部门及以下数据,30-本部门数据,40-仅本人数据,50-自定义数据")
|
||||
private Integer dataScopeType;
|
||||
|
||||
/**
|
||||
* 数据范围类型枚举
|
||||
*/
|
||||
@ChineseDescription("数据范围类型枚举")
|
||||
private DataScopeTypeEnum dataScopeTypeEnum;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ChineseDescription("备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 是否是系统角色:Y-是,N-否
|
||||
*/
|
||||
@ChineseDescription("是否是系统角色:Y-是,N-否")
|
||||
private String roleSystemFlag;
|
||||
|
||||
/**
|
||||
* 角色类型
|
||||
*/
|
||||
@ChineseDescription("角色类型")
|
||||
private String roleTypeCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.role.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
@ -49,12 +50,14 @@ public class SysRoleRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "roleId不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class, grantResource.class, grantDataScope.class, grantMenuButton.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@NotBlank(message = "角色名称不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("角色名称")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
|
@ -68,12 +71,14 @@ public class SysRoleRequest extends BaseRequest {
|
|||
columnName = "role_code",
|
||||
idFieldName = "role_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("角色编码")
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@NotNull(message = "排序不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal roleSort;
|
||||
|
||||
/**
|
||||
|
@ -81,49 +86,58 @@ public class SysRoleRequest extends BaseRequest {
|
|||
*/
|
||||
@Null(message = "数据范围类型应该为空", groups = {add.class, edit.class})
|
||||
@NotNull(message = "数据范围类型不能为空", groups = {grantDataScope.class})
|
||||
@ChineseDescription("数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,40-指定部门数据,50-全部数据")
|
||||
private Integer dataScopeType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ChineseDescription("备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态(字典 1正常 2停用)
|
||||
*/
|
||||
@ChineseDescription("状态(字典 1正常 2停用)")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 是否是系统角色:Y-是,N-否
|
||||
*/
|
||||
@ChineseDescription("是否是系统角色:Y-是,N-否")
|
||||
private String roleSystemFlag;
|
||||
|
||||
/**
|
||||
* 角色类型
|
||||
*/
|
||||
@ChineseDescription("角色类型")
|
||||
private String roleTypeCode;
|
||||
|
||||
/**
|
||||
* 授权资源
|
||||
*/
|
||||
@NotNull(message = "授权资源不能为空", groups = {grantResource.class})
|
||||
@ChineseDescription("授权资源")
|
||||
private List<String> grantResourceList;
|
||||
|
||||
/**
|
||||
* 授权数据
|
||||
*/
|
||||
@ChineseDescription("授权数据")
|
||||
private List<Long> grantOrgIdList;
|
||||
|
||||
/**
|
||||
* 授权菜单
|
||||
*/
|
||||
@NotNull(message = "授权菜单Id不能为空", groups = {grantMenuButton.class})
|
||||
@ChineseDescription("授权菜单")
|
||||
private List<Long> grantMenuIdList;
|
||||
|
||||
/**
|
||||
* 授权菜单按钮
|
||||
*/
|
||||
@NotNull(message = "授权菜单按钮Id不能为空", groups = {grantMenuButton.class})
|
||||
@ChineseDescription("授权菜单按钮")
|
||||
private List<SysRoleMenuButtonRequest> grantMenuButtonIdList;
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.user;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -41,41 +42,49 @@ public class OnlineUserDTO {
|
|||
/**
|
||||
* 用户的token
|
||||
*/
|
||||
@ChineseDescription("用户的token")
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ChineseDescription("主键")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
@ChineseDescription("昵称")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ChineseDescription("姓名")
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@ChineseDescription("性别")
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@ChineseDescription("角色名称")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 登录的时间
|
||||
*/
|
||||
@ChineseDescription("登录的时间")
|
||||
private Date loginTime;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.user;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -42,87 +43,104 @@ public class SysUserDTO {
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ChineseDescription("主键")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
@ChineseDescription("昵称")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ChineseDescription("姓名")
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@ChineseDescription("头像")
|
||||
private Long avatar;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
*/
|
||||
@ChineseDescription("生日")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date birthday;
|
||||
|
||||
/**
|
||||
* 性别(M-男,F-女)
|
||||
*/
|
||||
@ChineseDescription("性别(M-男,F-女)")
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@ChineseDescription("邮箱")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 手机
|
||||
*/
|
||||
@ChineseDescription("手机")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
@ChineseDescription("密码")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
@ChineseDescription("电话")
|
||||
private String tel;
|
||||
|
||||
/**
|
||||
* 用户所属机构
|
||||
*/
|
||||
@ChineseDescription("用户所属机构")
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 用户所属机构的职务
|
||||
*/
|
||||
@ChineseDescription("用户所属机构的职务")
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 职务名称
|
||||
*/
|
||||
@ChineseDescription("职务名称")
|
||||
private String positionName;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ChineseDescription("状态")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 用户角色id
|
||||
*/
|
||||
@ChineseDescription("用户角色id")
|
||||
private List<Long> grantRoleIdList;
|
||||
|
||||
/**
|
||||
* 是否是超级管理员,超级管理员可以拥有所有权限(Y-是,N-否)
|
||||
*/
|
||||
@ChineseDescription("是否是超级管理员,超级管理员可以拥有所有权限(Y-是,N-否)")
|
||||
private String superAdminFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.system.api.pojo.user;
|
|||
import cn.hutool.core.collection.IterUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.TreeNodeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.node.DefaultTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -45,21 +46,25 @@ public class UserSelectTreeNode extends DefaultTreeNode {
|
|||
/**
|
||||
* 节点类型:org: 机构 user: 用户
|
||||
*/
|
||||
@ChineseDescription("节点类型:org: 机构 user: 用户")
|
||||
private String nodeType;
|
||||
|
||||
/**
|
||||
* 节点值
|
||||
*/
|
||||
@ChineseDescription("节点值")
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 是否被选中
|
||||
*/
|
||||
@ChineseDescription("是否被选中")
|
||||
private Boolean selected = false;
|
||||
|
||||
/**
|
||||
* 是否禁用
|
||||
*/
|
||||
@ChineseDescription("是否禁用")
|
||||
private Boolean disabled = false;
|
||||
|
||||
public Boolean getDisabled() {
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.user.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
@ -42,11 +43,13 @@ public class OnlineUserRequest {
|
|||
* 用户的token
|
||||
*/
|
||||
@NotBlank(message = "参数token不能为空")
|
||||
@ChineseDescription("用户的token")
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
@ChineseDescription("用户账号")
|
||||
private String account;
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.user.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.date.DateValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.phone.PhoneValue;
|
||||
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
|
||||
|
@ -52,6 +53,7 @@ public class SysUserRequest extends BaseRequest {
|
|||
* 主键
|
||||
*/
|
||||
@NotNull(message = "userId不能为空", groups = {edit.class, delete.class, detail.class, grantRole.class, grantData.class, resetPwd.class, changeStatus.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
|
@ -65,86 +67,101 @@ public class SysUserRequest extends BaseRequest {
|
|||
columnName = "account",
|
||||
idFieldName = "user_id",
|
||||
excludeLogicDeleteItems = true)
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 原密码
|
||||
*/
|
||||
@NotBlank(message = "原密码不能为空", groups = {updatePwd.class, reg.class})
|
||||
@ChineseDescription("原密码")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 新密码
|
||||
*/
|
||||
@NotBlank(message = "新密码不能为空", groups = {updatePwd.class})
|
||||
@ChineseDescription("新密码")
|
||||
private String newPassword;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
@ChineseDescription("昵称")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ChineseDescription("姓名")
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@NotNull(message = "头像不能为空", groups = {updateAvatar.class})
|
||||
@ChineseDescription("头像")
|
||||
private Long avatar;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
*/
|
||||
@DateValue(required = false, message = "生日格式不正确", groups = {add.class, edit.class})
|
||||
@ChineseDescription("生日")
|
||||
private String birthday;
|
||||
|
||||
/**
|
||||
* 性别(M-男,F-女)
|
||||
*/
|
||||
@NotNull(message = "性别不能为空", groups = {updateInfo.class})
|
||||
@ChineseDescription("性别(M-男,F-女)")
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@Email(message = "邮箱格式错误", groups = {updateInfo.class, reg.class})
|
||||
@ChineseDescription("邮箱")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 手机
|
||||
*/
|
||||
@PhoneValue(required = false, message = "手机号码格式错误", groups = {add.class, edit.class, reg.class})
|
||||
@ChineseDescription("手机")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
@ChineseDescription("电话")
|
||||
private String tel;
|
||||
|
||||
/**
|
||||
* 授权角色,角色id集合
|
||||
*/
|
||||
@NotNull(message = "授权角色不能为空", groups = {grantRole.class})
|
||||
@ChineseDescription("授权角色,角色id集合")
|
||||
private List<Long> grantRoleIdList;
|
||||
|
||||
/**
|
||||
* 授权数据范围,组织机构id集合
|
||||
*/
|
||||
@NotNull(message = "授权数据不能为空", groups = {grantData.class})
|
||||
@ChineseDescription("授权数据范围,组织机构id集合")
|
||||
private List<Long> grantOrgIdList;
|
||||
|
||||
/**
|
||||
* 用户所属机构
|
||||
*/
|
||||
@NotNull(message = "用户所属机构不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("用户所属机构")
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 用户所属机构的职务
|
||||
*/
|
||||
@ChineseDescription("用户所属机构的职务")
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
|
@ -152,12 +169,14 @@ public class SysUserRequest extends BaseRequest {
|
|||
*/
|
||||
@NotNull(message = "状态不能为空", groups = updateStatus.class)
|
||||
@StatusValue(message = "状态不正确", groups = updateStatus.class)
|
||||
@ChineseDescription("状态(字典 1正常 2冻结)")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 用户id集合(用在批量删除)
|
||||
*/
|
||||
@NotEmpty(message = "用户id集合不能为空", groups = batchDelete.class)
|
||||
@ChineseDescription("用户id集合(用在批量删除)")
|
||||
private List<Long> userIds;
|
||||
|
||||
/**
|
||||
|
|
|
@ -106,7 +106,7 @@ public class SysAppController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/3/26 9:49
|
||||
*/
|
||||
@GetResource(name = "查看系统应用", path = "/sysApp/detail")
|
||||
@GetResource(name = "查看系统应用", path = "/sysApp/detail", responseClass = SysApp.class)
|
||||
public ResponseData detail(@Validated(SysAppRequest.detail.class) SysAppRequest sysAppParam) {
|
||||
return new SuccessResponseData(sysAppService.detail(sysAppParam));
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ public class SysAppController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/4/19 14:55
|
||||
*/
|
||||
@GetResource(name = "系统应用列表", path = "/sysApp/list")
|
||||
@GetResource(name = "系统应用列表", path = "/sysApp/list", responseClass = SysApp.class)
|
||||
public ResponseData list(SysAppRequest sysAppParam) {
|
||||
return new SuccessResponseData(sysAppService.findList(sysAppParam));
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.app.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -47,36 +48,42 @@ public class SysApp extends BaseEntity {
|
|||
* 主键id
|
||||
*/
|
||||
@TableId("app_id")
|
||||
@ChineseDescription("主键id")
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
* 应用名称
|
||||
*/
|
||||
@TableField("app_name")
|
||||
@ChineseDescription("应用名称")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@TableField("app_code")
|
||||
@ChineseDescription("编码")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开
|
||||
*/
|
||||
@TableField("active_flag")
|
||||
@ChineseDescription("是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开")
|
||||
private String activeFlag;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField("status_flag")
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-已删除,N-未删除
|
||||
*/
|
||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||
@ChineseDescription("是否删除:Y-已删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ public class SysMenuButtonController {
|
|||
* @author luojie
|
||||
* @date 2021/1/9 11:53
|
||||
*/
|
||||
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail")
|
||||
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail", responseClass = SysMenuButton.class)
|
||||
public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
SysMenuButton detail = sysMenuButtonService.detail(sysMenuButtonRequest);
|
||||
return new SuccessResponseData(detail);
|
||||
|
@ -136,7 +136,7 @@ public class SysMenuButtonController {
|
|||
* @author luojie
|
||||
* @date 2021/1/9 12:33
|
||||
*/
|
||||
@GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList")
|
||||
@GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList", responseClass = SysMenuButton.class)
|
||||
public ResponseData pageList(@Validated(SysMenuButtonRequest.list.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||
PageResult<SysMenuButton> pageResult = sysMenuButtonService.findPage(sysMenuButtonRequest);
|
||||
return new SuccessResponseData(pageResult);
|
||||
|
|
|
@ -31,9 +31,11 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -97,7 +99,7 @@ public class SysMenuController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/3/27 9:01
|
||||
*/
|
||||
@GetResource(name = "查看系统菜单", path = "/sysMenu/detail")
|
||||
@GetResource(name = "查看系统菜单", path = "/sysMenu/detail", responseClass = SysMenu.class)
|
||||
public ResponseData detail(@Validated(SysMenuRequest.detail.class) SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.detail(sysMenuRequest));
|
||||
}
|
||||
|
@ -108,7 +110,7 @@ public class SysMenuController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/6 17:09
|
||||
*/
|
||||
@GetResource(name = "获取菜单列表(layui版本)", path = "/sysMenu/layuiList")
|
||||
@GetResource(name = "获取菜单列表(layui版本)", path = "/sysMenu/layuiList", responseClass = SysMenu.class)
|
||||
public ResponseData layuiList(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.findList(sysMenuRequest));
|
||||
}
|
||||
|
@ -119,7 +121,7 @@ public class SysMenuController {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 17:10
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)", path = "/sysMenu/menuAndButtonTree")
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(layui版本使用)", path = "/sysMenu/menuAndButtonTree", responseClass = LayuiMenuAndButtonTreeResponse.class)
|
||||
public List<LayuiMenuAndButtonTreeResponse> menuAndButtonTree(SysRoleRequest sysRoleRequest) {
|
||||
return sysMenuService.getMenuAndButtonTree(sysRoleRequest, true);
|
||||
}
|
||||
|
@ -130,7 +132,7 @@ public class SysMenuController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/6 17:09
|
||||
*/
|
||||
@GetResource(name = "获取菜单的树形列表(用于选择上级菜单)(layui版本)", path = "/sysMenu/layuiSelectParentMenuTreeList")
|
||||
@GetResource(name = "获取菜单的树形列表(用于选择上级菜单)(layui版本)", path = "/sysMenu/layuiSelectParentMenuTreeList", responseClass = ZTreeNode.class)
|
||||
public List<ZTreeNode> layuiSelectParentMenuTreeList() {
|
||||
return sysMenuService.layuiSelectParentMenuTreeList();
|
||||
}
|
||||
|
@ -141,7 +143,7 @@ public class SysMenuController {
|
|||
* @author majianguo
|
||||
* @date 2021/1/7 15:17
|
||||
*/
|
||||
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false)
|
||||
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false, responseClass = AntdSysMenuDTO.class)
|
||||
public ResponseData getLeftMenusAntdv(SysMenuRequest sysMenuRequest) {
|
||||
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest);
|
||||
return new SuccessResponseData(sysMenuResponses);
|
||||
|
@ -153,7 +155,7 @@ public class SysMenuController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/3/20 21:23
|
||||
*/
|
||||
@GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list")
|
||||
@GetResource(name = "系统菜单列表(树)", path = "/sysMenu/list", responseClass = SysMenu.class)
|
||||
public ResponseData list(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.findListWithTreeStructure(sysMenuRequest));
|
||||
}
|
||||
|
@ -164,7 +166,7 @@ public class SysMenuController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/3/27 15:55
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单树,用于新增,编辑时选择上级节点", path = "/sysMenu/tree")
|
||||
@GetResource(name = "获取系统菜单树,用于新增,编辑时选择上级节点", path = "/sysMenu/tree", responseClass = AntdMenuSelectTreeNode.class)
|
||||
public ResponseData tree(SysMenuRequest sysMenuRequest) {
|
||||
return new SuccessResponseData(sysMenuService.tree(sysMenuRequest));
|
||||
}
|
||||
|
@ -175,7 +177,7 @@ public class SysMenuController {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 17:10
|
||||
*/
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)", path = "/sysMenu/menuAndButtonTreeChildren")
|
||||
@GetResource(name = "获取系统菜单和按钮的树,用于角色分配菜单按钮(antd vue版本使用)", path = "/sysMenu/menuAndButtonTreeChildren", responseClass = LayuiMenuAndButtonTreeResponse.class)
|
||||
public ResponseData menuAndButtonTreeChildren(SysRoleRequest sysRoleRequest) {
|
||||
List<LayuiMenuAndButtonTreeResponse> treeResponseList = sysMenuService.getMenuAndButtonTree(sysRoleRequest, false);
|
||||
return new SuccessResponseData(treeResponseList);
|
||||
|
|
|
@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.modular.menu.entity;
|
|||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -51,132 +52,154 @@ public class SysMenu extends BaseEntity implements AbstractTreeNode<SysMenu> {
|
|||
* 主键
|
||||
*/
|
||||
@TableId("menu_id")
|
||||
@ChineseDescription("主键")
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 父id,顶级节点的父id是-1
|
||||
*/
|
||||
@TableField("menu_parent_id")
|
||||
@ChineseDescription("父id,顶级节点的父id是-1")
|
||||
private Long menuParentId;
|
||||
|
||||
/**
|
||||
* 父id集合,中括号包住,逗号分隔
|
||||
*/
|
||||
@TableField("menu_pids")
|
||||
@ChineseDescription("父id集合,中括号包住,逗号分隔")
|
||||
private String menuPids;
|
||||
|
||||
/**
|
||||
* 菜单的名称
|
||||
*/
|
||||
@TableField("menu_name")
|
||||
@ChineseDescription("菜单的名称")
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 菜单的编码
|
||||
*/
|
||||
@TableField("menu_code")
|
||||
@ChineseDescription("菜单的编码")
|
||||
private String menuCode;
|
||||
|
||||
/**
|
||||
* 应用编码
|
||||
*/
|
||||
@TableField("app_code")
|
||||
@ChineseDescription("应用编码")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否可见:Y-是,N-否
|
||||
*/
|
||||
@TableField("visible")
|
||||
@ChineseDescription("是否可见:Y-是,N-否")
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@TableField("menu_sort")
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal menuSort;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField("status_flag")
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField("remark")
|
||||
@ChineseDescription("备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 菜单的路径,适用于layui-beetl版本
|
||||
*/
|
||||
@TableField("layui_path")
|
||||
@ChineseDescription("菜单的路径,适用于layui-beetl版本")
|
||||
private String layuiPath;
|
||||
|
||||
/**
|
||||
* 菜单的图标,适用于layui-beetl版本
|
||||
*/
|
||||
@TableField("layui_icon")
|
||||
@ChineseDescription("菜单的图标,适用于layui-beetl版本")
|
||||
private String layuiIcon;
|
||||
|
||||
/**
|
||||
* 路由地址,浏览器显示的URL,例如/menu,适用于antd vue版本
|
||||
*/
|
||||
@TableField("antdv_router")
|
||||
@ChineseDescription("路由地址,浏览器显示的URL,例如/menu,适用于antd vue版本")
|
||||
private String antdvRouter;
|
||||
|
||||
/**
|
||||
* 图标,适用于antd vue版本
|
||||
*/
|
||||
@TableField("antdv_icon")
|
||||
@ChineseDescription("图标,适用于antd vue版本")
|
||||
private String antdvIcon;
|
||||
|
||||
/**
|
||||
* 前端组件名,适用于antd vue版本
|
||||
*/
|
||||
@TableField("antdv_component")
|
||||
@ChineseDescription("前端组件名,适用于antd vue版本")
|
||||
private String antdvComponent;
|
||||
|
||||
/**
|
||||
* 外部链接打开方式:1-内置打开外链,2-新页面外链,适用于antd vue版本
|
||||
*/
|
||||
@TableField("antdv_link_open_type")
|
||||
@ChineseDescription("外部链接打开方式:1-内置打开外链,2-新页面外链,适用于antd vue版本")
|
||||
private Integer antdvLinkOpenType;
|
||||
|
||||
/**
|
||||
* 外部链接地址
|
||||
*/
|
||||
@TableField("antdv_link_url")
|
||||
@ChineseDescription("外部链接地址")
|
||||
private String antdvLinkUrl;
|
||||
|
||||
/**
|
||||
* 用于非菜单显示页面的重定向url设置
|
||||
*/
|
||||
@TableField("antdv_uid_url")
|
||||
@ChineseDescription("用于非菜单显示页面的重定向url设置")
|
||||
private String antdvUidUrl;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-被删除,N-未删除
|
||||
*/
|
||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||
@ChineseDescription("是否删除:Y-被删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 子节点(表中不存在,用于构造树)
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ChineseDescription("子节点(表中不存在,用于构造树)")
|
||||
private List<SysMenu> children;
|
||||
|
||||
/**
|
||||
* 应用名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ChineseDescription("应用名称")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 父级菜单的名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ChineseDescription("父级菜单的名称")
|
||||
private String menuParentName;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.menu.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -49,30 +50,35 @@ public class SysMenuButton extends BaseEntity implements Serializable {
|
|||
* 主键
|
||||
*/
|
||||
@TableId(value = "button_id")
|
||||
@ChineseDescription("主键")
|
||||
private Long buttonId;
|
||||
|
||||
/**
|
||||
* 菜单id,按钮需要挂在菜单下
|
||||
*/
|
||||
@TableField(value = "menu_id")
|
||||
@ChineseDescription("菜单id,按钮需要挂在菜单下")
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 按钮的名称
|
||||
*/
|
||||
@TableField(value = "button_name")
|
||||
@ChineseDescription("按钮的名称")
|
||||
private String buttonName;
|
||||
|
||||
/**
|
||||
* 按钮的编码
|
||||
*/
|
||||
@TableField(value = "button_code")
|
||||
@ChineseDescription("按钮的编码")
|
||||
private String buttonCode;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-被删除,N-未删除
|
||||
*/
|
||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||
@ChineseDescription("是否删除:Y-被删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.notice.SysNoticeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.notice.entity.SysNotice;
|
||||
import cn.stylefeng.roses.kernel.system.modular.notice.service.SysNoticeService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -92,7 +93,7 @@ public class SysNoticeController {
|
|||
* @author liuhanqing
|
||||
* @date 2021/1/9 9:49
|
||||
*/
|
||||
@GetResource(name = "查看通知管理", path = "/sysNotice/detail")
|
||||
@GetResource(name = "查看通知管理", path = "/sysNotice/detail", responseClass = SysNotice.class)
|
||||
public ResponseData detail(@Validated(SysNoticeRequest.detail.class) SysNoticeRequest sysNoticeParam) {
|
||||
return new SuccessResponseData(sysNoticeService.detail(sysNoticeParam));
|
||||
}
|
||||
|
@ -103,7 +104,7 @@ public class SysNoticeController {
|
|||
* @author liuhanqing
|
||||
* @date 2021/1/9 21:23
|
||||
*/
|
||||
@GetResource(name = "查询通知管理", path = "/sysNotice/page")
|
||||
@GetResource(name = "查询通知管理", path = "/sysNotice/page", responseClass = SysNotice.class)
|
||||
public ResponseData page(SysNoticeRequest sysNoticeParam) {
|
||||
return new SuccessResponseData(sysNoticeService.findPage(sysNoticeParam));
|
||||
}
|
||||
|
@ -114,7 +115,7 @@ public class SysNoticeController {
|
|||
* @author liuhanqing
|
||||
* @date 2021/1/9 14:55
|
||||
*/
|
||||
@GetResource(name = "通知管理列表", path = "/sysNotice/list")
|
||||
@GetResource(name = "通知管理列表", path = "/sysNotice/list",responseClass = SysNotice.class)
|
||||
public ResponseData list(SysNoticeRequest sysNoticeParam) {
|
||||
return new SuccessResponseData(sysNoticeService.findList(sysNoticeParam));
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.modular.notice.entity;
|
|||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.dict.api.serializer.DictValueSerializer;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -51,55 +52,63 @@ public class SysNotice extends BaseEntity {
|
|||
* 通知id
|
||||
*/
|
||||
@TableId("notice_id")
|
||||
@ChineseDescription("通知id")
|
||||
private Long noticeId;
|
||||
|
||||
/**
|
||||
* 通知标题
|
||||
*/
|
||||
@TableField("notice_title")
|
||||
@ChineseDescription("通知标题")
|
||||
private String noticeTitle;
|
||||
|
||||
/**
|
||||
* 通知摘要
|
||||
*/
|
||||
@TableField("notice_summary")
|
||||
@ChineseDescription("通知摘要")
|
||||
private String noticeSummary;
|
||||
|
||||
/**
|
||||
* 通知优先级
|
||||
*/
|
||||
@TableField(value = "priority_level")
|
||||
@ChineseDescription("通知优先级")
|
||||
private String priorityLevel;
|
||||
|
||||
|
||||
/**
|
||||
* 通知开始时间
|
||||
*/
|
||||
@TableField(value = "notice_begin_time")
|
||||
@ChineseDescription("通知开始时间")
|
||||
private Date noticeBeginTime;
|
||||
|
||||
|
||||
/**
|
||||
* 通知结束时间
|
||||
*/
|
||||
@TableField(value = "notice_end_time")
|
||||
@ChineseDescription("通知结束时间")
|
||||
private Date noticeEndTime;
|
||||
|
||||
/**
|
||||
* 通知内容
|
||||
*/
|
||||
@TableField("notice_content")
|
||||
@ChineseDescription("通知内容")
|
||||
private String noticeContent;
|
||||
|
||||
/**
|
||||
* 通知范围
|
||||
*/
|
||||
@TableField("notice_scope")
|
||||
@ChineseDescription("通知范围")
|
||||
private String noticeScope;
|
||||
|
||||
/**
|
||||
* 是否删除:Y-已删除,N-未删除
|
||||
*/
|
||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||
@ChineseDescription("是否删除:Y-已删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
|
|
|
@ -31,6 +31,8 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrOrganizationRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.OrganizationTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrganization;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrganizationService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -106,7 +108,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/04 11:05
|
||||
*/
|
||||
@GetResource(name = "查看详情系统组织机构", path = "/hrOrganization/detail")
|
||||
@GetResource(name = "查看详情系统组织机构", path = "/hrOrganization/detail", responseClass = HrOrganization.class)
|
||||
public ResponseData detail(@Validated(HrOrganizationRequest.detail.class) HrOrganizationRequest hrOrganizationRequest) {
|
||||
return new SuccessResponseData(hrOrganizationService.detail(hrOrganizationRequest));
|
||||
}
|
||||
|
@ -117,7 +119,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/04 11:05
|
||||
*/
|
||||
@GetResource(name = "分页查询系统组织机构", path = "/hrOrganization/page")
|
||||
@GetResource(name = "分页查询系统组织机构", path = "/hrOrganization/page", responseClass = HrOrganization.class)
|
||||
public ResponseData page(HrOrganizationRequest hrOrganizationRequest) {
|
||||
return new SuccessResponseData(hrOrganizationService.findPage(hrOrganizationRequest));
|
||||
}
|
||||
|
@ -128,7 +130,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/04 11:05
|
||||
*/
|
||||
@GetResource(name = "获取全部系统组织机构", path = "/hrOrganization/list")
|
||||
@GetResource(name = "获取全部系统组织机构", path = "/hrOrganization/list", responseClass = HrOrganization.class)
|
||||
public ResponseData list(HrOrganizationRequest hrOrganizationRequest) {
|
||||
return new SuccessResponseData(hrOrganizationService.findList(hrOrganizationRequest));
|
||||
}
|
||||
|
@ -139,7 +141,7 @@ public class HrOrganizationController {
|
|||
* @author chenjinlong
|
||||
* @date 2021/01/05 15:55
|
||||
*/
|
||||
@GetResource(name = "获取全部系统组织机构树", path = "/hrOrganization/tree")
|
||||
@GetResource(name = "获取全部系统组织机构树", path = "/hrOrganization/tree", responseClass = OrganizationTreeNode.class)
|
||||
public ResponseData organizationTree(HrOrganizationRequest hrOrganizationRequest) {
|
||||
return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest));
|
||||
}
|
||||
|
@ -150,7 +152,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/3/19 22:20
|
||||
*/
|
||||
@GetResource(name = "获取组织机构树(用于用户绑定数据范围)", path = "/hrOrganization/userBindOrgScope")
|
||||
@GetResource(name = "获取组织机构树(用于用户绑定数据范围)", path = "/hrOrganization/userBindOrgScope", responseClass = OrganizationTreeNode.class)
|
||||
public ResponseData userBindOrgScope(@Validated(HrOrganizationRequest.userBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) {
|
||||
return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest));
|
||||
}
|
||||
|
@ -161,7 +163,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/9 18:37
|
||||
*/
|
||||
@GetResource(name = "Layui版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScope")
|
||||
@GetResource(name = "Layui版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScope", responseClass = ZTreeNode.class)
|
||||
public List<ZTreeNode> roleBindOrgScope(@Validated(HrOrganizationRequest.roleBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) {
|
||||
return hrOrganizationService.orgZTree(hrOrganizationRequest, false);
|
||||
}
|
||||
|
@ -172,7 +174,7 @@ public class HrOrganizationController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/9 18:37
|
||||
*/
|
||||
@GetResource(name = "AntdVue版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScopeAntdv")
|
||||
@GetResource(name = "AntdVue版本--获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)", path = "/hrOrganization/roleBindOrgScopeAntdv", responseClass = ZTreeNode.class)
|
||||
public ResponseData roleBindOrgScopeAntdv(@Validated(HrOrganizationRequest.roleBindOrgScope.class) HrOrganizationRequest hrOrganizationRequest) {
|
||||
List<ZTreeNode> zTreeNodes = hrOrganizationService.orgZTree(hrOrganizationRequest, true);
|
||||
return new SuccessResponseData(zTreeNodes);
|
||||
|
|
|
@ -31,6 +31,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrPositionRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrPosition;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.service.HrPositionService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -117,7 +118,7 @@ public class HrPositionController {
|
|||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "查看详情系统职位", path = "/hrPosition/detail")
|
||||
@GetResource(name = "查看详情系统职位", path = "/hrPosition/detail", responseClass = HrPosition.class)
|
||||
public ResponseData detail(@Validated(HrPositionRequest.detail.class) HrPositionRequest hrPositionRequest) {
|
||||
return new SuccessResponseData(hrPositionService.detail(hrPositionRequest));
|
||||
}
|
||||
|
@ -128,7 +129,7 @@ public class HrPositionController {
|
|||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "分页查询系统职位", path = "/hrPosition/page")
|
||||
@GetResource(name = "分页查询系统职位", path = "/hrPosition/page", responseClass = HrPosition.class)
|
||||
public ResponseData page(HrPositionRequest hrPositionRequest) {
|
||||
return new SuccessResponseData(hrPositionService.findPage(hrPositionRequest));
|
||||
}
|
||||
|
@ -139,7 +140,7 @@ public class HrPositionController {
|
|||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "获取全部系统职位", path = "/hrPosition/list")
|
||||
@GetResource(name = "获取全部系统职位", path = "/hrPosition/list", responseClass = HrPosition.class)
|
||||
public ResponseData list(HrPositionRequest hrPositionRequest) {
|
||||
return new SuccessResponseData(hrPositionService.findList(hrPositionRequest));
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.organization.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -50,54 +51,63 @@ public class HrOrganization extends BaseEntity {
|
|||
* 主键
|
||||
*/
|
||||
@TableId("org_id")
|
||||
@ChineseDescription("主键")
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 父id,一级节点父id是0
|
||||
*/
|
||||
@TableField("org_parent_id")
|
||||
@ChineseDescription("父id,一级节点父id是0")
|
||||
private Long orgParentId;
|
||||
|
||||
/**
|
||||
* 父ids
|
||||
*/
|
||||
@TableField("org_pids")
|
||||
@ChineseDescription("父ids")
|
||||
private String orgPids;
|
||||
|
||||
/**
|
||||
* 组织名称
|
||||
*/
|
||||
@TableField("org_name")
|
||||
@ChineseDescription("组织名称")
|
||||
private String orgName;
|
||||
|
||||
/**
|
||||
* 组织编码
|
||||
*/
|
||||
@TableField("org_code")
|
||||
@ChineseDescription("组织编码")
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@TableField("org_sort")
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal orgSort;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField(value = "status_flag",fill = FieldFill.INSERT)
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 组织机构描述
|
||||
*/
|
||||
@TableField("org_remark")
|
||||
@ChineseDescription("组织机构描述")
|
||||
private String orgRemark;
|
||||
|
||||
/**
|
||||
* 删除标记(Y-已删除,N-未删除)
|
||||
*/
|
||||
@TableField(value = "del_flag",fill = FieldFill.INSERT)
|
||||
@ChineseDescription("删除标记(Y-已删除,N-未删除)")
|
||||
private String delFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.system.modular.organization.entity;
|
|||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.xmtree.base.AbstractXmSelectNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -51,42 +52,49 @@ public class HrPosition extends BaseEntity implements AbstractXmSelectNode {
|
|||
* 主键
|
||||
*/
|
||||
@TableId("position_id")
|
||||
@ChineseDescription("主键")
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 职位名称
|
||||
*/
|
||||
@TableField("position_name")
|
||||
@ChineseDescription("职位名称")
|
||||
private String positionName;
|
||||
|
||||
/**
|
||||
* 职位编码
|
||||
*/
|
||||
@TableField("position_code")
|
||||
@ChineseDescription("职位编码")
|
||||
private String positionCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@TableField("position_sort")
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal positionSort;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField("status_flag")
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 职位备注
|
||||
*/
|
||||
@TableField("position_remark")
|
||||
@ChineseDescription("职位备注")
|
||||
private String positionRemark;
|
||||
|
||||
/**
|
||||
* 删除标记:Y-已删除,N-未删除
|
||||
*/
|
||||
@TableField(value = "del_flag", fill = FieldFill.INSERT)
|
||||
@ChineseDescription("删除标记:Y-已删除,N-未删除")
|
||||
private String delFlag;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -58,7 +58,7 @@ public class ApiController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/12/18 15:50
|
||||
*/
|
||||
@GetResource(name = "获取接口树列表(用于接口文档页面)", path = "/resource/getTree", requiredLogin = false)
|
||||
@GetResource(name = "获取接口树列表(用于接口文档页面)", path = "/resource/getTree", requiredLogin = false, responseClass = LayuiApiResourceTreeNode.class)
|
||||
public ResponseData getTree() {
|
||||
List<LayuiApiResourceTreeNode> resourceTree = sysResourceService.getApiResourceTree();
|
||||
return new SuccessResponseData(resourceTree);
|
||||
|
@ -70,7 +70,7 @@ public class ApiController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/12/18 15:50
|
||||
*/
|
||||
@GetResource(name = "获取API详情(用于接口文档页面)", path = "/resource/getDetail", requiredLogin = false)
|
||||
@GetResource(name = "获取API详情(用于接口文档页面)", path = "/resource/getDetail", requiredLogin = false, responseClass = ResourceDefinition.class)
|
||||
public ResponseData getResourceDetail(@Validated(BaseRequest.detail.class) ResourceRequest resourceRequest) {
|
||||
ResourceDefinition resourceDetail = sysResourceService.getApiResourceDetail(resourceRequest);
|
||||
return new SuccessResponseData(resourceDetail);
|
||||
|
|
|
@ -8,6 +8,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
|||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupTreeWrapper;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.TreeSortRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiGroup;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiGroupService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -82,7 +83,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "查看详情", path = "/apiGroup/detail")
|
||||
@GetResource(name = "查看详情", path = "/apiGroup/detail", responseClass = ApiGroup.class)
|
||||
public ResponseData detail(@Validated(ApiGroupRequest.detail.class) ApiGroupRequest apiGroupRequest) {
|
||||
return new SuccessResponseData(apiGroupService.detail(apiGroupRequest));
|
||||
}
|
||||
|
@ -93,7 +94,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "获取列表", path = "/apiGroup/list")
|
||||
@GetResource(name = "获取列表", path = "/apiGroup/list", responseClass = ApiGroup.class)
|
||||
public ResponseData list(ApiGroupRequest apiGroupRequest) {
|
||||
return new SuccessResponseData(apiGroupService.findList(apiGroupRequest));
|
||||
}
|
||||
|
@ -104,7 +105,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "分页查询", path = "/apiGroup/page")
|
||||
@GetResource(name = "分页查询", path = "/apiGroup/page", responseClass = ApiGroup.class)
|
||||
public ResponseData page(ApiGroupRequest apiGroupRequest) {
|
||||
return new SuccessResponseData(apiGroupService.findPage(apiGroupRequest));
|
||||
}
|
||||
|
@ -116,7 +117,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/5/22 上午11:00
|
||||
**/
|
||||
@GetResource(name = "获取树", path = "/apiGroup/tree")
|
||||
@GetResource(name = "获取树", path = "/apiGroup/tree", responseClass = ApiGroupTreeWrapper.class)
|
||||
public ResponseData tree(ApiGroupRequest apiGroupRequest) {
|
||||
List<ApiGroupTreeWrapper> apiGroupTreeWrapperList = apiGroupService.tree(apiGroupRequest);
|
||||
return new SuccessResponseData(apiGroupTreeWrapperList);
|
||||
|
@ -129,7 +130,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/5/22 上午11:00
|
||||
**/
|
||||
@GetResource(name = "获取分组树", path = "/apiGroup/groupTree")
|
||||
@GetResource(name = "获取分组树", path = "/apiGroup/groupTree", responseClass = ApiGroupTreeWrapper.class)
|
||||
public ResponseData groupTree(ApiGroupRequest apiGroupRequest) {
|
||||
List<ApiGroupTreeWrapper> apiGroupTreeWrapperList = apiGroupService.groupTree(apiGroupRequest);
|
||||
return new SuccessResponseData(apiGroupTreeWrapperList);
|
||||
|
@ -142,7 +143,7 @@ public class ApiGroupController {
|
|||
* @author majianguo
|
||||
* @date 2021/5/22 上午11:00
|
||||
**/
|
||||
@GetResource(name = "获取树", path = "/apiGroup/peersTree")
|
||||
@GetResource(name = "获取树", path = "/apiGroup/peersTree", responseClass = ApiGroupTreeWrapper.class)
|
||||
public ResponseData peersTree(ApiGroupRequest apiGroupRequest) {
|
||||
List<ApiGroupTreeWrapper> apiGroupTreeWrapperList = apiGroupService.peersTree(apiGroupRequest);
|
||||
return new SuccessResponseData(apiGroupTreeWrapperList);
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiResourceRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResourceField;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiResourceService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -69,7 +70,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/5/27 下午3:33
|
||||
**/
|
||||
@PostResource(name = "编辑", path = "/apiResource/reset")
|
||||
@PostResource(name = "编辑", path = "/apiResource/reset", responseClass = cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource.class)
|
||||
public ResponseData reset(@RequestBody @Validated(ApiResourceRequest.reset.class) ApiResourceRequest apiResourceRequest) {
|
||||
return new SuccessResponseData(apiResourceService.reset(apiResourceRequest));
|
||||
}
|
||||
|
@ -80,7 +81,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@PostResource(name = "请求记录", path = "/apiResource/record")
|
||||
@PostResource(name = "请求记录", path = "/apiResource/record", responseClass = cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource.class)
|
||||
public ResponseData record(@RequestBody @Validated(ApiResourceRequest.record.class) ApiResourceRequest apiResourceRequest) {
|
||||
cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource apiResource = apiResourceService.record(apiResourceRequest);
|
||||
return new SuccessResponseData(apiResource);
|
||||
|
@ -92,7 +93,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "查看详情", path = "/apiResource/detail")
|
||||
@GetResource(name = "查看详情", path = "/apiResource/detail", responseClass = cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource.class)
|
||||
public ResponseData detail(@Validated(ApiResourceRequest.detail.class) ApiResourceRequest apiResourceRequest) {
|
||||
return new SuccessResponseData(apiResourceService.detail(apiResourceRequest));
|
||||
}
|
||||
|
@ -103,7 +104,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "获取列表", path = "/apiResource/list")
|
||||
@GetResource(name = "获取列表", path = "/apiResource/list", responseClass = cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource.class)
|
||||
public ResponseData list(ApiResourceRequest apiResourceRequest) {
|
||||
return new SuccessResponseData(apiResourceService.findList(apiResourceRequest));
|
||||
}
|
||||
|
@ -114,7 +115,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "分页查询", path = "/apiResource/page")
|
||||
@GetResource(name = "分页查询", path = "/apiResource/page", responseClass = cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource.class)
|
||||
public ResponseData page(ApiResourceRequest apiResourceRequest) {
|
||||
return new SuccessResponseData(apiResourceService.findPage(apiResourceRequest));
|
||||
}
|
||||
|
@ -125,7 +126,7 @@ public class ApiResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@GetResource(name = "查询该资源所有字段", path = "/apiResource/allField")
|
||||
@GetResource(name = "查询该资源所有字段", path = "/apiResource/allField", responseClass = ApiResourceField.class)
|
||||
public ResponseData allField(@Validated(ApiResourceRequest.allField.class) ApiResourceRequest apiResourceRequest) {
|
||||
return new SuccessResponseData(apiResourceService.allField(apiResourceRequest));
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class ResourceController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/24 19:47
|
||||
*/
|
||||
@GetResource(name = "获取资源列表", path = "/resource/pageList")
|
||||
@GetResource(name = "获取资源列表", path = "/resource/pageList",responseClass = SysResource.class)
|
||||
public ResponseData pageList(ResourceRequest resourceRequest) {
|
||||
PageResult<SysResource> result = this.sysResourceService.findPage(resourceRequest);
|
||||
return new SuccessResponseData(result);
|
||||
|
@ -70,7 +70,7 @@ public class ResourceController {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/24 19:51
|
||||
*/
|
||||
@GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList")
|
||||
@GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList",responseClass = SysResource.class)
|
||||
public ResponseData getMenuResourceList(ResourceRequest resourceRequest) {
|
||||
List<SysResource> menuResourceList = this.sysResourceService.findList(resourceRequest);
|
||||
return new SuccessResponseData(menuResourceList);
|
||||
|
@ -82,7 +82,7 @@ public class ResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 15:07
|
||||
*/
|
||||
@GetResource(name = "Layui版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTree")
|
||||
@GetResource(name = "Layui版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTree",responseClass = ResourceTreeNode.class)
|
||||
public List<ResourceTreeNode> getLateralTree(SysRoleRequest sysRoleRequest) {
|
||||
return sysResourceService.getResourceTree(sysRoleRequest.getRoleId(), false);
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ public class ResourceController {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 15:07
|
||||
*/
|
||||
@GetResource(name = "AntdVue版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTreeAntdv")
|
||||
@GetResource(name = "AntdVue版本--获取资源树列表,用于角色分配接口权限", path = "/resource/getRoleResourceTreeAntdv",responseClass = ResourceTreeNode.class)
|
||||
public ResponseData getLateralTreeChildren(SysRoleRequest sysRoleRequest) {
|
||||
List<ResourceTreeNode> resourceLateralTree = sysResourceService.getResourceTree(sysRoleRequest.getRoleId(), true);
|
||||
return new SuccessResponseData(resourceLateralTree);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.resource.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -25,30 +26,35 @@ public class ApiGroup extends BaseEntity {
|
|||
* 资源分组主键
|
||||
*/
|
||||
@TableId(value = "group_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("资源分组主键")
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 分组名称
|
||||
*/
|
||||
@TableField("group_name")
|
||||
@ChineseDescription("分组名称")
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 分组父ID
|
||||
*/
|
||||
@TableField("group_pid")
|
||||
@ChineseDescription("分组父ID")
|
||||
private Long groupPid;
|
||||
|
||||
/**
|
||||
* 分组父ID集合
|
||||
*/
|
||||
@TableField("group_pids")
|
||||
@ChineseDescription("分组父ID集合")
|
||||
private String groupPids;
|
||||
|
||||
/**
|
||||
* 分组排序
|
||||
*/
|
||||
@TableField("group_sort")
|
||||
@ChineseDescription("分组排序")
|
||||
private java.math.BigDecimal groupSort;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.resource.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -26,54 +27,63 @@ public class ApiResource extends BaseEntity {
|
|||
* 接口信息主键
|
||||
*/
|
||||
@TableId(value = "api_resource_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("接口信息主键")
|
||||
private Long apiResourceId;
|
||||
|
||||
/**
|
||||
* 资源分组数据主键
|
||||
*/
|
||||
@TableField("group_id")
|
||||
@ChineseDescription("资源分组数据主键")
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 请求方式:GET,POST
|
||||
*/
|
||||
@TableField("request_method")
|
||||
@ChineseDescription("请求方式:GET,POST")
|
||||
private String requestMethod;
|
||||
|
||||
/**
|
||||
* 接口自定义名称,区别于sys_resource表的名称
|
||||
*/
|
||||
@TableField("api_alias")
|
||||
@ChineseDescription("接口自定义名称,区别于sys_resource表的名称")
|
||||
private String apiAlias;
|
||||
|
||||
/**
|
||||
* 资源唯一编码,关联sys_resource表的code
|
||||
*/
|
||||
@TableField("resource_code")
|
||||
@ChineseDescription("资源唯一编码,关联sys_resource表的code")
|
||||
private String resourceCode;
|
||||
|
||||
/**
|
||||
* 上次接口调用的头部信息
|
||||
*/
|
||||
@TableField("last_request_header")
|
||||
@ChineseDescription("上次接口调用的头部信息")
|
||||
private String lastRequestHeader;
|
||||
|
||||
/**
|
||||
* 上次接口调用的参数内容
|
||||
*/
|
||||
@TableField("last_request_content")
|
||||
@ChineseDescription("上次接口调用的参数内容")
|
||||
private String lastRequestContent;
|
||||
|
||||
/**
|
||||
* 上次接口调用的响应内容
|
||||
*/
|
||||
@TableField("last_response_content")
|
||||
@ChineseDescription("上次接口调用的响应内容")
|
||||
private String lastResponseContent;
|
||||
|
||||
/**
|
||||
* 资源排序
|
||||
*/
|
||||
@TableField("resource_sort")
|
||||
@ChineseDescription("资源排序")
|
||||
private java.math.BigDecimal resourceSort;
|
||||
|
||||
/**
|
||||
|
@ -104,6 +114,7 @@ public class ApiResource extends BaseEntity {
|
|||
* 该资源所有字段
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ChineseDescription("该资源所有字段")
|
||||
private List<ApiResourceField> apiResourceFieldList;
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.resource.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -25,48 +26,56 @@ public class ApiResourceField extends BaseEntity {
|
|||
* 字段主键
|
||||
*/
|
||||
@TableId(value = "field_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("字段主键")
|
||||
private Long fieldId;
|
||||
|
||||
/**
|
||||
* 资源编码
|
||||
*/
|
||||
@TableField(value = "api_resource_id")
|
||||
@ChineseDescription("资源编码")
|
||||
private Long apiResourceId;
|
||||
|
||||
/**
|
||||
* 参数位置:request-请求参数,response-响应参数
|
||||
*/
|
||||
@TableField("field_location")
|
||||
@ChineseDescription("参数位置:request-请求参数,response-响应参数")
|
||||
private String fieldLocation;
|
||||
|
||||
/**
|
||||
* 字段名称,例如:邮箱
|
||||
*/
|
||||
@TableField("field_name")
|
||||
@ChineseDescription("字段名称")
|
||||
private String fieldName;
|
||||
|
||||
/**
|
||||
* 字段编码,例如:email
|
||||
*/
|
||||
@TableField("field_code")
|
||||
@ChineseDescription("字段编码")
|
||||
private String fieldCode;
|
||||
|
||||
/**
|
||||
* 字段类型:string或file
|
||||
*/
|
||||
@TableField("field_type")
|
||||
@ChineseDescription("字段类型")
|
||||
private String fieldType;
|
||||
|
||||
/**
|
||||
* 是否必填:Y-是,N-否
|
||||
*/
|
||||
@TableField("field_required")
|
||||
@ChineseDescription("是否必填")
|
||||
private String fieldRequired;
|
||||
|
||||
/**
|
||||
* 字段其他校验信息,后端校验注解内容
|
||||
*/
|
||||
@TableField("field_validation_msg")
|
||||
@ChineseDescription("字段其他校验信息,后端校验注解内容")
|
||||
private String fieldValidationMsg;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.resource.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
@ -46,60 +47,70 @@ public class SysResource extends BaseEntity {
|
|||
* 资源id
|
||||
*/
|
||||
@TableId("resource_id")
|
||||
@ChineseDescription("资源id")
|
||||
private Long resourceId;
|
||||
|
||||
/**
|
||||
* 应用编码
|
||||
*/
|
||||
@TableField("app_code")
|
||||
@ChineseDescription("应用编码")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 资源编码
|
||||
*/
|
||||
@TableField("resource_code")
|
||||
@ChineseDescription("资源编码")
|
||||
private String resourceCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
@TableField("resource_name")
|
||||
@ChineseDescription("资源名称")
|
||||
private String resourceName;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
@TableField("project_code")
|
||||
@ChineseDescription("项目编码")
|
||||
private String projectCode;
|
||||
|
||||
/**
|
||||
* 类名称
|
||||
*/
|
||||
@TableField("class_name")
|
||||
@ChineseDescription("类名称")
|
||||
private String className;
|
||||
|
||||
/**
|
||||
* 方法名称
|
||||
*/
|
||||
@TableField("method_name")
|
||||
@ChineseDescription("方法名称")
|
||||
private String methodName;
|
||||
|
||||
/**
|
||||
* 资源模块编码
|
||||
*/
|
||||
@TableField("modular_code")
|
||||
@ChineseDescription("资源模块编码")
|
||||
private String modularCode;
|
||||
|
||||
/**
|
||||
* 资源模块名称
|
||||
*/
|
||||
@TableField("modular_name")
|
||||
@ChineseDescription("资源模块名称")
|
||||
private String modularName;
|
||||
|
||||
/**
|
||||
* 资源初始化的服务器ip地址
|
||||
*/
|
||||
@TableField("ip_address")
|
||||
@ChineseDescription("资源初始化的服务器ip地址")
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
|
@ -109,30 +120,35 @@ public class SysResource extends BaseEntity {
|
|||
* 视图层一般会在前后端不分离项目出现
|
||||
*/
|
||||
@TableField("view_flag")
|
||||
@ChineseDescription("是否是视图类型")
|
||||
private String viewFlag;
|
||||
|
||||
/**
|
||||
* 资源url
|
||||
*/
|
||||
@TableField("url")
|
||||
@ChineseDescription("资源url")
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* http请求方法
|
||||
*/
|
||||
@TableField("http_method")
|
||||
@ChineseDescription("http请求方法")
|
||||
private String httpMethod;
|
||||
|
||||
/**
|
||||
* 是否需要登录:Y-是,N-否
|
||||
*/
|
||||
@TableField("required_login_flag")
|
||||
@ChineseDescription("是否需要登录:Y-是,N-否")
|
||||
private String requiredLoginFlag;
|
||||
|
||||
/**
|
||||
* 是否需要鉴权:Y-是,N-否
|
||||
*/
|
||||
@TableField("required_permission_flag")
|
||||
@ChineseDescription("是否需要鉴权:Y-是,N-否")
|
||||
private String requiredPermissionFlag;
|
||||
|
||||
/**
|
||||
|
@ -141,6 +157,7 @@ public class SysResource extends BaseEntity {
|
|||
* json形式存储
|
||||
*/
|
||||
@TableField("validate_groups")
|
||||
@ChineseDescription("需要进行参数校验的分组")
|
||||
private String validateGroups;
|
||||
|
||||
/**
|
||||
|
@ -149,6 +166,7 @@ public class SysResource extends BaseEntity {
|
|||
* json形式存储
|
||||
*/
|
||||
@TableField("param_field_descriptions")
|
||||
@ChineseDescription("接口参数的字段描述")
|
||||
private String paramFieldDescriptions;
|
||||
|
||||
/**
|
||||
|
@ -157,6 +175,7 @@ public class SysResource extends BaseEntity {
|
|||
* json形式存储
|
||||
*/
|
||||
@TableField("response_field_descriptions")
|
||||
@ChineseDescription("接口返回结果的字段描述")
|
||||
private String responseFieldDescriptions;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.resource.pojo;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -41,16 +42,19 @@ public class ResourceTreeNode implements AbstractTreeNode<ResourceTreeNode> {
|
|||
/**
|
||||
* 资源id
|
||||
*/
|
||||
@ChineseDescription("资源id")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 父级资源id
|
||||
*/
|
||||
@ChineseDescription("父级资源id")
|
||||
private String parentCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
@ChineseDescription("资源名称")
|
||||
private String nodeName;
|
||||
|
||||
/**
|
||||
|
@ -59,16 +63,19 @@ public class ResourceTreeNode implements AbstractTreeNode<ResourceTreeNode> {
|
|||
* true-是资源标识
|
||||
* false-虚拟节点,不是一个具体资源
|
||||
*/
|
||||
@ChineseDescription("是否是资源标识")
|
||||
private Boolean resourceFlag;
|
||||
|
||||
/**
|
||||
* 能否选择
|
||||
*/
|
||||
@ChineseDescription("能否选择")
|
||||
private Boolean checked;
|
||||
|
||||
/**
|
||||
* 子节点集合
|
||||
*/
|
||||
@ChineseDescription("子节点集合")
|
||||
private List<ResourceTreeNode> children;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,6 +9,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.dict.api.pojo.dict.request.ParentIdsUpdateRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.enums.resource.ApiGroupExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupRequest;
|
||||
|
@ -17,12 +18,14 @@ import cn.stylefeng.roses.kernel.system.api.pojo.resource.TreeSortRequest;
|
|||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiGroup;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResourceField;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.SysResource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.enums.NodeEnums;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.enums.NodeTypeEnums;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.mapper.ApiGroupMapper;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiGroupService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiResourceFieldService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiResourceService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.SysResourceService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
@ -49,6 +52,9 @@ public class ApiGroupServiceImpl extends ServiceImpl<ApiGroupMapper, ApiGroup> i
|
|||
@Autowired
|
||||
private ApiResourceFieldService apiResourceFieldService;
|
||||
|
||||
@Autowired
|
||||
private SysResourceService sysResourceService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ApiGroup add(ApiGroupRequest apiGroupRequest) {
|
||||
|
@ -166,6 +172,15 @@ public class ApiGroupServiceImpl extends ServiceImpl<ApiGroupMapper, ApiGroup> i
|
|||
// 结果
|
||||
List<ApiGroupTreeWrapper> allApiGroupTreeWrapperList = new ArrayList<>();
|
||||
|
||||
// 查询所有资源信息
|
||||
Map<String, SysResource> stringSysResourceMap = new HashMap<>();
|
||||
LambdaQueryWrapper<SysResource> sysResourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysResourceLambdaQueryWrapper.eq(SysResource::getViewFlag, YesOrNotEnum.N.getCode());
|
||||
List<SysResource> sysResources = this.sysResourceService.list(sysResourceLambdaQueryWrapper);
|
||||
for (SysResource sysResource : sysResources) {
|
||||
stringSysResourceMap.put(sysResource.getResourceCode(), sysResource);
|
||||
}
|
||||
|
||||
// 查询所有分组
|
||||
LambdaQueryWrapper<ApiGroup> wrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotEmpty(apiGroupRequest.getGroupId())) {
|
||||
|
@ -200,6 +215,10 @@ public class ApiGroupServiceImpl extends ServiceImpl<ApiGroupMapper, ApiGroup> i
|
|||
item.setSort(apiResource.getResourceSort());
|
||||
item.setData(apiResource);
|
||||
item.setSlotsValue();
|
||||
SysResource sysResource = stringSysResourceMap.get(apiResource.getResourceCode());
|
||||
if (ObjectUtil.isNotEmpty(sysResource)) {
|
||||
item.setUrl(sysResource.getUrl());
|
||||
}
|
||||
allApiGroupTreeWrapperList.add(item);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,6 +189,8 @@ public class ApiResourceServiceImpl extends ServiceImpl<ApiResourceMapper, ApiRe
|
|||
|
||||
// 更新接口资源数据
|
||||
BeanUtil.copyProperties(apiResourceRequest, apiResource);
|
||||
|
||||
// 去掉排序字段
|
||||
this.updateById(apiResource);
|
||||
|
||||
// 删除所有的字段数据
|
||||
|
@ -310,10 +312,15 @@ public class ApiResourceServiceImpl extends ServiceImpl<ApiResourceMapper, ApiRe
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ApiResource reset(ApiResourceRequest apiResourceRequest) {
|
||||
|
||||
ApiResource oldApiResource = this.getById(apiResourceRequest.getApiResourceId());
|
||||
|
||||
// 删除原有的
|
||||
this.del(apiResourceRequest);
|
||||
|
||||
|
||||
// 新增一个新的
|
||||
apiResourceRequest.setResourceSort(oldApiResource.getResourceSort());
|
||||
this.add(apiResourceRequest);
|
||||
|
||||
// 查询并返回结果
|
||||
|
|
|
@ -376,6 +376,7 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
|||
resourceTreeNode.setTitle(sysResource.getResourceName());
|
||||
resourceTreeNode.setId(sysResource.getResourceCode());
|
||||
resourceTreeNode.setParentId(sysResource.getModularCode());
|
||||
resourceTreeNode.setUrl(sysResource.getUrl());
|
||||
resourceTreeNode.setSpread(false);
|
||||
resourceTreeNode.setSlotsValue();
|
||||
resourceTreeNodes.add(resourceTreeNode);
|
||||
|
|
|
@ -25,12 +25,15 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.role.controller;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleResourceService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
@ -97,7 +100,7 @@ public class SysRoleController {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午10:50
|
||||
*/
|
||||
@GetResource(name = "角色查看", path = "/sysRole/detail")
|
||||
@GetResource(name = "角色查看", path = "/sysRole/detail", responseClass = SysRoleDTO.class)
|
||||
public ResponseData detail(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) {
|
||||
return new SuccessResponseData(sysRoleService.detail(sysRoleRequest));
|
||||
}
|
||||
|
@ -108,7 +111,7 @@ public class SysRoleController {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午10:19
|
||||
*/
|
||||
@GetResource(name = "查询角色", path = "/sysRole/page")
|
||||
@GetResource(name = "查询角色", path = "/sysRole/page", responseClass = SysRole.class)
|
||||
public ResponseData page(SysRoleRequest sysRoleRequest) {
|
||||
return new SuccessResponseData(sysRoleService.findPage(sysRoleRequest));
|
||||
}
|
||||
|
@ -155,7 +158,7 @@ public class SysRoleController {
|
|||
* @author majianguo
|
||||
* @date 2020/11/6 13:49
|
||||
*/
|
||||
@GetResource(name = "角色下拉", path = "/sysRole/dropDown")
|
||||
@GetResource(name = "角色下拉", path = "/sysRole/dropDown", responseClass = SimpleDict.class)
|
||||
public ResponseData dropDown() {
|
||||
return new SuccessResponseData(sysRoleService.dropDown());
|
||||
}
|
||||
|
@ -166,7 +169,7 @@ public class SysRoleController {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午10:58
|
||||
*/
|
||||
@GetResource(name = "角色拥有菜单", path = "/sysRole/getRoleMenus")
|
||||
@GetResource(name = "角色拥有菜单", path = "/sysRole/getRoleMenus", responseClass = Long.class)
|
||||
public ResponseData getRoleMenus(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) {
|
||||
Long roleId = sysRoleRequest.getRoleId();
|
||||
return new SuccessResponseData(sysRoleService.getMenuIdsByRoleIds(ListUtil.toList(roleId)));
|
||||
|
@ -178,7 +181,7 @@ public class SysRoleController {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午10:59
|
||||
*/
|
||||
@GetResource(name = "角色拥有数据", path = "/sysRole/getRoleDataScope")
|
||||
@GetResource(name = "角色拥有数据", path = "/sysRole/getRoleDataScope", responseClass = Long.class)
|
||||
public ResponseData getRoleDataScope(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) {
|
||||
return new SuccessResponseData(sysRoleService.getRoleDataScope(sysRoleRequest));
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.role.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
@ -46,60 +47,70 @@ public class SysRole extends BaseEntity {
|
|||
* 主键
|
||||
*/
|
||||
@TableId(value = "role_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("主键")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@TableField("role_name")
|
||||
@ChineseDescription("角色名称")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
@TableField("role_code")
|
||||
@ChineseDescription("角色编码")
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@TableField("role_sort")
|
||||
@ChineseDescription("排序")
|
||||
private BigDecimal roleSort;
|
||||
|
||||
/**
|
||||
* 数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,40-指定部门数据,50-全部数据
|
||||
*/
|
||||
@TableField("data_scope_type")
|
||||
@ChineseDescription("数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,40-指定部门数据,50-全部数据")
|
||||
private Integer dataScopeType;
|
||||
|
||||
/**
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField("status_flag")
|
||||
@ChineseDescription("状态:1-启用,2-禁用")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark", insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
|
||||
@ChineseDescription("备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 删除标记(Y-已删除,N-未删除)
|
||||
*/
|
||||
@TableField(value = "del_flag",fill = FieldFill.INSERT)
|
||||
@ChineseDescription("删除标记(Y-已删除,N-未删除)")
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 是否是系统角色:Y-是,N-否
|
||||
*/
|
||||
@TableField("role_system_flag")
|
||||
@ChineseDescription("是否是系统角色:Y-是,N-否")
|
||||
private String roleSystemFlag;
|
||||
|
||||
/**
|
||||
* 角色类型
|
||||
*/
|
||||
@TableField("role_type_code")
|
||||
@ChineseDescription("角色类型")
|
||||
private String roleTypeCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,12 +24,12 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.controller;
|
||||
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.security.api.CaptchaApi;
|
||||
import cn.stylefeng.roses.kernel.security.api.pojo.EasyCaptcha;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -47,7 +47,7 @@ public class KaptchaController {
|
|||
@Resource
|
||||
private CaptchaApi captchaApi;
|
||||
|
||||
@GetResource(name = "获取图形验证码", path = "/captcha", requiredPermission = false, requiredLogin = false)
|
||||
@GetResource(name = "获取图形验证码", path = "/captcha", requiredPermission = false, requiredLogin = false, responseClass = EasyCaptcha.class)
|
||||
public ResponseData captcha() {
|
||||
return new SuccessResponseData(captchaApi.captcha());
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class LoginController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/3/17 17:23
|
||||
*/
|
||||
@PostResource(name = "登陆", path = "/login", requiredLogin = false, requiredPermission = false)
|
||||
@PostResource(name = "登陆", path = "/login", requiredLogin = false, requiredPermission = false, responseClass = String.class)
|
||||
public ResponseData login(@RequestBody @Validated LoginRequest loginRequest) {
|
||||
loginRequest.setCreateCookie(true);
|
||||
LoginResponse loginResponse = authServiceApi.login(loginRequest);
|
||||
|
@ -78,7 +78,7 @@ public class LoginController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/3/17 17:23
|
||||
*/
|
||||
@PostResource(name = "登陆(分离版)", path = "/loginApi", requiredLogin = false, requiredPermission = false)
|
||||
@PostResource(name = "登陆(分离版)", path = "/loginApi", requiredLogin = false, requiredPermission = false, responseClass = LoginResponse.class)
|
||||
public ResponseData loginApi(@RequestBody @Validated LoginRequest loginRequest) {
|
||||
loginRequest.setCreateCookie(false);
|
||||
LoginResponse loginResponse = authServiceApi.login(loginRequest);
|
||||
|
@ -91,7 +91,7 @@ public class LoginController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/5/25 22:36
|
||||
*/
|
||||
@PostResource(name = "适用于单点登录", path = "/loginWithToken", requiredLogin = false, requiredPermission = false)
|
||||
@PostResource(name = "适用于单点登录", path = "/loginWithToken", requiredLogin = false, requiredPermission = false, responseClass = String.class)
|
||||
public ResponseData loginWithToken(@RequestBody @Validated LoginWithTokenRequest loginWithTokenRequest) {
|
||||
LoginResponse loginResponse = authServiceApi.LoginWithToken(loginWithTokenRequest);
|
||||
return new SuccessResponseData(loginResponse.getToken());
|
||||
|
@ -115,7 +115,7 @@ public class LoginController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/3/17 17:37
|
||||
*/
|
||||
@GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false)
|
||||
@GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false, responseClass = CurrentUserInfoResponse.class)
|
||||
public ResponseData getCurrentLoginUserInfo() {
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.OnlineUserDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.OnlineUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -60,7 +61,7 @@ public class OnlineUserController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/11 22:53
|
||||
*/
|
||||
@GetResource(name = "当前在线用户列表", path = "/sysUser/onlineUserList")
|
||||
@GetResource(name = "当前在线用户列表", path = "/sysUser/onlineUserList",responseClass = OnlineUserDTO.class)
|
||||
public ResponseData onlineUserList(OnlineUserRequest onlineUserRequest) {
|
||||
return new SuccessResponseData(sysUserService.onlineUserList(onlineUserRequest));
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.UserSelectTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.SysUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
|
@ -173,7 +175,7 @@ public class SysUserController {
|
|||
* @author luojie
|
||||
* @date 2020/11/6 13:50
|
||||
*/
|
||||
@GetResource(name = "系统用户_查看", path = "/sysUser/detail")
|
||||
@GetResource(name = "系统用户_查看", path = "/sysUser/detail", responseClass = SysUserDTO.class)
|
||||
public ResponseData detail(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) {
|
||||
return new SuccessResponseData(sysUserService.detail(sysUserRequest));
|
||||
}
|
||||
|
@ -184,7 +186,7 @@ public class SysUserController {
|
|||
* @author fengshuonan
|
||||
* @date 2021/1/1 19:01
|
||||
*/
|
||||
@GetResource(name = "获取当前登录用户的信息", path = "/sysUser/currentUserInfo", requiredPermission = false)
|
||||
@GetResource(name = "获取当前登录用户的信息", path = "/sysUser/currentUserInfo", requiredPermission = false,responseClass = SysUserDTO.class)
|
||||
public ResponseData currentUserInfo() {
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
|
||||
|
@ -199,7 +201,7 @@ public class SysUserController {
|
|||
* @author luojie
|
||||
* @date 2020/11/6 13:49
|
||||
*/
|
||||
@GetResource(name = "系统用户_查询", path = "/sysUser/page")
|
||||
@GetResource(name = "系统用户_查询", path = "/sysUser/page",responseClass = SysUserDTO.class)
|
||||
public ResponseData page(SysUserRequest sysUserRequest) {
|
||||
return new SuccessResponseData(sysUserService.findPage(sysUserRequest));
|
||||
}
|
||||
|
@ -221,7 +223,7 @@ public class SysUserController {
|
|||
* @author liuhanqing
|
||||
* @date 2021/1/15 8:28
|
||||
*/
|
||||
@GetResource(name = "获取用户选择树数据(用在系统通知,选择发送人的时候)", path = "/sysUser/getUserSelectTree")
|
||||
@GetResource(name = "获取用户选择树数据(用在系统通知,选择发送人的时候)", path = "/sysUser/getUserSelectTree",responseClass = UserSelectTreeNode.class)
|
||||
public ResponseData getUserTree() {
|
||||
return new SuccessResponseData(this.sysUserService.userSelectTree(new SysUserRequest()));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue