refactor: springdoc 替换 springfox

This commit is contained in:
xingyu4j
2022-12-09 13:43:15 +08:00
parent 02174383a7
commit 9fc6e0f00b
469 changed files with 3317 additions and 3721 deletions

View File

@ -18,10 +18,10 @@ import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import cn.iocoder.yudao.module.system.service.social.SocialUserService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -38,7 +38,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.obtainAuthorization;
import static java.util.Collections.singleton;
@Api(tags = "管理后台 - 认证")
@Tag(name = "管理后台 - 认证")
@RestController
@RequestMapping("/system/auth")
@Validated
@ -60,7 +60,7 @@ public class AuthController {
@PostMapping("/login")
@PermitAll
@ApiOperation("使用账号密码登录")
@Operation(summary = "使用账号密码登录")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<AuthLoginRespVO> login(@RequestBody @Valid AuthLoginReqVO reqVO) {
return success(authService.login(reqVO));
@ -68,7 +68,7 @@ public class AuthController {
@PostMapping("/logout")
@PermitAll
@ApiOperation("登出系统")
@Operation(summary = "登出系统")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<Boolean> logout(HttpServletRequest request) {
String token = obtainAuthorization(request, securityProperties.getTokenHeader());
@ -80,15 +80,15 @@ public class AuthController {
@PostMapping("/refresh-token")
@PermitAll
@ApiOperation("刷新令牌")
@ApiImplicitParam(name = "refreshToken", value = "刷新令牌", required = true, dataTypeClass = String.class)
@Operation(summary = "刷新令牌")
@Parameter(name = "refreshToken", description = "刷新令牌", required = true)
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<AuthLoginRespVO> refreshToken(@RequestParam("refreshToken") String refreshToken) {
return success(authService.refreshToken(refreshToken));
}
@GetMapping("/get-permission-info")
@ApiOperation("获取登录用户的权限信息")
@Operation(summary = "获取登录用户的权限信息")
public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() {
// 获得用户信息
AdminUserDO user = userService.getUser(getLoginUserId());
@ -107,7 +107,7 @@ public class AuthController {
}
@GetMapping("/list-menus")
@ApiOperation("获得登录用户的菜单列表")
@Operation(summary = "获得登录用户的菜单列表")
public CommonResult<List<AuthMenuRespVO>> getMenus() {
// 获得角色列表
Set<Long> roleIds = permissionService.getUserRoleIdsFromCache(getLoginUserId(), singleton(CommonStatusEnum.ENABLE.getStatus()));
@ -123,7 +123,7 @@ public class AuthController {
@PostMapping("/sms-login")
@PermitAll
@ApiOperation("使用短信验证码登录")
@Operation(summary = "使用短信验证码登录")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<AuthLoginRespVO> smsLogin(@RequestBody @Valid AuthSmsLoginReqVO reqVO) {
return success(authService.smsLogin(reqVO));
@ -131,7 +131,7 @@ public class AuthController {
@PostMapping("/send-sms-code")
@PermitAll
@ApiOperation(value = "发送手机验证码")
@Operation(summary = "发送手机验证码")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<Boolean> sendLoginSmsCode(@RequestBody @Valid AuthSmsSendReqVO reqVO) {
authService.sendSmsCode(reqVO);
@ -142,10 +142,10 @@ public class AuthController {
@GetMapping("/social-auth-redirect")
@PermitAll
@ApiOperation("社交授权的跳转")
@ApiImplicitParams({
@ApiImplicitParam(name = "type", value = "社交类型", required = true, dataTypeClass = Integer.class),
@ApiImplicitParam(name = "redirectUri", value = "回调路径", dataTypeClass = String.class)
@Operation(summary = "社交授权的跳转")
@Parameters({
@Parameter(name = "type", description = "社交类型", required = true),
@Parameter(name = "redirectUri", description = "回调路径")
})
public CommonResult<String> socialLogin(@RequestParam("type") Integer type,
@RequestParam("redirectUri") String redirectUri) {
@ -154,7 +154,7 @@ public class AuthController {
@PostMapping("/social-login")
@PermitAll
@ApiOperation(value = "社交快捷登录,使用 code 授权码", notes = "适合未登录的用户,但是社交账号已绑定用户")
@Operation(summary = "社交快捷登录,使用 code 授权码", description = "适合未登录的用户,但是社交账号已绑定用户")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<AuthLoginRespVO> socialQuickLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) {
return success(authService.socialLogin(reqVO));

View File

@ -3,8 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.validation.InEnum;
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -15,42 +14,42 @@ import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
@ApiModel(value = "管理后台 - 账号密码登录 Request VO", description = "如果登录并绑定社交用户,需要传递 social 开头的参数")
@Schema(title = "管理后台 - 账号密码登录 Request VO", description = "如果登录并绑定社交用户,需要传递 social 开头的参数")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthLoginReqVO {
@ApiModelProperty(value = "账号", required = true, example = "yudaoyuanma")
@Schema(title = "账号", required = true, example = "yudaoyuanma")
@NotEmpty(message = "登录账号不能为空")
@Length(min = 4, max = 16, message = "账号长度为 4-16 位")
@Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母")
private String username;
@ApiModelProperty(value = "密码", required = true, example = "buzhidao")
@Schema(title = "密码", required = true, example = "buzhidao")
@NotEmpty(message = "密码不能为空")
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
private String password;
// ========== 图片验证码相关 ==========
@ApiModelProperty(value = "验证码", required = true,
@Schema(title = "验证码", required = true,
example = "PfcH6mgr8tpXuMWFjvW6YVaqrswIuwmWI5dsVZSg7sGpWtDCUbHuDEXl3cFB1+VvCC/rAkSwK8Fad52FSuncVg==",
notes = "验证码开启时,需要传递")
description = "验证码开启时,需要传递")
@NotEmpty(message = "验证码不能为空", groups = CodeEnableGroup.class)
private String captchaVerification;
// ========== 绑定社交登录时,需要传递如下参数 ==========
@ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
@Schema(title = "社交平台的类型", required = true, example = "10", description = "参见 SysUserSocialTypeEnum 枚举值")
@InEnum(SocialTypeEnum.class)
private Integer socialType;
@ApiModelProperty(value = "授权码", required = true, example = "1024")
@Schema(title = "授权码", required = true, example = "1024")
private String socialCode;
@ApiModelProperty(value = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
@Schema(title = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
private String socialState;
/**

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -9,23 +8,23 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 登录 Response VO")
@Schema(title = "管理后台 - 登录 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthLoginRespVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@Schema(title = "用户编号", required = true, example = "1024")
private Long userId;
@ApiModelProperty(value = "访问令牌", required = true, example = "happy")
@Schema(title = "访问令牌", required = true, example = "happy")
private String accessToken;
@ApiModelProperty(value = "刷新令牌", required = true, example = "nice")
@Schema(title = "刷新令牌", required = true, example = "nice")
private String refreshToken;
@ApiModelProperty(value = "过期时间", required = true)
@Schema(title = "过期时间", required = true)
private LocalDateTime expiresTime;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -9,35 +8,35 @@ import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel("管理后台 - 登录用户的菜单信息 Response VO")
@Schema(title = "管理后台 - 登录用户的菜单信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthMenuRespVO {
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
@Schema(title = "菜单名称", required = true, example = "芋道")
private Long id;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
@Schema(title = "父菜单 ID", required = true, example = "1024")
private Long parentId;
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
@Schema(title = "菜单名称", required = true, example = "芋道")
private String name;
@ApiModelProperty(value = "路由地址", example = "post", notes = "仅菜单类型为菜单或者目录时,才需要传")
@Schema(title = "路由地址", example = "post", description = "仅菜单类型为菜单或者目录时,才需要传")
private String path;
@ApiModelProperty(value = "组件路径", example = "system/post/index", notes = "仅菜单类型为菜单时,才需要传")
@Schema(title = "组件路径", example = "system/post/index", description = "仅菜单类型为菜单时,才需要传")
private String component;
@ApiModelProperty(value = "菜单图标", example = "/menu/list", notes = "仅菜单类型为菜单或者目录时,才需要传")
@Schema(title = "菜单图标", example = "/menu/list", description = "仅菜单类型为菜单或者目录时,才需要传")
private String icon;
@ApiModelProperty(value = "是否可见", required = true, example = "false")
@Schema(title = "是否可见", required = true, example = "false")
private Boolean visible;
@ApiModelProperty(value = "是否缓存", required = true, example = "false")
@Schema(title = "是否缓存", required = true, example = "false")
private Boolean keepAlive;
/**

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -9,36 +8,36 @@ import lombok.NoArgsConstructor;
import java.util.Set;
@ApiModel(value = "管理后台 - 登录用户的权限信息 Response VO", description = "额外包括用户信息和角色列表")
@Schema(title = "管理后台 - 登录用户的权限信息 Response VO", description = "额外包括用户信息和角色列表")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthPermissionInfoRespVO {
@ApiModelProperty(value = "用户信息", required = true)
@Schema(title = "用户信息", required = true)
private UserVO user;
@ApiModelProperty(value = "角色标识数组", required = true)
@Schema(title = "角色标识数组", required = true)
private Set<String> roles;
@ApiModelProperty(value = "操作权限数组", required = true)
@Schema(title = "操作权限数组", required = true)
private Set<String> permissions;
@ApiModel("用户信息 VO")
@Schema(title = "用户信息 VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class UserVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@Schema(title = "用户编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "用户昵称", required = true, example = "芋道源码")
@Schema(title = "用户昵称", required = true, example = "芋道源码")
private String nickname;
@ApiModelProperty(value = "用户头像", required = true, example = "http://www.iocoder.cn/xx.jpg")
@Schema(title = "用户头像", required = true, example = "http://www.iocoder.cn/xx.jpg")
private String avatar;
}

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import cn.iocoder.yudao.framework.common.validation.Mobile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -10,19 +9,19 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
@ApiModel("管理后台 - 短信验证码的登录 Request VO")
@Schema(title = "管理后台 - 短信验证码的登录 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthSmsLoginReqVO {
@ApiModelProperty(value = "手机号", required = true, example = "yudaoyuanma")
@Schema(title = "手机号", required = true, example = "yudaoyuanma")
@NotEmpty(message = "手机号不能为空")
@Mobile
private String mobile;
@ApiModelProperty(value = "短信验证码", required = true, example = "1024")
@Schema(title = "短信验证码", required = true, example = "1024")
@NotEmpty(message = "验证码不能为空")
private String code;

View File

@ -3,8 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import cn.iocoder.yudao.framework.common.validation.InEnum;
import cn.iocoder.yudao.framework.common.validation.Mobile;
import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -13,19 +12,19 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 发送手机验证码 Request VO")
@Schema(title = "管理后台 - 发送手机验证码 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthSmsSendReqVO {
@ApiModelProperty(value = "手机号", required = true, example = "yudaoyuanma")
@Schema(title = "手机号", required = true, example = "yudaoyuanma")
@NotEmpty(message = "手机号不能为空")
@Mobile
private String mobile;
@ApiModelProperty(value = "短信场景", required = true, example = "1")
@Schema(title = "短信场景", required = true, example = "1")
@NotNull(message = "发送场景不能为空")
@InEnum(SmsSceneEnum.class)
private Integer scene;

View File

@ -2,8 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import cn.iocoder.yudao.framework.common.validation.InEnum;
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -12,23 +11,23 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 社交绑定登录 Request VO使用 code 授权码 + 账号密码")
@Schema(title = "管理后台 - 社交绑定登录 Request VO使用 code 授权码 + 账号密码")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthSocialLoginReqVO {
@ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值")
@Schema(title = "社交平台的类型", required = true, example = "10", description = "参见 UserSocialTypeEnum 枚举值")
@InEnum(SocialTypeEnum.class)
@NotNull(message = "社交平台的类型不能为空")
private Integer type;
@ApiModelProperty(value = "授权码", required = true, example = "1024")
@Schema(title = "授权码", required = true, example = "1024")
@NotEmpty(message = "授权码不能为空")
private String code;
@ApiModelProperty(value = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
@Schema(title = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
@NotEmpty(message = "state 不能为空")
private String state;

View File

@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.system.controller.admin.captcha;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import com.anji.captcha.model.common.ResponseModel;
import com.anji.captcha.model.vo.CaptchaVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -21,13 +21,13 @@ import javax.servlet.http.HttpServletRequest;
*
* @author 芋道源码
*/
@Api(tags = "管理后台 - 验证码")
@Tag(name = "管理后台 - 验证码")
@RestController("adminCaptchaController")
@RequestMapping("/system/captcha")
public class CaptchaController extends com.anji.captcha.controller.CaptchaController {
@PostMapping({"/get"})
@ApiOperation("获得验证码")
@Operation(summary = "获得验证码")
@PermitAll
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
@Override
@ -36,7 +36,7 @@ public class CaptchaController extends com.anji.captcha.controller.CaptchaContro
}
@PostMapping("/check")
@ApiOperation("校验验证码")
@Operation(summary = "校验验证码")
@PermitAll
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
@Override

View File

@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.*;
import cn.iocoder.yudao.module.system.convert.dept.DeptConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.yudao.module.system.service.dept.DeptService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -20,7 +20,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Api(tags = "管理后台 - 部门")
@Tag(name = "管理后台 - 部门")
@RestController
@RequestMapping("/system/dept")
@Validated
@ -30,7 +30,7 @@ public class DeptController {
private DeptService deptService;
@PostMapping("create")
@ApiOperation("创建部门")
@Operation(summary = "创建部门")
@PreAuthorize("@ss.hasPermission('system:dept:create')")
public CommonResult<Long> createDept(@Valid @RequestBody DeptCreateReqVO reqVO) {
Long deptId = deptService.createDept(reqVO);
@ -38,7 +38,7 @@ public class DeptController {
}
@PutMapping("update")
@ApiOperation("更新部门")
@Operation(summary = "更新部门")
@PreAuthorize("@ss.hasPermission('system:dept:update')")
public CommonResult<Boolean> updateDept(@Valid @RequestBody DeptUpdateReqVO reqVO) {
deptService.updateDept(reqVO);
@ -46,8 +46,8 @@ public class DeptController {
}
@DeleteMapping("delete")
@ApiOperation("删除部门")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除部门")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:dept:delete')")
public CommonResult<Boolean> deleteDept(@RequestParam("id") Long id) {
deptService.deleteDept(id);
@ -55,7 +55,7 @@ public class DeptController {
}
@GetMapping("/list")
@ApiOperation("获取部门列表")
@Operation(summary = "获取部门列表")
@PreAuthorize("@ss.hasPermission('system:dept:query')")
public CommonResult<List<DeptRespVO>> listDepts(DeptListReqVO reqVO) {
List<DeptDO> list = deptService.getSimpleDepts(reqVO);
@ -64,7 +64,7 @@ public class DeptController {
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获取部门精简信息列表", notes = "只包含被开启的部门,主要用于前端的下拉选项")
@Operation(summary = "获取部门精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项")
public CommonResult<List<DeptSimpleRespVO>> getSimpleDepts() {
// 获得部门列表,只要开启状态的
DeptListReqVO reqVO = new DeptListReqVO();
@ -76,8 +76,8 @@ public class DeptController {
}
@GetMapping("/get")
@ApiOperation("获得部门信息")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "获得部门信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:dept:query')")
public CommonResult<DeptRespVO> getDept(@RequestParam("id") Long id) {
return success(DeptConvert.INSTANCE.convert(deptService.getDept(id)));

View File

@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.*;
import cn.iocoder.yudao.module.system.convert.dept.PostConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
import cn.iocoder.yudao.module.system.service.dept.PostService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -27,7 +27,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 岗位")
@Tag(name = "管理后台 - 岗位")
@RestController
@RequestMapping("/system/post")
@Validated
@ -37,7 +37,7 @@ public class PostController {
private PostService postService;
@PostMapping("/create")
@ApiOperation("创建岗位")
@Operation(summary = "创建岗位")
@PreAuthorize("@ss.hasPermission('system:post:create')")
public CommonResult<Long> createPost(@Valid @RequestBody PostCreateReqVO reqVO) {
Long postId = postService.createPost(reqVO);
@ -45,7 +45,7 @@ public class PostController {
}
@PutMapping("/update")
@ApiOperation("修改岗位")
@Operation(summary = "修改岗位")
@PreAuthorize("@ss.hasPermission('system:post:update')")
public CommonResult<Boolean> updatePost(@Valid @RequestBody PostUpdateReqVO reqVO) {
postService.updatePost(reqVO);
@ -53,7 +53,7 @@ public class PostController {
}
@DeleteMapping("/delete")
@ApiOperation("删除岗位")
@Operation(summary = "删除岗位")
@PreAuthorize("@ss.hasPermission('system:post:delete')")
public CommonResult<Boolean> deletePost(@RequestParam("id") Long id) {
postService.deletePost(id);
@ -61,15 +61,15 @@ public class PostController {
}
@GetMapping(value = "/get")
@ApiOperation("获得岗位信息")
@ApiImplicitParam(name = "id", value = "岗位编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "获得岗位信息")
@Parameter(name = "id", description = "岗位编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:post:query')")
public CommonResult<PostRespVO> getPost(@RequestParam("id") Long id) {
return success(PostConvert.INSTANCE.convert(postService.getPost(id)));
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获取岗位精简信息列表", notes = "只包含被开启的岗位,主要用于前端的下拉选项")
@Operation(summary = "获取岗位精简信息列表", description = "只包含被开启的岗位,主要用于前端的下拉选项")
public CommonResult<List<PostSimpleRespVO>> getSimplePosts() {
// 获得岗位列表,只要开启状态的
List<PostDO> list = postService.getPosts(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
@ -79,14 +79,14 @@ public class PostController {
}
@GetMapping("/page")
@ApiOperation("获得岗位分页列表")
@Operation(summary = "获得岗位分页列表")
@PreAuthorize("@ss.hasPermission('system:post:query')")
public CommonResult<PageResult<PostRespVO>> getPostPage(@Validated PostPageReqVO reqVO) {
return success(PostConvert.INSTANCE.convertPage(postService.getPostPage(reqVO)));
}
@GetMapping("/export")
@ApiOperation("岗位管理")
@Operation(summary = "岗位管理")
@PreAuthorize("@ss.hasPermission('system:post:export')")
@OperateLog(type = EXPORT)
public void export(HttpServletResponse response, @Validated PostExportReqVO reqVO) throws IOException {

View File

@ -1,6 +1,5 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Email;
@ -15,31 +14,31 @@ import javax.validation.constraints.Size;
@Data
public class DeptBaseVO {
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
@Schema(title = "菜单名称", required = true, example = "芋道")
@NotBlank(message = "部门名称不能为空")
@Size(max = 30, message = "部门名称长度不能超过30个字符")
private String name;
@ApiModelProperty(value = "父菜单 ID", example = "1024")
@Schema(title = "父菜单 ID", example = "1024")
private Long parentId;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
@Schema(title = "显示顺序不能为空", required = true, example = "1024")
@NotNull(message = "显示顺序不能为空")
private Integer sort;
@ApiModelProperty(value = "负责人的用户编号", example = "2048")
@Schema(title = "负责人的用户编号", example = "2048")
private Long leaderUserId;
@ApiModelProperty(value = "联系电话", example = "15601691000")
@Schema(title = "联系电话", example = "15601691000")
@Size(max = 11, message = "联系电话长度不能超过11个字符")
private String phone;
@ApiModelProperty(value = "邮箱", example = "yudao@iocoder.cn")
@Schema(title = "邮箱", example = "yudao@iocoder.cn")
@Email(message = "邮箱格式不正确")
@Size(max = 50, message = "邮箱长度不能超过50个字符")
private String email;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
@Schema(title = "状态", required = true, example = "1", description = "见 CommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status;

View File

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ApiModel("管理后台 - 部门创建 Request VO")
@Schema(title = "管理后台 - 部门创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)

View File

@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ApiModel("管理后台 - 部门列表 Request VO")
@Schema(title = "管理后台 - 部门列表 Request VO")
@Data
public class DeptListReqVO {
@ApiModelProperty(value = "部门名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "部门名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,24 +1,23 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 部门信息 Response VO")
@Schema(title = "管理后台 - 部门信息 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptRespVO extends DeptBaseVO {
@ApiModelProperty(value = "部门编号", required = true, example = "1024")
@Schema(title = "部门编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,24 +1,23 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("管理后台 - 部门精简信息 Response VO")
@Schema(title = "管理后台 - 部门精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DeptSimpleRespVO {
@ApiModelProperty(value = "部门编号", required = true, example = "1024")
@Schema(title = "部门编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "部门名称", required = true, example = "芋道")
@Schema(title = "部门名称", required = true, example = "芋道")
private String name;
@ApiModelProperty(value = "父部门 ID", required = true, example = "1024")
@Schema(title = "父部门 ID", required = true, example = "1024")
private Long parentId;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 部门更新 Request VO")
@Schema(title = "管理后台 - 部门更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptUpdateReqVO extends DeptBaseVO {
@ApiModelProperty(value = "部门编号", required = true, example = "1024")
@Schema(title = "部门编号", required = true, example = "1024")
@NotNull(message = "部门编号不能为空")
private Long id;

View File

@ -1,6 +1,5 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,24 +13,24 @@ import javax.validation.constraints.Size;
@Data
public class PostBaseVO {
@ApiModelProperty(value = "岗位名称", required = true, example = "小博主")
@Schema(title = "岗位名称", required = true, example = "小博主")
@NotBlank(message = "岗位名称不能为空")
@Size(max = 50, message = "岗位名称长度不能超过50个字符")
private String name;
@ApiModelProperty(value = "岗位编码", required = true, example = "yudao")
@Schema(title = "岗位编码", required = true, example = "yudao")
@NotBlank(message = "岗位编码不能为空")
@Size(max = 64, message = "岗位编码长度不能超过64个字符")
private String code;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
@Schema(title = "显示顺序不能为空", required = true, example = "1024")
@NotNull(message = "显示顺序不能为空")
private Integer sort;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "备注", example = "快乐的备注")
@Schema(title = "备注", example = "快乐的备注")
private String remark;
}

View File

@ -1,10 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 岗位创建 Request VO")
@Schema(title = "管理后台 - 岗位创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class PostCreateReqVO extends PostBaseVO {

View File

@ -1,20 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ApiModel(value = "管理后台 - 岗位导出 Request VO", description = "参数和 PostExcelVO 是一致的")
@Schema(title = "管理后台 - 岗位导出 Request VO", description = "参数和 PostExcelVO 是一致的")
@Data
public class PostExportReqVO {
@ApiModelProperty(value = "岗位编码", example = "yudao", notes = "模糊匹配")
@Schema(title = "岗位编码", example = "yudao", description = "模糊匹配")
private String code;
@ApiModelProperty(value = "岗位名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "岗位名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,19 +1,18 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 岗位列表 Request VO")
@Schema(title = "管理后台 - 岗位列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class PostListReqVO extends PostBaseVO {
@ApiModelProperty(value = "岗位名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "岗位名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,23 +1,22 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 岗位分页 Request VO")
@Schema(title = "管理后台 - 岗位分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class PostPageReqVO extends PageParam {
@ApiModelProperty(value = "岗位编码", example = "yudao", notes = "模糊匹配")
@Schema(title = "岗位编码", example = "yudao", description = "模糊匹配")
private String code;
@ApiModelProperty(value = "岗位名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "岗位名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,21 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 岗位信息 Response VO")
@Schema(title = "管理后台 - 岗位信息 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class PostRespVO extends PostBaseVO {
@ApiModelProperty(value = "岗位序号", required = true, example = "1024")
@Schema(title = "岗位序号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,21 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("管理后台 - 岗位精简信息 Response VO")
@Schema(title = "管理后台 - 岗位精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PostSimpleRespVO {
@ApiModelProperty(value = "岗位编号", required = true, example = "1024")
@Schema(title = "岗位编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "岗位名称", required = true, example = "芋道")
@Schema(title = "岗位名称", required = true, example = "芋道")
private String name;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 岗位更新 Request VO")
@Schema(title = "管理后台 - 岗位更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class PostUpdateReqVO extends PostBaseVO {
@ApiModelProperty(value = "岗位编号", required = true, example = "1024")
@Schema(title = "岗位编号", required = true, example = "1024")
@NotNull(message = "岗位编号不能为空")
private Long id;

View File

@ -8,9 +8,9 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.*;
import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert;
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -24,7 +24,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 字典数据")
@Tag(name = "管理后台 - 字典数据")
@RestController
@RequestMapping("/system/dict-data")
@Validated
@ -34,7 +34,7 @@ public class DictDataController {
private DictDataService dictDataService;
@PostMapping("/create")
@ApiOperation("新增字典数据")
@Operation(summary = "新增字典数据")
@PreAuthorize("@ss.hasPermission('system:dict:create')")
public CommonResult<Long> createDictData(@Valid @RequestBody DictDataCreateReqVO reqVO) {
Long dictDataId = dictDataService.createDictData(reqVO);
@ -42,7 +42,7 @@ public class DictDataController {
}
@PutMapping("update")
@ApiOperation("修改字典数据")
@Operation(summary = "修改字典数据")
@PreAuthorize("@ss.hasPermission('system:dict:update')")
public CommonResult<Boolean> updateDictData(@Valid @RequestBody DictDataUpdateReqVO reqVO) {
dictDataService.updateDictData(reqVO);
@ -50,8 +50,8 @@ public class DictDataController {
}
@DeleteMapping("/delete")
@ApiOperation("删除字典数据")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除字典数据")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:dict:delete')")
public CommonResult<Boolean> deleteDictData(Long id) {
dictDataService.deleteDictData(id);
@ -59,7 +59,7 @@ public class DictDataController {
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地")
@Operation(summary = "获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地")
// 无需添加权限认证,因为前端全局都需要
public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDatas() {
List<DictDataDO> list = dictDataService.getDictDatas();
@ -67,22 +67,22 @@ public class DictDataController {
}
@GetMapping("/page")
@ApiOperation("/获得字典类型的分页列表")
@Operation(summary = "/获得字典类型的分页列表")
@PreAuthorize("@ss.hasPermission('system:dict:query')")
public CommonResult<PageResult<DictDataRespVO>> getDictTypePage(@Valid DictDataPageReqVO reqVO) {
return success(DictDataConvert.INSTANCE.convertPage(dictDataService.getDictDataPage(reqVO)));
}
@GetMapping(value = "/get")
@ApiOperation("/查询字典数据详细")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "/查询字典数据详细")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:dict:query')")
public CommonResult<DictDataRespVO> getDictData(@RequestParam("id") Long id) {
return success(DictDataConvert.INSTANCE.convert(dictDataService.getDictData(id)));
}
@GetMapping("/export")
@ApiOperation("导出字典数据")
@Operation(summary = "导出字典数据")
@PreAuthorize("@ss.hasPermission('system:dict:export')")
@OperateLog(type = EXPORT)
public void export(HttpServletResponse response, @Valid DictDataExportReqVO reqVO) throws IOException {

View File

@ -8,9 +8,9 @@ import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.*;
import cn.iocoder.yudao.module.system.convert.dict.DictTypeConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
import cn.iocoder.yudao.module.system.service.dict.DictTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -24,7 +24,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 字典类型")
@Tag(name = "管理后台 - 字典类型")
@RestController
@RequestMapping("/system/dict-type")
@Validated
@ -34,7 +34,7 @@ public class DictTypeController {
private DictTypeService dictTypeService;
@PostMapping("/create")
@ApiOperation("创建字典类型")
@Operation(summary = "创建字典类型")
@PreAuthorize("@ss.hasPermission('system:dict:create')")
public CommonResult<Long> createDictType(@Valid @RequestBody DictTypeCreateReqVO reqVO) {
Long dictTypeId = dictTypeService.createDictType(reqVO);
@ -42,7 +42,7 @@ public class DictTypeController {
}
@PutMapping("/update")
@ApiOperation("修改字典类型")
@Operation(summary = "修改字典类型")
@PreAuthorize("@ss.hasPermission('system:dict:update')")
public CommonResult<Boolean> updateDictType(@Valid @RequestBody DictTypeUpdateReqVO reqVO) {
dictTypeService.updateDictType(reqVO);
@ -50,23 +50,23 @@ public class DictTypeController {
}
@DeleteMapping("/delete")
@ApiOperation("删除字典类型")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除字典类型")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:dict:delete')")
public CommonResult<Boolean> deleteDictType(Long id) {
dictTypeService.deleteDictType(id);
return success(true);
}
@ApiOperation("/获得字典类型的分页列表")
@Operation(summary = "/获得字典类型的分页列表")
@GetMapping("/page")
@PreAuthorize("@ss.hasPermission('system:dict:query')")
public CommonResult<PageResult<DictTypeRespVO>> pageDictTypes(@Valid DictTypePageReqVO reqVO) {
return success(DictTypeConvert.INSTANCE.convertPage(dictTypeService.getDictTypePage(reqVO)));
}
@ApiOperation("/查询字典类型详细")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "/查询字典类型详细")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@GetMapping(value = "/get")
@PreAuthorize("@ss.hasPermission('system:dict:query')")
public CommonResult<DictTypeRespVO> getDictType(@RequestParam("id") Long id) {
@ -74,14 +74,14 @@ public class DictTypeController {
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获得全部字典类型列表", notes = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项")
@Operation(summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项")
// 无需添加权限认证,因为前端全局都需要
public CommonResult<List<DictTypeSimpleRespVO>> listSimpleDictTypes() {
List<DictTypeDO> list = dictTypeService.getDictTypeList();
return success(DictTypeConvert.INSTANCE.convertList(list));
}
@ApiOperation("导出数据类型")
@Operation(summary = "导出数据类型")
@GetMapping("/export")
@PreAuthorize("@ss.hasPermission('system:dict:query')")
@OperateLog(type = EXPORT)

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,36 +14,36 @@ import javax.validation.constraints.Size;
@Data
public class DictDataBaseVO {
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
@Schema(title = "显示顺序不能为空", required = true, example = "1024")
@NotNull(message = "显示顺序不能为空")
private Integer sort;
@ApiModelProperty(value = "字典标签", required = true, example = "芋道")
@Schema(title = "字典标签", required = true, example = "芋道")
@NotBlank(message = "字典标签不能为空")
@Size(max = 100, message = "字典标签长度不能超过100个字符")
private String label;
@ApiModelProperty(value = "字典值", required = true, example = "iocoder")
@Schema(title = "字典值", required = true, example = "iocoder")
@NotBlank(message = "字典键值不能为空")
@Size(max = 100, message = "字典键值长度不能超过100个字符")
private String value;
@ApiModelProperty(value = "字典类型", required = true, example = "sys_common_sex")
@Schema(title = "字典类型", required = true, example = "sys_common_sex")
@NotBlank(message = "字典类型不能为空")
@Size(max = 100, message = "字典类型长度不能超过100个字符")
private String dictType;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
@Schema(title = "状态", required = true, example = "1", description = "见 CommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status;
@ApiModelProperty(value = "颜色类型", example = "default", notes = "default、primary、success、info、warning、danger")
@Schema(title = "颜色类型", example = "default", description = "default、primary、success、info、warning、danger")
private String colorType;
@ApiModelProperty(value = "css 样式", example = "btn-visible")
@Schema(title = "css 样式", example = "btn-visible")
private String cssClass;
@ApiModelProperty(value = "备注", example = "我是一个角色")
@Schema(title = "备注", example = "我是一个角色")
private String remark;
}

View File

@ -1,10 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 字典数据创建 Request VO")
@Schema(title = "管理后台 - 字典数据创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictDataCreateReqVO extends DictDataBaseVO {

View File

@ -1,24 +1,23 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Size;
@ApiModel("管理后台 - 字典类型导出 Request VO")
@Schema(title = "管理后台 - 字典类型导出 Request VO")
@Data
public class DictDataExportReqVO {
@ApiModelProperty(value = "字典标签", example = "芋道")
@Schema(title = "字典标签", example = "芋道")
@Size(max = 100, message = "字典标签长度不能超过100个字符")
private String label;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Schema(title = "字典类型", example = "sys_common_sex", description = "模糊匹配")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String dictType;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,27 +1,26 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Size;
@ApiModel("管理后台 - 字典类型分页列表 Request VO")
@Schema(title = "管理后台 - 字典类型分页列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictDataPageReqVO extends PageParam {
@ApiModelProperty(value = "字典标签", example = "芋道")
@Schema(title = "字典标签", example = "芋道")
@Size(max = 100, message = "字典标签长度不能超过100个字符")
private String label;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Schema(title = "字典类型", example = "sys_common_sex", description = "模糊匹配")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String dictType;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -9,17 +8,17 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 字典数据信息 Response VO")
@Schema(title = "管理后台 - 字典数据信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class DictDataRespVO extends DictDataBaseVO {
@ApiModelProperty(value = "字典数据编号", required = true, example = "1024")
@Schema(title = "字典数据编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,25 +1,24 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ApiModel("管理后台 - 数据字典精简 Response VO")
@Schema(title = "管理后台 - 数据字典精简 Response VO")
@Data
public class DictDataSimpleRespVO {
@ApiModelProperty(value = "字典类型", required = true, example = "gender")
@Schema(title = "字典类型", required = true, example = "gender")
private String dictType;
@ApiModelProperty(value = "字典键值", required = true, example = "1")
@Schema(title = "字典键值", required = true, example = "1")
private String value;
@ApiModelProperty(value = "字典标签", required = true, example = "")
@Schema(title = "字典标签", required = true, example = "")
private String label;
@ApiModelProperty(value = "颜色类型", example = "default", notes = "default、primary、success、info、warning、danger")
@Schema(title = "颜色类型", example = "default", description = "default、primary、success、info、warning、danger")
private String colorType;
@ApiModelProperty(value = "css 样式", example = "btn-visible")
@Schema(title = "css 样式", example = "btn-visible")
private String cssClass;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 字典数据更新 Request VO")
@Schema(title = "管理后台 - 字典数据更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictDataUpdateReqVO extends DictDataBaseVO {
@ApiModelProperty(value = "字典数据编号", required = true, example = "1024")
@Schema(title = "字典数据编号", required = true, example = "1024")
@NotNull(message = "字典数据编号不能为空")
private Long id;

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,16 +14,16 @@ import javax.validation.constraints.Size;
@Data
public class DictTypeBaseVO {
@ApiModelProperty(value = "字典名称", required = true, example = "性别")
@Schema(title = "字典名称", required = true, example = "性别")
@NotBlank(message = "字典名称不能为空")
@Size(max = 100, message = "字典类型名称长度不能超过100个字符")
private String name;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
@NotNull(message = "状态不能为空")
private Integer status;
@ApiModelProperty(value = "备注", example = "快乐的备注")
@Schema(title = "备注", example = "快乐的备注")
private String remark;
}

View File

@ -1,19 +1,18 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@ApiModel("管理后台 - 字典类型创建 Request VO")
@Schema(title = "管理后台 - 字典类型创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictTypeCreateReqVO extends DictTypeBaseVO {
@ApiModelProperty(value = "字典类型", required = true, example = "sys_common_sex")
@Schema(title = "字典类型", required = true, example = "sys_common_sex")
@NotNull(message = "字典类型不能为空")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String type;

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -9,21 +8,21 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 字典类型分页列表 Request VO")
@Schema(title = "管理后台 - 字典类型分页列表 Request VO")
@Data
public class DictTypeExportReqVO {
@ApiModelProperty(value = "字典类型名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "字典类型名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Schema(title = "字典类型", example = "sys_common_sex", description = "模糊匹配")
private String type;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
@Schema(title = "创建时间")
private LocalDateTime[] createTime;
}

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
@ -12,23 +11,23 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 字典类型分页列表 Request VO")
@Schema(title = "管理后台 - 字典类型分页列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictTypePageReqVO extends PageParam {
@ApiModelProperty(value = "字典类型名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "字典类型名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Schema(title = "字典类型", example = "sys_common_sex", description = "模糊匹配")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String type;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
@Schema(title = "创建时间")
private LocalDateTime[] createTime;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -9,20 +8,20 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 字典类型信息 Response VO")
@Schema(title = "管理后台 - 字典类型信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class DictTypeRespVO extends DictTypeBaseVO {
@ApiModelProperty(value = "字典类型编号", required = true, example = "1024")
@Schema(title = "字典类型编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "字典类型", required = true, example = "sys_common_sex")
@Schema(title = "字典类型", required = true, example = "sys_common_sex")
private String type;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,24 +1,23 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("管理后台 - 字典类型精简信息 Response VO")
@Schema(title = "管理后台 - 字典类型精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DictTypeSimpleRespVO {
@ApiModelProperty(value = "字典类型编号", required = true, example = "1024")
@Schema(title = "字典类型编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "字典类型名称", required = true, example = "芋道")
@Schema(title = "字典类型名称", required = true, example = "芋道")
private String name;
@ApiModelProperty(value = "字典类型", required = true, example = "sys_common_sex")
@Schema(title = "字典类型", required = true, example = "sys_common_sex")
private String type;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 字典类型更新 Request VO")
@Schema(title = "管理后台 - 字典类型更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DictTypeUpdateReqVO extends DictTypeBaseVO {
@ApiModelProperty(value = "字典类型编号", required = true, example = "1024")
@Schema(title = "字典类型编号", required = true, example = "1024")
@NotNull(message = "字典类型编号不能为空")
private Long id;

View File

@ -8,9 +8,9 @@ import cn.iocoder.yudao.module.system.convert.errorcode.ErrorCodeConvert;
import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO;
import cn.iocoder.yudao.module.system.service.errorcode.ErrorCodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -24,7 +24,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 错误码")
@Tag(name = "管理后台 - 错误码")
@RestController
@RequestMapping("/system/error-code")
@Validated
@ -34,14 +34,14 @@ public class ErrorCodeController {
private ErrorCodeService errorCodeService;
@PostMapping("/create")
@ApiOperation("创建错误码")
@Operation(summary = "创建错误码")
@PreAuthorize("@ss.hasPermission('system:error-code:create')")
public CommonResult<Long> createErrorCode(@Valid @RequestBody ErrorCodeCreateReqVO createReqVO) {
return success(errorCodeService.createErrorCode(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新错误码")
@Operation(summary = "更新错误码")
@PreAuthorize("@ss.hasPermission('system:error-code:update')")
public CommonResult<Boolean> updateErrorCode(@Valid @RequestBody ErrorCodeUpdateReqVO updateReqVO) {
errorCodeService.updateErrorCode(updateReqVO);
@ -49,8 +49,8 @@ public class ErrorCodeController {
}
@DeleteMapping("/delete")
@ApiOperation("删除错误码")
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
@Operation(summary = "删除错误码")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:error-code:delete')")
public CommonResult<Boolean> deleteErrorCode(@RequestParam("id") Long id) {
errorCodeService.deleteErrorCode(id);
@ -58,8 +58,8 @@ public class ErrorCodeController {
}
@GetMapping("/get")
@ApiOperation("获得错误码")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "获得错误码")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:error-code:query')")
public CommonResult<ErrorCodeRespVO> getErrorCode(@RequestParam("id") Long id) {
ErrorCodeDO errorCode = errorCodeService.getErrorCode(id);
@ -67,7 +67,7 @@ public class ErrorCodeController {
}
@GetMapping("/page")
@ApiOperation("获得错误码分页")
@Operation(summary = "获得错误码分页")
@PreAuthorize("@ss.hasPermission('system:error-code:query')")
public CommonResult<PageResult<ErrorCodeRespVO>> getErrorCodePage(@Valid ErrorCodePageReqVO pageVO) {
PageResult<ErrorCodeDO> pageResult = errorCodeService.getErrorCodePage(pageVO);
@ -75,7 +75,7 @@ public class ErrorCodeController {
}
@GetMapping("/export-excel")
@ApiOperation("导出错误码 Excel")
@Operation(summary = "导出错误码 Excel")
@PreAuthorize("@ss.hasPermission('system:error-code:export')")
@OperateLog(type = EXPORT)
public void exportErrorCodeExcel(@Valid ErrorCodeExportReqVO exportReqVO,

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ -12,19 +12,19 @@ import javax.validation.constraints.NotNull;
@Data
public class ErrorCodeBaseVO {
@ApiModelProperty(value = "应用名", required = true, example = "dashboard")
@Schema(title = "应用名", required = true, example = "dashboard")
@NotNull(message = "应用名不能为空")
private String applicationName;
@ApiModelProperty(value = "错误码编码", required = true, example = "1234")
@Schema(title = "错误码编码", required = true, example = "1234")
@NotNull(message = "错误码编码不能为空")
private Integer code;
@ApiModelProperty(value = "错误码错误提示", required = true, example = "帅气")
@Schema(title = "错误码错误提示", required = true, example = "帅气")
@NotNull(message = "错误码错误提示不能为空")
private String message;
@ApiModelProperty(value = "备注", example = "哈哈哈")
@Schema(title = "备注", example = "哈哈哈")
private String memo;
}

View File

@ -1,11 +1,11 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ApiModel("管理后台 - 错误码创建 Request VO")
@Schema(title = "管理后台 - 错误码创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -9,24 +8,24 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel(value = "管理后台 - 错误码 Excel 导出 Request VO", description = "参数和 InfErrorCodePageReqVO 是一致的")
@Schema(title = "管理后台 - 错误码 Excel 导出 Request VO", description = "参数和 InfErrorCodePageReqVO 是一致的")
@Data
public class ErrorCodeExportReqVO {
@ApiModelProperty(value = "错误码类型", example = "1")
@Schema(title = "错误码类型", example = "1")
private Integer type;
@ApiModelProperty(value = "应用名", example = "dashboard")
@Schema(title = "应用名", example = "dashboard")
private String applicationName;
@ApiModelProperty(value = "错误码编码", example = "1234")
@Schema(title = "错误码编码", example = "1234")
private Integer code;
@ApiModelProperty(value = "错误码错误提示", example = "帅气")
@Schema(title = "错误码错误提示", example = "帅气")
private String message;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
@Schema(title = "创建时间")
private LocalDateTime[] createTime;
}

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ -12,26 +11,26 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 错误码分页 Request VO")
@Schema(title = "管理后台 - 错误码分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ErrorCodePageReqVO extends PageParam {
@ApiModelProperty(value = "错误码类型", example = "1", notes = "参见 ErrorCodeTypeEnum 枚举类")
@Schema(title = "错误码类型", example = "1", description = "参见 ErrorCodeTypeEnum 枚举类")
private Integer type;
@ApiModelProperty(value = "应用名", example = "dashboard")
@Schema(title = "应用名", example = "dashboard")
private String applicationName;
@ApiModelProperty(value = "错误码编码", example = "1234")
@Schema(title = "错误码编码", example = "1234")
private Integer code;
@ApiModelProperty(value = "错误码错误提示", example = "帅气")
@Schema(title = "错误码错误提示", example = "帅气")
private String message;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
@Schema(title = "创建时间")
private LocalDateTime[] createTime;
}

View File

@ -1,26 +1,25 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 错误码 Response VO")
@Schema(title = "管理后台 - 错误码 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ErrorCodeRespVO extends ErrorCodeBaseVO {
@ApiModelProperty(value = "错误码编号", required = true, example = "1024")
@Schema(title = "错误码编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "错误码类型", required = true, example = "1", notes = "参见 ErrorCodeTypeEnum 枚举类")
@Schema(title = "错误码类型", required = true, example = "1", description = "参见 ErrorCodeTypeEnum 枚举类")
private Integer type;
@ApiModelProperty(value = "创建时间", required = true)
@Schema(title = "创建时间", required = true)
private LocalDateTime createTime;
}

View File

@ -1,20 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 错误码更新 Request VO")
@Schema(title = "管理后台 - 错误码更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ErrorCodeUpdateReqVO extends ErrorCodeBaseVO {
@ApiModelProperty(value = "错误码编号", required = true, example = "1024")
@Schema(title = "错误码编号", required = true, example = "1024")
@NotNull(message = "错误码编号不能为空")
private Long id;

View File

@ -11,8 +11,8 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginL
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogRespVO;
import cn.iocoder.yudao.module.system.convert.logger.LoginLogConvert;
import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@ -27,7 +27,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 登录日志")
@Tag(name = "管理后台 - 登录日志")
@RestController
@RequestMapping("/system/login-log")
@Validated
@ -37,7 +37,7 @@ public class LoginLogController {
private LoginLogService loginLogService;
@GetMapping("/page")
@ApiOperation("获得登录日志分页列表")
@Operation(summary = "获得登录日志分页列表")
@PreAuthorize("@ss.hasPermission('system:login-log:query')")
public CommonResult<PageResult<LoginLogRespVO>> getLoginLogPage(@Valid LoginLogPageReqVO reqVO) {
PageResult<LoginLogDO> page = loginLogService.getLoginLogPage(reqVO);
@ -45,7 +45,7 @@ public class LoginLogController {
}
@GetMapping("/export")
@ApiOperation("导出登录日志 Excel")
@Operation(summary = "导出登录日志 Excel")
@PreAuthorize("@ss.hasPermission('system:login-log:export')")
@OperateLog(type = EXPORT)
public void exportLoginLog(HttpServletResponse response, @Valid LoginLogExportReqVO reqVO) throws IOException {

View File

@ -15,8 +15,8 @@ import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@ -35,7 +35,7 @@ import java.util.Map;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 操作日志")
@Tag(name = "管理后台 - 操作日志")
@RestController
@RequestMapping("/system/operate-log")
@Validated
@ -47,7 +47,7 @@ public class OperateLogController {
private AdminUserService userService;
@GetMapping("/page")
@ApiOperation("查看操作日志分页列表")
@Operation(summary = "查看操作日志分页列表")
@PreAuthorize("@ss.hasPermission('system:operate-log:query')")
public CommonResult<PageResult<OperateLogRespVO>> pageOperateLog(@Valid OperateLogPageReqVO reqVO) {
PageResult<OperateLogDO> pageResult = operateLogService.getOperateLogPage(reqVO);
@ -66,7 +66,7 @@ public class OperateLogController {
return success(new PageResult<>(list, pageResult.getTotal()));
}
@ApiOperation("导出操作日志")
@Operation(summary = "导出操作日志")
@GetMapping("/export")
@PreAuthorize("@ss.hasPermission('system:operate-log:export')")
@OperateLog(type = EXPORT)

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -15,28 +15,28 @@ import javax.validation.constraints.Size;
@Data
public class LoginLogBaseVO {
@ApiModelProperty(value = "日志类型", required = true, example = "1", notes = "参见 LoginLogTypeEnum 枚举类")
@Schema(title = "日志类型", required = true, example = "1", description = "参见 LoginLogTypeEnum 枚举类")
@NotNull(message = "日志类型不能为空")
private Integer logType;
@ApiModelProperty(value = "链路追踪编号", example = "89aca178-a370-411c-ae02-3f0d672be4ab")
@Schema(title = "链路追踪编号", example = "89aca178-a370-411c-ae02-3f0d672be4ab")
@NotEmpty(message = "链路追踪编号不能为空")
private String traceId;
@ApiModelProperty(value = "用户账号", required = true, example = "yudao")
@Schema(title = "用户账号", required = true, example = "yudao")
@NotBlank(message = "用户账号不能为空")
@Size(max = 30, message = "用户账号长度不能超过30个字符")
private String username;
@ApiModelProperty(value = "登录结果", required = true, example = "1", notes = "参见 LoginResultEnum 枚举类")
@Schema(title = "登录结果", required = true, example = "1", description = "参见 LoginResultEnum 枚举类")
@NotNull(message = "登录结果不能为空")
private Integer result;
@ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
@Schema(title = "用户 IP", required = true, example = "127.0.0.1")
@NotEmpty(message = "用户 IP 不能为空")
private String userIp;
@ApiModelProperty(value = "浏览器 UserAgent", example = "Mozilla/5.0")
@Schema(title = "浏览器 UserAgent", example = "Mozilla/5.0")
private String userAgent;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -9,20 +8,20 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 登录日志分页列表 Request VO")
@Schema(title = "管理后台 - 登录日志分页列表 Request VO")
@Data
public class LoginLogExportReqVO {
@ApiModelProperty(value = "用户 IP", example = "127.0.0.1", notes = "模拟匹配")
@Schema(title = "用户 IP", example = "127.0.0.1", description = "模拟匹配")
private String userIp;
@ApiModelProperty(value = "用户账号", example = "芋道", notes = "模拟匹配")
@Schema(title = "用户账号", example = "芋道", description = "模拟匹配")
private String username;
@ApiModelProperty(value = "操作状态", example = "true")
@Schema(title = "操作状态", example = "true")
private Boolean status;
@ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
@ -11,21 +10,21 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 登录日志分页列表 Request VO")
@Schema(title = "管理后台 - 登录日志分页列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class LoginLogPageReqVO extends PageParam {
@ApiModelProperty(value = "用户 IP", example = "127.0.0.1", notes = "模拟匹配")
@Schema(title = "用户 IP", example = "127.0.0.1", description = "模拟匹配")
private String userIp;
@ApiModelProperty(value = "用户账号", example = "芋道", notes = "模拟匹配")
@Schema(title = "用户账号", example = "芋道", description = "模拟匹配")
private String username;
@ApiModelProperty(value = "操作状态", example = "true")
@Schema(title = "操作状态", example = "true")
private Boolean status;
@ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ -9,23 +8,23 @@ import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 登录日志 Response VO")
@Schema(title = "管理后台 - 登录日志 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class LoginLogRespVO extends LoginLogBaseVO {
@ApiModelProperty(value = "日志编号", required = true, example = "1024")
@Schema(title = "日志编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "用户编号", example = "666")
@Schema(title = "用户编号", example = "666")
private Long userId;
@ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")
@Schema(title = "用户类型", required = true, example = "2", description = "参见 UserTypeEnum 枚举")
@NotNull(message = "用户类型不能为空")
private Integer userType;
@ApiModelProperty(value = "登录时间", required = true)
@Schema(title = "登录时间", required = true)
private LocalDateTime createTime;
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@ -15,71 +15,71 @@ import java.util.Map;
@Data
public class OperateLogBaseVO {
@ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab")
@Schema(title = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab")
@NotEmpty(message = "链路追踪编号不能为空")
private String traceId;
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@Schema(title = "用户编号", required = true, example = "1024")
@NotNull(message = "用户编号不能为空")
private Long userId;
@ApiModelProperty(value = "操作模块", required = true, example = "订单")
@Schema(title = "操作模块", required = true, example = "订单")
@NotEmpty(message = "操作模块不能为空")
private String module;
@ApiModelProperty(value = "操作名", required = true, example = "创建订单")
@Schema(title = "操作名", required = true, example = "创建订单")
@NotEmpty(message = "操作名")
private String name;
@ApiModelProperty(value = "操作分类", required = true, example = "1", notes = "参见 OperateLogTypeEnum 枚举类")
@Schema(title = "操作分类", required = true, example = "1", description = "参见 OperateLogTypeEnum 枚举类")
@NotNull(message = "操作分类不能为空")
private Integer type;
@ApiModelProperty(value = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。")
@Schema(title = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。")
private String content;
@ApiModelProperty(value = "拓展字段", example = "{'orderId': 1}")
@Schema(title = "拓展字段", example = "{'orderId': 1}")
private Map<String, Object> exts;
@ApiModelProperty(value = "请求方法名", required = true, example = "GET")
@Schema(title = "请求方法名", required = true, example = "GET")
@NotEmpty(message = "请求方法名不能为空")
private String requestMethod;
@ApiModelProperty(value = "请求地址", required = true, example = "/xxx/yyy")
@Schema(title = "请求地址", required = true, example = "/xxx/yyy")
@NotEmpty(message = "请求地址不能为空")
private String requestUrl;
@ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
@Schema(title = "用户 IP", required = true, example = "127.0.0.1")
@NotEmpty(message = "用户 IP 不能为空")
private String userIp;
@ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0")
@Schema(title = "浏览器 UserAgent", required = true, example = "Mozilla/5.0")
@NotEmpty(message = "浏览器 UserAgent 不能为空")
private String userAgent;
@ApiModelProperty(value = "Java 方法名", required = true, example = "cn.iocoder.yudao.adminserver.UserController.save(...)")
@Schema(title = "Java 方法名", required = true, example = "cn.iocoder.yudao.adminserver.UserController.save(...)")
@NotEmpty(message = "Java 方法名不能为空")
private String javaMethod;
@ApiModelProperty(value = "Java 方法的参数")
@Schema(title = "Java 方法的参数")
private String javaMethodArgs;
@ApiModelProperty(value = "开始时间", required = true)
@Schema(title = "开始时间", required = true)
@NotNull(message = "开始时间不能为空")
private LocalDateTime startTime;
@ApiModelProperty(value = "执行时长,单位:毫秒", required = true)
@Schema(title = "执行时长,单位:毫秒", required = true)
@NotNull(message = "执行时长不能为空")
private Integer duration;
@ApiModelProperty(value = "结果码", required = true)
@Schema(title = "结果码", required = true)
@NotNull(message = "结果码不能为空")
private Integer resultCode;
@ApiModelProperty(value = "结果提示")
@Schema(title = "结果提示")
private String resultMsg;
@ApiModelProperty(value = "结果数据")
@Schema(title = "结果数据")
private String resultData;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -9,23 +8,23 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 操作日志分页列表 Request VO")
@Schema(title = "管理后台 - 操作日志分页列表 Request VO")
@Data
public class OperateLogExportReqVO {
@ApiModelProperty(value = "操作模块", example = "订单", notes = "模拟匹配")
@Schema(title = "操作模块", example = "订单", description = "模拟匹配")
private String module;
@ApiModelProperty(value = "用户昵称", example = "芋道", notes = "模拟匹配")
@Schema(title = "用户昵称", example = "芋道", description = "模拟匹配")
private String userNickname;
@ApiModelProperty(value = "操作分类", example = "1", notes = "参见 OperateLogTypeEnum 枚举类")
@Schema(title = "操作分类", example = "1", description = "参见 OperateLogTypeEnum 枚举类")
private Integer type;
@ApiModelProperty(value = "操作状态", example = "true")
@Schema(title = "操作状态", example = "true")
private Boolean success;
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -10,23 +9,23 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 操作日志分页列表 Request VO")
@Schema(title = "管理后台 - 操作日志分页列表 Request VO")
@Data
public class OperateLogPageReqVO extends PageParam {
@ApiModelProperty(value = "操作模块", example = "订单", notes = "模拟匹配")
@Schema(title = "操作模块", example = "订单", description = "模拟匹配")
private String module;
@ApiModelProperty(value = "用户昵称", example = "芋道", notes = "模拟匹配")
@Schema(title = "用户昵称", example = "芋道", description = "模拟匹配")
private String userNickname;
@ApiModelProperty(value = "操作分类", example = "1", notes = "参见 OperateLogTypeEnum 枚举类")
@Schema(title = "操作分类", example = "1", description = "参见 OperateLogTypeEnum 枚举类")
private Integer type;
@ApiModelProperty(value = "操作状态", example = "true")
@Schema(title = "操作状态", example = "true")
private Boolean success;
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;

View File

@ -1,21 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ApiModel("管理后台 - 操作日志 Response VO")
@Schema(title = "管理后台 - 操作日志 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OperateLogRespVO extends OperateLogBaseVO {
@ApiModelProperty(value = "日志编号", required = true, example = "1024")
@Schema(title = "日志编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "用户昵称", required = true, example = "芋艿")
@Schema(title = "用户昵称", required = true, example = "芋艿")
private String userNickname;
}

View File

@ -8,9 +8,10 @@ import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeRespVO;
import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeUpdateReqVO;
import cn.iocoder.yudao.module.system.convert.notice.NoticeConvert;
import cn.iocoder.yudao.module.system.service.notice.NoticeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -20,7 +21,7 @@ import javax.validation.Valid;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Api(tags = "管理后台 - 通知公告")
@Tag(name = "管理后台 - 通知公告")
@RestController
@RequestMapping("/system/notice")
@Validated
@ -30,7 +31,7 @@ public class NoticeController {
private NoticeService noticeService;
@PostMapping("/create")
@ApiOperation("创建通知公告")
@Operation(summary = "创建通知公告")
@PreAuthorize("@ss.hasPermission('system:notice:create')")
public CommonResult<Long> createNotice(@Valid @RequestBody NoticeCreateReqVO reqVO) {
Long noticeId = noticeService.createNotice(reqVO);
@ -38,7 +39,7 @@ public class NoticeController {
}
@PutMapping("/update")
@ApiOperation("修改通知公告")
@Operation(summary = "修改通知公告")
@PreAuthorize("@ss.hasPermission('system:notice:update')")
public CommonResult<Boolean> updateNotice(@Valid @RequestBody NoticeUpdateReqVO reqVO) {
noticeService.updateNotice(reqVO);
@ -46,8 +47,8 @@ public class NoticeController {
}
@DeleteMapping("/delete")
@ApiOperation("删除通知公告")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除通知公告")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:notice:delete')")
public CommonResult<Boolean> deleteNotice(@RequestParam("id") Long id) {
noticeService.deleteNotice(id);
@ -55,15 +56,15 @@ public class NoticeController {
}
@GetMapping("/page")
@ApiOperation("获取通知公告列表")
@Operation(summary = "获取通知公告列表")
@PreAuthorize("@ss.hasPermission('system:notice:query')")
public CommonResult<PageResult<NoticeRespVO>> pageNotices(@Validated NoticePageReqVO reqVO) {
return success(NoticeConvert.INSTANCE.convertPage(noticeService.pageNotices(reqVO)));
}
@GetMapping("/get")
@ApiOperation("获得通知公告")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "获得通知公告")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:notice:query')")
public CommonResult<NoticeRespVO> getNotice(@RequestParam("id") Long id) {
return success(NoticeConvert.INSTANCE.convert(noticeService.getNotice(id)));

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.notice.vo;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,19 +14,19 @@ import javax.validation.constraints.Size;
@Data
public class NoticeBaseVO {
@ApiModelProperty(value = "公告标题", required = true, example = "小博主")
@Schema(title = "公告标题", required = true, example = "小博主")
@NotBlank(message = "公告标题不能为空")
@Size(max = 50, message = "公告标题不能超过50个字符")
private String title;
@ApiModelProperty(value = "公告类型", required = true, example = "小博主")
@Schema(title = "公告类型", required = true, example = "小博主")
@NotNull(message = "公告类型不能为空")
private Integer type;
@ApiModelProperty(value = "公告内容", required = true, example = "半生编码")
@Schema(title = "公告内容", required = true, example = "半生编码")
private String content;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,10 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.notice.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 通知公告创建 Request VO")
@Schema(title = "管理后台 - 通知公告创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class NoticeCreateReqVO extends NoticeBaseVO {

View File

@ -1,20 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.notice.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 通知公告分页 Request VO")
@Schema(title = "管理后台 - 通知公告分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class NoticePageReqVO extends PageParam {
@ApiModelProperty(value = "通知公告名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "通知公告名称", example = "芋道", description = "模糊匹配")
private String title;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,21 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.notice.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 通知公告信息 Response VO")
@Schema(title = "管理后台 - 通知公告信息 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class NoticeRespVO extends NoticeBaseVO {
@ApiModelProperty(value = "通知公告序号", required = true, example = "1024")
@Schema(title = "通知公告序号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.notice.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 岗位公告更新 Request VO")
@Schema(title = "管理后台 - 岗位公告更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class NoticeUpdateReqVO extends NoticeBaseVO {
@ApiModelProperty(value = "岗位公告编号", required = true, example = "1024")
@Schema(title = "岗位公告编号", required = true, example = "1024")
@NotNull(message = "岗位公告编号不能为空")
private Long id;

View File

@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2Cl
import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -21,7 +21,7 @@ import javax.validation.Valid;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Api(tags = "管理后台 - OAuth2 客户端")
@Tag(name = "管理后台 - OAuth2 客户端")
@RestController
@RequestMapping("/system/oauth2-client")
@Validated
@ -31,14 +31,14 @@ public class OAuth2ClientController {
private OAuth2ClientService oAuth2ClientService;
@PostMapping("/create")
@ApiOperation("创建 OAuth2 客户端")
@Operation(summary = "创建 OAuth2 客户端")
@PreAuthorize("@ss.hasPermission('system:oauth2-client:create')")
public CommonResult<Long> createOAuth2Client(@Valid @RequestBody OAuth2ClientCreateReqVO createReqVO) {
return success(oAuth2ClientService.createOAuth2Client(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新 OAuth2 客户端")
@Operation(summary = "更新 OAuth2 客户端")
@PreAuthorize("@ss.hasPermission('system:oauth2-client:update')")
public CommonResult<Boolean> updateOAuth2Client(@Valid @RequestBody OAuth2ClientUpdateReqVO updateReqVO) {
oAuth2ClientService.updateOAuth2Client(updateReqVO);
@ -46,8 +46,8 @@ public class OAuth2ClientController {
}
@DeleteMapping("/delete")
@ApiOperation("删除 OAuth2 客户端")
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
@Operation(summary = "删除 OAuth2 客户端")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:oauth2-client:delete')")
public CommonResult<Boolean> deleteOAuth2Client(@RequestParam("id") Long id) {
oAuth2ClientService.deleteOAuth2Client(id);
@ -55,8 +55,8 @@ public class OAuth2ClientController {
}
@GetMapping("/get")
@ApiOperation("获得 OAuth2 客户端")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "获得 OAuth2 客户端")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:oauth2-client:query')")
public CommonResult<OAuth2ClientRespVO> getOAuth2Client(@RequestParam("id") Long id) {
OAuth2ClientDO oAuth2Client = oAuth2ClientService.getOAuth2Client(id);
@ -64,7 +64,7 @@ public class OAuth2ClientController {
}
@GetMapping("/page")
@ApiOperation("获得OAuth2 客户端分页")
@Operation(summary = "获得OAuth2 客户端分页")
@PreAuthorize("@ss.hasPermission('system:oauth2-client:query')")
public CommonResult<PageResult<OAuth2ClientRespVO>> getOAuth2ClientPage(@Valid OAuth2ClientPageReqVO pageVO) {
PageResult<OAuth2ClientDO> pageResult = oAuth2ClientService.getOAuth2ClientPage(pageVO);

View File

@ -22,10 +22,10 @@ import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2GrantService;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
import cn.iocoder.yudao.module.system.util.oauth2.OAuth2Utils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -55,7 +55,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
*
* @author 芋道源码
*/
@Api(tags = "管理后台 - OAuth2.0 授权")
@Tag(name = "管理后台 - OAuth2.0 授权")
@RestController
@RequestMapping("/system/oauth2")
@Validated
@ -84,16 +84,16 @@ public class OAuth2OpenController {
*/
@PostMapping("/token")
@PermitAll
@ApiOperation(value = "获得访问令牌", notes = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用")
@ApiImplicitParams({
@ApiImplicitParam(name = "grant_type", required = true, value = "授权类型", example = "code", dataTypeClass = String.class),
@ApiImplicitParam(name = "code", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class),
@ApiImplicitParam(name = "redirect_uri", value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class),
@ApiImplicitParam(name = "state", value = "状态", example = "1", dataTypeClass = String.class),
@ApiImplicitParam(name = "username", example = "tudou", dataTypeClass = String.class),
@ApiImplicitParam(name = "password", example = "cai", dataTypeClass = String.class), // 多个使用空格分隔
@ApiImplicitParam(name = "scope", example = "user_info", dataTypeClass = String.class),
@ApiImplicitParam(name = "refresh_token", example = "123424233", dataTypeClass = String.class),
@Operation(summary = "获得访问令牌", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用")
@Parameters({
@Parameter(name = "grant_type", required = true, description = "授权类型", example = "code"),
@Parameter(name = "code", description = "授权范围", example = "userinfo.read"),
@Parameter(name = "redirect_uri", description = "重定向 URI", example = "https://www.iocoder.cn"),
@Parameter(name = "state", description = "状态", example = "1"),
@Parameter(name = "username", example = "tudou"),
@Parameter(name = "password", example = "cai"), // 多个使用空格分隔
@Parameter(name = "scope", example = "user_info"),
@Parameter(name = "refresh_token", example = "123424233"),
})
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<OAuth2OpenAccessTokenRespVO> postAccessToken(HttpServletRequest request,
@ -144,8 +144,8 @@ public class OAuth2OpenController {
@DeleteMapping("/token")
@PermitAll
@ApiOperation(value = "删除访问令牌")
@ApiImplicitParam(name = "token", required = true, value = "访问令牌", example = "biu", dataTypeClass = String.class)
@Operation(summary = "删除访问令牌")
@Parameter(name = "token", required = true, description = "访问令牌", example = "biu")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<Boolean> revokeToken(HttpServletRequest request,
@RequestParam("token") String token) {
@ -163,8 +163,8 @@ public class OAuth2OpenController {
*/
@PostMapping("/check-token")
@PermitAll
@ApiOperation(value = "校验访问令牌")
@ApiImplicitParam(name = "token", required = true, value = "访问令牌", example = "biu", dataTypeClass = String.class)
@Operation(summary = "校验访问令牌")
@Parameter(name = "token", required = true, description = "访问令牌", example = "biu")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<OAuth2OpenCheckTokenRespVO> checkToken(HttpServletRequest request,
@RequestParam("token") String token) {
@ -183,8 +183,8 @@ public class OAuth2OpenController {
* 对应 Spring Security OAuth 的 AuthorizationEndpoint 类的 authorize 方法
*/
@GetMapping("/authorize")
@ApiOperation(value = "获得授权信息", notes = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用")
@ApiImplicitParam(name = "clientId", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class)
@Operation(summary = "获得授权信息", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用")
@Parameter(name = "clientId", required = true, description = "客户端编号", example = "tudou")
public CommonResult<OAuth2OpenAuthorizeInfoRespVO> authorize(@RequestParam("clientId") String clientId) {
// 0. 校验用户已经登录。通过 Spring Security 实现
@ -207,14 +207,14 @@ public class OAuth2OpenController {
* 因为前后端分离Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL剩余交给前端处理
*/
@PostMapping("/authorize")
@ApiOperation(value = "申请授权", notes = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【提交】调用")
@ApiImplicitParams({
@ApiImplicitParam(name = "response_type", required = true, value = "响应类型", example = "code", dataTypeClass = String.class),
@ApiImplicitParam(name = "client_id", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class),
@ApiImplicitParam(name = "scope", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class), // 使用 Map<String, Boolean> 格式Spring MVC 暂时不支持这么接收参数
@ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class),
@ApiImplicitParam(name = "auto_approve", required = true, value = "用户是否接受", example = "true", dataTypeClass = Boolean.class),
@ApiImplicitParam(name = "state", example = "1", dataTypeClass = String.class)
@Operation(summary = "申请授权", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【提交】调用")
@Parameters({
@Parameter(name = "response_type", required = true, description = "响应类型", example = "code"),
@Parameter(name = "client_id", required = true, description = "客户端编号", example = "tudou"),
@Parameter(name = "scope", description = "授权范围", example = "userinfo.read"), // 使用 Map<String, Boolean> 格式Spring MVC 暂时不支持这么接收参数
@Parameter(name = "redirect_uri", required = true, description = "重定向 URI", example = "https://www.iocoder.cn"),
@Parameter(name = "auto_approve", required = true, description = "用户是否接受", example = "true"),
@Parameter(name = "state", example = "1")
})
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
public CommonResult<String> approveOrDeny(@RequestParam("response_type") String responseType,

View File

@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
import cn.iocoder.yudao.module.system.service.auth.AdminAuthService;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@ -20,7 +20,7 @@ import javax.validation.Valid;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Api(tags = "管理后台 - OAuth2.0 令牌")
@Tag(name = "管理后台 - OAuth2.0 令牌")
@RestController
@RequestMapping("/system/oauth2-token")
public class OAuth2TokenController {
@ -31,7 +31,7 @@ public class OAuth2TokenController {
private AdminAuthService authService;
@GetMapping("/page")
@ApiOperation(value = "获得访问令牌分页", notes = "只返回有效期内的")
@Operation(summary = "获得访问令牌分页", description = "只返回有效期内的")
@PreAuthorize("@ss.hasPermission('system:oauth2-token:page')")
public CommonResult<PageResult<OAuth2AccessTokenRespVO>> getAccessTokenPage(@Valid OAuth2AccessTokenPageReqVO reqVO) {
PageResult<OAuth2AccessTokenDO> pageResult = oauth2TokenService.getAccessTokenPage(reqVO);
@ -39,8 +39,8 @@ public class OAuth2TokenController {
}
@DeleteMapping("/delete")
@ApiOperation("删除访问令牌")
@ApiImplicitParam(name = "accessToken", value = "访问令牌", required = true, dataTypeClass = String.class, example = "tudou")
@Operation(summary = "删除访问令牌")
@Parameter(name = "accessToken", description = "访问令牌", required = true, example = "tudou")
@PreAuthorize("@ss.hasPermission('system:oauth2-token:delete')")
public CommonResult<Boolean> deleteAccessToken(@RequestParam("accessToken") String accessToken) {
authService.logout(accessToken, LoginLogTypeEnum.LOGOUT_DELETE.getType());

View File

@ -11,8 +11,8 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.dept.DeptService;
import cn.iocoder.yudao.module.system.service.dept.PostService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@ -33,7 +33,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
*
* @author 芋道源码
*/
@Api(tags = "管理后台 - OAuth2.0 用户")
@Tag(name = "管理后台 - OAuth2.0 用户")
@RestController
@RequestMapping("/system/oauth2/user")
@Validated
@ -48,7 +48,7 @@ public class OAuth2UserController {
private PostService postService;
@GetMapping("/get")
@ApiOperation("获得用户基本信息")
@Operation(summary = "获得用户基本信息")
@PreAuthorize("@ss.hasScope('user.read')") //
public CommonResult<OAuth2UserInfoRespVO> getUserInfo() {
// 获得用户基本信息
@ -68,7 +68,7 @@ public class OAuth2UserController {
}
@PutMapping("/update")
@ApiOperation("更新用户基本信息")
@Operation(summary = "更新用户基本信息")
@PreAuthorize("@ss.hasScope('user.write')")
public CommonResult<Boolean> updateUserInfo(@Valid @RequestBody OAuth2UserUpdateReqVO reqVO) {
// 这里将 UserProfileUpdateReqVO =》UserProfileUpdateReqVO 对象,实现接口的复用。

View File

@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.URL;
@ -18,60 +18,60 @@ import java.util.List;
@Data
public class OAuth2ClientBaseVO {
@ApiModelProperty(value = "客户端编号", required = true, example = "tudou")
@Schema(title = "客户端编号", required = true, example = "tudou")
@NotNull(message = "客户端编号不能为空")
private String clientId;
@ApiModelProperty(value = "客户端密钥", required = true, example = "fan")
@Schema(title = "客户端密钥", required = true, example = "fan")
@NotNull(message = "客户端密钥不能为空")
private String secret;
@ApiModelProperty(value = "应用名", required = true, example = "土豆")
@Schema(title = "应用名", required = true, example = "土豆")
@NotNull(message = "应用名不能为空")
private String name;
@ApiModelProperty(value = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png")
@Schema(title = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png")
@NotNull(message = "应用图标不能为空")
@URL(message = "应用图标的地址不正确")
private String logo;
@ApiModelProperty(value = "应用描述", example = "我是一个应用")
@Schema(title = "应用描述", example = "我是一个应用")
private String description;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
private Integer status;
@ApiModelProperty(value = "访问令牌的有效期", required = true, example = "8640")
@Schema(title = "访问令牌的有效期", required = true, example = "8640")
@NotNull(message = "访问令牌的有效期不能为空")
private Integer accessTokenValiditySeconds;
@ApiModelProperty(value = "刷新令牌的有效期", required = true, example = "8640000")
@Schema(title = "刷新令牌的有效期", required = true, example = "8640000")
@NotNull(message = "刷新令牌的有效期不能为空")
private Integer refreshTokenValiditySeconds;
@ApiModelProperty(value = "可重定向的 URI 地址", required = true, example = "https://www.iocoder.cn")
@Schema(title = "可重定向的 URI 地址", required = true, example = "https://www.iocoder.cn")
@NotNull(message = "可重定向的 URI 地址不能为空")
private List<@NotEmpty(message = "重定向的 URI 不能为空")
@URL(message = "重定向的 URI 格式不正确") String> redirectUris;
@ApiModelProperty(value = "授权类型", required = true, example = "password", notes = "参见 OAuth2GrantTypeEnum 枚举")
@Schema(title = "授权类型", required = true, example = "password", description = "参见 OAuth2GrantTypeEnum 枚举")
@NotNull(message = "授权类型不能为空")
private List<String> authorizedGrantTypes;
@ApiModelProperty(value = "授权范围", example = "user_info")
@Schema(title = "授权范围", example = "user_info")
private List<String> scopes;
@ApiModelProperty(value = "自动通过的授权范围", example = "user_info")
@Schema(title = "自动通过的授权范围", example = "user_info")
private List<String> autoApproveScopes;
@ApiModelProperty(value = "权限", example = "system:user:query")
@Schema(title = "权限", example = "system:user:query")
private List<String> authorities;
@ApiModelProperty(value = "资源", example = "1024")
@Schema(title = "资源", example = "1024")
private List<String> resourceIds;
@ApiModelProperty(value = "附加信息", example = "{yunai: true}")
@Schema(title = "附加信息", example = "{yunai: true}")
private String additionalInformation;
@AssertTrue(message = "附加信息必须是 JSON 格式")

View File

@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import io.swagger.annotations.*;
@ApiModel("管理后台 - OAuth2 客户端创建 Request VO")
@Schema(title = "管理后台 - OAuth2 客户端创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)

View File

@ -1,19 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
@ApiModel("管理后台 - OAuth2 客户端分页 Request VO")
@Schema(title = "管理后台 - OAuth2 客户端分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OAuth2ClientPageReqVO extends PageParam {
@ApiModelProperty(value = "应用名", example = "土豆", notes = "模糊匹配")
@Schema(title = "应用名", example = "土豆", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "状态", example = "1", notes = "参见 CommonStatusEnum 枚举")
@Schema(title = "状态", example = "1", description = "参见 CommonStatusEnum 枚举")
private Integer status;
}

View File

@ -1,23 +1,22 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
@ApiModel("管理后台 - OAuth2 客户端 Response VO")
@Schema(title = "管理后台 - OAuth2 客户端 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OAuth2ClientRespVO extends OAuth2ClientBaseVO {
@ApiModelProperty(value = "编号", required = true, example = "1024")
@Schema(title = "编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
@Schema(title = "创建时间", required = true)
private LocalDateTime createTime;
}

View File

@ -1,20 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - OAuth2 客户端更新 Request VO")
@Schema(title = "管理后台 - OAuth2 客户端更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OAuth2ClientUpdateReqVO extends OAuth2ClientBaseVO {
@ApiModelProperty(value = "编号", required = true, example = "1024")
@Schema(title = "编号", required = true, example = "1024")
@NotNull(message = "编号不能为空")
private Long id;

View File

@ -1,35 +1,34 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("管理后台 - 【开放接口】访问令牌 Response VO")
@Schema(title = "管理后台 - 【开放接口】访问令牌 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2OpenAccessTokenRespVO {
@ApiModelProperty(value = "访问令牌", required = true, example = "tudou")
@Schema(title = "访问令牌", required = true, example = "tudou")
@JsonProperty("access_token")
private String accessToken;
@ApiModelProperty(value = "刷新令牌", required = true, example = "nice")
@Schema(title = "刷新令牌", required = true, example = "nice")
@JsonProperty("refresh_token")
private String refreshToken;
@ApiModelProperty(value = "令牌类型", required = true, example = "bearer")
@Schema(title = "令牌类型", required = true, example = "bearer")
@JsonProperty("token_type")
private String tokenType;
@ApiModelProperty(value = "过期时间", required = true, example = "42430", notes = "单位:秒")
@Schema(title = "过期时间", required = true, example = "42430", description = "单位:秒")
@JsonProperty("expires_in")
private Long expiresIn;
@ApiModelProperty(value = "授权范围", example = "user_info", notes = "如果多个授权范围,使用空格分隔")
@Schema(title = "授权范围", example = "user_info", description = "如果多个授权范围,使用空格分隔")
private String scope;
}

View File

@ -1,15 +1,14 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel("管理后台 - 授权页的信息 Response VO")
@Schema(title = "管理后台 - 授权页的信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -20,7 +19,7 @@ public class OAuth2OpenAuthorizeInfoRespVO {
*/
private Client client;
@ApiModelProperty(value = "scope 的选中信息", required = true, notes = "使用 List 保证有序性Key 是 scopeValue 为是否选中")
@Schema(title = "scope 的选中信息", required = true, description = "使用 List 保证有序性Key 是 scopeValue 为是否选中")
private List<KeyValue<String, Boolean>> scopes;
@Data
@ -28,10 +27,10 @@ public class OAuth2OpenAuthorizeInfoRespVO {
@AllArgsConstructor
public static class Client {
@ApiModelProperty(value = "应用名", required = true, example = "土豆")
@Schema(title = "应用名", required = true, example = "土豆")
private String name;
@ApiModelProperty(value = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png")
@Schema(title = "应用图标", required = true, example = "https://www.iocoder.cn/xx.png")
private String logo;
}

View File

@ -1,41 +1,40 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel("管理后台 - 【开放接口】校验令牌 Response VO")
@Schema(title = "管理后台 - 【开放接口】校验令牌 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2OpenCheckTokenRespVO {
@ApiModelProperty(value = "用户编号", required = true, example = "666")
@Schema(title = "用户编号", required = true, example = "666")
@JsonProperty("user_id")
private Long userId;
@ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")
@Schema(title = "用户类型", required = true, example = "2", description = "参见 UserTypeEnum 枚举")
@JsonProperty("user_type")
private Integer userType;
@ApiModelProperty(value = "租户编号", required = true, example = "1024")
@Schema(title = "租户编号", required = true, example = "1024")
@JsonProperty("tenant_id")
private Long tenantId;
@ApiModelProperty(value = "客户端编号", required = true, example = "car")
@Schema(title = "客户端编号", required = true, example = "car")
@JsonProperty("client_id")
private String clientId;
@ApiModelProperty(value = "授权范围", required = true, example = "user_info")
@Schema(title = "授权范围", required = true, example = "user_info")
private List<String> scopes;
@ApiModelProperty(value = "访问令牌", required = true, example = "tudou")
@Schema(title = "访问令牌", required = true, example = "tudou")
@JsonProperty("access_token")
private String accessToken;
@ApiModelProperty(value = "过期时间", required = true, example = "1593092157", notes = "时间戳 / 1000即单位")
@Schema(title = "过期时间", required = true, example = "1593092157", description = "时间戳 / 1000即单位")
private Long exp;
}

View File

@ -1,23 +1,22 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 访问令牌分页 Request VO")
@Schema(title = "管理后台 - 访问令牌分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class OAuth2AccessTokenPageReqVO extends PageParam {
@ApiModelProperty(value = "用户编号", required = true, example = "666")
@Schema(title = "用户编号", required = true, example = "666")
private Long userId;
@ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")
@Schema(title = "用户类型", required = true, example = "2", description = "参见 UserTypeEnum 枚举")
private Integer userType;
@ApiModelProperty(value = "客户端编号", required = true, example = "2")
@Schema(title = "客户端编号", required = true, example = "2")
private String clientId;
}

View File

@ -1,41 +1,40 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 访问令牌 Response VO")
@Schema(title = "管理后台 - 访问令牌 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2AccessTokenRespVO {
@ApiModelProperty(value = "编号", required = true, example = "1024")
@Schema(title = "编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "访问令牌", required = true, example = "tudou")
@Schema(title = "访问令牌", required = true, example = "tudou")
private String accessToken;
@ApiModelProperty(value = "刷新令牌", required = true, example = "nice")
@Schema(title = "刷新令牌", required = true, example = "nice")
private String refreshToken;
@ApiModelProperty(value = "用户编号", required = true, example = "666")
@Schema(title = "用户编号", required = true, example = "666")
private Long userId;
@ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")
@Schema(title = "用户类型", required = true, example = "2", description = "参见 UserTypeEnum 枚举")
private Integer userType;
@ApiModelProperty(value = "客户端编号", required = true, example = "2")
@Schema(title = "客户端编号", required = true, example = "2")
private String clientId;
@ApiModelProperty(value = "创建时间", required = true)
@Schema(title = "创建时间", required = true)
private LocalDateTime createTime;
@ApiModelProperty(value = "过期时间", required = true)
@Schema(title = "过期时间", required = true)
private LocalDateTime expiresTime;
}

View File

@ -1,37 +1,36 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel("管理后台 - OAuth2 获得用户基本信息 Response VO")
@Schema(title = "管理后台 - OAuth2 获得用户基本信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2UserInfoRespVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1")
@Schema(title = "用户编号", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "用户账号", required = true, example = "芋艿")
@Schema(title = "用户账号", required = true, example = "芋艿")
private String username;
@ApiModelProperty(value = "用户昵称", required = true, example = "芋道")
@Schema(title = "用户昵称", required = true, example = "芋道")
private String nickname;
@ApiModelProperty(value = "用户邮箱", example = "yudao@iocoder.cn")
@Schema(title = "用户邮箱", example = "yudao@iocoder.cn")
private String email;
@ApiModelProperty(value = "手机号码", example = "15601691300")
@Schema(title = "手机号码", example = "15601691300")
private String mobile;
@ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SexEnum 枚举类")
@Schema(title = "用户性别", example = "1", description = "参见 SexEnum 枚举类")
private Integer sex;
@ApiModelProperty(value = "用户头像", example = "https://www.iocoder.cn/xxx.png")
@Schema(title = "用户头像", example = "https://www.iocoder.cn/xxx.png")
private String avatar;
/**
@ -44,26 +43,26 @@ public class OAuth2UserInfoRespVO {
*/
private List<Post> posts;
@ApiModel("部门")
@Schema(title = "部门")
@Data
public static class Dept {
@ApiModelProperty(value = "部门编号", required = true, example = "1")
@Schema(title = "部门编号", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "部门名称", required = true, example = "研发部")
@Schema(title = "部门名称", required = true, example = "研发部")
private String name;
}
@ApiModel("岗位")
@Schema(title = "岗位")
@Data
public static class Post {
@ApiModelProperty(value = "岗位编号", required = true, example = "1")
@Schema(title = "岗位编号", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "岗位名称", required = true, example = "开发")
@Schema(title = "岗位名称", required = true, example = "开发")
private String name;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -10,26 +9,26 @@ import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Email;
import javax.validation.constraints.Size;
@ApiModel("管理后台 - OAuth2 更新用户基本信息 Request VO")
@Schema(title = "管理后台 - OAuth2 更新用户基本信息 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2UserUpdateReqVO {
@ApiModelProperty(value = "用户昵称", required = true, example = "芋艿")
@Schema(title = "用户昵称", required = true, example = "芋艿")
@Size(max = 30, message = "用户昵称长度不能超过 30 个字符")
private String nickname;
@ApiModelProperty(value = "用户邮箱", example = "yudao@iocoder.cn")
@Schema(title = "用户邮箱", example = "yudao@iocoder.cn")
@Email(message = "邮箱格式不正确")
@Size(max = 50, message = "邮箱长度不能超过 50 个字符")
private String email;
@ApiModelProperty(value = "手机号码", example = "15601691300")
@Schema(title = "手机号码", example = "15601691300")
@Length(min = 11, max = 11, message = "手机号长度必须 11 位")
private String mobile;
@ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SexEnum 枚举类")
@Schema(title = "用户性别", example = "1", description = "参见 SexEnum 枚举类")
private Integer sex;
}

View File

@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.*;
import cn.iocoder.yudao.module.system.convert.permission.MenuConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
import cn.iocoder.yudao.module.system.service.permission.MenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -20,7 +20,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Api(tags = "管理后台 - 菜单")
@Tag(name = "管理后台 - 菜单")
@RestController
@RequestMapping("/system/menu")
@Validated
@ -30,7 +30,7 @@ public class MenuController {
private MenuService menuService;
@PostMapping("/create")
@ApiOperation("创建菜单")
@Operation(summary = "创建菜单")
@PreAuthorize("@ss.hasPermission('system:menu:create')")
public CommonResult<Long> createMenu(@Valid @RequestBody MenuCreateReqVO reqVO) {
Long menuId = menuService.createMenu(reqVO);
@ -38,7 +38,7 @@ public class MenuController {
}
@PutMapping("/update")
@ApiOperation("修改菜单")
@Operation(summary = "修改菜单")
@PreAuthorize("@ss.hasPermission('system:menu:update')")
public CommonResult<Boolean> updateMenu(@Valid @RequestBody MenuUpdateReqVO reqVO) {
menuService.updateMenu(reqVO);
@ -46,8 +46,8 @@ public class MenuController {
}
@DeleteMapping("/delete")
@ApiOperation("删除菜单")
@ApiImplicitParam(name = "id", value = "角色编号", required= true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除菜单")
@Parameter(name = "id", description = "角色编号", required= true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:menu:delete')")
public CommonResult<Boolean> deleteMenu(@RequestParam("id") Long id) {
menuService.deleteMenu(id);
@ -55,7 +55,7 @@ public class MenuController {
}
@GetMapping("/list")
@ApiOperation(value = "获取菜单列表", notes = "用于【菜单管理】界面")
@Operation(summary = "获取菜单列表", description = "用于【菜单管理】界面")
@PreAuthorize("@ss.hasPermission('system:menu:query')")
public CommonResult<List<MenuRespVO>> getMenus(MenuListReqVO reqVO) {
List<MenuDO> list = menuService.getMenus(reqVO);
@ -64,7 +64,7 @@ public class MenuController {
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获取菜单精简信息列表", notes = "只包含被开启的菜单,用于【角色分配菜单】功能的选项。" +
@Operation(summary = "获取菜单精简信息列表", description = "只包含被开启的菜单,用于【角色分配菜单】功能的选项。" +
"在多租户的场景下,会只返回租户所在套餐有的菜单")
public CommonResult<List<MenuSimpleRespVO>> getSimpleMenus() {
// 获得菜单列表,只要开启状态的
@ -77,7 +77,7 @@ public class MenuController {
}
@GetMapping("/get")
@ApiOperation("获取菜单信息")
@Operation(summary = "获取菜单信息")
@PreAuthorize("@ss.hasPermission('system:menu:query')")
public CommonResult<MenuRespVO> getMenu(Long id) {
MenuDO menu = menuService.getMenu(id);

View File

@ -7,9 +7,9 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
*
* @author 芋道源码
*/
@Api(tags = "管理后台 - 权限")
@Tag(name = "管理后台 - 权限")
@RestController
@RequestMapping("/system/permission")
public class PermissionController {
@ -35,8 +35,8 @@ public class PermissionController {
@Resource
private TenantService tenantService;
@ApiOperation("获得角色拥有的菜单编号")
@ApiImplicitParam(name = "roleId", value = "角色编号", required = true, dataTypeClass = Long.class)
@Operation(summary = "获得角色拥有的菜单编号")
@Parameter(name = "roleId", description = "角色编号", required = true)
@GetMapping("/list-role-resources")
@PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')")
public CommonResult<Set<Long>> listRoleMenus(Long roleId) {
@ -44,7 +44,7 @@ public class PermissionController {
}
@PostMapping("/assign-role-menu")
@ApiOperation("赋予角色菜单")
@Operation(summary = "赋予角色菜单")
@PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')")
public CommonResult<Boolean> assignRoleMenu(@Validated @RequestBody PermissionAssignRoleMenuReqVO reqVO) {
// 开启多租户的情况下,需要过滤掉未开通的菜单
@ -56,22 +56,22 @@ public class PermissionController {
}
@PostMapping("/assign-role-data-scope")
@ApiOperation("赋予角色数据权限")
@Operation(summary = "赋予角色数据权限")
@PreAuthorize("@ss.hasPermission('system:permission:assign-role-data-scope')")
public CommonResult<Boolean> assignRoleDataScope(@Valid @RequestBody PermissionAssignRoleDataScopeReqVO reqVO) {
permissionService.assignRoleDataScope(reqVO.getRoleId(), reqVO.getDataScope(), reqVO.getDataScopeDeptIds());
return success(true);
}
@ApiOperation("获得管理员拥有的角色编号列表")
@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataTypeClass = Long.class)
@Operation(summary = "获得管理员拥有的角色编号列表")
@Parameter(name = "userId", description = "用户编号", required = true)
@GetMapping("/list-user-roles")
@PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')")
public CommonResult<Set<Long>> listAdminRoles(@RequestParam("userId") Long userId) {
return success(permissionService.getUserRoleIdListByUserId(userId));
}
@ApiOperation("赋予用户角色")
@Operation(summary = "赋予用户角色")
@PostMapping("/assign-user-role")
@PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')")
public CommonResult<Boolean> assignUserRole(@Validated @RequestBody PermissionAssignUserRoleReqVO reqVO) {

View File

@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*;
import cn.iocoder.yudao.module.system.convert.permission.RoleConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -27,7 +27,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Api(tags = "管理后台 - 角色")
@Tag(name = "管理后台 - 角色")
@RestController
@RequestMapping("/system/role")
@Validated
@ -37,14 +37,14 @@ public class RoleController {
private RoleService roleService;
@PostMapping("/create")
@ApiOperation("创建角色")
@Operation(summary = "创建角色")
@PreAuthorize("@ss.hasPermission('system:role:create')")
public CommonResult<Long> createRole(@Valid @RequestBody RoleCreateReqVO reqVO) {
return success(roleService.createRole(reqVO, null));
}
@PutMapping("/update")
@ApiOperation("修改角色")
@Operation(summary = "修改角色")
@PreAuthorize("@ss.hasPermission('system:role:update')")
public CommonResult<Boolean> updateRole(@Valid @RequestBody RoleUpdateReqVO reqVO) {
roleService.updateRole(reqVO);
@ -52,7 +52,7 @@ public class RoleController {
}
@PutMapping("/update-status")
@ApiOperation("修改角色状态")
@Operation(summary = "修改角色状态")
@PreAuthorize("@ss.hasPermission('system:role:update')")
public CommonResult<Boolean> updateRoleStatus(@Valid @RequestBody RoleUpdateStatusReqVO reqVO) {
roleService.updateRoleStatus(reqVO.getId(), reqVO.getStatus());
@ -60,8 +60,8 @@ public class RoleController {
}
@DeleteMapping("/delete")
@ApiOperation("删除角色")
@ApiImplicitParam(name = "id", value = "角色编号", required = true, example = "1024", dataTypeClass = Long.class)
@Operation(summary = "删除角色")
@Parameter(name = "id", description = "角色编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:role:delete')")
public CommonResult<Boolean> deleteRole(@RequestParam("id") Long id) {
roleService.deleteRole(id);
@ -69,7 +69,7 @@ public class RoleController {
}
@GetMapping("/get")
@ApiOperation("获得角色信息")
@Operation(summary = "获得角色信息")
@PreAuthorize("@ss.hasPermission('system:role:query')")
public CommonResult<RoleRespVO> getRole(@RequestParam("id") Long id) {
RoleDO role = roleService.getRole(id);
@ -77,14 +77,14 @@ public class RoleController {
}
@GetMapping("/page")
@ApiOperation("获得角色分页")
@Operation(summary = "获得角色分页")
@PreAuthorize("@ss.hasPermission('system:role:query')")
public CommonResult<PageResult<RoleDO>> getRolePage(RolePageReqVO reqVO) {
return success(roleService.getRolePage(reqVO));
}
@GetMapping("/list-all-simple")
@ApiOperation(value = "获取角色精简信息列表", notes = "只包含被开启的角色,主要用于前端的下拉选项")
@Operation(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项")
public CommonResult<List<RoleSimpleRespVO>> getSimpleRoles() {
// 获得角色列表,只要开启状态的
List<RoleDO> list = roleService.getRoles(Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,46 +14,46 @@ import javax.validation.constraints.Size;
@Data
public class MenuBaseVO {
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
@Schema(title = "菜单名称", required = true, example = "芋道")
@NotBlank(message = "菜单名称不能为空")
@Size(max = 50, message = "菜单名称长度不能超过50个字符")
private String name;
@ApiModelProperty(value = "权限标识", example = "sys:menu:add", notes = "仅菜单类型为按钮时,才需要传递")
@Schema(title = "权限标识", example = "sys:menu:add", description = "仅菜单类型为按钮时,才需要传递")
@Size(max = 100)
private String permission;
@ApiModelProperty(value = "类型", required = true, example = "1", notes = "参见 MenuTypeEnum 枚举类")
@Schema(title = "类型", required = true, example = "1", description = "参见 MenuTypeEnum 枚举类")
@NotNull(message = "菜单类型不能为空")
private Integer type;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
@Schema(title = "显示顺序不能为空", required = true, example = "1024")
@NotNull(message = "显示顺序不能为空")
private Integer sort;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
@Schema(title = "父菜单 ID", required = true, example = "1024")
@NotNull(message = "父菜单 ID 不能为空")
private Long parentId;
@ApiModelProperty(value = "路由地址", example = "post", notes = "仅菜单类型为菜单或者目录时,才需要传")
@Schema(title = "路由地址", example = "post", description = "仅菜单类型为菜单或者目录时,才需要传")
@Size(max = 200, message = "路由地址不能超过200个字符")
private String path;
@ApiModelProperty(value = "菜单图标", example = "/menu/list", notes = "仅菜单类型为菜单或者目录时,才需要传")
@Schema(title = "菜单图标", example = "/menu/list", description = "仅菜单类型为菜单或者目录时,才需要传")
private String icon;
@ApiModelProperty(value = "组件路径", example = "system/post/index", notes = "仅菜单类型为菜单时,才需要传")
@Schema(title = "组件路径", example = "system/post/index", description = "仅菜单类型为菜单时,才需要传")
@Size(max = 200, message = "组件路径不能超过255个字符")
private String component;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
@Schema(title = "状态", required = true, example = "1", description = "见 CommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
private Integer status;
@ApiModelProperty(value = "是否可见", example = "false")
@Schema(title = "是否可见", example = "false")
private Boolean visible;
@ApiModelProperty(value = "是否缓存", example = "false")
@Schema(title = "是否缓存", example = "false")
private Boolean keepAlive;
}

View File

@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ApiModel("管理后台 - 菜单创建 Request VO")
@Schema(title = "管理后台 - 菜单创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class MenuCreateReqVO extends MenuBaseVO {

View File

@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ApiModel("管理后台 - 菜单列表 Request VO")
@Schema(title = "管理后台 - 菜单列表 Request VO")
@Data
public class MenuListReqVO {
@ApiModelProperty(value = "菜单名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "菜单名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -9,20 +8,20 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@ApiModel("管理后台 - 菜单信息 Response VO")
@Schema(title = "管理后台 - 菜单信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MenuRespVO extends MenuBaseVO {
@ApiModelProperty(value = "菜单编号", required = true, example = "1024")
@Schema(title = "菜单编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,29 +1,28 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 菜单精简信息 Response VO")
@Schema(title = "管理后台 - 菜单精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MenuSimpleRespVO {
@ApiModelProperty(value = "菜单编号", required = true, example = "1024")
@Schema(title = "菜单编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
@Schema(title = "菜单名称", required = true, example = "芋道")
private String name;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
@Schema(title = "父菜单 ID", required = true, example = "1024")
private Long parentId;
@ApiModelProperty(value = "类型", required = true, example = "1", notes = "参见 MenuTypeEnum 枚举类")
@Schema(title = "类型", required = true, example = "1", description = "参见 MenuTypeEnum 枚举类")
private Integer type;
}

View File

@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 菜单更新 Request VO")
@Schema(title = "管理后台 - 菜单更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class MenuUpdateReqVO extends MenuBaseVO {
@ApiModelProperty(value = "菜单编号", required = true, example = "1024")
@Schema(title = "菜单编号", required = true, example = "1024")
@NotNull(message = "菜单编号不能为空")
private Long id;

View File

@ -1,27 +1,26 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Collections;
import java.util.Set;
@ApiModel("管理后台 - 赋予角色数据权限 Request VO")
@Schema(title = "管理后台 - 赋予角色数据权限 Request VO")
@Data
public class PermissionAssignRoleDataScopeReqVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1")
@Schema(title = "角色编号", required = true, example = "1")
@NotNull(message = "角色编号不能为空")
private Long roleId;
@ApiModelProperty(value = "数据范围", required = true, example = "1", notes = "参见 DataScopeEnum 枚举类")
@Schema(title = "数据范围", required = true, example = "1", description = "参见 DataScopeEnum 枚举类")
@NotNull(message = "数据范围不能为空")
// TODO 这里要多一个枚举校验
private Integer dataScope;
@ApiModelProperty(value = "部门编号列表", example = "1,3,5", notes = "只有范围类型为 DEPT_CUSTOM 时,该字段才需要")
@Schema(title = "部门编号列表", example = "1,3,5", description = "只有范围类型为 DEPT_CUSTOM 时,该字段才需要")
private Set<Long> dataScopeDeptIds = Collections.emptySet(); // 兜底
}

View File

@ -1,22 +1,21 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Collections;
import java.util.Set;
@ApiModel("管理后台 - 赋予角色菜单 Request VO")
@Schema(title = "管理后台 - 赋予角色菜单 Request VO")
@Data
public class PermissionAssignRoleMenuReqVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1")
@Schema(title = "角色编号", required = true, example = "1")
@NotNull(message = "角色编号不能为空")
private Long roleId;
@ApiModelProperty(value = "菜单编号列表", example = "1,3,5")
@Schema(title = "菜单编号列表", example = "1,3,5")
private Set<Long> menuIds = Collections.emptySet(); // 兜底
}

View File

@ -1,22 +1,21 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Collections;
import java.util.Set;
@ApiModel("管理后台 - 赋予用户角色 Request VO")
@Schema(title = "管理后台 - 赋予用户角色 Request VO")
@Data
public class PermissionAssignUserRoleReqVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1")
@Schema(title = "用户编号", required = true, example = "1")
@NotNull(message = "用户编号不能为空")
private Long userId;
@ApiModelProperty(value = "角色编号列表", example = "1,3,5")
@Schema(title = "角色编号列表", example = "1,3,5")
private Set<Long> roleIds = Collections.emptySet(); // 兜底
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -14,21 +14,21 @@ import javax.validation.constraints.Size;
@Data
public class RoleBaseVO {
@ApiModelProperty(value = "角色名称", required = true, example = "管理员")
@Schema(title = "角色名称", required = true, example = "管理员")
@NotBlank(message = "角色名称不能为空")
@Size(max = 30, message = "角色名称长度不能超过30个字符")
private String name;
@NotBlank(message = "角色标志不能为空")
@Size(max = 100, message = "角色标志长度不能超过100个字符")
@ApiModelProperty(value = "角色编码", required = true, example = "ADMIN")
@Schema(title = "角色编码", required = true, example = "ADMIN")
private String code;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
@Schema(title = "显示顺序不能为空", required = true, example = "1024")
@NotNull(message = "显示顺序不能为空")
private Integer sort;
@ApiModelProperty(value = "备注", example = "我是一个角色")
@Schema(title = "备注", example = "我是一个角色")
private String remark;
}

View File

@ -1,10 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("管理后台 - 角色创建 Request VO")
@Schema(title = "管理后台 - 角色创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class RoleCreateReqVO extends RoleBaseVO {

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -9,20 +8,20 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 角色分页 Request VO")
@Schema(title = "管理后台 - 角色分页 Request VO")
@Data
public class RoleExportReqVO {
@ApiModelProperty(value = "角色名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "角色名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "角色标识", example = "yudao", notes = "模糊匹配")
@Schema(title = "角色标识", example = "yudao", description = "模糊匹配")
private String code;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
@ -11,21 +10,21 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 角色分页 Request VO")
@Schema(title = "管理后台 - 角色分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class RolePageReqVO extends PageParam {
@ApiModelProperty(value = "角色名称", example = "芋道", notes = "模糊匹配")
@Schema(title = "角色名称", example = "芋道", description = "模糊匹配")
private String name;
@ApiModelProperty(value = "角色标识", example = "yudao", notes = "模糊匹配")
@Schema(title = "角色标识", example = "yudao", description = "模糊匹配")
private String code;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "展示状态", example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@Schema(title = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -10,29 +9,29 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.Set;
@ApiModel("管理后台 - 角色信息 Response VO")
@Schema(title = "管理后台 - 角色信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RoleRespVO extends RoleBaseVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1")
@Schema(title = "角色编号", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "数据范围", required = true, example = "1", notes = "参见 DataScopeEnum 枚举类")
@Schema(title = "数据范围", required = true, example = "1", description = "参见 DataScopeEnum 枚举类")
private Integer dataScope;
@ApiModelProperty(value = "数据范围(指定部门数组)", example = "1")
@Schema(title = "数据范围(指定部门数组)", example = "1")
private Set<Long> dataScopeDeptIds;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类")
@Schema(title = "状态", required = true, example = "1", description = "参见 CommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "参见 RoleTypeEnum 枚举类")
@Schema(title = "角色类型", required = true, example = "1", description = "参见 RoleTypeEnum 枚举类")
private Integer type;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
@Schema(title = "创建时间", required = true, example = "时间戳格式")
private LocalDateTime createTime;
}

View File

@ -1,21 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("管理后台 - 角色精简信息 Response VO")
@Schema(title = "管理后台 - 角色精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RoleSimpleRespVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1024")
@Schema(title = "角色编号", required = true, example = "1024")
private Long id;
@ApiModelProperty(value = "角色名称", required = true, example = "芋道")
@Schema(title = "角色名称", required = true, example = "芋道")
private String name;
}

View File

@ -1,18 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 角色更新 Request VO")
@Schema(title = "管理后台 - 角色更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class RoleUpdateReqVO extends RoleBaseVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1024")
@Schema(title = "角色编号", required = true, example = "1024")
@NotNull(message = "角色编号不能为空")
private Long id;

View File

@ -2,21 +2,20 @@ package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.validation.InEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ApiModel("管理后台 - 角色更新状态 Request VO")
@Schema(title = "管理后台 - 角色更新状态 Request VO")
@Data
public class RoleUpdateStatusReqVO {
@ApiModelProperty(value = "角色编号", required = true, example = "1024")
@Schema(title = "角色编号", required = true, example = "1024")
@NotNull(message = "角色编号不能为空")
private Long id;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
@Schema(title = "状态", required = true, example = "1", description = "见 CommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
@InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status;

Some files were not shown because too many files have changed in this diff Show More