diff --git a/pom.xml b/pom.xml index 5b09dea4ae1b1e40bd20d764e5b072a3c1fb6365..832f50eed76ccdf6a0ad30c0537fa723e684c5ff 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.15 + 3.2.5 @@ -27,16 +27,18 @@ UTF-8 UTF-8 - 1.8 + 17 1.2.13 - 3.5.3.2 + 3.5.5 + 3.0.3 4.0 11.2.0.3 8.1.2.79 5.8.22 1.15.3 - 2.0.9 + 4.3.0 1.18.24 + 4.0.1 @@ -108,6 +110,11 @@ mybatis-plus-boot-starter ${mybatisplus.version} + + org.mybatis + mybatis-spring + ${mybatis.spring} + cn.hutool hutool-all @@ -120,7 +127,7 @@ com.github.xiaoymin - knife4j-spring-boot-starter + knife4j-openapi3-jakarta-spring-boot-starter ${knife4j.version} @@ -128,6 +135,11 @@ lombok ${lombok.version} + + + + + @@ -154,4 +166,4 @@ - \ No newline at end of file + diff --git a/renren-admin/pom.xml b/renren-admin/pom.xml index 17e5e1d0a9354da26470381cc3dcd51d53266b4d..68a6a81fded147b7deeb845164865ad643dbd0df 100644 --- a/renren-admin/pom.xml +++ b/renren-admin/pom.xml @@ -47,14 +47,40 @@ - org.apache.shiro - shiro-core - ${shiro.version} + org.apache.shiro + shiro-spring + jakarta + ${shiro.version} + + + + org.apache.shiro + shiro-core + + + org.apache.shiro + shiro-web + + + - org.apache.shiro - shiro-spring - ${shiro.version} + org.apache.shiro + shiro-core + jakarta + ${shiro.version} + + + org.apache.shiro + shiro-web + jakarta + ${shiro.version} + + + org.apache.shiro + shiro-core + + com.github.whvcse @@ -110,4 +136,4 @@ - \ No newline at end of file + diff --git a/renren-admin/src/main/java/io/renren/common/aspect/LogOperationAspect.java b/renren-admin/src/main/java/io/renren/common/aspect/LogOperationAspect.java index ee01f136810d6d41afa939b218b11a74cf975665..705009ce2bbfa541610fe5c20e2126a97c284d44 100644 --- a/renren-admin/src/main/java/io/renren/common/aspect/LogOperationAspect.java +++ b/renren-admin/src/main/java/io/renren/common/aspect/LogOperationAspect.java @@ -17,6 +17,7 @@ import io.renren.modules.log.enums.OperationStatusEnum; import io.renren.modules.log.service.SysLogOperationService; import io.renren.modules.security.user.SecurityUser; import io.renren.modules.security.user.UserDetail; +import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -26,7 +27,6 @@ import org.aspectj.lang.reflect.MethodSignature; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; -import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; /** @@ -107,4 +107,4 @@ public class LogOperationAspect { //保存到DB sysLogOperationService.save(log); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/common/config/SwaggerConfig.java b/renren-admin/src/main/java/io/renren/common/config/SwaggerConfig.java index 232f57f0b0942147b0c35b92b590bf882352ea58..283d643cee21db7a9d668a8d814d11f4ad5f6ba5 100644 --- a/renren-admin/src/main/java/io/renren/common/config/SwaggerConfig.java +++ b/renren-admin/src/main/java/io/renren/common/config/SwaggerConfig.java @@ -8,20 +8,12 @@ package io.renren.common.config; -import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver; import io.renren.common.constant.Constant; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; import java.util.ArrayList; import java.util.List; @@ -32,41 +24,27 @@ import java.util.List; * @author Mark sunlightcs@gmail.com */ @Configuration -@EnableSwagger2WebMvc -@AllArgsConstructor public class SwaggerConfig { - private final OpenApiExtensionResolver openApiExtensionResolver; - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //加了ApiOperation注解的类,生成接口文档 - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - //包下的类,生成接口文档 - //.apis(RequestHandlerSelectors.basePackage("io.renren.modules.job.controller")) - .paths(PathSelectors.any()) - .build() - .extensions(openApiExtensionResolver.buildExtensions("Renren")) - .directModelSubstitute(java.util.Date.class, String.class) - .securitySchemes(security()); + public OpenAPI createRestApi() { + return new OpenAPI() + .info(apiInfo()) + .security(security()); } - private ApiInfo apiInfo() { - return new ApiInfoBuilder() + private Info apiInfo() { + return new Info() .title("人人开源") .description("renren-admin文档") - .termsOfServiceUrl("https://www.renren.io") - .version("5.x") - .build(); + .version("5.x"); } - private List security() { - ApiKey key = new ApiKey(Constant.TOKEN_HEADER, Constant.TOKEN_HEADER, "header"); + private List security() { + SecurityRequirement key = new SecurityRequirement(); + key.addList(Constant.TOKEN_HEADER, Constant.TOKEN_HEADER); - List list = new ArrayList<>(); + List list = new ArrayList<>(); list.add(key); return list; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/common/exception/RenExceptionHandler.java b/renren-admin/src/main/java/io/renren/common/exception/RenExceptionHandler.java index 134baa4429d9bf6e70f6ef7706f9716f9f31bc33..6bcc92e99586bf08e75fb809eecb18b5ac490de7 100644 --- a/renren-admin/src/main/java/io/renren/common/exception/RenExceptionHandler.java +++ b/renren-admin/src/main/java/io/renren/common/exception/RenExceptionHandler.java @@ -15,6 +15,7 @@ import io.renren.common.utils.JsonUtils; import io.renren.common.utils.Result; import io.renren.modules.log.entity.SysLogErrorEntity; import io.renren.modules.log.service.SysLogErrorService; +import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DuplicateKeyException; @@ -22,7 +23,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; -import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -89,4 +89,4 @@ public class RenExceptionHandler { //保存 sysLogErrorService.save(log); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/common/utils/ExcelUtils.java b/renren-admin/src/main/java/io/renren/common/utils/ExcelUtils.java index 41f0b970e3e5b7306e31d8191f0797f6aa62aed8..ada0a28cbc4f7fa32bb75650df01dea16b78d98d 100644 --- a/renren-admin/src/main/java/io/renren/common/utils/ExcelUtils.java +++ b/renren-admin/src/main/java/io/renren/common/utils/ExcelUtils.java @@ -12,9 +12,9 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.converters.longconverter.LongStringConverter; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.BeanUtils; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; diff --git a/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobController.java b/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobController.java index 6d69ab312198c18e67ebff6dca9c3c194a3be215..f52e8b821de64e10515730b5174841496f32796a 100644 --- a/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobController.java +++ b/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobController.java @@ -18,14 +18,14 @@ import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.job.dto.ScheduleJobDTO; import io.renren.modules.job.service.ScheduleJobService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -36,29 +36,29 @@ import java.util.Map; */ @RestController @RequestMapping("/sys/schedule") -@Api(tags = "定时任务") +@Tag(name = "定时任务") @AllArgsConstructor public class ScheduleJobController { private final ScheduleJobService scheduleJobService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "beanName", value = "beanName", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "beanName", description = "beanName", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:schedule:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = scheduleJobService.page(params); return new Result>().ok(page); } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:schedule:info") public Result info(@PathVariable("id") Long id) { ScheduleJobDTO schedule = scheduleJobService.get(id); @@ -67,7 +67,7 @@ public class ScheduleJobController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:schedule:save") public Result save(@RequestBody ScheduleJobDTO dto) { @@ -79,7 +79,7 @@ public class ScheduleJobController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:schedule:update") public Result update(@RequestBody ScheduleJobDTO dto) { @@ -91,7 +91,7 @@ public class ScheduleJobController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:schedule:delete") public Result delete(@RequestBody Long[] ids) { @@ -101,7 +101,7 @@ public class ScheduleJobController { } @PutMapping("/run") - @ApiOperation("立即执行") + @Operation(summary = "立即执行") @LogOperation("立即执行") @RequiresPermissions("sys:schedule:run") public Result run(@RequestBody Long[] ids) { @@ -111,7 +111,7 @@ public class ScheduleJobController { } @PutMapping("/pause") - @ApiOperation("暂停") + @Operation(summary = "暂停") @LogOperation("暂停") @RequiresPermissions("sys:schedule:pause") public Result pause(@RequestBody Long[] ids) { @@ -121,7 +121,7 @@ public class ScheduleJobController { } @PutMapping("/resume") - @ApiOperation("恢复") + @Operation(summary = "恢复") @LogOperation("恢复") @RequiresPermissions("sys:schedule:resume") public Result resume(@RequestBody Long[] ids) { @@ -130,4 +130,4 @@ public class ScheduleJobController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobLogController.java b/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobLogController.java index b506be9d0fbbd34d8734c7c8847b7b39760b0ac0..d97ea4e0637cd3bdddc412906bb4c18fe883e5be 100644 --- a/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobLogController.java +++ b/renren-admin/src/main/java/io/renren/modules/job/controller/ScheduleJobLogController.java @@ -13,14 +13,14 @@ import io.renren.common.page.PageData; import io.renren.common.utils.Result; import io.renren.modules.job.dto.ScheduleJobLogDTO; import io.renren.modules.job.service.ScheduleJobLogService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -31,33 +31,33 @@ import java.util.Map; */ @RestController @RequestMapping("/sys/scheduleLog") -@Api(tags = "定时任务日志") +@Tag(name = "定时任务日志") @AllArgsConstructor public class ScheduleJobLogController { private final ScheduleJobLogService scheduleJobLogService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "jobId", value = "jobId", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "jobId", description = "jobId", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:schedule:log") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = scheduleJobLogService.page(params); return new Result>().ok(page); } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:schedule:log") public Result info(@PathVariable("id") Long id) { ScheduleJobLogDTO log = scheduleJobLogService.get(id); return new Result().ok(log); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobDTO.java b/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobDTO.java index 7ca4a225332c11a34e574530fa744db7cdf15c31..4fc1334144f840895149b49e468d1be651b8d0f8 100644 --- a/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobDTO.java @@ -12,14 +12,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -30,34 +29,34 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "定时任务") +@Schema(title = "定时任务") public class ScheduleJobDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "spring bean名称") + @Schema(title = "spring bean名称") @NotBlank(message = "{schedule.bean.require}", groups = DefaultGroup.class) - private String beanName; + private String beantitle; - @ApiModelProperty(value = "参数") + @Schema(title = "参数") private String params; - @ApiModelProperty(value = "cron表达式") + @Schema(title = "cron表达式") @NotBlank(message = "{schedule.cron.require}", groups = DefaultGroup.class) private String cronExpression; - @ApiModelProperty(value = "任务状态 0:暂停 1:正常") + @Schema(title = "任务状态 0:暂停 1:正常") @Range(min=0, max=1, message = "{schedule.status.range}", groups = DefaultGroup.class) private Integer status; - @ApiModelProperty(value = "备注") + @Schema(title = "备注") private String remark; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; diff --git a/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobLogDTO.java b/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobLogDTO.java index 0a2459af5aaa3070428af583dd7b56acb439b389..e5f1b6ed86d6903f8fd1f44c530f6b1bcd42f424 100644 --- a/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobLogDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/job/dto/ScheduleJobLogDTO.java @@ -8,8 +8,7 @@ package io.renren.modules.job.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -22,32 +21,32 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "定时任务日志") +@Schema(title = "定时任务日志") public class ScheduleJobLogDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") private Long id; - @ApiModelProperty(value = "任务id") + @Schema(title = "任务id") private Long jobId; - @ApiModelProperty(value = "spring bean名称") - private String beanName; + @Schema(title = "spring bean名称") + private String beantitle; - @ApiModelProperty(value = "参数") + @Schema(title = "参数") private String params; - @ApiModelProperty(value = "任务状态 0:失败 1:成功") + @Schema(title = "任务状态 0:失败 1:成功") private Integer status; - @ApiModelProperty(value = "失败信息") + @Schema(title = "失败信息") private String error; - @ApiModelProperty(value = "耗时(单位:毫秒)") + @Schema(title = "耗时(单位:毫秒)") private Integer times; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") private Date createDate; } diff --git a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogErrorController.java b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogErrorController.java index 5beadde873574e2b554099a02d8792607ff398ae..e02266be93dc1a5234d3d700b499df015f9b5e2f 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogErrorController.java +++ b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogErrorController.java @@ -16,19 +16,19 @@ import io.renren.common.utils.Result; import io.renren.modules.log.dto.SysLogErrorDTO; import io.renren.modules.log.excel.SysLogErrorExcel; import io.renren.modules.log.service.SysLogErrorService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -41,34 +41,34 @@ import java.util.Map; */ @RestController @RequestMapping("sys/log/error") -@Api(tags = "异常日志") +@Tag(name = "异常日志") @AllArgsConstructor public class SysLogErrorController { private final SysLogErrorService sysLogErrorService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:log:error") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysLogErrorService.page(params); return new Result>().ok(page); } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") @RequiresPermissions("sys:log:error") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List list = sysLogErrorService.list(params); ExcelUtils.exportExcelToTarget(response, null, "异常日志", list, SysLogErrorExcel.class); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogLoginController.java b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogLoginController.java index 51506b59b5c2a1e88ab7d6c327405669309eb454..b7dd76d8a6c01dc62415e60dc62c26ecd4a8a320 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogLoginController.java +++ b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogLoginController.java @@ -16,19 +16,19 @@ import io.renren.common.utils.Result; import io.renren.modules.log.dto.SysLogLoginDTO; import io.renren.modules.log.excel.SysLogLoginExcel; import io.renren.modules.log.service.SysLogLoginService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -41,41 +41,41 @@ import java.util.Map; */ @RestController @RequestMapping("sys/log/login") -@Api(tags = "登录日志") +@Tag(name = "登录日志") @AllArgsConstructor public class SysLogLoginController { private final SysLogLoginService sysLogLoginService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "status", value = "状态 0:失败 1:成功 2:账号已锁定", paramType = "query", dataType = "int"), - @ApiImplicitParam(name = "creatorName", value = "用户名", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "status", description = "状态 0:失败 1:成功 2:账号已锁定", in = ParameterIn.QUERY, ref = "int"), + @Parameter(name = "creatorName", description = "用户名", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:log:login") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysLogLoginService.page(params); return new Result>().ok(page); } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") - @ApiImplicitParams({ - @ApiImplicitParam(name = "status", value = "状态 0:失败 1:成功 2:账号已锁定", paramType = "query", dataType = "int"), - @ApiImplicitParam(name = "creatorName", value = "用户名", paramType = "query", dataType = "String") + @Parameters({ + @Parameter(name = "status", description = "状态 0:失败 1:成功 2:账号已锁定", in = ParameterIn.QUERY, ref = "int"), + @Parameter(name = "creatorName", description = "用户名", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:log:login") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List list = sysLogLoginService.list(params); ExcelUtils.exportExcelToTarget(response, null, "登录日志", list, SysLogLoginExcel.class); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogOperationController.java b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogOperationController.java index 1c5f77e33ed0415be3a381485e8807ef926999e0..eb9c15f7e575376e15bb16ca8d66b431fae5453f 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogOperationController.java +++ b/renren-admin/src/main/java/io/renren/modules/log/controller/SysLogOperationController.java @@ -16,19 +16,19 @@ import io.renren.common.utils.Result; import io.renren.modules.log.dto.SysLogOperationDTO; import io.renren.modules.log.excel.SysLogOperationExcel; import io.renren.modules.log.service.SysLogOperationService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -41,35 +41,35 @@ import java.util.Map; */ @RestController @RequestMapping("sys/log/operation") -@Api(tags = "操作日志") +@Tag(name = "操作日志") @AllArgsConstructor public class SysLogOperationController { private final SysLogOperationService sysLogOperationService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "status", value = "状态 0:失败 1:成功", paramType = "query", dataType = "int") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "status", description = "状态 0:失败 1:成功", in = ParameterIn.QUERY, ref = "int") }) @RequiresPermissions("sys:log:operation") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysLogOperationService.page(params); return new Result>().ok(page); } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") @RequiresPermissions("sys:log:operation") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List list = sysLogOperationService.list(params); ExcelUtils.exportExcelToTarget(response, null, "操作日志", list, SysLogOperationExcel.class); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogErrorDTO.java b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogErrorDTO.java index 7df2a4c09f351dda0deb984ef2bad3a0572e2520..8b503b1e787443459ed8d13cfc6fd1c82b0fcd7c 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogErrorDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogErrorDTO.java @@ -8,8 +8,7 @@ package io.renren.modules.log.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -22,25 +21,25 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "异常日志") +@Schema(title = "异常日志") public class SysLogErrorDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") private Long id; - @ApiModelProperty(value = "请求URI") + @Schema(title = "请求URI") private String requestUri; - @ApiModelProperty(value = "请求方式") + @Schema(title = "请求方式") private String requestMethod; - @ApiModelProperty(value = "请求参数") + @Schema(title = "请求参数") private String requestParams; - @ApiModelProperty(value = "用户代理") + @Schema(title = "用户代理") private String userAgent; - @ApiModelProperty(value = "操作IP") + @Schema(title = "操作IP") private String ip; - @ApiModelProperty(value = "异常信息") + @Schema(title = "异常信息") private String errorInfo; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") private Date createDate; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogLoginDTO.java b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogLoginDTO.java index c638d60910caac82a5752dd8272dbaad66ea3ea6..565c79415336ee949d3d3b9a102744a56cc1d5ee 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogLoginDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogLoginDTO.java @@ -8,8 +8,7 @@ package io.renren.modules.log.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -22,29 +21,29 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "登录日志") +@Schema(title = "登录日志") public class SysLogLoginDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") private Long id; - @ApiModelProperty(value = "用户操作 0:用户登录 1:用户退出") + @Schema(title = "用户操作 0:用户登录 1:用户退出") private Integer operation; - @ApiModelProperty(value = "状态 0:失败 1:成功 2:账号已锁定") + @Schema(title = "状态 0:失败 1:成功 2:账号已锁定") private Integer status; - @ApiModelProperty(value = "用户代理") + @Schema(title = "用户代理") private String userAgent; - @ApiModelProperty(value = "操作IP") + @Schema(title = "操作IP") private String ip; - @ApiModelProperty(value = "用户名") - private String creatorName; + @Schema(title = "用户名") + private String creatortitle; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") private Date createDate; } diff --git a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogOperationDTO.java b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogOperationDTO.java index 133b3c4d114b8220f7f291a4a16bd2ddd38c656b..f9967fbab514468f21cad3ed516d6bd78140e251 100644 --- a/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogOperationDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/log/dto/SysLogOperationDTO.java @@ -8,8 +8,7 @@ package io.renren.modules.log.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -22,41 +21,41 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "操作日志") +@Schema(title = "操作日志") public class SysLogOperationDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") private Long id; - @ApiModelProperty(value = "用户操作") + @Schema(title = "用户操作") private String operation; - @ApiModelProperty(value = "请求URI") + @Schema(title = "请求URI") private String requestUri; - @ApiModelProperty(value = "请求方式") + @Schema(title = "请求方式") private String requestMethod; - @ApiModelProperty(value = "请求参数") + @Schema(title = "请求参数") private String requestParams; - @ApiModelProperty(value = "请求时长(毫秒)") + @Schema(title = "请求时长(毫秒)") private Integer requestTime; - @ApiModelProperty(value = "用户代理") + @Schema(title = "用户代理") private String userAgent; - @ApiModelProperty(value = "操作IP") + @Schema(title = "操作IP") private String ip; - @ApiModelProperty(value = "状态 0:失败 1:成功") + @Schema(title = "状态 0:失败 1:成功") private Integer status; - @ApiModelProperty(value = "用户名") - private String creatorName; + @Schema(title = "用户名") + private String creatortitle; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") private Date createDate; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/oss/cloud/CloudStorageConfig.java b/renren-admin/src/main/java/io/renren/modules/oss/cloud/CloudStorageConfig.java index 880f0d37ad36d94ca9033d79a2f015e320f83f97..0fe557ff443005247f011d19eb44deb423dca94a 100644 --- a/renren-admin/src/main/java/io/renren/modules/oss/cloud/CloudStorageConfig.java +++ b/renren-admin/src/main/java/io/renren/modules/oss/cloud/CloudStorageConfig.java @@ -11,14 +11,13 @@ package io.renren.modules.oss.cloud; import io.renren.common.validator.group.AliyunGroup; import io.renren.common.validator.group.QcloudGroup; import io.renren.common.validator.group.QiniuGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import org.hibernate.validator.constraints.Range; import org.hibernate.validator.constraints.URL; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -27,84 +26,84 @@ import java.io.Serializable; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "云存储配置信息") +@Schema(title = "云存储配置信息") public class CloudStorageConfig implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "类型 1:七牛 2:阿里云 3:腾讯云 ") + @Schema(title = "类型 1:七牛 2:阿里云 3:腾讯云 ") @Range(min = 1, max = 6, message = "{oss.type.range}") private Integer type; - @ApiModelProperty(value = "七牛绑定的域名") + @Schema(title = "七牛绑定的域名") @NotBlank(message = "{qiniu.domain.require}", groups = QiniuGroup.class) @URL(message = "{qiniu.domain.url}", groups = QiniuGroup.class) private String qiniuDomain; - @ApiModelProperty(value = "七牛路径前缀") + @Schema(title = "七牛路径前缀") private String qiniuPrefix; - @ApiModelProperty(value = "七牛ACCESS_KEY") + @Schema(title = "七牛ACCESS_KEY") @NotBlank(message = "{qiniu.accesskey.require}", groups = QiniuGroup.class) private String qiniuAccessKey; - @ApiModelProperty(value = "七牛SECRET_KEY") + @Schema(title = "七牛SECRET_KEY") @NotBlank(message = "{qiniu.secretkey.require}", groups = QiniuGroup.class) private String qiniuSecretKey; - @ApiModelProperty(value = "七牛存储空间名") - @NotBlank(message = "{qiniu.bucketname.require}", groups = QiniuGroup.class) + @Schema(title = "七牛存储空间名") + @NotBlank(message = "{qiniu.bucketName.require}", groups = QiniuGroup.class) private String qiniuBucketName; - @ApiModelProperty(value = "阿里云绑定的域名") + @Schema(title = "阿里云绑定的域名") @NotBlank(message = "{aliyun.domain.require}", groups = AliyunGroup.class) @URL(message = "{aliyun.domain.url}", groups = AliyunGroup.class) private String aliyunDomain; - @ApiModelProperty(value = "阿里云路径前缀") + @Schema(title = "阿里云路径前缀") private String aliyunPrefix; - @ApiModelProperty(value = "阿里云EndPoint") + @Schema(title = "阿里云EndPoint") @NotBlank(message = "{aliyun.endPoint.require}", groups = AliyunGroup.class) private String aliyunEndPoint; - @ApiModelProperty(value = "阿里云AccessKeyId") + @Schema(title = "阿里云AccessKeyId") @NotBlank(message = "{aliyun.accesskeyid.require}", groups = AliyunGroup.class) private String aliyunAccessKeyId; - @ApiModelProperty(value = "阿里云AccessKeySecret") + @Schema(title = "阿里云AccessKeySecret") @NotBlank(message = "{aliyun.accesskeysecret.require}", groups = AliyunGroup.class) private String aliyunAccessKeySecret; - @ApiModelProperty(value = "阿里云BucketName") - @NotBlank(message = "{aliyun.bucketname.require}", groups = AliyunGroup.class) + @Schema(title = "阿里云BucketName") + @NotBlank(message = "{aliyun.bucketName.require}", groups = AliyunGroup.class) private String aliyunBucketName; - @ApiModelProperty(value = "腾讯云绑定的域名") + @Schema(title = "腾讯云绑定的域名") @NotBlank(message = "{qcloud.domain.require}", groups = QcloudGroup.class) @URL(message = "{qcloud.domain.url}", groups = QcloudGroup.class) private String qcloudDomain; - @ApiModelProperty(value = "腾讯云路径前缀") + @Schema(title = "腾讯云路径前缀") private String qcloudPrefix; - @ApiModelProperty(value = "腾讯云AppId") + @Schema(title = "腾讯云AppId") @NotNull(message = "{qcloud.appid.require}", groups = QcloudGroup.class) private Integer qcloudAppId; - @ApiModelProperty(value = "腾讯云SecretId") + @Schema(title = "腾讯云SecretId") @NotBlank(message = "{qcloud.secretId.require}", groups = QcloudGroup.class) private String qcloudSecretId; - @ApiModelProperty(value = "腾讯云SecretKey") + @Schema(title = "腾讯云SecretKey") @NotBlank(message = "{qcloud.secretkey.require}", groups = QcloudGroup.class) private String qcloudSecretKey; - @ApiModelProperty(value = "腾讯云BucketName") - @NotBlank(message = "{qcloud.bucketname.require}", groups = QcloudGroup.class) + @Schema(title = "腾讯云BucketName") + @NotBlank(message = "{qcloud.bucketName.require}", groups = QcloudGroup.class) private String qcloudBucketName; - @ApiModelProperty(value = "腾讯云COS所属地区") + @Schema(title = "腾讯云COS所属地区") @NotBlank(message = "{qcloud.region.require}", groups = QcloudGroup.class) private String qcloudRegion; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/oss/controller/SysOssController.java b/renren-admin/src/main/java/io/renren/modules/oss/controller/SysOssController.java index 04a3cef3a83dbc913d351aad926e3e8185c16e78..b08cd23530491515078c9966ca40b8420ef73b4a 100644 --- a/renren-admin/src/main/java/io/renren/modules/oss/controller/SysOssController.java +++ b/renren-admin/src/main/java/io/renren/modules/oss/controller/SysOssController.java @@ -24,13 +24,13 @@ import io.renren.modules.oss.cloud.OSSFactory; import io.renren.modules.oss.entity.SysOssEntity; import io.renren.modules.oss.service.SysOssService; import io.renren.modules.sys.service.SysParamsService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import springfox.documentation.annotations.ApiIgnore; import java.util.Arrays; import java.util.Date; @@ -44,7 +44,7 @@ import java.util.Map; */ @RestController @RequestMapping("sys/oss") -@Api(tags = "文件上传") +@Tag(name = "文件上传") @AllArgsConstructor public class SysOssController { private final SysOssService sysOssService; @@ -53,16 +53,16 @@ public class SysOssController { private final static String KEY = Constant.CLOUD_STORAGE_CONFIG_KEY; @GetMapping("page") - @ApiOperation(value = "分页") + @Operation(summary = "分页") @RequiresPermissions("sys:oss:all") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysOssService.page(params); return new Result>().ok(page); } @GetMapping("info") - @ApiOperation(value = "云存储配置信息") + @Operation(summary = "云存储配置信息") @RequiresPermissions("sys:oss:all") public Result info() { CloudStorageConfig config = sysParamsService.getValueObject(KEY, CloudStorageConfig.class); @@ -71,7 +71,7 @@ public class SysOssController { } @PostMapping - @ApiOperation(value = "保存云存储配置信息") + @Operation(summary = "保存云存储配置信息") @LogOperation("保存云存储配置信息") @RequiresPermissions("sys:oss:all") public Result saveConfig(@RequestBody CloudStorageConfig config) { @@ -95,7 +95,7 @@ public class SysOssController { } @PostMapping("upload") - @ApiOperation(value = "上传文件") + @Operation(summary = "上传文件") @RequiresPermissions("sys:oss:all") public Result> upload(@RequestParam("file") MultipartFile file) throws Exception { if (file.isEmpty()) { @@ -119,7 +119,7 @@ public class SysOssController { } @DeleteMapping - @ApiOperation(value = "删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:oss:all") public Result delete(@RequestBody Long[] ids) { @@ -128,4 +128,4 @@ public class SysOssController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/security/config/FilterConfig.java b/renren-admin/src/main/java/io/renren/modules/security/config/FilterConfig.java index 5915cb135d6a62ef3d6bbd9a87db6672bb640634..e2b7126a1398932b041e575d884ecb425f12420d 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/config/FilterConfig.java +++ b/renren-admin/src/main/java/io/renren/modules/security/config/FilterConfig.java @@ -9,12 +9,12 @@ package io.renren.modules.security.config; import io.renren.common.xss.XssFilter; +import jakarta.servlet.DispatcherType; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.DelegatingFilterProxy; -import javax.servlet.DispatcherType; /** * Filter配置 diff --git a/renren-admin/src/main/java/io/renren/modules/security/config/ShiroConfig.java b/renren-admin/src/main/java/io/renren/modules/security/config/ShiroConfig.java index 5387e5c1761d9dfeb94567a61bf45b5755746bb8..020dda8a8ac2a8b88f7bef76f482be528f9010f7 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/config/ShiroConfig.java +++ b/renren-admin/src/main/java/io/renren/modules/security/config/ShiroConfig.java @@ -19,8 +19,7 @@ import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - -import javax.servlet.Filter; +import jakarta.servlet.Filter; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -66,7 +65,7 @@ public class ShiroConfig { filterMap.put("/druid/**", "anon"); filterMap.put("/login", "anon"); filterMap.put("/swagger/**", "anon"); - filterMap.put("/v2/api-docs", "anon"); + filterMap.put("/v3/api-docs/**", "anon"); filterMap.put("/doc.html", "anon"); filterMap.put("/swagger-resources/**", "anon"); filterMap.put("/captcha", "anon"); @@ -89,4 +88,4 @@ public class ShiroConfig { advisor.setSecurityManager(securityManager); return advisor; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/security/controller/LoginController.java b/renren-admin/src/main/java/io/renren/modules/security/controller/LoginController.java index e12c30b3d0ccfcaf09519ebd59eb16ed1f5588f4..017b430aa580c2582ebca85efae090f3b34ad131 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/controller/LoginController.java +++ b/renren-admin/src/main/java/io/renren/modules/security/controller/LoginController.java @@ -27,9 +27,12 @@ import io.renren.modules.security.user.UserDetail; import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.enums.UserStatusEnum; import io.renren.modules.sys.service.SysUserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.GetMapping; @@ -37,8 +40,6 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Date; @@ -48,7 +49,7 @@ import java.util.Date; * @author Mark sunlightcs@gmail.com */ @RestController -@Api(tags = "登录管理") +@Tag(name = "登录管理") @AllArgsConstructor public class LoginController { private final SysUserService sysUserService; @@ -57,8 +58,8 @@ public class LoginController { private final SysLogLoginService sysLogLoginService; @GetMapping("captcha") - @ApiOperation(value = "验证码", produces = "application/octet-stream") - @ApiImplicitParam(paramType = "query", dataType = "string", name = "uuid", required = true) + @Operation(summary = "验证码") + @Parameter(in = ParameterIn.QUERY, ref = "string", name = "uuid", required = true) public void captcha(HttpServletResponse response, String uuid) throws IOException { //uuid不能为空 AssertUtils.isBlank(uuid, ErrorCode.IDENTIFIER_NOT_NULL); @@ -68,7 +69,7 @@ public class LoginController { } @PostMapping("login") - @ApiOperation(value = "登录") + @Operation(summary = "登录") public Result login(HttpServletRequest request, @RequestBody LoginDTO login) { //效验数据 ValidatorUtils.validateEntity(login); @@ -127,7 +128,7 @@ public class LoginController { } @PostMapping("logout") - @ApiOperation(value = "退出") + @Operation(summary = "退出") public Result logout(HttpServletRequest request) { UserDetail user = SecurityUser.getUser(); @@ -149,4 +150,4 @@ public class LoginController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/security/dto/LoginDTO.java b/renren-admin/src/main/java/io/renren/modules/security/dto/LoginDTO.java index 608fc9ba88ee2f5997b801d1deedbfb864bfa001..50422b3b6891d12bcb63a4d740973554cdc2a714 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/dto/LoginDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/security/dto/LoginDTO.java @@ -8,11 +8,10 @@ package io.renren.modules.security.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; /** @@ -21,24 +20,24 @@ import java.io.Serializable; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "登录表单") +@Schema(title = "登录表单") public class LoginDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "用户名", required = true) + @Schema(title = "用户名", required = true) @NotBlank(message="{sysuser.username.require}") private String username; - @ApiModelProperty(value = "密码") + @Schema(title = "密码") @NotBlank(message="{sysuser.password.require}") private String password; - @ApiModelProperty(value = "验证码") + @Schema(title = "验证码") @NotBlank(message="{sysuser.captcha.require}") private String captcha; - @ApiModelProperty(value = "唯一标识") + @Schema(title = "唯一标识") @NotBlank(message="{sysuser.uuid.require}") private String uuid; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/security/oauth2/Oauth2Filter.java b/renren-admin/src/main/java/io/renren/modules/security/oauth2/Oauth2Filter.java index 18beeb88c779d190d91989a059e99940b3d03854..f6015c2e55a153f81ad5d3548500360439d61bbb 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/oauth2/Oauth2Filter.java +++ b/renren-admin/src/main/java/io/renren/modules/security/oauth2/Oauth2Filter.java @@ -14,16 +14,16 @@ import io.renren.common.exception.ErrorCode; import io.renren.common.utils.HttpContextUtils; import io.renren.common.utils.JsonUtils; import io.renren.common.utils.Result; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.http.HttpStatus; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.web.filter.authc.AuthenticatingFilter; import org.springframework.web.bind.annotation.RequestMethod; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** @@ -109,4 +109,4 @@ public class Oauth2Filter extends AuthenticatingFilter { return token; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/security/service/CaptchaService.java b/renren-admin/src/main/java/io/renren/modules/security/service/CaptchaService.java index e660f75f14039ab8c54434c30df1998de79c74ac..07ef78dd9f43e6e6a98e756130786d3dd84ca788 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/service/CaptchaService.java +++ b/renren-admin/src/main/java/io/renren/modules/security/service/CaptchaService.java @@ -8,7 +8,8 @@ package io.renren.modules.security.service; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; + import java.io.IOException; /** diff --git a/renren-admin/src/main/java/io/renren/modules/security/service/impl/CaptchaServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/security/service/impl/CaptchaServiceImpl.java index 863a24e1402fd4c0244c095aa23148c7c2ce3326..9c60ad25ea10f7ea2b65272bacc5eb3360b34068 100644 --- a/renren-admin/src/main/java/io/renren/modules/security/service/impl/CaptchaServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/security/service/impl/CaptchaServiceImpl.java @@ -15,11 +15,11 @@ import com.wf.captcha.base.Captcha; import io.renren.common.redis.RedisKeys; import io.renren.common.redis.RedisUtils; import io.renren.modules.security.service.CaptchaService; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** @@ -96,4 +96,4 @@ public class CaptchaServiceImpl implements CaptchaService { } return captcha; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDeptController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDeptController.java index 8e26cd741441d2d5e3072998b285268a7f9c356e..d2320793328d94c2e4bb0ee5dd546022631176df 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDeptController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDeptController.java @@ -17,8 +17,8 @@ import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.sys.dto.SysDeptDTO; import io.renren.modules.sys.service.SysDeptService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; @@ -33,13 +33,13 @@ import java.util.List; */ @RestController @RequestMapping("/sys/dept") -@Api(tags = "部门管理") +@Tag(name = "部门管理") @AllArgsConstructor public class SysDeptController { private final SysDeptService sysDeptService; @GetMapping("list") - @ApiOperation("列表") + @Operation(summary = "列表") @RequiresPermissions("sys:dept:list") public Result> list() { List list = sysDeptService.list(new HashMap<>(1)); @@ -48,7 +48,7 @@ public class SysDeptController { } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:dept:info") public Result get(@PathVariable("id") Long id) { SysDeptDTO data = sysDeptService.get(id); @@ -57,7 +57,7 @@ public class SysDeptController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:dept:save") public Result save(@RequestBody SysDeptDTO dto) { @@ -70,7 +70,7 @@ public class SysDeptController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:dept:update") public Result update(@RequestBody SysDeptDTO dto) { @@ -83,7 +83,7 @@ public class SysDeptController { } @DeleteMapping("{id}") - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:dept:delete") public Result delete(@PathVariable("id") Long id) { @@ -95,4 +95,4 @@ public class SysDeptController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictDataController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictDataController.java index 960a310ff7a6039ed48e42882b7833c06afe10d1..40fd04c99ad051c98776f6757ed4e9db0b3a77d8 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictDataController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictDataController.java @@ -18,14 +18,14 @@ import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.sys.dto.SysDictDataDTO; import io.renren.modules.sys.service.SysDictDataService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -36,23 +36,23 @@ import java.util.Map; */ @RestController @RequestMapping("sys/dict/data") -@Api(tags = "字典数据") +@Tag(name = "字典数据") @AllArgsConstructor public class SysDictDataController { private final SysDictDataService sysDictDataService; @GetMapping("page") - @ApiOperation("字典数据") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "dictLabel", value = "字典标签", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "dictValue", value = "字典值", paramType = "query", dataType = "String") + @Operation(summary = "字典数据") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "dictLabel", description = "字典标签", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "dictValue", description = "字典值", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:dict:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { //字典类型 PageData page = sysDictDataService.page(params); @@ -60,7 +60,7 @@ public class SysDictDataController { } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:dict:info") public Result get(@PathVariable("id") Long id) { SysDictDataDTO data = sysDictDataService.get(id); @@ -69,7 +69,7 @@ public class SysDictDataController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:dict:save") public Result save(@RequestBody SysDictDataDTO dto) { @@ -82,7 +82,7 @@ public class SysDictDataController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:dict:update") public Result update(@RequestBody SysDictDataDTO dto) { @@ -95,7 +95,7 @@ public class SysDictDataController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:dict:delete") public Result delete(@RequestBody Long[] ids) { @@ -107,4 +107,4 @@ public class SysDictDataController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictTypeController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictTypeController.java index aa79db5df0a7f710f0df53c80d1238d1a77a1a06..beed4ffc79b49acd76fa2a99857f610352322e43 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictTypeController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysDictTypeController.java @@ -19,14 +19,14 @@ import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.sys.dto.SysDictTypeDTO; import io.renren.modules.sys.entity.DictType; import io.renren.modules.sys.service.SysDictTypeService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.Map; @@ -38,23 +38,23 @@ import java.util.Map; */ @RestController @RequestMapping("sys/dict/type") -@Api(tags = "字典类型") +@Tag(name = "字典类型") @AllArgsConstructor public class SysDictTypeController { private final SysDictTypeService sysDictTypeService; @GetMapping("page") - @ApiOperation("字典类型") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "dictType", value = "字典类型", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "dictName", value = "字典名称", paramType = "query", dataType = "String") + @Operation(summary = "字典类型") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "dictType", description = "字典类型", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "dictName", description = "字典名称", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:dict:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { //字典类型 PageData page = sysDictTypeService.page(params); @@ -62,7 +62,7 @@ public class SysDictTypeController { } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:dict:info") public Result get(@PathVariable("id") Long id) { SysDictTypeDTO data = sysDictTypeService.get(id); @@ -71,7 +71,7 @@ public class SysDictTypeController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:dict:save") public Result save(@RequestBody SysDictTypeDTO dto) { @@ -84,7 +84,7 @@ public class SysDictTypeController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:dict:update") public Result update(@RequestBody SysDictTypeDTO dto) { @@ -97,7 +97,7 @@ public class SysDictTypeController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:dict:delete") public Result delete(@RequestBody Long[] ids) { @@ -110,11 +110,11 @@ public class SysDictTypeController { } @GetMapping("all") - @ApiOperation("所有字典数据") + @Operation(summary = "所有字典数据") public Result> all() { List list = sysDictTypeService.getAllList(); return new Result>().ok(list); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysMenuController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysMenuController.java index 2bba23a54acf7a2d0451ea4d15ce4dfe87897d8a..3bb8ff0ff97e007e8145b03ede774af2ba49d5d5 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysMenuController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysMenuController.java @@ -20,9 +20,10 @@ import io.renren.modules.security.user.UserDetail; import io.renren.modules.sys.dto.SysMenuDTO; import io.renren.modules.sys.enums.MenuTypeEnum; import io.renren.modules.sys.service.SysMenuService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; @@ -37,14 +38,14 @@ import java.util.Set; */ @RestController @RequestMapping("/sys/menu") -@Api(tags = "菜单管理") +@Tag(name = "菜单管理") @AllArgsConstructor public class SysMenuController { private final SysMenuService sysMenuService; private final ShiroService shiroService; @GetMapping("nav") - @ApiOperation("导航") + @Operation(summary = "导航") public Result> nav() { UserDetail user = SecurityUser.getUser(); List list = sysMenuService.getUserMenuList(user, MenuTypeEnum.MENU.value()); @@ -53,7 +54,7 @@ public class SysMenuController { } @GetMapping("permissions") - @ApiOperation("权限标识") + @Operation(summary = "权限标识") public Result> permissions() { UserDetail user = SecurityUser.getUser(); Set set = shiroService.getUserPermissions(user); @@ -62,8 +63,8 @@ public class SysMenuController { } @GetMapping("list") - @ApiOperation("列表") - @ApiImplicitParam(name = "type", value = "菜单类型 0:菜单 1:按钮 null:全部", paramType = "query", dataType = "int") + @Operation(summary = "列表") + @Parameter(name = "type", description = "菜单类型 0:菜单 1:按钮 null:全部", in = ParameterIn.QUERY, ref = "int") @RequiresPermissions("sys:menu:list") public Result> list(Integer type) { List list = sysMenuService.getAllMenuList(type); @@ -72,7 +73,7 @@ public class SysMenuController { } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:menu:info") public Result get(@PathVariable("id") Long id) { SysMenuDTO data = sysMenuService.get(id); @@ -81,7 +82,7 @@ public class SysMenuController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:menu:save") public Result save(@RequestBody SysMenuDTO dto) { @@ -94,7 +95,7 @@ public class SysMenuController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:menu:update") public Result update(@RequestBody SysMenuDTO dto) { @@ -107,7 +108,7 @@ public class SysMenuController { } @DeleteMapping("{id}") - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:menu:delete") public Result delete(@PathVariable("id") Long id) { @@ -126,7 +127,7 @@ public class SysMenuController { } @GetMapping("select") - @ApiOperation("角色菜单权限") + @Operation(summary = "角色菜单权限") @RequiresPermissions("sys:menu:select") public Result> select() { UserDetail user = SecurityUser.getUser(); @@ -134,4 +135,4 @@ public class SysMenuController { return new Result>().ok(list); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysParamsController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysParamsController.java index 5a3cc5b2c4389d160270c7fa971c7c2450511d0a..eb13ece8be5fe76d49a187dc87ea31e43eea4d3e 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysParamsController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysParamsController.java @@ -21,16 +21,16 @@ import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.sys.dto.SysParamsDTO; import io.renren.modules.sys.excel.SysParamsExcel; import io.renren.modules.sys.service.SysParamsService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -43,29 +43,29 @@ import java.util.Map; */ @RestController @RequestMapping("sys/params") -@Api(tags = "参数管理") +@Tag(name = "参数管理") @AllArgsConstructor public class SysParamsController { private final SysParamsService sysParamsService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "paramCode", description = "参数编码", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:params:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysParamsService.page(params); return new Result>().ok(page); } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:params:info") public Result get(@PathVariable("id") Long id) { SysParamsDTO data = sysParamsService.get(id); @@ -74,7 +74,7 @@ public class SysParamsController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:params:save") public Result save(@RequestBody SysParamsDTO dto) { @@ -87,7 +87,7 @@ public class SysParamsController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:params:update") public Result update(@RequestBody SysParamsDTO dto) { @@ -100,7 +100,7 @@ public class SysParamsController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:params:delete") public Result delete(@RequestBody Long[] ids) { @@ -113,14 +113,14 @@ public class SysParamsController { } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") @RequiresPermissions("sys:params:export") - @ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType = "String") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + @Parameter(name = "paramCode", description = "参数编码", in = ParameterIn.QUERY, ref = "String") + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List list = sysParamsService.list(params); ExcelUtils.exportExcelToTarget(response, null, "参数管理", list, SysParamsExcel.class); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysRoleController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysRoleController.java index 297446d99bfa1c91e0b2b07021a199b8cc45c18b..a9d577653089ccf2258d0646245b71394d6fd092 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysRoleController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysRoleController.java @@ -21,14 +21,14 @@ import io.renren.modules.sys.dto.SysRoleDTO; import io.renren.modules.sys.service.SysRoleDataScopeService; import io.renren.modules.sys.service.SysRoleMenuService; import io.renren.modules.sys.service.SysRoleService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.HashMap; import java.util.List; @@ -41,7 +41,7 @@ import java.util.Map; */ @RestController @RequestMapping("/sys/role") -@Api(tags = "角色管理") +@Tag(name = "角色管理") @AllArgsConstructor public class SysRoleController { private final SysRoleService sysRoleService; @@ -49,23 +49,23 @@ public class SysRoleController { private final SysRoleDataScopeService sysRoleDataScopeService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "name", description = "角色名", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:role:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysRoleService.page(params); return new Result>().ok(page); } @GetMapping("list") - @ApiOperation("列表") + @Operation(summary = "列表") @RequiresPermissions("sys:role:list") public Result> list() { List data = sysRoleService.list(new HashMap<>(1)); @@ -74,7 +74,7 @@ public class SysRoleController { } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:role:info") public Result get(@PathVariable("id") Long id) { SysRoleDTO data = sysRoleService.get(id); @@ -91,7 +91,7 @@ public class SysRoleController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:role:save") public Result save(@RequestBody SysRoleDTO dto) { @@ -104,7 +104,7 @@ public class SysRoleController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:role:update") public Result update(@RequestBody SysRoleDTO dto) { @@ -117,7 +117,7 @@ public class SysRoleController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:role:delete") public Result delete(@RequestBody Long[] ids) { @@ -128,4 +128,4 @@ public class SysRoleController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysUserController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysUserController.java index 6e202eb21c0b97da27b8cdb6cf857313ef3f4b8e..25c20eb8de8b9e7a43f6b6d7d7d7c34f1b0633b6 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysUserController.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysUserController.java @@ -28,16 +28,16 @@ import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.excel.SysUserExcel; import io.renren.modules.sys.service.SysRoleUserService; import io.renren.modules.sys.service.SysUserService; -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.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -49,32 +49,32 @@ import java.util.Map; */ @RestController @RequestMapping("/sys/user") -@Api(tags = "用户管理") +@Tag(name = "用户管理") @AllArgsConstructor public class SysUserController { private final SysUserService sysUserService; private final SysRoleUserService sysRoleUserService; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "gender", value = "性别", paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY, required = true, ref = "int"), + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "username", description = "用户名", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "gender", description = "性别", in = ParameterIn.QUERY, ref = "String"), + @Parameter(name = "deptId", description = "部门ID", in = ParameterIn.QUERY, ref = "String") }) @RequiresPermissions("sys:user:page") - public Result> page(@ApiIgnore @RequestParam Map params) { + public Result> page(@Parameter(hidden = true) @RequestParam Map params) { PageData page = sysUserService.page(params); return new Result>().ok(page); } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("sys:user:info") public Result get(@PathVariable("id") Long id) { SysUserDTO data = sysUserService.get(id); @@ -87,14 +87,14 @@ public class SysUserController { } @GetMapping("info") - @ApiOperation("登录用户信息") + @Operation(summary = "登录用户信息") public Result info() { SysUserDTO data = ConvertUtils.sourceToTarget(SecurityUser.getUser(), SysUserDTO.class); return new Result().ok(data); } @PutMapping("password") - @ApiOperation("修改密码") + @Operation(summary = "修改密码") @LogOperation("修改密码") public Result password(@RequestBody PasswordDTO dto) { //效验数据 @@ -113,7 +113,7 @@ public class SysUserController { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("sys:user:save") public Result save(@RequestBody SysUserDTO dto) { @@ -126,7 +126,7 @@ public class SysUserController { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("sys:user:update") public Result update(@RequestBody SysUserDTO dto) { @@ -139,7 +139,7 @@ public class SysUserController { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("sys:user:delete") public Result delete(@RequestBody Long[] ids) { @@ -152,13 +152,13 @@ public class SysUserController { } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") @RequiresPermissions("sys:user:export") - @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType = "String") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + @Parameter(name = "username", description = "用户名", in = ParameterIn.QUERY, ref = "String") + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List list = sysUserService.list(params); ExcelUtils.exportExcelToTarget(response, null, "用户管理", list, SysUserExcel.class); } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/PasswordDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/PasswordDTO.java index bc3f79dea8718740a1585f51fef0582cd7c93054..f0cd07568a89d86bb137ddc35755212ef3c2ce25 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/PasswordDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/PasswordDTO.java @@ -8,11 +8,10 @@ package io.renren.modules.sys.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; /** @@ -22,16 +21,16 @@ import java.io.Serializable; * @since 1.0.0 */ @Data -@ApiModel(value = "修改密码") +@Schema(title = "修改密码") public class PasswordDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "原密码") + @Schema(title = "原密码") @NotBlank(message="{sysuser.password.require}") private String password; - @ApiModelProperty(value = "新密码") + @Schema(title = "新密码") @NotBlank(message="{sysuser.password.require}") private String newPassword; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDeptDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDeptDTO.java index e9f31660b1901faec5d3afad41434edba8b7a39c..879f6859ac5c33eedfcb2c67194a52e4f42672e2 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDeptDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDeptDTO.java @@ -13,13 +13,12 @@ import io.renren.common.utils.TreeNode; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -29,33 +28,33 @@ import java.util.Date; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@ApiModel(value = "部门管理") +@Schema(title = "部门管理") public class SysDeptDTO extends TreeNode implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "上级ID") + @Schema(title = "上级ID") @NotNull(message="{sysdept.pid.require}", groups = DefaultGroup.class) private Long pid; - @ApiModelProperty(value = "部门名称") - @NotBlank(message="{sysdept.name.require}", groups = DefaultGroup.class) - private String name; + @Schema(title = "部门名称") + @NotBlank(message="{sysdept.title.require}", groups = DefaultGroup.class) + private String title; - @ApiModelProperty(value = "排序") + @Schema(title = "排序") @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class) private Integer sort; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "上级部门名称") - private String parentName; + @Schema(title = "上级部门名称") + private String parenttitle; @Override public Long getId() { @@ -77,12 +76,12 @@ public class SysDeptDTO extends TreeNode implements Serializable { this.pid = pid; } - public String getName() { - return name; + public String gettitle() { + return title; } - public void setName(String name) { - this.name = name; + public void settitle(String title) { + this.title = title; } public Integer getSort() { @@ -101,11 +100,11 @@ public class SysDeptDTO extends TreeNode implements Serializable { this.createDate = createDate; } - public String getParentName() { - return parentName; + public String getParenttitle() { + return parenttitle; } - public void setParentName(String parentName) { - this.parentName = parentName; + public void setParenttitle(String parenttitle) { + this.parenttitle = parenttitle; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictDataDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictDataDTO.java index 46b6ab6e5c25bc1b03e601519031a1a31a0907e8..1fada6b6c752040eabd43a8a9aa4f04f42f65b4a 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictDataDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictDataDTO.java @@ -12,14 +12,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -29,38 +28,38 @@ import java.util.Date; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "字典数据") +@Schema(title = "字典数据") public class SysDictDataDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "字典类型ID") + @Schema(title = "字典类型ID") @NotNull(message="{sysdict.type.require}", groups = DefaultGroup.class) private Long dictTypeId; - @ApiModelProperty(value = "字典标签") + @Schema(title = "字典标签") @NotBlank(message="{sysdict.label.require}", groups = DefaultGroup.class) private String dictLabel; - @ApiModelProperty(value = "字典值") + @Schema(title = "字典值") private String dictValue; - @ApiModelProperty(value = "备注") + @Schema(title = "备注") private String remark; - @ApiModelProperty(value = "排序") + @Schema(title = "排序") @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class) private Integer sort; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "更新时间") + @Schema(title = "更新时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date updateDate; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictTypeDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictTypeDTO.java index 81ae398d826e902c5c1ea9e9bb981c76363c9b4f..8ab184e0fa6398699ec8f57a16328638d225a5bc 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictTypeDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysDictTypeDTO.java @@ -12,14 +12,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -29,35 +28,35 @@ import java.util.Date; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "字典类型") +@Schema(title = "字典类型") public class SysDictTypeDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "字典类型") + @Schema(title = "字典类型") @NotBlank(message="{sysdict.type.require}", groups = DefaultGroup.class) private String dictType; - @ApiModelProperty(value = "字典名称") - @NotBlank(message="{sysdict.name.require}", groups = DefaultGroup.class) - private String dictName; + @Schema(title = "字典名称") + @NotBlank(message="{sysdict.title.require}", groups = DefaultGroup.class) + private String dicttitle; - @ApiModelProperty(value = "备注") + @Schema(title = "备注") private String remark; - @ApiModelProperty(value = "排序") + @Schema(title = "排序") @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class) private Integer sort; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "更新时间") + @Schema(title = "更新时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date updateDate; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysMenuDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysMenuDTO.java index e6a7b5e6760926e169748f3f3f2dd315d24513fd..1a93cb454f637e2f098b6b446a89ae8e0c11dd04 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysMenuDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysMenuDTO.java @@ -13,14 +13,13 @@ import io.renren.common.utils.TreeNode; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -30,46 +29,46 @@ import java.util.Date; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@ApiModel(value = "菜单管理") +@Schema(title = "菜单管理") public class SysMenuDTO extends TreeNode implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "上级ID") + @Schema(title = "上级ID") @NotNull(message="{sysmenu.pid.require}", groups = DefaultGroup.class) private Long pid; - @ApiModelProperty(value = "菜单名称") - @NotBlank(message="{sysmenu.name.require}", groups = DefaultGroup.class) - private String name; + @Schema(title = "菜单名称") + @NotBlank(message="{sysmenu.title.require}", groups = DefaultGroup.class) + private String title; - @ApiModelProperty(value = "菜单URL") + @Schema(title = "菜单URL") private String url; - @ApiModelProperty(value = "类型 0:菜单 1:按钮") + @Schema(title = "类型 0:菜单 1:按钮") @Range(min=0, max=1, message = "{sysmenu.type.range}", groups = DefaultGroup.class) private Integer menuType; - @ApiModelProperty(value = "菜单图标") + @Schema(title = "菜单图标") private String icon; - @ApiModelProperty(value = "授权(多个用逗号分隔,如:sys:user:list,sys:user:save)") + @Schema(title = "授权(多个用逗号分隔,如:sys:user:list,sys:user:save)") private String permissions; - @ApiModelProperty(value = "排序") + @Schema(title = "排序") @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class) private Integer sort; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "上级菜单名称") - private String parentName; + @Schema(title = "上级菜单名称") + private String parenttitle; @Override public Long getId() { @@ -91,12 +90,12 @@ public class SysMenuDTO extends TreeNode implements Serializable { this.pid = pid; } - public String getName() { - return name; + public String gettitle() { + return title; } - public void setName(String name) { - this.name = name; + public void settitle(String title) { + this.title = title; } public String getUrl() { @@ -147,11 +146,11 @@ public class SysMenuDTO extends TreeNode implements Serializable { this.createDate = createDate; } - public String getParentName() { - return parentName; + public String getParenttitle() { + return parenttitle; } - public void setParentName(String parentName) { - this.parentName = parentName; + public void setParenttitle(String parenttitle) { + this.parenttitle = parenttitle; } -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysParamsDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysParamsDTO.java index bf275a7815fe93c17ddcc1e225660435fa19f83a..ee743edfe7bcceaa86a02aea265775587a08ddb2 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysParamsDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysParamsDTO.java @@ -12,13 +12,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -29,31 +28,31 @@ import java.util.Date; * @since 1.0.0 */ @Data -@ApiModel(value = "参数管理") +@Schema(title = "参数管理") public class SysParamsDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "参数编码") + @Schema(title = "参数编码") @NotBlank(message="{sysparams.paramcode.require}", groups = DefaultGroup.class) private String paramCode; - @ApiModelProperty(value = "参数值") + @Schema(title = "参数值") @NotBlank(message="{sysparams.paramvalue.require}", groups = DefaultGroup.class) private String paramValue; - @ApiModelProperty(value = "备注") + @Schema(title = "备注") private String remark; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "更新时间") + @Schema(title = "更新时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date updateDate; diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysRoleDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysRoleDTO.java index a57b4b32762c1650fc2e7c98931a43851cc46ba8..ed6a68b6215d99127846e40105ecbb095c44a82f 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysRoleDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysRoleDTO.java @@ -12,13 +12,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; import java.util.List; @@ -30,30 +29,30 @@ import java.util.List; * @since 1.0.0 */ @Data -@ApiModel(value = "角色管理") +@Schema(title = "角色管理") public class SysRoleDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "角色名称") - @NotBlank(message="{sysrole.name.require}", groups = DefaultGroup.class) - private String name; + @Schema(title = "角色名称") + @NotBlank(message="{sysrole.title.require}", groups = DefaultGroup.class) + private String title; - @ApiModelProperty(value = "备注") + @Schema(title = "备注") private String remark; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "菜单ID列表") + @Schema(title = "菜单ID列表") private List menuIdList; - @ApiModelProperty(value = "部门ID列表") + @Schema(title = "部门ID列表") private List deptIdList; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysUserDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysUserDTO.java index c42a66f96114f718a37ae76efb7e424446eb2767..10e8b71b03104042e14170578bbaa2259cd9a7ad 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysUserDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysUserDTO.java @@ -12,15 +12,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Null; import lombok.Data; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; import java.util.List; @@ -32,62 +31,62 @@ import java.util.List; * @since 1.0.0 */ @Data -@ApiModel(value = "用户管理") +@Schema(title = "用户管理") public class SysUserDTO implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "id") + @Schema(title = "id") @Null(message="{id.null}", groups = AddGroup.class) @NotNull(message="{id.require}", groups = UpdateGroup.class) private Long id; - @ApiModelProperty(value = "用户名", required = true) + @Schema(title = "用户名", required = true) @NotBlank(message="{sysuser.username.require}", groups = DefaultGroup.class) private String username; - @ApiModelProperty(value = "密码") + @Schema(title = "密码") @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @NotBlank(message="{sysuser.password.require}", groups = AddGroup.class) private String password; - @ApiModelProperty(value = "姓名", required = true) - @NotBlank(message="{sysuser.realname.require}", groups = DefaultGroup.class) - private String realName; + @Schema(title = "姓名", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message="{sysuser.realtitle.require}", groups = DefaultGroup.class) + private String realtitle; - @ApiModelProperty(value = "头像") + @Schema(title = "头像") private String headUrl; - @ApiModelProperty(value = "性别 0:男 1:女 2:保密", required = true) + @Schema(title = "性别 0:男 1:女 2:保密", required = true) @Range(min=0, max=2, message = "{sysuser.gender.range}", groups = DefaultGroup.class) private Integer gender; - @ApiModelProperty(value = "邮箱") + @Schema(title = "邮箱") @Email(message="{sysuser.email.error}", groups = DefaultGroup.class) private String email; - @ApiModelProperty(value = "手机号") + @Schema(title = "手机号") private String mobile; - @ApiModelProperty(value = "部门ID", required = true) + @Schema(title = "部门ID", required = true) @NotNull(message="{sysuser.deptId.require}", groups = DefaultGroup.class) private Long deptId; - @ApiModelProperty(value = "状态 0:停用 1:正常", required = true) + @Schema(title = "状态 0:停用 1:正常", required = true) @Range(min=0, max=1, message = "{sysuser.status.range}", groups = DefaultGroup.class) private Integer status; - @ApiModelProperty(value = "创建时间") + @Schema(title = "创建时间") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Date createDate; - @ApiModelProperty(value = "超级管理员 0:否 1:是") + @Schema(title = "超级管理员 0:否 1:是") @JsonProperty(access = JsonProperty.Access.READ_ONLY) private Integer superAdmin; - @ApiModelProperty(value = "角色ID列表") + @Schema(title = "角色ID列表") private List roleIdList; - @ApiModelProperty(value = "部门名称") - private String deptName; + @Schema(title = "部门名称") + private String depttitle; -} \ No newline at end of file +} diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SystemDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SystemDTO.java index 1412b41cda2c98bbffc6c72793e6c7754ec1b31a..b027e516904c740b4c0ec43307f1a2aedd73ed83 100644 --- a/renren-admin/src/main/java/io/renren/modules/sys/dto/SystemDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SystemDTO.java @@ -8,7 +8,7 @@ package io.renren.modules.sys.dto; -import io.swagger.annotations.ApiModel; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -21,12 +21,12 @@ import java.math.BigDecimal; * @since 1.0.0 */ @Data -@ApiModel(value = "系统数据") +@Schema(title = "系统数据") public class SystemDTO implements Serializable { private static final long serialVersionUID = 1L; private Long sysTime; - private String osName; + private String ostitle; private String osArch; private String osVersion; private String userLanguage; @@ -35,13 +35,13 @@ public class SystemDTO implements Serializable { private Long freePhysical; private BigDecimal memoryRate; private Integer processors; - private String jvmName; + private String jvmtitle; private String javaVersion; private String javaHome; private Long javaTotalMemory; private Long javaFreeMemory; private Long javaMaxMemory; - private String userName; + private String usertitle; private BigDecimal systemCpuLoad; private String userTimezone; diff --git a/renren-admin/src/main/resources/application-dev.yml b/renren-admin/src/main/resources/application-dev.yml index ad7412a7c02d295ad9329793055be3a2a43db9d2..af80fc7904c44aebdfa1a4b52ac77d9113848771 100644 --- a/renren-admin/src/main/resources/application-dev.yml +++ b/renren-admin/src/main/resources/application-dev.yml @@ -66,4 +66,4 @@ spring: # driver-class-name: org.postgresql.Driver # url: jdbc:postgresql://123456:5432/renren_security # username: postgres -# password: 123456 \ No newline at end of file +# password: 123456 diff --git a/renren-admin/src/main/resources/application.yml b/renren-admin/src/main/resources/application.yml index 26bc012c0fb8f2696262c9474808adefb67e7369..0c57798714ea46e5b9950d11d1be7639a35e5548 100644 --- a/renren-admin/src/main/resources/application.yml +++ b/renren-admin/src/main/resources/application.yml @@ -36,18 +36,20 @@ spring: max-file-size: 100MB max-request-size: 100MB enabled: true - redis: - database: 0 - host: 192.168.10.10 - port: 6379 - password: # 密码(默认为空) - timeout: 6000ms # 连接超时时长(毫秒) - lettuce: - pool: - max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 10 # 连接池中的最大空闲连接 - min-idle: 5 # 连接池中的最小空闲连接 + + data: + redis: + database: 0 + host: 192.168.10.10 + port: 6379 + password: # 密码(默认为空) + timeout: 6000ms # 连接超时时长(毫秒) + lettuce: + pool: + max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) + max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-idle: 10 # 连接池中的最大空闲连接 + min-idle: 5 # 连接池中的最小空闲连接 # 是否开启redis缓存 true开启 false关闭 renren: diff --git a/renren-admin/src/test/java/io/renren/DynamicDataSourceTest.java b/renren-admin/src/test/java/io/renren/DynamicDataSourceTest.java index 213fc616561e966c99094b56d843281aec5044e5..a410df66268835fdc800034e04bf609b602ff4f2 100644 --- a/renren-admin/src/test/java/io/renren/DynamicDataSourceTest.java +++ b/renren-admin/src/test/java/io/renren/DynamicDataSourceTest.java @@ -9,12 +9,12 @@ package io.renren; import io.renren.service.DynamicDataSourceTestService; +import jakarta.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import javax.annotation.Resource; /** * 多数据源测试 diff --git a/renren-admin/src/test/java/io/renren/RedisTest.java b/renren-admin/src/test/java/io/renren/RedisTest.java index 3dc3cf3ee7c434d33638767043f6f378f420a897..9070892aef13d5e4155a6acecb75001f272a1ecb 100644 --- a/renren-admin/src/test/java/io/renren/RedisTest.java +++ b/renren-admin/src/test/java/io/renren/RedisTest.java @@ -11,12 +11,12 @@ package io.renren; import cn.hutool.core.util.StrUtil; import io.renren.common.redis.RedisUtils; import io.renren.modules.sys.entity.SysUserEntity; +import jakarta.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import javax.annotation.Resource; @RunWith(SpringRunner.class) @SpringBootTest @@ -33,4 +33,4 @@ public class RedisTest { System.out.println(StrUtil.toString(redisUtils.get("user"))); } -} \ No newline at end of file +} diff --git a/renren-admin/src/test/java/io/renren/service/DynamicDataSourceTestService.java b/renren-admin/src/test/java/io/renren/service/DynamicDataSourceTestService.java index b9b2ad80250dd9006abfc749b70ec98686e44b50..cb30782ff468f7811d4ad61ab2099b97f97bf276 100644 --- a/renren-admin/src/test/java/io/renren/service/DynamicDataSourceTestService.java +++ b/renren-admin/src/test/java/io/renren/service/DynamicDataSourceTestService.java @@ -11,10 +11,10 @@ package io.renren.service; import io.renren.commons.dynamic.datasource.annotation.DataSource; import io.renren.modules.sys.dao.SysUserDao; import io.renren.modules.sys.entity.SysUserEntity; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; /** * 测试多数据源 @@ -57,4 +57,4 @@ public class DynamicDataSourceTestService { // //测试事物 // int i = 1/0; // } -} \ No newline at end of file +} diff --git a/renren-api/pom.xml b/renren-api/pom.xml index 5177f913f2f2de772d263fb3b1583b981eb31b4b..b40ca524345d479987df67e5bb325ef5b23ce46f 100644 --- a/renren-api/pom.xml +++ b/renren-api/pom.xml @@ -15,6 +15,11 @@ renren-common 5.3.0 + + io.renren + renren-dynamic-datasource + 5.3.0 + @@ -33,4 +38,4 @@ - \ No newline at end of file + diff --git a/renren-api/src/main/java/io/renren/config/FilterConfig.java b/renren-api/src/main/java/io/renren/config/FilterConfig.java index 68bd80ac7409e61aeb5d9bfe61d4cfa6ee0a94f4..217e61f429ceafba6d103cb882c4b305f2eb7ce0 100644 --- a/renren-api/src/main/java/io/renren/config/FilterConfig.java +++ b/renren-api/src/main/java/io/renren/config/FilterConfig.java @@ -9,11 +9,11 @@ package io.renren.config; import io.renren.common.xss.XssFilter; +import jakarta.servlet.DispatcherType; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.servlet.DispatcherType; /** * Filter配置 diff --git a/renren-api/src/main/java/io/renren/config/SwaggerConfig.java b/renren-api/src/main/java/io/renren/config/SwaggerConfig.java index f6c5af2bd9fb88e3bab7d0261e1609e22f1150b8..8128ef8f0184ea6412dadb138a3e2132e01bb943 100644 --- a/renren-api/src/main/java/io/renren/config/SwaggerConfig.java +++ b/renren-api/src/main/java/io/renren/config/SwaggerConfig.java @@ -8,61 +8,40 @@ package io.renren.config; -import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; +import io.renren.common.constant.Constant; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; import java.util.ArrayList; import java.util.List; @Configuration -@EnableSwagger2WebMvc -@AllArgsConstructor public class SwaggerConfig { - private final OpenApiExtensionResolver openApiExtensionResolver; - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //加了ApiOperation注解的类,才生成接口文档 - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - //包下的类,才生成接口文档 - //.apis(RequestHandlerSelectors.basePackage("io.renren.controller")) - .paths(PathSelectors.any()) - .build() - .extensions(openApiExtensionResolver.buildExtensions("Renren")) - .directModelSubstitute(java.util.Date.class, String.class) - .securitySchemes(security()); + public OpenAPI createRestApi() { + return new OpenAPI() + .info(apiInfo()) + .security(security()); } - private ApiInfo apiInfo() { - return new ApiInfoBuilder() + private Info apiInfo() { + return new Info() .title("人人开源") - .description("renren-api模块接口文档") - .termsOfServiceUrl("https://www.renren.io") - .version("5.x") - .build(); + .description("renren-api文档") + .version("5.x"); } - private List security() { - ApiKey key = new ApiKey("token", "token", "header"); + private List security() { + SecurityRequirement key = new SecurityRequirement(); + key.addList(Constant.TOKEN_HEADER, Constant.TOKEN_HEADER); - List list = new ArrayList<>(); + List list = new ArrayList<>(); list.add(key); return list; } -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/config/WebMvcConfig.java b/renren-api/src/main/java/io/renren/config/WebMvcConfig.java index debabc880c47d439d9270456b3c40d144a0f2a46..8627f4e05f4b3ea60f4172123843b77b16357d41 100644 --- a/renren-api/src/main/java/io/renren/config/WebMvcConfig.java +++ b/renren-api/src/main/java/io/renren/config/WebMvcConfig.java @@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.renren.common.utils.DateUtils; import io.renren.interceptor.AuthorizationInterceptor; import io.renren.resolver.LoginUserHandlerMethodArgumentResolver; +import jakarta.annotation.Resource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.ByteArrayHttpMessageConverter; @@ -27,7 +28,6 @@ import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.List; import java.util.TimeZone; @@ -83,4 +83,4 @@ public class WebMvcConfig implements WebMvcConfigurer { converter.setObjectMapper(mapper); return converter; } -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/controller/ApiLoginController.java b/renren-api/src/main/java/io/renren/controller/ApiLoginController.java index f13f181a19c41a4e7cfcff09e12a97c7b836853e..14df75520c62da7a39ae6f05527cc95bf90c7718 100644 --- a/renren-api/src/main/java/io/renren/controller/ApiLoginController.java +++ b/renren-api/src/main/java/io/renren/controller/ApiLoginController.java @@ -15,11 +15,11 @@ import io.renren.common.validator.ValidatorUtils; import io.renren.dto.LoginDTO; import io.renren.service.TokenService; import io.renren.service.UserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -30,7 +30,7 @@ import java.util.Map; */ @RestController @RequestMapping("/api") -@Api(tags = "登录接口") +@Tag(name = "登录接口") @AllArgsConstructor public class ApiLoginController { private final UserService userService; @@ -38,7 +38,7 @@ public class ApiLoginController { @PostMapping("login") - @ApiOperation("登录") + @Operation(summary = "登录") public Result> login(@RequestBody LoginDTO dto) { //表单校验 ValidatorUtils.validateEntity(dto); @@ -51,10 +51,10 @@ public class ApiLoginController { @Login @PostMapping("logout") - @ApiOperation("退出") - public Result logout(@ApiIgnore @RequestAttribute("userId") Long userId) { + @Operation(summary = "退出") + public Result logout(@Parameter(hidden = true) @RequestAttribute("userId") Long userId) { tokenService.expireToken(userId); return new Result(); } -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/controller/ApiRegisterController.java b/renren-api/src/main/java/io/renren/controller/ApiRegisterController.java index 126417e11eabc27f12884b006a5ef5f91962a546..d2dd544c505af1d7384ae5648a8ef6ed18ca3ebd 100644 --- a/renren-api/src/main/java/io/renren/controller/ApiRegisterController.java +++ b/renren-api/src/main/java/io/renren/controller/ApiRegisterController.java @@ -14,8 +14,8 @@ import io.renren.common.validator.ValidatorUtils; import io.renren.dto.RegisterDTO; import io.renren.entity.UserEntity; import io.renren.service.UserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -31,13 +31,13 @@ import java.util.Date; */ @RestController @RequestMapping("/api") -@Api(tags = "注册接口") +@Tag(name = "注册接口") @AllArgsConstructor public class ApiRegisterController { private final UserService userService; @PostMapping("register") - @ApiOperation("注册") + @Operation(summary = "注册") public Result register(@RequestBody RegisterDTO dto) { //表单校验 ValidatorUtils.validateEntity(dto); @@ -51,4 +51,4 @@ public class ApiRegisterController { return new Result(); } -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/controller/ApiTestController.java b/renren-api/src/main/java/io/renren/controller/ApiTestController.java index e85f55f722e62ff791faaea061ce28088ca087f2..0d600a83af11c5f2744e52498ac9b5b4f25e9936 100644 --- a/renren-api/src/main/java/io/renren/controller/ApiTestController.java +++ b/renren-api/src/main/java/io/renren/controller/ApiTestController.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -12,13 +12,13 @@ import io.renren.annotation.Login; import io.renren.annotation.LoginUser; import io.renren.common.utils.Result; import io.renren.entity.UserEntity; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.annotations.ApiIgnore; /** * 测试接口 @@ -27,27 +27,27 @@ import springfox.documentation.annotations.ApiIgnore; */ @RestController @RequestMapping("/api") -@Api(tags="测试接口") +@Tag(name = "测试接口") public class ApiTestController { @Login @GetMapping("userInfo") - @ApiOperation(value="获取用户信息", response=UserEntity.class) - public Result userInfo(@ApiIgnore @LoginUser UserEntity user){ + @Operation(summary = "获取用户信息") + public Result userInfo(@Parameter(hidden = true) @LoginUser UserEntity user) { return new Result().ok(user); } @Login @GetMapping("userId") - @ApiOperation("获取用户ID") - public Result userInfo(@ApiIgnore @RequestAttribute("userId") Long userId){ + @Operation(summary = "获取用户ID") + public Result userInfo(@Parameter(hidden = true) @RequestAttribute("userId") Long userId) { return new Result().ok(userId); } @GetMapping("notToken") - @ApiOperation("忽略Token验证测试") - public Result notToken(){ + @Operation(summary = "忽略Token验证测试") + public Result notToken() { return new Result().ok("无需token也能访问。。。"); } -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/dto/LoginDTO.java b/renren-api/src/main/java/io/renren/dto/LoginDTO.java index 935bd1ab71103829b06fb9a7cc7bf4436d97d4d9..7f0cb54c3243966ca33592c05460dc59fa376e5f 100644 --- a/renren-api/src/main/java/io/renren/dto/LoginDTO.java +++ b/renren-api/src/main/java/io/renren/dto/LoginDTO.java @@ -9,11 +9,10 @@ package io.renren.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; -import javax.validation.constraints.NotBlank; /** * 登录表单 @@ -21,14 +20,14 @@ import javax.validation.constraints.NotBlank; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "登录表单") +@Schema(title = "登录表单") public class LoginDTO { - @ApiModelProperty(value = "手机号") + @Schema(title = "手机号") @NotBlank(message="手机号不能为空") private String mobile; - @ApiModelProperty(value = "密码") + @Schema(title = "密码") @NotBlank(message="密码不能为空") private String password; -} \ No newline at end of file +} diff --git a/renren-api/src/main/java/io/renren/dto/RegisterDTO.java b/renren-api/src/main/java/io/renren/dto/RegisterDTO.java index ff1f45a60a1192207c6b80d3cf5c5bd6c8d13944..4fadc8464f4a4de27989590410992d9f5a2b60f5 100644 --- a/renren-api/src/main/java/io/renren/dto/RegisterDTO.java +++ b/renren-api/src/main/java/io/renren/dto/RegisterDTO.java @@ -8,11 +8,10 @@ package io.renren.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; -import javax.validation.constraints.NotBlank; /** * 注册表单 @@ -20,13 +19,13 @@ import javax.validation.constraints.NotBlank; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "注册表单") +@Schema(title = "注册表单") public class RegisterDTO { - @ApiModelProperty(value = "手机号") + @Schema(title = "手机号") @NotBlank(message="手机号不能为空") private String mobile; - @ApiModelProperty(value = "密码") + @Schema(title = "密码") @NotBlank(message="密码不能为空") private String password; diff --git a/renren-api/src/main/java/io/renren/interceptor/AuthorizationInterceptor.java b/renren-api/src/main/java/io/renren/interceptor/AuthorizationInterceptor.java index 42dd5b079407a22391a9abd7d8fa35975aaefe03..2a7b9be5f0faa7b394f5bb09c954b287563096a8 100644 --- a/renren-api/src/main/java/io/renren/interceptor/AuthorizationInterceptor.java +++ b/renren-api/src/main/java/io/renren/interceptor/AuthorizationInterceptor.java @@ -14,13 +14,12 @@ import io.renren.common.exception.ErrorCode; import io.renren.common.exception.RenException; import io.renren.entity.TokenEntity; import io.renren.service.TokenService; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import org.springframework.web.servlet.HandlerInterceptor; /** * 权限(Token)验证 @@ -28,7 +27,7 @@ import javax.servlet.http.HttpServletResponse; * @author Mark sunlightcs@gmail.com */ @Component -public class AuthorizationInterceptor extends HandlerInterceptorAdapter { +public class AuthorizationInterceptor implements HandlerInterceptor { @Resource private TokenService tokenService; diff --git a/renren-api/src/main/resources/application.yml b/renren-api/src/main/resources/application.yml index a4ce80d089133d4d992d7ac0915e17ce2af7b66d..02fbf50f8ccf808def17cb34ee8bae23de46cdc1 100644 --- a/renren-api/src/main/resources/application.yml +++ b/renren-api/src/main/resources/application.yml @@ -40,18 +40,20 @@ spring: max-file-size: 100MB max-request-size: 100MB enabled: true - redis: - database: 0 - host: 192.168.10.10 - port: 6379 - password: # 密码(默认为空) - timeout: 6000ms # 连接超时时长(毫秒) - lettuce: - pool: - max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 10 # 连接池中的最大空闲连接 - min-idle: 5 # 连接池中的最小空闲连接 + + data: + redis: + database: 0 + host: 192.168.10.10 + port: 6379 + password: # 密码(默认为空) + timeout: 6000ms # 连接超时时长(毫秒) + lettuce: + pool: + max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) + max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-idle: 10 # 连接池中的最大空闲连接 + min-idle: 5 # 连接池中的最小空闲连接 renren: redis: @@ -78,4 +80,4 @@ mybatis-plus: configuration-properties: prefix: blobType: BLOB - boolValue: TRUE \ No newline at end of file + boolValue: TRUE diff --git a/renren-common/src/main/java/io/renren/common/page/PageData.java b/renren-common/src/main/java/io/renren/common/page/PageData.java index c8dd3cee5ad1b6f16c24492ea6453d04386941f1..abe523e7ade29989a50d00532710d5f788d7a2e4 100644 --- a/renren-common/src/main/java/io/renren/common/page/PageData.java +++ b/renren-common/src/main/java/io/renren/common/page/PageData.java @@ -8,8 +8,7 @@ package io.renren.common.page; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -21,14 +20,14 @@ import java.util.List; * @author Mark sunlightcs@gmail.com */ @Data -@ApiModel(value = "分页数据") +@Schema(title = "分页数据") public class PageData implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "总记录数") + @Schema(title = "总记录数") private int total; - @ApiModelProperty(value = "列表数据") + @Schema(title = "列表数据") private List list; /** @@ -40,4 +39,4 @@ public class PageData implements Serializable { this.list = list; this.total = (int)total; } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/redis/RedisConfig.java b/renren-common/src/main/java/io/renren/common/redis/RedisConfig.java index 44b95543c21adb6c4e8809545c6fa72454885959..a3104ffe606448d5159b61f853d7dc6f001f0e5b 100644 --- a/renren-common/src/main/java/io/renren/common/redis/RedisConfig.java +++ b/renren-common/src/main/java/io/renren/common/redis/RedisConfig.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import jakarta.annotation.Resource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -19,7 +20,6 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; -import javax.annotation.Resource; /** * Redis配置 @@ -53,4 +53,4 @@ public class RedisConfig { return redisTemplate; } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/redis/RedisUtils.java b/renren-common/src/main/java/io/renren/common/redis/RedisUtils.java index 5fdbba944589e78370718d0a42239aa3d8d5f838..dea505bcb8c760387b6a431c446a88c3bead32b7 100644 --- a/renren-common/src/main/java/io/renren/common/redis/RedisUtils.java +++ b/renren-common/src/main/java/io/renren/common/redis/RedisUtils.java @@ -8,11 +8,11 @@ package io.renren.common.redis; +import jakarta.annotation.Resource; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; -import javax.annotation.Resource; import java.util.Collection; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -123,4 +123,4 @@ public class RedisUtils { public Object rightPop(String key) { return redisTemplate.opsForList().rightPop(key); } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/utils/HttpContextUtils.java b/renren-common/src/main/java/io/renren/common/utils/HttpContextUtils.java index 369e4a96e934828e119f1afec5b4417f1b9ff787..ed457639d400a7c0003e3647e1647b4c675f64d6 100644 --- a/renren-common/src/main/java/io/renren/common/utils/HttpContextUtils.java +++ b/renren-common/src/main/java/io/renren/common/utils/HttpContextUtils.java @@ -9,12 +9,12 @@ package io.renren.common.utils; import cn.hutool.core.util.StrUtil; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.http.HttpHeaders; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import javax.servlet.http.HttpServletRequest; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; @@ -60,4 +60,4 @@ public class HttpContextUtils { HttpServletRequest request = getHttpServletRequest(); return request.getHeader(HttpHeaders.ORIGIN); } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/utils/IpUtils.java b/renren-common/src/main/java/io/renren/common/utils/IpUtils.java index d5396b9c89552976ad55bae7ba761ab5fe4cd34c..013f4b4b3336b9d7871d23e214ace95460233b49 100644 --- a/renren-common/src/main/java/io/renren/common/utils/IpUtils.java +++ b/renren-common/src/main/java/io/renren/common/utils/IpUtils.java @@ -9,14 +9,14 @@ package io.renren.common.utils; import cn.hutool.core.util.StrUtil; +import jakarta.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpServletRequest; /** * IP地址 - * + * * @author Mark sunlightcs@gmail.com */ public class IpUtils { @@ -24,7 +24,7 @@ public class IpUtils { /** * 获取IP地址 - * + * * 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址 * 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址 */ @@ -51,8 +51,8 @@ public class IpUtils { } catch (Exception e) { logger.error("IPUtils ERROR ", e); } - + return ip; } - + } diff --git a/renren-common/src/main/java/io/renren/common/utils/Result.java b/renren-common/src/main/java/io/renren/common/utils/Result.java index 801d183e9bf97c0685773b436d8bb43a5a88ef2f..b6a1a2d930244cda9a76b7abf4acf52aa7cd5867 100644 --- a/renren-common/src/main/java/io/renren/common/utils/Result.java +++ b/renren-common/src/main/java/io/renren/common/utils/Result.java @@ -9,8 +9,7 @@ package io.renren.common.utils; import io.renren.common.exception.ErrorCode; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; @@ -20,23 +19,23 @@ import java.io.Serializable; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@ApiModel(value = "响应") +@Schema(title = "响应") public class Result implements Serializable { private static final long serialVersionUID = 1L; /** * 编码:0表示成功,其他值表示失败 */ - @ApiModelProperty(value = "编码:0表示成功,其他值表示失败") + @Schema(title = "编码:0表示成功,其他值表示失败") private int code = 0; /** * 消息内容 */ - @ApiModelProperty(value = "消息内容") + @Schema(title = "消息内容") private String msg = "success"; /** * 响应数据 */ - @ApiModelProperty(value = "响应数据") + @Schema(title = "响应数据") private T data; public Result ok(T data) { diff --git a/renren-common/src/main/java/io/renren/common/validator/ValidatorUtils.java b/renren-common/src/main/java/io/renren/common/validator/ValidatorUtils.java index 61a02f79b6b99ed8d372126cb2665f7477563d98..263d8ccf796bc4dc8bb4ae3433c76982327f31fb 100644 --- a/renren-common/src/main/java/io/renren/common/validator/ValidatorUtils.java +++ b/renren-common/src/main/java/io/renren/common/validator/ValidatorUtils.java @@ -9,14 +9,14 @@ package io.renren.common.validator; import io.renren.common.exception.RenException; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validation; +import jakarta.validation.Validator; import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.validation.beanvalidation.MessageSourceResourceBundleLocator; -import javax.validation.ConstraintViolation; -import javax.validation.Validation; -import javax.validation.Validator; import java.util.Locale; import java.util.Set; @@ -54,4 +54,4 @@ public class ValidatorUtils { throw new RenException(constraint.getMessage()); } } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/validator/group/Group.java b/renren-common/src/main/java/io/renren/common/validator/group/Group.java index 23b23283ceaf9cdc71f2431970aeeac88960b7d7..05c47753b8116ba826f772ac6f5f105ff3991a86 100644 --- a/renren-common/src/main/java/io/renren/common/validator/group/Group.java +++ b/renren-common/src/main/java/io/renren/common/validator/group/Group.java @@ -8,7 +8,8 @@ package io.renren.common.validator.group; -import javax.validation.GroupSequence; + +import jakarta.validation.GroupSequence; /** * 定义校验顺序,如果AddGroup组失败,则UpdateGroup组不会再校验 diff --git a/renren-common/src/main/java/io/renren/common/xss/XssFilter.java b/renren-common/src/main/java/io/renren/common/xss/XssFilter.java index d9936c84331cdfe1fd7204136135d741ffa428fd..f518df03dbac4a21aa3dafcfa414bda0a9f30c86 100644 --- a/renren-common/src/main/java/io/renren/common/xss/XssFilter.java +++ b/renren-common/src/main/java/io/renren/common/xss/XssFilter.java @@ -8,8 +8,9 @@ package io.renren.common.xss; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; + import java.io.IOException; /** @@ -34,4 +35,4 @@ public class XssFilter implements Filter { public void destroy() { } -} \ No newline at end of file +} diff --git a/renren-common/src/main/java/io/renren/common/xss/XssHttpServletRequestWrapper.java b/renren-common/src/main/java/io/renren/common/xss/XssHttpServletRequestWrapper.java index b1d76ac93a007dd66b67a0bdd491ee30803fd22a..6bf4f332e804ae94f445f9ed803346f34930b743 100644 --- a/renren-common/src/main/java/io/renren/common/xss/XssHttpServletRequestWrapper.java +++ b/renren-common/src/main/java/io/renren/common/xss/XssHttpServletRequestWrapper.java @@ -10,13 +10,13 @@ package io.renren.common.xss; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; +import jakarta.servlet.ReadListener; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import javax.servlet.ReadListener; -import javax.servlet.ServletInputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; import java.io.ByteArrayInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -151,4 +151,4 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { String header = super.getHeader(HttpHeaders.CONTENT_TYPE); return StrUtil.startWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); } -} \ No newline at end of file +} diff --git a/renren-dynamic-datasource/src/main/java/io/renren/commons/dynamic/datasource/config/DynamicDataSourceConfig.java b/renren-dynamic-datasource/src/main/java/io/renren/commons/dynamic/datasource/config/DynamicDataSourceConfig.java index 114cd31a85a4ff0ac4863bb763336677d9d4ddc5..ed17f317b7f2e807fa2510be4d3325d45b89a99f 100644 --- a/renren-dynamic-datasource/src/main/java/io/renren/commons/dynamic/datasource/config/DynamicDataSourceConfig.java +++ b/renren-dynamic-datasource/src/main/java/io/renren/commons/dynamic/datasource/config/DynamicDataSourceConfig.java @@ -11,12 +11,12 @@ package io.renren.commons.dynamic.datasource.config; import com.alibaba.druid.pool.DruidDataSource; import io.renren.commons.dynamic.datasource.properties.DataSourceProperties; import io.renren.commons.dynamic.datasource.properties.DynamicDataSourceProperties; +import jakarta.annotation.Resource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @@ -61,4 +61,4 @@ public class DynamicDataSourceConfig { return targetDataSources; } -} \ No newline at end of file +} diff --git a/renren-generator/pom.xml b/renren-generator/pom.xml index 27b258fe153e833d9dcc6eacbaad91f5d2e4d830..3d3a7a0e7fcc4e9402acfbd196d7c7074c52a35b 100644 --- a/renren-generator/pom.xml +++ b/renren-generator/pom.xml @@ -11,14 +11,14 @@ org.springframework.boot spring-boot-starter-parent - 2.7.15 + 3.2.5 UTF-8 UTF-8 - 1.8 - 2.2.2 + 17 + 3.0.3 1.4.2 1.2.14 1.10 diff --git a/renren-generator/src/main/java/io/renren/config/DbConfig.java b/renren-generator/src/main/java/io/renren/config/DbConfig.java index 0c2f01ab47c1e42e2e6b0045be921a51e9d3332d..484e31cdfef021c8b47fa7d3de3561e932e51396 100644 --- a/renren-generator/src/main/java/io/renren/config/DbConfig.java +++ b/renren-generator/src/main/java/io/renren/config/DbConfig.java @@ -10,12 +10,12 @@ package io.renren.config; import io.renren.dao.*; import io.renren.utils.RenException; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; -import javax.annotation.Resource; /** * 数据库配置 diff --git a/renren-generator/src/main/java/io/renren/controller/SysGeneratorController.java b/renren-generator/src/main/java/io/renren/controller/SysGeneratorController.java index d37dad984fd409a770f16272f3191ec7c8da4be7..6eda8ea319154f8e91bd7816d91d87fd33c298de 100644 --- a/renren-generator/src/main/java/io/renren/controller/SysGeneratorController.java +++ b/renren-generator/src/main/java/io/renren/controller/SysGeneratorController.java @@ -13,13 +13,13 @@ import io.renren.service.SysGeneratorService; import io.renren.utils.PageUtils; import io.renren.utils.Query; import io.renren.utils.R; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; diff --git a/renren-generator/src/main/java/io/renren/service/SysGeneratorService.java b/renren-generator/src/main/java/io/renren/service/SysGeneratorService.java index 1f98cfd23e4555d38486239a879a8a64660d77d7..0c0ef6d771250eaf52b498de65a5df2c48c43b3a 100644 --- a/renren-generator/src/main/java/io/renren/service/SysGeneratorService.java +++ b/renren-generator/src/main/java/io/renren/service/SysGeneratorService.java @@ -14,10 +14,10 @@ import io.renren.dao.GeneratorDao; import io.renren.utils.GenUtils; import io.renren.utils.PageUtils; import io.renren.utils.Query; +import jakarta.annotation.Resource; import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Map; diff --git a/renren-generator/src/main/resources/application.yml b/renren-generator/src/main/resources/application.yml index 9e7d6484467b8be049ccc7775652d3168a0e9ff2..54cec86a5b3ac6f7073ca996a7d68f30f285f970 100644 --- a/renren-generator/src/main/resources/application.yml +++ b/renren-generator/src/main/resources/application.yml @@ -10,8 +10,8 @@ spring: #MySQL配置 driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true - username: renren - password: 123456 + username: root + password: root #oracle配置 # driverClassName: oracle.jdbc.OracleDriver # url: jdbc:oracle:thin:@192.168.10.10:1521:xe @@ -47,4 +47,4 @@ pagehelper: #指定数据库,可选值有【mysql、oracle、sqlserver、postgresql】 renren: - database: mysql \ No newline at end of file + database: mysql diff --git a/renren-generator/src/main/resources/template/Controller.java.vm b/renren-generator/src/main/resources/template/Controller.java.vm index bcb855b727904c80f1caf01d090c2526dde39668..4b556e7523f2cb69706fe00326bb993cbd8fbf60 100644 --- a/renren-generator/src/main/resources/template/Controller.java.vm +++ b/renren-generator/src/main/resources/template/Controller.java.vm @@ -13,16 +13,12 @@ import ${package}.common.validator.group.UpdateGroup; import ${package}.modules.${moduleName}.dto.${className}DTO; import ${package}.modules.${moduleName}.excel.${className}Excel; import ${package}.modules.${moduleName}.service.${className}Service; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; - -import javax.servlet.http.HttpServletResponse; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -35,28 +31,28 @@ import java.util.Map; */ @RestController @RequestMapping("${moduleName}/${pathName}") -@Api(tags="${comments}") +@Tag(name="${comments}") public class ${className}Controller { @Autowired private ${className}Service ${classname}Service; @GetMapping("page") - @ApiOperation("分页") - @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") , - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") , - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") , - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") + @Operation(summary = "分页") + @Parameters({ + @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref="int") , + @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY,required = true, ref="int") , + @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref="String") , + @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String") }) @RequiresPermissions("${moduleName}:${pathName}:page") - public Result> page(@ApiIgnore @RequestParam Map params){ + public Result> page(@Parameter(hidden = true) @RequestParam Map params){ PageData<${className}DTO> page = ${classname}Service.page(params); return new Result>().ok(page); } @GetMapping("{id}") - @ApiOperation("信息") + @Operation(summary = "信息") @RequiresPermissions("${moduleName}:${pathName}:info") public Result<${className}DTO> get(@PathVariable("id") Long id){ ${className}DTO data = ${classname}Service.get(id); @@ -65,7 +61,7 @@ public class ${className}Controller { } @PostMapping - @ApiOperation("保存") + @Operation(summary = "保存") @LogOperation("保存") @RequiresPermissions("${moduleName}:${pathName}:save") public Result save(@RequestBody ${className}DTO dto){ @@ -78,7 +74,7 @@ public class ${className}Controller { } @PutMapping - @ApiOperation("修改") + @Operation(summary = "修改") @LogOperation("修改") @RequiresPermissions("${moduleName}:${pathName}:update") public Result update(@RequestBody ${className}DTO dto){ @@ -91,7 +87,7 @@ public class ${className}Controller { } @DeleteMapping - @ApiOperation("删除") + @Operation(summary = "删除") @LogOperation("删除") @RequiresPermissions("${moduleName}:${pathName}:delete") public Result delete(@RequestBody Long[] ids){ @@ -104,13 +100,13 @@ public class ${className}Controller { } @GetMapping("export") - @ApiOperation("导出") + @Operation(summary = "导出") @LogOperation("导出") @RequiresPermissions("${moduleName}:${pathName}:export") - public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { List<${className}DTO> list = ${classname}Service.list(params); ExcelUtils.exportExcelToTarget(response, null, "${comments}", list, ${className}Excel.class); } -} \ No newline at end of file +} diff --git a/renren-generator/src/main/resources/template/DTO.java.vm b/renren-generator/src/main/resources/template/DTO.java.vm index 5080f4e613597bfb5522c5a189c82b0e591655d4..b05bc697224c84b69647b509ae08e932cd614df1 100644 --- a/renren-generator/src/main/resources/template/DTO.java.vm +++ b/renren-generator/src/main/resources/template/DTO.java.vm @@ -1,7 +1,5 @@ package ${package}.modules.${moduleName}.dto; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -18,14 +16,14 @@ import java.math.BigDecimal; * @since ${version} ${date} */ @Data -@ApiModel(value = "${comments}") +@Schema(name = "${comments}") public class ${className}DTO implements Serializable { private static final long serialVersionUID = 1L; #foreach ($column in $columns) - @ApiModelProperty(value = "$column.comments") + @SchemaProperty(name = "$column.comments") private $column.attrType $column.attrname; #end -} \ No newline at end of file +}