diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java index 01837906f..1f126ef65 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java @@ -6,6 +6,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import java.util.Collection; @@ -17,6 +18,6 @@ public interface PostApi { @GetMapping(PREFIX + "/valid") @ApiImplicitParam(name = "ids", value = "部门编号数组", required = true, allowMultiple = true) - CommonResult validPosts(Collection ids); + CommonResult validPosts(@RequestParam("ids") Collection ids); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java index 35393a04a..0b44c306e 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java @@ -1,22 +1,28 @@ package cn.iocoder.yudao.module.system.api.dict; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.system.enums.ApiConstants; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + import java.util.Collection; -/** - * 字典数据 API 接口 - * - * @author 芋道源码 - */ +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = +@Api(tags = "RPC 服务 - 字典数据") public interface DictDataApi { - /** - * 校验字典数据们是否有效。如下情况,视为无效: - * 1. 字典数据不存在 - * 2. 字典数据被禁用 - * - * @param dictType 字典类型 - * @param values 字典数据值的数组 - */ - void validDictDatas(String dictType, Collection values); + String PREFIX = ApiConstants.PREFIX + "/dict-data"; + + @GetMapping(PREFIX + "/valid") + @ApiOperation("校验字典数据们是否有效") + @ApiImplicitParams({ + @ApiImplicitParam(name = "dictType", value = "字典类型", required = true, dataTypeClass = String.class), + @ApiImplicitParam(name = "values", value = "字典数据值的数组", required = true, allowMultiple = true) + }) + CommonResult validDictDatas(String dictType, Collection values); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java index 4ff596c68..dc0c0faee 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java @@ -1,21 +1,24 @@ package cn.iocoder.yudao.module.system.api.logger; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; +import cn.iocoder.yudao.module.system.enums.ApiConstants; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import javax.validation.Valid; -/** - * 登录日志的 API 接口 - * - * @author 芋道源码 - */ +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = +@Api(tags = "RPC 服务 - 登录日志") public interface LoginLogApi { - /** - * 创建登录日志 - * - * @param reqDTO 日志信息 - */ - void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO); + String PREFIX = ApiConstants.PREFIX + "/login-log"; + + @PostMapping(PREFIX + "/create") + @ApiOperation("创建登录日志") + CommonResult createLoginLog(@Valid @RequestBody LoginLogCreateReqDTO reqDTO); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java index b4aeb3046..a3b068d06 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.api.logger.dto; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -15,48 +16,32 @@ import javax.validation.constraints.Size; @Data public class LoginLogCreateReqDTO { - /** - * 日志类型 - */ + @ApiModelProperty(value = "日志类型", required = true, example = "1", notes = "参见 LoginLogTypeEnum 枚举类") @NotNull(message = "日志类型不能为空") private Integer logType; - /** - * 链路追踪编号 - */ + + @ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab") private String traceId; - /** - * 用户编号 - */ + @ApiModelProperty(value = "用户编号", example = "666") private Long userId; - /** - * 用户类型 - */ + @ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举") @NotNull(message = "用户类型不能为空") private Integer userType; - /** - * 用户账号 - */ + @ApiModelProperty(value = "用户账号", required = true, example = "yudao") @NotBlank(message = "用户账号不能为空") @Size(max = 30, message = "用户账号长度不能超过30个字符") private String username; - /** - * 登录结果 - */ + @ApiModelProperty(value = "登录结果", required = true, example = "1", notes = "参见 LoginResultEnum 枚举类") @NotNull(message = "登录结果不能为空") private Integer result; - /** - * 用户 IP - */ + @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1") @NotEmpty(message = "用户 IP 不能为空") private String userIp; - /** - * 浏览器 UserAgent - * - * 允许空,原因:Job 过期登出时,是无法传递 UserAgent 的 - */ + + @ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0") private String userAgent; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java index 6db4fb8e0..589b312f1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java @@ -1,25 +1,30 @@ package cn.iocoder.yudao.module.system.api.dict; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import org.apache.dubbo.config.annotation.DubboService; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Collection; -/** - * 字典数据 API 实现类 - * - * @author 芋道源码 - */ -@Service +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.system.enums.ApiConstants.VERSION; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@DubboService(version = VERSION) // 提供 Dubbo RPC 接口,给 Dubbo Consumer 调用 +@Validated public class DictDataApiImpl implements DictDataApi { @Resource private DictDataService dictDataService; @Override - public void validDictDatas(String dictType, Collection values) { + public CommonResult validDictDatas(String dictType, Collection values) { dictDataService.validDictDatas(dictType, values); + return success(true); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java index b5f40e01a..5ab35dca6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java @@ -1,18 +1,20 @@ package cn.iocoder.yudao.module.system.api.logger; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; import cn.iocoder.yudao.module.system.service.logger.LoginLogService; +import org.apache.dubbo.config.annotation.DubboService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -/** - * 登录日志的 API 实现类 - * - * @author 芋道源码 - */ -@Service +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.system.enums.ApiConstants.VERSION; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@DubboService(version = VERSION) // 提供 Dubbo RPC 接口,给 Dubbo Consumer 调用 @Validated public class LoginLogApiImpl implements LoginLogApi { @@ -20,8 +22,9 @@ public class LoginLogApiImpl implements LoginLogApi { private LoginLogService loginLogService; @Override - public void createLoginLog(LoginLogCreateReqDTO reqDTO) { + public CommonResult createLoginLog(LoginLogCreateReqDTO reqDTO) { loginLogService.createLoginLog(reqDTO); + return success(true); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java index e8101f6e9..4b5cc22bf 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java @@ -19,7 +19,7 @@ public class LoginLogBaseVO { @NotNull(message = "日志类型不能为空") private Integer logType; - @ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab") + @ApiModelProperty(value = "链路追踪编号", example = "89aca178-a370-411c-ae02-3f0d672be4ab") @NotEmpty(message = "链路追踪编号不能为空") private String traceId; @@ -36,8 +36,7 @@ public class LoginLogBaseVO { @NotEmpty(message = "用户 IP 不能为空") private String userIp; - @ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0") - @NotEmpty(message = "浏览器 UserAgent 不能为空") + @ApiModelProperty(value = "浏览器 UserAgent", example = "Mozilla/5.0") private String userAgent; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java index 17177dadf..fd31ff704 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java @@ -18,8 +18,7 @@ public class LoginLogRespVO extends LoginLogBaseVO { @ApiModelProperty(value = "日志编号", required = true, example = "1024") private Long id; - @ApiModelProperty(value = "用户编号", required = true, example = "666") - @NotNull(message = "用户编号不能为空") + @ApiModelProperty(value = "用户编号", example = "666") private Long userId; @ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")