1.补全类中文注解

2.修改树编辑BUG
pull/19/MERGE
rays 2021-05-31 16:07:34 +08:00
parent a956a8d882
commit ead4ad12e9
61 changed files with 525 additions and 64 deletions

View File

@ -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>

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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;
/**
* tokentoken
*/
@ChineseDescription("用户的token当返回用户会话信息时候回带token")
private String token;
/**
* DictMap
*/
@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() {

View File

@ -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;
/**
* NotBlackNotNull
*/
@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;
}

View File

@ -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 {
* htmljson
*
*/
@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;
}

View File

@ -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>

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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/menuantd 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;
/**

View File

@ -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

View File

@ -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;
}

View File

@ -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,pidid)
*/
@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

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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;
}

View File

@ -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
/**
* idid0
*/
@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

View File

@ -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;
/**

View File

@ -52,6 +52,11 @@ public class ApiGroupTreeWrapper implements AbstractTreeNode<ApiGroupTreeWrapper
*/
private BigDecimal sort;
/**
* URL
*/
private String url;
/**
*
*/

View File

@ -83,7 +83,6 @@ public class ApiResourceRequest extends BaseRequest {
/**
*
*/
@NotNull(message = "接口自定义名称不能为空", groups = {edit.class})
@ChineseDescription("资源排序")
private java.math.BigDecimal resourceSort;

View File

@ -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() {

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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() {

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -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));
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
/**
* idid-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/menuantd 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

View File

@ -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;
}

View File

@ -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));
}

View File

@ -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;
/**

View File

@ -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);

View File

@ -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));
}

View File

@ -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;
/**
* idid0
*/
@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;
}

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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));
}

View File

@ -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);

View File

@ -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;
/**

View File

@ -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;
/**
* GETPOST
*/
@TableField("request_method")
@ChineseDescription("请求方式GETPOST")
private String requestMethod;
/**
* sys_resource
*/
@TableField("api_alias")
@ChineseDescription("接口自定义名称区别于sys_resource表的名称")
private String apiAlias;
/**
* ,sys_resourcecode
*/
@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;
}

View File

@ -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;
/**
* stringfile
*/
@TableField("field_type")
@ChineseDescription("字段类型")
private String fieldType;
/**
* Y-N-
*/
@TableField("field_required")
@ChineseDescription("是否必填")
private String fieldRequired;
/**
*
*/
@TableField("field_validation_msg")
@ChineseDescription("字段其他校验信息,后端校验注解内容")
private String fieldValidationMsg;
/**

View File

@ -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;
/**

View File

@ -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

View File

@ -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);
}
}

View File

@ -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);
// 查询并返回结果

View File

@ -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);

View File

@ -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));
}

View File

@ -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;
}

View File

@ -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());
}

View File

@ -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();

View File

@ -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));
}

View File

@ -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()));
}