Merge branch 'develop' of https://gitee.com/youlaiorg/youlai-boot into develop

This commit is contained in:
Ray.Hao
2026-01-03 23:05:32 +08:00
97 changed files with 369 additions and 369 deletions

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.auth.controller;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDto;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDto;
import com.youlai.boot.auth.model.vo.CaptchaVo;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.model.dto.LoginRequest;
import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.core.web.Result;
@@ -34,8 +34,8 @@ public class AuthController {
@Operation(summary = "获取验证码")
@GetMapping("/captcha")
public Result<CaptchaVo> getCaptcha() {
CaptchaVo captcha = authService.getCaptcha();
public Result<CaptchaVO> getCaptcha() {
CaptchaVO captcha = authService.getCaptcha();
return Result.success(captcha);
}
@@ -81,14 +81,14 @@ public class AuthController {
@Operation(summary = "微信小程序登录(Code)")
@PostMapping("/wx/miniapp/code-login")
public Result<AuthenticationToken> loginByWxMiniAppCode(@RequestBody @Valid WxMiniAppCodeLoginDto loginDto) {
public Result<AuthenticationToken> loginByWxMiniAppCode(@RequestBody @Valid WxMiniAppCodeLoginDTO loginDto) {
AuthenticationToken token = authService.loginByWxMiniAppCode(loginDto);
return Result.success(token);
}
@Operation(summary = "微信小程序登录(手机号)")
@PostMapping("/wx/miniapp/phone-login")
public Result<AuthenticationToken> loginByWxMiniAppPhone(@RequestBody @Valid WxMiniAppPhoneLoginDto loginDto) {
public Result<AuthenticationToken> loginByWxMiniAppPhone(@RequestBody @Valid WxMiniAppPhoneLoginDTO loginDto) {
AuthenticationToken token = authService.loginByWxMiniAppPhone(loginDto);
return Result.success(token);
}

View File

@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotBlank;
*/
@Schema(description = "微信小程序Code登录请求参数")
@Data
public class WxMiniAppCodeLoginDto {
public class WxMiniAppCodeLoginDTO {
@Schema(description = "微信小程序登录时获取的code", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "code不能为空")

View File

@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotBlank;
*/
@Schema(description = "微信小程序手机号登录请求参数")
@Data
public class WxMiniAppPhoneLoginDto {
public class WxMiniAppPhoneLoginDTO {
@Schema(description = "微信小程序登录时获取的code", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "code不能为空")

View File

@@ -13,7 +13,7 @@ import lombok.Data;
@Schema(description = "验证码信息")
@Data
@Builder
public class CaptchaVo {
public class CaptchaVO {
@Schema(description = "验证码缓存 ID")
private String captchaId;

View File

@@ -1,9 +1,9 @@
package com.youlai.boot.auth.service;
import com.youlai.boot.auth.model.vo.CaptchaVo;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDto;
import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.security.model.AuthenticationToken;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDto;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
/**
* 认证服务接口
@@ -32,7 +32,7 @@ public interface AuthService {
*
* @return 验证码
*/
CaptchaVo getCaptcha();
CaptchaVO getCaptcha();
/**
* 刷新令牌
@@ -56,7 +56,7 @@ public interface AuthService {
* @param loginDto 登录参数
* @return 访问令牌
*/
AuthenticationToken loginByWxMiniAppCode(WxMiniAppCodeLoginDto loginDto);
AuthenticationToken loginByWxMiniAppCode(WxMiniAppCodeLoginDTO loginDto);
/**
* 微信小程序手机号登录
@@ -64,7 +64,7 @@ public interface AuthService {
* @param loginDto 登录参数
* @return 访问令牌
*/
AuthenticationToken loginByWxMiniAppPhone(WxMiniAppPhoneLoginDto loginDto);
AuthenticationToken loginByWxMiniAppPhone(WxMiniAppPhoneLoginDTO loginDto);
/**
* 发送短信验证码

View File

@@ -5,9 +5,9 @@ import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDto;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDto;
import com.youlai.boot.auth.model.vo.CaptchaVo;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.service.AuthService;
import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SecurityConstants;
@@ -171,7 +171,7 @@ public class AuthServiceImpl implements AuthService {
* @return 验证码
*/
@Override
public CaptchaVo getCaptcha() {
public CaptchaVO getCaptcha() {
String captchaType = captchaProperties.getType();
int width = captchaProperties.getWidth();
@@ -207,7 +207,7 @@ public class AuthServiceImpl implements AuthService {
TimeUnit.SECONDS
);
return CaptchaVo.builder()
return CaptchaVO.builder()
.captchaId(captchaId)
.captchaBase64(imageBase64Data)
.build();
@@ -231,7 +231,7 @@ public class AuthServiceImpl implements AuthService {
* @return 访问令牌
*/
@Override
public AuthenticationToken loginByWxMiniAppCode(WxMiniAppCodeLoginDto loginDto) {
public AuthenticationToken loginByWxMiniAppCode(WxMiniAppCodeLoginDTO loginDto) {
// 1. 创建微信小程序认证令牌(未认证)
WxMiniAppCodeAuthenticationToken authenticationToken = new WxMiniAppCodeAuthenticationToken(loginDto.getCode());
@@ -252,7 +252,7 @@ public class AuthServiceImpl implements AuthService {
* @return 访问令牌
*/
@Override
public AuthenticationToken loginByWxMiniAppPhone(WxMiniAppPhoneLoginDto loginDto) {
public AuthenticationToken loginByWxMiniAppPhone(WxMiniAppPhoneLoginDTO loginDto) {
// 创建微信小程序手机号认证Token
WxMiniAppPhoneAuthenticationToken authenticationToken = new WxMiniAppPhoneAuthenticationToken(
loginDto.getCode(),

View File

@@ -3,11 +3,11 @@ package com.youlai.boot.platform.ai.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVo;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import com.youlai.boot.platform.ai.service.AiAssistantRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -41,17 +41,17 @@ public class AiAssistantController {
@Operation(summary = "解析自然语言命令")
@PostMapping("/parse")
public Result<AiParseResponseDto> parseCommand(
@RequestBody AiParseRequestDto request,
public Result<AiParseResponseDTO> parseCommand(
@RequestBody AiParseRequestDTO request,
HttpServletRequest httpRequest
) {
log.info("收到 AI 命令解析请求: {}", request.getCommand());
try {
AiParseResponseDto response = aiAssistantRecordService.parseCommand(request, httpRequest);
AiParseResponseDTO response = aiAssistantRecordService.parseCommand(request, httpRequest);
return Result.success(response);
} catch (Exception e) {
log.error("命令解析失败", e);
return Result.success(AiParseResponseDto.builder()
return Result.success(AiParseResponseDTO.builder()
.success(false)
.error(e.getMessage())
.build());
@@ -61,7 +61,7 @@ public class AiAssistantController {
@Operation(summary = "执行已解析的命令")
@PostMapping("/execute")
public Result<Object> executeCommand(
@RequestBody AiExecuteRequestDto request,
@RequestBody AiExecuteRequestDTO request,
HttpServletRequest httpRequest
) {
log.info("收到 AI 命令执行请求: {}", request.getFunctionCall().getName());
@@ -76,8 +76,8 @@ public class AiAssistantController {
@Operation(summary = "获取 AI 命令记录分页列表")
@GetMapping("/records")
public PageResult<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams) {
IPage<AiAssistantRecordVo> page = aiAssistantRecordService.getRecordPage(queryParams);
public PageResult<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams) {
IPage<AiAssistantRecordVO> page = aiAssistantRecordService.getRecordPage(queryParams);
return PageResult.success(page);
}

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVo;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
@@ -18,5 +18,5 @@ public interface AiAssistantRecordMapper extends BaseMapper<AiAssistantRecord> {
* @param queryParams 查询参数
* @return 分页结果
*/
IPage<AiAssistantRecordVo> getRecordPage(Page<AiAssistantRecordVo> page, AiAssistantPageQuery queryParams);
IPage<AiAssistantRecordVO> getRecordPage(Page<AiAssistantRecordVO> page, AiAssistantPageQuery queryParams);
}

View File

@@ -9,7 +9,7 @@ import lombok.Data;
* @since 3.0.0
*/
@Data
public class AiExecuteRequestDto {
public class AiExecuteRequestDTO {
/**
* 关联的解析日志ID
@@ -24,7 +24,7 @@ public class AiExecuteRequestDto {
/**
* 要执行的函数调用
*/
private AiFunctionCallDto functionCall;
private AiFunctionCallDTO functionCall;
/**
* 确认模式auto=自动执行, manual=需要用户确认

View File

@@ -15,7 +15,7 @@ import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AiExecuteResponseDto {
public class AiExecuteResponseDTO {
/**
* 是否执行成功

View File

@@ -16,7 +16,7 @@ import java.util.Map;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AiFunctionCallDto {
public class AiFunctionCallDTO {
/**
* 函数名称

View File

@@ -10,7 +10,7 @@ import java.util.Map;
* @since 3.0.0
*/
@Data
public class AiParseRequestDto {
public class AiParseRequestDTO {
/**
* 用户输入的自然语言命令

View File

@@ -16,7 +16,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AiParseResponseDto {
public class AiParseResponseDTO {
/**
* 解析日志ID用于关联执行记录
@@ -31,7 +31,7 @@ public class AiParseResponseDto {
/**
* 解析后的函数调用列表
*/
private List<AiFunctionCallDto> functionCalls;
private List<AiFunctionCallDTO> functionCalls;
/**
* AI 的理解和说明

View File

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
*/
@Data
@Schema(description = "AI 助手行为记录Vo")
public class AiAssistantRecordVo implements Serializable {
public class AiAssistantRecordVO implements Serializable {
@Schema(description = "主键ID")
private String id;

View File

@@ -2,12 +2,12 @@ package com.youlai.boot.platform.ai.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVo;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import jakarta.servlet.http.HttpServletRequest;
import java.util.List;
@@ -29,7 +29,7 @@ public interface AiAssistantRecordService extends IService<AiAssistantRecord> {
* @param httpRequest HTTP 请求(用于获取 IP 等上下文)
* @return 解析结果(包含 functionCalls 等信息)
*/
AiParseResponseDto parseCommand(AiParseRequestDto request, HttpServletRequest httpRequest);
AiParseResponseDTO parseCommand(AiParseRequestDTO request, HttpServletRequest httpRequest);
/**
* 执行已解析的命令。
@@ -39,7 +39,7 @@ public interface AiAssistantRecordService extends IService<AiAssistantRecord> {
* @return 执行结果
* @throws Exception 执行异常
*/
Object executeCommand(AiExecuteRequestDto request, HttpServletRequest httpRequest) throws Exception;
Object executeCommand(AiExecuteRequestDTO request, HttpServletRequest httpRequest) throws Exception;
/**
* 获取 AI 助手行为记录分页列表
@@ -47,7 +47,7 @@ public interface AiAssistantRecordService extends IService<AiAssistantRecord> {
* @param queryParams 查询参数
* @return 分页列表
*/
IPage<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams);
IPage<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams);
/**
* 删除 AI 助手行为记录。

View File

@@ -10,13 +10,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.platform.ai.mapper.AiAssistantRecordMapper;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiFunctionCallDto;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDto;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiFunctionCallDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVo;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import com.youlai.boot.platform.ai.service.AiAssistantRecordService;
import com.youlai.boot.platform.ai.tools.UserTools;
import com.youlai.boot.security.util.SecurityUtils;
@@ -64,12 +64,12 @@ public class AiAssistantRecordServiceImpl
private final ChatClient chatClient;
@Override
public AiParseResponseDto parseCommand(AiParseRequestDto request, HttpServletRequest httpRequest) {
public AiParseResponseDTO parseCommand(AiParseRequestDTO request, HttpServletRequest httpRequest) {
long startTime = System.currentTimeMillis();
String command = Optional.ofNullable(request.getCommand()).orElse("").trim();
if (StrUtil.isBlank(command)) {
return AiParseResponseDto.builder()
return AiParseResponseDTO.builder()
.success(false)
.error("命令不能为空")
.functionCalls(Collections.emptyList())
@@ -116,7 +116,7 @@ public class AiAssistantRecordServiceImpl
this.save(commandRecord);
return AiParseResponseDto.builder()
return AiParseResponseDTO.builder()
.parseLogId(commandRecord.getId())
.success(parseResult.success())
.functionCalls(parseResult.functionCalls())
@@ -142,7 +142,7 @@ public class AiAssistantRecordServiceImpl
return SYSTEM_PROMPT;
}
private String buildUserPrompt(AiParseRequestDto request) {
private String buildUserPrompt(AiParseRequestDTO request) {
JSONObject payload = JSONUtil.createObj()
.set("command", request.getCommand())
.set("currentRoute", request.getCurrentRoute())
@@ -180,7 +180,7 @@ public class AiAssistantRecordServiceImpl
String provider = jsonObject.getStr("provider");
String model = jsonObject.getStr("model");
List<AiFunctionCallDto> functionCalls = toFunctionCallList(jsonObject.getJSONArray("functionCalls"));
List<AiFunctionCallDTO> functionCalls = toFunctionCallList(jsonObject.getJSONArray("functionCalls"));
return new ParseResult(success, explanation, confidence, error, provider, model, functionCalls);
} catch (Exception ex) {
@@ -188,12 +188,12 @@ public class AiAssistantRecordServiceImpl
}
}
private List<AiFunctionCallDto> toFunctionCallList(JSONArray array) {
private List<AiFunctionCallDTO> toFunctionCallList(JSONArray array) {
if (array == null || array.isEmpty()) {
return Collections.emptyList();
}
List<AiFunctionCallDto> result = new ArrayList<>();
List<AiFunctionCallDTO> result = new ArrayList<>();
for (Object element : array) {
JSONObject functionJson = JSONUtil.parseObj(element);
Map<String, Object> arguments = Optional.ofNullable(functionJson.getJSONObject("arguments"))
@@ -201,7 +201,7 @@ public class AiAssistantRecordServiceImpl
}))
.orElse(Collections.emptyMap());
result.add(AiFunctionCallDto.builder()
result.add(AiFunctionCallDTO.builder()
.name(functionJson.getStr("name"))
.description(functionJson.getStr("description"))
.arguments(arguments)
@@ -217,17 +217,17 @@ public class AiAssistantRecordServiceImpl
String error,
String provider,
String model,
List<AiFunctionCallDto> functionCalls
List<AiFunctionCallDTO> functionCalls
) {
}
@Override
public Object executeCommand(AiExecuteRequestDto request, HttpServletRequest httpRequest) throws Exception {
public Object executeCommand(AiExecuteRequestDTO request, HttpServletRequest httpRequest) throws Exception {
Long userId = SecurityUtils.getUserId();
String username = SecurityUtils.getUsername();
String ipAddress = JakartaServletUtil.getClientIP(httpRequest);
AiFunctionCallDto functionCall = request.getFunctionCall();
AiFunctionCallDTO functionCall = request.getFunctionCall();
AiAssistantRecord commandRecord;
if (StrUtil.isNotBlank(request.getParseLogId())) {
@@ -264,7 +264,7 @@ public class AiAssistantRecordServiceImpl
}
}
private Object executeFunctionCall(AiFunctionCallDto functionCall) {
private Object executeFunctionCall(AiFunctionCallDTO functionCall) {
String functionName = functionCall.getName();
Map<String, Object> arguments = functionCall.getArguments();
@@ -294,8 +294,8 @@ public class AiAssistantRecordServiceImpl
}
@Override
public IPage<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams) {
Page<AiAssistantRecordVo> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
public IPage<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams) {
Page<AiAssistantRecordVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
return this.baseMapper.getRecordPage(page, queryParams);
}

View File

@@ -8,8 +8,8 @@ import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.platform.codegen.service.CodegenService;
import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVo;
import com.youlai.boot.platform.codegen.model.vo.TablePageVo;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.platform.codegen.service.GenTableService;
import io.swagger.v3.oas.annotations.Operation;
@@ -46,10 +46,10 @@ public class CodegenController {
@Operation(summary = "获取数据表分页列表")
@GetMapping("/table/page")
@Log(value = "代码生成分页列表", module = LogModuleEnum.OTHER)
public PageResult<TablePageVo> getTablePage(
public PageResult<TablePageVO> getTablePage(
TablePageQuery queryParams
) {
Page<TablePageVo> result = codegenService.getTablePage(queryParams);
Page<TablePageVO> result = codegenService.getTablePage(queryParams);
return PageResult.success(result);
}
@@ -82,9 +82,9 @@ public class CodegenController {
@Operation(summary = "获取预览生成代码")
@GetMapping("/{tableName}/preview")
@Log(value = "预览生成代码", module = LogModuleEnum.OTHER)
public Result<List<CodegenPreviewVo>> getTablePreviewData(@PathVariable String tableName,
public Result<List<CodegenPreviewVO>> getTablePreviewData(@PathVariable String tableName,
@RequestParam(value = "pageType", required = false, defaultValue = "classic") String pageType) {
List<CodegenPreviewVo> list = codegenService.getCodegenPreviewData(tableName, pageType);
List<CodegenPreviewVO> list = codegenService.getCodegenPreviewData(tableName, pageType);
return Result.success(list);
}

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.codegen.model.bo.ColumnMetaData;
import com.youlai.boot.platform.codegen.model.bo.TableMetaData;
import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.TablePageVo;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -27,7 +27,7 @@ public interface DatabaseMapper extends BaseMapper {
* @param queryParams
* @return
*/
Page<TablePageVo> getTablePage(Page<TablePageVo> page, TablePageQuery queryParams);
Page<TablePageVO> getTablePage(Page<TablePageVO> page, TablePageQuery queryParams);
/**
* 获取表字段列表

View File

@@ -5,7 +5,7 @@ import lombok.Data;
@Schema(description = "代码生成代码预览Vo")
@Data
public class CodegenPreviewVo {
public class CodegenPreviewVO {
@Schema(description = "生成文件路径")
private String path;

View File

@@ -6,7 +6,7 @@ import lombok.Data;
@Schema(description = "表视图对象")
@Data
public class TablePageVo {
public class TablePageVO {
@Schema(description = "表名称", example = "sys_user")
private String tableName;

View File

@@ -2,8 +2,8 @@ package com.youlai.boot.platform.codegen.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVo;
import com.youlai.boot.platform.codegen.model.vo.TablePageVo;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import java.util.List;
@@ -21,7 +21,7 @@ public interface CodegenService {
* @param queryParams 查询参数
* @return
*/
Page<TablePageVo> getTablePage(TablePageQuery queryParams);
Page<TablePageVO> getTablePage(TablePageQuery queryParams);
/**
* 获取预览生成代码
@@ -29,7 +29,7 @@ public interface CodegenService {
* @param tableName 表名
* @return
*/
List<CodegenPreviewVo> getCodegenPreviewData(String tableName, String pageType);
List<CodegenPreviewVO> getCodegenPreviewData(String tableName, String pageType);
/**
* 下载代码

View File

@@ -21,8 +21,8 @@ import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
import com.youlai.boot.platform.codegen.model.entity.GenTable;
import com.youlai.boot.platform.codegen.model.entity.GenTableColumn;
import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVo;
import com.youlai.boot.platform.codegen.model.vo.TablePageVo;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -61,8 +61,8 @@ public class CodegenServiceImpl implements CodegenService {
* @param queryParams 查询参数
* @return 分页结果
*/
public Page<TablePageVo> getTablePage(TablePageQuery queryParams) {
Page<TablePageVo> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
public Page<TablePageVO> getTablePage(TablePageQuery queryParams) {
Page<TablePageVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
// 设置排除的表
List<String> excludeTables = codegenProperties.getExcludeTables();
queryParams.setExcludeTables(excludeTables);
@@ -77,9 +77,9 @@ public class CodegenServiceImpl implements CodegenService {
* @return 预览数据
*/
@Override
public List<CodegenPreviewVo> getCodegenPreviewData(String tableName, String pageType) {
public List<CodegenPreviewVO> getCodegenPreviewData(String tableName, String pageType) {
List<CodegenPreviewVo> list = new ArrayList<>();
List<CodegenPreviewVO> list = new ArrayList<>();
GenTable genTable = genTableService.getOne(new LambdaQueryWrapper<GenTable>()
.eq(GenTable::getTableName, tableName)
@@ -100,7 +100,7 @@ public class CodegenServiceImpl implements CodegenService {
// 遍历模板配置
Map<String, CodegenProperties.TemplateConfig> templateConfigs = codegenProperties.getTemplateConfigs();
for (Map.Entry<String, CodegenProperties.TemplateConfig> templateConfigEntry : templateConfigs.entrySet()) {
CodegenPreviewVo previewVo = new CodegenPreviewVo();
CodegenPreviewVO previewVo = new CodegenPreviewVO();
CodegenProperties.TemplateConfig templateConfig = templateConfigEntry.getValue();
@@ -325,9 +325,9 @@ public class CodegenServiceImpl implements CodegenService {
* @param ui 页面类型
*/
private void generateAndZipCode(String tableName, ZipOutputStream zip, String ui) {
List<CodegenPreviewVo> codePreviewList = getCodegenPreviewData(tableName, ui);
List<CodegenPreviewVO> codePreviewList = getCodegenPreviewData(tableName, ui);
for (CodegenPreviewVo codePreview : codePreviewList) {
for (CodegenPreviewVO codePreview : codePreviewList) {
String fileName = codePreview.getFileName();
String content = codePreview.getContent();
String path = codePreview.getPath();

View File

@@ -101,7 +101,7 @@ public class WebSocketServiceImpl implements WebSocketService {
*
* @return 在线用户信息列表
*/
public List<UserSessionRegistry.OnlineUserDto> getOnlineUsers() {
public List<UserSessionRegistry.OnlineUserDTO> getOnlineUsers() {
return userSessionRegistry.getOnlineUsers();
}

View File

@@ -66,7 +66,7 @@ public class UserSessionRegistry {
return sessions != null && !sessions.isEmpty();
}
public List<OnlineUserDto> getOnlineUsers() {
public List<OnlineUserDTO> getOnlineUsers() {
return userSessionsMap.entrySet().stream()
.map(entry -> {
String username = entry.getKey();
@@ -78,7 +78,7 @@ public class UserSessionRegistry {
.min()
.orElse(System.currentTimeMillis());
return new OnlineUserDto(username, sessions.size(), earliestLoginTime);
return new OnlineUserDTO(username, sessions.size(), earliestLoginTime);
})
.collect(Collectors.toList());
}
@@ -95,7 +95,7 @@ public class UserSessionRegistry {
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class OnlineUserDto {
public static class OnlineUserDTO {
private String username;
private int sessionCount;
private long loginTime;

View File

@@ -7,7 +7,7 @@ import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery;
import com.youlai.boot.system.model.vo.ConfigVo;
import com.youlai.boot.system.model.vo.ConfigVO;
import com.youlai.boot.system.service.ConfigService;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.validation.Valid;
@@ -38,8 +38,8 @@ public class ConfigController {
@GetMapping("/page")
@PreAuthorize("@ss.hasPerm('sys:config:list')")
@Log( value = "系统配置分页列表",module = LogModuleEnum.SETTING)
public PageResult<ConfigVo> page(@ParameterObject ConfigPageQuery configPageQuery) {
IPage<ConfigVo> result = configService.page(configPageQuery);
public PageResult<ConfigVO> page(@ParameterObject ConfigPageQuery configPageQuery) {
IPage<ConfigVO> result = configService.page(configPageQuery);
return PageResult.success(result);
}

View File

@@ -6,7 +6,7 @@ import com.youlai.boot.common.model.Option;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery;
import com.youlai.boot.system.model.vo.DeptVo;
import com.youlai.boot.system.model.vo.DeptVO;
import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.system.service.DeptService;
import io.swagger.v3.oas.annotations.Parameter;
@@ -36,10 +36,10 @@ public class DeptController {
@Operation(summary = "部门列表")
@GetMapping
@Log( value = "部门列表",module = LogModuleEnum.DEPT)
public Result<List<DeptVo>> getDeptList(
public Result<List<DeptVO>> getDeptList(
DeptQuery queryParams
) {
List<DeptVo> list = deptService.getDeptList(queryParams);
List<DeptVO> list = deptService.getDeptList(queryParams);
return Result.success(list);
}

View File

@@ -8,9 +8,9 @@ import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo;
import com.youlai.boot.system.model.vo.DictItemPageVo;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.common.annotation.Log;
@@ -50,10 +50,10 @@ public class DictController {
@Operation(summary = "字典分页列表")
@GetMapping("/page")
@Log( value = "字典分页列表",module = LogModuleEnum.DICT)
public PageResult<DictPageVo> getDictPage(
public PageResult<DictPageVO> getDictPage(
DictPageQuery queryParams
) {
Page<DictPageVo> result = dictService.getDictPage(queryParams);
Page<DictPageVO> result = dictService.getDictPage(queryParams);
return PageResult.success(result);
}
@@ -127,21 +127,21 @@ public class DictController {
//---------------------------------------------------
@Operation(summary = "字典项分页列表")
@GetMapping("/{dictCode}/items/page")
public PageResult<DictItemPageVo> getDictItemPage(
public PageResult<DictItemPageVO> getDictItemPage(
@PathVariable String dictCode,
DictItemPageQuery queryParams
) {
queryParams.setDictCode(dictCode);
Page<DictItemPageVo> result = dictItemService.getDictItemPage(queryParams);
Page<DictItemPageVO> result = dictItemService.getDictItemPage(queryParams);
return PageResult.success(result);
}
@Operation(summary = "字典项列表")
@GetMapping("/{dictCode}/items")
public Result<List<DictItemOptionVo>> getDictItems(
public Result<List<DictItemOptionVO>> getDictItems(
@Parameter(description = "字典编码") @PathVariable String dictCode
) {
List<DictItemOptionVo> list = dictItemService.getDictItems(dictCode);
List<DictItemOptionVO> list = dictItemService.getDictItems(dictCode);
return Result.success(list);
}

View File

@@ -3,7 +3,7 @@ package com.youlai.boot.system.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.system.model.query.LogPageQuery;
import com.youlai.boot.system.model.vo.LogPageVo;
import com.youlai.boot.system.model.vo.LogPageVO;
import com.youlai.boot.system.service.LogService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,10 +26,10 @@ public class LogController {
@Operation(summary = "日志分页列表")
@GetMapping("/page")
public PageResult<LogPageVo> getLogPage(
public PageResult<LogPageVO> getLogPage(
LogPageQuery queryParams
) {
Page<LogPageVo> result = logService.getLogPage(queryParams);
Page<LogPageVO> result = logService.getLogPage(queryParams);
return PageResult.success(result);
}

View File

@@ -7,8 +7,8 @@ import com.youlai.boot.common.model.Option;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo;
import com.youlai.boot.system.model.vo.RouteVo;
import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVO;
import com.youlai.boot.system.service.MenuService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -38,8 +38,8 @@ public class MenuController {
@Operation(summary = "菜单列表")
@GetMapping
@Log(value = "菜单列表", module = LogModuleEnum.MENU)
public Result<List<MenuVo>> getMenus(MenuQuery queryParams) {
List<MenuVo> menuList = menuService.listMenus(queryParams);
public Result<List<MenuVO>> getMenus(MenuQuery queryParams) {
List<MenuVO> menuList = menuService.listMenus(queryParams);
return Result.success(menuList);
}
@@ -55,8 +55,8 @@ public class MenuController {
@Operation(summary = "当前用户菜单路由列表")
@GetMapping("/routes")
public Result<List<RouteVo>> getCurrentUserRoutes() {
List<RouteVo> routeList = menuService.listCurrentUserRoutes();
public Result<List<RouteVO>> getCurrentUserRoutes() {
List<RouteVO> routeList = menuService.listCurrentUserRoutes();
return Result.success(routeList);
}

View File

@@ -5,9 +5,9 @@ import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticeDetailVo;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.service.NoticeService;
import com.youlai.boot.system.service.UserNoticeService;
import io.swagger.v3.oas.annotations.Operation;
@@ -38,8 +38,8 @@ public class NoticeController {
@Operation(summary = "通知公告分页列表")
@GetMapping("/page")
@PreAuthorize("@ss.hasPerm('sys:notice:list')")
public PageResult<NoticePageVo> getNoticePage(NoticePageQuery queryParams) {
IPage<NoticePageVo> result = noticeService.getNoticePage(queryParams);
public PageResult<NoticePageVO> getNoticePage(NoticePageQuery queryParams) {
IPage<NoticePageVO> result = noticeService.getNoticePage(queryParams);
return PageResult.success(result);
}
@@ -63,10 +63,10 @@ public class NoticeController {
@Operation(summary = "阅读获取通知公告详情")
@GetMapping("/{id}/detail")
public Result<NoticeDetailVo> getNoticeDetail(
public Result<NoticeDetailVO> getNoticeDetail(
@Parameter(description = "通知公告ID") @PathVariable Long id
) {
NoticeDetailVo detailVo = noticeService.getNoticeDetail(id);
NoticeDetailVO detailVo = noticeService.getNoticeDetail(id);
return Result.success(detailVo);
}
@@ -120,10 +120,10 @@ public class NoticeController {
@Operation(summary = "获取我的通知公告分页列表")
@GetMapping("/my")
public PageResult<UserNoticePageVo> getMyNoticePage(
public PageResult<UserNoticePageVO> getMyNoticePage(
NoticePageQuery queryParams
) {
IPage<UserNoticePageVo> result = noticeService.getMyNoticePage(queryParams);
IPage<UserNoticePageVO> result = noticeService.getMyNoticePage(queryParams);
return PageResult.success(result);
}
}

View File

@@ -8,7 +8,7 @@ import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery;
import com.youlai.boot.system.model.vo.RolePageVo;
import com.youlai.boot.system.model.vo.RolePageVO;
import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.system.service.RoleService;
import io.swagger.v3.oas.annotations.Parameter;
@@ -39,10 +39,10 @@ public class RoleController {
@Operation(summary = "角色分页列表")
@GetMapping("/page")
@Log(value = "角色分页列表", module = LogModuleEnum.ROLE)
public PageResult<RolePageVo> getRolePage(
public PageResult<RolePageVO> getRolePage(
RolePageQuery queryParams
) {
Page<RolePageVo> result = roleService.getRolePage(queryParams);
Page<RolePageVO> result = roleService.getRolePage(queryParams);
return PageResult.success(result);
}

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.system.controller;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.vo.VisitStatsVo;
import com.youlai.boot.system.model.vo.VisitTrendVo;
import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVO;
import com.youlai.boot.system.service.LogService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -28,20 +28,20 @@ public class StatisticsController {
@Operation(summary = "访问趋势统计")
@GetMapping("/visits/trend")
public Result<VisitTrendVo> getVisitTrend(
public Result<VisitTrendVO> getVisitTrend(
@Parameter(description = "开始时间", example = "2024-01-01") @RequestParam String startDate,
@Parameter(description = "结束时间", example = "2024-12-31") @RequestParam String endDate
) {
LocalDate start = LocalDate.parse(startDate);
LocalDate end = LocalDate.parse(endDate);
VisitTrendVo data = logService.getVisitTrend(start, end);
VisitTrendVO data = logService.getVisitTrend(start, end);
return Result.success(data);
}
@Operation(summary = "访问概览统计")
@GetMapping("/visits/overview")
public Result<VisitStatsVo> getVisitOverview() {
VisitStatsVo result = logService.getVisitStats();
public Result<VisitStatsVO> getVisitOverview() {
VisitStatsVO result = logService.getVisitStats();
return Result.success(result);
}
}

View File

@@ -14,14 +14,14 @@ import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.util.ExcelUtils;
import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.system.listener.UserImportListener;
import com.youlai.boot.system.model.dto.UserExportDto;
import com.youlai.boot.system.model.dto.UserImportDto;
import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.dto.UserImportDTO;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.form.*;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.dto.CurrentUserDto;
import com.youlai.boot.system.model.vo.UserPageVo;
import com.youlai.boot.system.model.vo.UserProfileVo;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -59,10 +59,10 @@ public class UserController {
@Operation(summary = "用户分页列表")
@GetMapping("/page")
@Log(value = "用户分页列表", module = LogModuleEnum.USER)
public PageResult<UserPageVo> getUserPage(
public PageResult<UserPageVO> getUserPage(
@Valid UserPageQuery queryParams
) {
IPage<UserPageVo> result = userService.getUserPage(queryParams);
IPage<UserPageVO> result = userService.getUserPage(queryParams);
return PageResult.success(result);
}
@@ -130,8 +130,8 @@ public class UserController {
@Operation(summary = "获取当前登录用户信息")
@GetMapping("/me")
@Log(value = "获取当前登录用户信息", module = LogModuleEnum.USER)
public Result<CurrentUserDto> getCurrentUser() {
CurrentUserDto currentUserDto = userService.getCurrentUserInfo();
public Result<CurrentUserDTO> getCurrentUser() {
CurrentUserDTO currentUserDto = userService.getCurrentUserInfo();
return Result.success(currentUserDto);
}
@@ -160,7 +160,7 @@ public class UserController {
@Log(value = "导入用户", module = LogModuleEnum.USER)
public Result<ExcelResult> importUsers(MultipartFile file) throws IOException {
UserImportListener listener = new UserImportListener();
ExcelUtils.importExcel(file.getInputStream(), UserImportDto.class, listener);
ExcelUtils.importExcel(file.getInputStream(), UserImportDTO.class, listener);
return Result.success(listener.getExcelResult());
}
@@ -173,17 +173,17 @@ public class UserController {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8));
List<UserExportDto> exportUserList = userService.listExportUsers(queryParams);
EasyExcel.write(response.getOutputStream(), UserExportDto.class).sheet("用户列表")
List<UserExportDTO> exportUserList = userService.listExportUsers(queryParams);
EasyExcel.write(response.getOutputStream(), UserExportDTO.class).sheet("用户列表")
.doWrite(exportUserList);
}
@Operation(summary = "获取个人中心用户信息")
@GetMapping("/profile")
@Log(value = "获取个人中心用户信息", module = LogModuleEnum.USER)
public Result<UserProfileVo> getUserProfile() {
public Result<UserProfileVO> getUserProfile() {
Long userId = SecurityUtils.getUserId();
UserProfileVo userProfile = userService.getUserProfile(userId);
UserProfileVO userProfile = userService.getUserProfile(userId);
return Result.success(userProfile);
}

View File

@@ -2,7 +2,7 @@ package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Config;
import com.youlai.boot.system.model.vo.ConfigVo;
import com.youlai.boot.system.model.vo.ConfigVO;
import com.youlai.boot.system.model.form.ConfigForm;
import org.mapstruct.Mapper;
@@ -15,7 +15,7 @@ import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface ConfigConverter {
Page<ConfigVo> toPageVo(Page<Config> page);
Page<ConfigVO> toPageVo(Page<Config> page);
Config toEntity(ConfigForm configForm);

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.system.converter;
import com.youlai.boot.system.model.entity.Dept;
import com.youlai.boot.system.model.vo.DeptVo;
import com.youlai.boot.system.model.vo.DeptVO;
import com.youlai.boot.system.model.form.DeptForm;
import org.mapstruct.Mapper;
@@ -16,7 +16,7 @@ public interface DeptConverter {
DeptForm toForm(Dept entity);
DeptVo toVo(Dept entity);
DeptVO toVo(Dept entity);
Dept toEntity(DeptForm deptForm);

View File

@@ -2,7 +2,7 @@ package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.system.model.form.DictForm;
import org.mapstruct.Mapper;
@@ -15,7 +15,7 @@ import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface DictConverter {
Page<DictPageVo> toPageVo(Page<Dict> page);
Page<DictPageVO> toPageVo(Page<Dict> page);
DictForm toForm(Dict entity);

View File

@@ -3,7 +3,7 @@ package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.common.model.Option;
import org.mapstruct.Mapper;
@@ -18,7 +18,7 @@ import java.util.List;
@Mapper(componentModel = "spring")
public interface DictItemConverter {
Page<DictPageVo> toPageVo(Page<DictItem> page);
Page<DictPageVO> toPageVo(Page<DictItem> page);
DictItemForm toForm(DictItem entity);

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.system.converter;
import com.youlai.boot.system.model.entity.Menu;
import com.youlai.boot.system.model.vo.MenuVo;
import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.form.MenuForm;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -15,7 +15,7 @@ import org.mapstruct.Mapping;
@Mapper(componentModel = "spring")
public interface MenuConverter {
MenuVo toVo(Menu entity);
MenuVO toVo(Menu entity);
@Mapping(target = "params", ignore = true)
MenuForm toForm(Menu entity);

View File

@@ -1,11 +1,11 @@
package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.bo.NoticeBo;
import com.youlai.boot.system.model.bo.NoticeBO;
import com.youlai.boot.system.model.entity.Notice;
import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.vo.NoticeDetailVo;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.model.vo.NoticePageVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@@ -30,9 +30,9 @@ public interface NoticeConverter{
})
Notice toEntity(NoticeForm formData);
NoticePageVo toPageVo(NoticeBo bo);
NoticePageVO toPageVo(NoticeBO bo);
Page<NoticePageVo> toPageVo(Page<NoticeBo> noticePage);
Page<NoticePageVO> toPageVo(Page<NoticeBO> noticePage);
NoticeDetailVo toDetailVo(NoticeBo noticeBo);
NoticeDetailVO toDetailVo(NoticeBO noticeBo);
}

View File

@@ -2,7 +2,7 @@ package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Role;
import com.youlai.boot.system.model.vo.RolePageVo;
import com.youlai.boot.system.model.vo.RolePageVO;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.form.RoleForm;
import org.mapstruct.Mapper;
@@ -20,7 +20,7 @@ import java.util.List;
@Mapper(componentModel = "spring")
public interface RoleConverter {
Page<RolePageVo> toPageVo(Page<Role> page);
Page<RolePageVO> toPageVo(Page<Role> page);
@Mappings({
@Mapping(target = "value", source = "id"),

View File

@@ -3,12 +3,12 @@ package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.dto.CurrentUserDto;
import com.youlai.boot.system.model.vo.UserPageVo;
import com.youlai.boot.system.model.vo.UserProfileVo;
import com.youlai.boot.system.model.bo.UserBo;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.form.UserForm;
import com.youlai.boot.system.model.dto.UserImportDto;
import com.youlai.boot.system.model.dto.UserImportDTO;
import com.youlai.boot.system.model.form.UserProfileForm;
import org.mapstruct.InheritInverseConfiguration;
import org.mapstruct.Mapper;
@@ -26,9 +26,9 @@ import java.util.List;
@Mapper(componentModel = "spring")
public interface UserConverter {
UserPageVo toPageVo(UserBo bo);
UserPageVO toPageVo(UserBO bo);
Page<UserPageVo> toPageVo(Page<UserBo> bo);
Page<UserPageVO> toPageVo(Page<UserBO> bo);
UserForm toForm(User entity);
@@ -38,12 +38,12 @@ public interface UserConverter {
@Mappings({
@Mapping(target = "userId", source = "id")
})
CurrentUserDto toCurrentUserDto(User entity);
CurrentUserDTO toCurrentUserDto(User entity);
User toEntity(UserImportDto vo);
User toEntity(UserImportDTO vo);
UserProfileVo toProfileVo(UserBo bo);
UserProfileVO toProfileVo(UserBO bo);
User toEntity(UserProfileForm formData);

View File

@@ -14,7 +14,7 @@ import com.youlai.boot.common.enums.StatusEnum;
import com.youlai.boot.core.web.ExcelResult;
import com.youlai.boot.system.converter.UserConverter;
import com.youlai.boot.system.enums.DictCodeEnum;
import com.youlai.boot.system.model.dto.UserImportDto;
import com.youlai.boot.system.model.dto.UserImportDTO;
import com.youlai.boot.system.model.entity.*;
import com.youlai.boot.system.service.*;
import lombok.Getter;
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
* @since 2022/4/10
*/
@Slf4j
public class UserImportListener extends AnalysisEventListener<UserImportDto> {
public class UserImportListener extends AnalysisEventListener<UserImportDTO> {
/**
* Excel 导入结果
@@ -85,7 +85,7 @@ public class UserImportListener extends AnalysisEventListener<UserImportDto> {
* @param userImportDto 一行数据,类似于 {@link AnalysisContext#readRowHolder()}
*/
@Override
public void invoke(UserImportDto userImportDto, AnalysisContext analysisContext) {
public void invoke(UserImportDTO userImportDto, AnalysisContext analysisContext) {
log.info("解析到一条用户数据:{}", JSONUtil.toJsonStr(userImportDto));
boolean validation = true;

View File

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.vo.DictItemPageVo;
import com.youlai.boot.system.model.vo.DictItemPageVO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -19,7 +19,7 @@ public interface DictItemMapper extends BaseMapper<DictItem> {
/**
* 字典项分页列表
*/
Page<DictItemPageVo> getDictItemPage(Page<DictItemPageVo> page, DictItemPageQuery queryParams);
Page<DictItemPageVO> getDictItemPage(Page<DictItemPageVO> page, DictItemPageQuery queryParams);
}

View File

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictPageVO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -23,7 +23,7 @@ public interface DictMapper extends BaseMapper<Dict> {
* @param queryParams 查询参数
* @return 字典分页列表
*/
Page<DictPageVo> getDictPage(Page<DictPageVo> page, DictPageQuery queryParams);
Page<DictPageVO> getDictPage(Page<DictPageVO> page, DictPageQuery queryParams);
}

View File

@@ -2,11 +2,11 @@ package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.bo.VisitCountBo;
import com.youlai.boot.system.model.bo.VisitStatsBo;
import com.youlai.boot.system.model.bo.VisitCountBO;
import com.youlai.boot.system.model.bo.VisitStatsBO;
import com.youlai.boot.system.model.entity.Log;
import com.youlai.boot.system.model.query.LogPageQuery;
import com.youlai.boot.system.model.vo.LogPageVo;
import com.youlai.boot.system.model.vo.LogPageVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -24,7 +24,7 @@ public interface LogMapper extends BaseMapper<Log> {
/**
* 获取日志分页列表
*/
Page<LogPageVo> getLogPage(Page<LogPageVo> page, LogPageQuery queryParams);
Page<LogPageVO> getLogPage(Page<LogPageVO> page, LogPageQuery queryParams);
/**
* 统计浏览数(PV)
@@ -32,7 +32,7 @@ public interface LogMapper extends BaseMapper<Log> {
* @param startDate 开始日期 yyyy-MM-dd
* @param endDate 结束日期 yyyy-MM-dd
*/
List<VisitCountBo> getPvCounts(String startDate, String endDate);
List<VisitCountBO> getPvCounts(String startDate, String endDate);
/**
* 统计IP数
@@ -40,17 +40,17 @@ public interface LogMapper extends BaseMapper<Log> {
* @param startDate 开始日期 yyyy-MM-dd
* @param endDate 结束日期 yyyy-MM-dd
*/
List<VisitCountBo> getIpCounts(String startDate, String endDate);
List<VisitCountBO> getIpCounts(String startDate, String endDate);
/**
* 获取浏览量(PV)统计
*/
VisitStatsBo getPvStats();
VisitStatsBO getPvStats();
/**
* 获取访问IP统计
*/
VisitStatsBo getUvStats();
VisitStatsBO getUvStats();
}

View File

@@ -2,10 +2,10 @@ package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.bo.NoticeBo;
import com.youlai.boot.system.model.bo.NoticeBO;
import com.youlai.boot.system.model.entity.Notice;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.NoticePageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -25,7 +25,7 @@ public interface NoticeMapper extends BaseMapper<Notice> {
* @param queryParams 查询参数
* @return 通知公告分页数据
*/
Page<NoticeBo> getNoticePage(Page<NoticePageVo> page, NoticePageQuery queryParams);
Page<NoticeBO> getNoticePage(Page<NoticePageVO> page, NoticePageQuery queryParams);
/**
* 获取阅读时通知公告详情
@@ -33,5 +33,5 @@ public interface NoticeMapper extends BaseMapper<Notice> {
* @param id 通知公告ID
* @return 通知公告详情
*/
NoticeBo getNoticeDetail(@Param("id") Long id);
NoticeBO getNoticeDetail(@Param("id") Long id);
}

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.system.model.bo.RolePermsBo;
import com.youlai.boot.system.model.bo.RolePermsBO;
import com.youlai.boot.system.model.entity.RoleMenu;
import org.apache.ibatis.annotations.Mapper;
@@ -28,7 +28,7 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
/**
* 获取权限和拥有权限的角色列表
*/
List<RolePermsBo> getRolePermsList(String roleCode);
List<RolePermsBO> getRolePermsList(String roleCode);
/**

View File

@@ -2,13 +2,13 @@ package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.bo.UserBo;
import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.form.UserForm;
import com.youlai.boot.common.annotation.DataPermission;
import com.youlai.boot.security.model.UserAuthInfo;
import com.youlai.boot.system.model.dto.UserExportDto;
import com.youlai.boot.system.model.dto.UserExportDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -30,7 +30,7 @@ public interface UserMapper extends BaseMapper<User> {
* @return 用户分页列表
*/
@DataPermission(deptAlias = "u", userAlias = "u")
Page<UserBo> getUserPage(Page<UserBo> page, UserPageQuery queryParams);
Page<UserBO> getUserPage(Page<UserBO> page, UserPageQuery queryParams);
/**
* 获取用户表单详情
@@ -83,7 +83,7 @@ public interface UserMapper extends BaseMapper<User> {
* @return 导出用户列表
*/
@DataPermission(deptAlias = "u", userAlias = "u")
List<UserExportDto> listExportUsers(UserPageQuery queryParams);
List<UserExportDTO> listExportUsers(UserPageQuery queryParams);
/**
* 获取用户个人中心信息
@@ -91,6 +91,6 @@ public interface UserMapper extends BaseMapper<User> {
* @param userId 用户ID
* @return 用户个人中心信息
*/
UserBo getUserProfile(Long userId);
UserBO getUserProfile(Long userId);
}

View File

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -25,5 +25,5 @@ public interface UserNoticeMapper extends BaseMapper<UserNotice> {
* @param queryParams 查询参数
* @return 通知公告分页列表
*/
IPage<UserNoticePageVo> getMyNoticePage(Page<NoticePageVo> page, @Param("queryParams") NoticePageQuery queryParams);
IPage<UserNoticePageVO> getMyNoticePage(Page<NoticePageVO> page, @Param("queryParams") NoticePageQuery queryParams);
}

View File

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
* @since 2024-09-01 10:31
*/
@Data
public class NoticeBo {
public class NoticeBO {
/**
* 通知ID

View File

@@ -10,7 +10,7 @@ import java.util.Set;
* @since 3.0.0
*/
@Data
public class RolePermsBo {
public class RolePermsBO {
/**
* 角色编码

View File

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
* @since 2022/6/10
*/
@Data
public class UserBo {
public class UserBO {
/**
* 用户ID

View File

@@ -9,7 +9,7 @@ import lombok.Data;
* @since 2.10.0
*/
@Data
public class VisitCountBo {
public class VisitCountBO {
/**
* 日期 yyyy-MM-dd

View File

@@ -14,7 +14,7 @@ import java.math.BigDecimal;
*/
@Getter
@Setter
public class VisitStatsBo {
public class VisitStatsBO {
@Schema(description = "今日访问量 (PV)")
private Integer todayCount;

View File

@@ -13,7 +13,7 @@ import java.util.Set;
*/
@Schema(description ="当前登录用户对象")
@Data
public class CurrentUserDto {
public class CurrentUserDTO {
@Schema(description="用户ID")
private Long userId;

View File

@@ -13,7 +13,7 @@ import java.time.LocalDateTime;
* @since 2024-9-2 14:32:58
*/
@Data
public class NoticeDto {
public class NoticeDTO {
@Schema(description = "通知ID")
private Long id;

View File

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
@Data
@ColumnWidth(20)
public class UserExportDto {
public class UserExportDTO {
@ExcelProperty(value = "用户名")
private String username;

View File

@@ -10,7 +10,7 @@ import lombok.Data;
* @since 2022/4/10
*/
@Data
public class UserImportDto {
public class UserImportDTO {
@ExcelProperty(value = "用户名")
private String username;

View File

@@ -12,7 +12,7 @@ import java.util.Set;
* @since 3.0.0
*/
@Data
public class UserSessionDto {
public class UserSessionDTO {
/**
* 用户名
@@ -29,7 +29,7 @@ public class UserSessionDto {
*/
private long lastActiveTime;
public UserSessionDto(String username) {
public UserSessionDTO(String username) {
this.username = username;
this.sessionIds = new HashSet<>();
this.lastActiveTime = System.currentTimeMillis();

View File

@@ -19,7 +19,7 @@ import java.io.Serializable;
@Builder
@EqualsAndHashCode(callSuper = false)
@Schema(description = "系统配置Vo")
public class ConfigVo {
public class ConfigVO {
@Schema(description = "主键")
private Long id;

View File

@@ -9,7 +9,7 @@ import java.util.List;
@Schema(description = "部门视图对象")
@Data
public class DeptVo {
public class DeptVO {
@Schema(description = "部门ID")
private Long id;
@@ -30,7 +30,7 @@ public class DeptVo {
private Integer status;
@Schema(description = "子部门")
private List<DeptVo> children;
private List<DeptVO> children;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")

View File

@@ -13,7 +13,7 @@ import lombok.Setter;
@Schema(description = "字典项键值对象")
@Getter
@Setter
public class DictItemOptionVo {
public class DictItemOptionVO {
@Schema(description = "字典项值")
private String value;

View File

@@ -14,7 +14,7 @@ import lombok.Setter;
@Schema(description = "字典项分页对象")
@Getter
@Setter
public class DictItemPageVo {
public class DictItemPageVO {
@Schema(description = "字典项ID")
private Long id;

View File

@@ -13,7 +13,7 @@ import lombok.Setter;
@Schema(description = "字典分页对象")
@Getter
@Setter
public class DictPageVo {
public class DictPageVO {
@Schema(description = "字典ID")
private Long id;

View File

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
*/
@Data
@Schema(description = "系统日志分页Vo")
public class LogPageVo implements Serializable {
public class LogPageVO implements Serializable {
@Schema(description = "主键")
private Long id;

View File

@@ -8,7 +8,7 @@ import java.util.List;
@Schema(description ="菜单视图对象")
@Data
public class MenuVo {
public class MenuVO {
@Schema(description = "菜单ID")
private Long id;
@@ -48,7 +48,7 @@ public class MenuVo {
@Schema(description = "子菜单")
@JsonInclude(value = JsonInclude.Include.NON_NULL)
private List<MenuVo> children;
private List<MenuVO> children;
}

View File

@@ -13,7 +13,7 @@ import java.time.LocalDateTime;
* @since 2024-9-8 01:25:06
*/
@Data
public class NoticeDetailVo {
public class NoticeDetailVO {
@Schema(description = "通知ID")
private Long id;

View File

@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
@Getter
@Setter
@Schema(description = "通知公告视图对象")
public class NoticePageVo implements Serializable {
public class NoticePageVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

View File

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
@Schema(description ="角色分页对象")
@Data
public class RolePageVo {
public class RolePageVO {
@Schema(description="角色ID")
private Long id;

View File

@@ -16,7 +16,7 @@ import java.util.Map;
@Schema(description = "路由对象")
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouteVo {
public class RouteVO {
@Schema(description = "路由路径", example = "user")
private String path;
@@ -59,7 +59,7 @@ public class RouteVo {
}
@Schema(description = "子路由列表")
private List<RouteVo> children;
private List<RouteVO> children;
}

View File

@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
*/
@Data
@Schema(description = "用户公告Vo")
public class UserNoticePageVo {
public class UserNoticePageVO {
@Schema(description = "通知ID")
private Long id;

View File

@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
*/
@Schema(description ="用户分页对象")
@Data
public class UserPageVo {
public class UserPageVO {
@Schema(description="用户ID")
private Long id;

View File

@@ -14,7 +14,7 @@ import java.util.Date;
*/
@Schema(description = "个人中心用户信息")
@Data
public class UserProfileVo {
public class UserProfileVO {
@Schema(description = "用户ID")
private Long id;

View File

@@ -15,7 +15,7 @@ import java.math.BigDecimal;
@Schema(description = "访问量统计视图对象")
@Getter
@Setter
public class VisitStatsVo {
public class VisitStatsVO {
@Schema(description = "今日独立访客数 (UV)")
private Integer todayUvCount;

View File

@@ -15,7 +15,7 @@ import java.util.List;
@Schema(description = "访问趋势Vo")
@Getter
@Setter
public class VisitTrendVo {
public class VisitTrendVO {
@Schema(description = "日期列表")
private List<String> dates;

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.Config;
import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery;
import com.youlai.boot.system.model.vo.ConfigVo;
import com.youlai.boot.system.model.vo.ConfigVO;
/**
* 系统配置Service接口
@@ -20,7 +20,7 @@ public interface ConfigService extends IService<Config> {
* @param sysConfigPageQuery 查询参数
* @return 系统配置分页列表
*/
IPage<ConfigVo> page(ConfigPageQuery sysConfigPageQuery);
IPage<ConfigVO> page(ConfigPageQuery sysConfigPageQuery);
/**
* 保存系统配置

View File

@@ -5,7 +5,7 @@ import com.youlai.boot.system.model.entity.Dept;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery;
import com.youlai.boot.system.model.vo.DeptVo;
import com.youlai.boot.system.model.vo.DeptVO;
import java.util.List;
@@ -21,7 +21,7 @@ public interface DeptService extends IService<Dept> {
*
* @return 部门列表
*/
List<DeptVo> getDeptList(DeptQuery queryParams);
List<DeptVO> getDeptList(DeptQuery queryParams);
/**
* 部门树形下拉选项

View File

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo;
import com.youlai.boot.system.model.vo.DictItemPageVo;
import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVO;
import java.util.List;
@@ -24,7 +24,7 @@ public interface DictItemService extends IService<DictItem> {
* @param queryParams 查询参数
* @return 字典项分页列表
*/
Page<DictItemPageVo> getDictItemPage(DictItemPageQuery queryParams);
Page<DictItemPageVO> getDictItemPage(DictItemPageQuery queryParams);
/**
* 获取字典项列表
@@ -32,7 +32,7 @@ public interface DictItemService extends IService<DictItem> {
* @param dictCode 字典编码
* @return 字典项列表
*/
List<DictItemOptionVo> getDictItems(String dictCode);
List<DictItemOptionVO> getDictItems(String dictCode);
/**
* 获取字典项表单

View File

@@ -6,8 +6,8 @@ import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictPageVO;
import java.util.List;
@@ -25,7 +25,7 @@ public interface DictService extends IService<Dict> {
* @param queryParams 分页查询对象
* @return 字典分页列表
*/
Page<DictPageVo> getDictPage(DictPageQuery queryParams);
Page<DictPageVO> getDictPage(DictPageQuery queryParams);
/**
* 获取字典列表

View File

@@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Log;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.query.LogPageQuery;
import com.youlai.boot.system.model.vo.LogPageVo;
import com.youlai.boot.system.model.vo.VisitStatsVo;
import com.youlai.boot.system.model.vo.VisitTrendVo;
import com.youlai.boot.system.model.vo.LogPageVO;
import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVO;
import java.time.LocalDate;
import java.util.List;
@@ -22,7 +22,7 @@ public interface LogService extends IService<Log> {
/**
* 获取日志分页列表
*/
Page<LogPageVo> getLogPage(LogPageQuery queryParams);
Page<LogPageVO> getLogPage(LogPageQuery queryParams);
/**
@@ -31,11 +31,11 @@ public interface LogService extends IService<Log> {
* @param startDate 开始时间
* @param endDate 结束时间
*/
VisitTrendVo getVisitTrend(LocalDate startDate, LocalDate endDate);
VisitTrendVO getVisitTrend(LocalDate startDate, LocalDate endDate);
/**
* 获取访问统计
*/
VisitStatsVo getVisitStats();
VisitStatsVO getVisitStats();
}

View File

@@ -6,8 +6,8 @@ import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.Menu;
import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo;
import com.youlai.boot.system.model.vo.RouteVo;
import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVO;
import java.util.List;
import java.util.Set;
@@ -23,7 +23,7 @@ public interface MenuService extends IService<Menu> {
/**
* 获取菜单表格列表
*/
List<MenuVo> listMenus(MenuQuery queryParams);
List<MenuVO> listMenus(MenuQuery queryParams);
/**
* 获取菜单下拉列表
@@ -42,14 +42,14 @@ public interface MenuService extends IService<Menu> {
/**
* 获取当前用户的菜单路由列表
*/
List<RouteVo> listCurrentUserRoutes();
List<RouteVO> listCurrentUserRoutes();
/**
* 获取当前用户的菜单路由列表(指定数据源)
*
* @param datasource 数据源名称master(主库)、naiveui(NaiveUI数据库)、template(模板数据库)
*/
List<RouteVo> listCurrentUserRoutes(String datasource);
List<RouteVO> listCurrentUserRoutes(String datasource);
/**
* 修改菜单显示状态

View File

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.Notice;
import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticeDetailVo;
import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticeDetailVO;
/**
* 通知公告服务类
@@ -22,7 +22,7 @@ public interface NoticeService extends IService<Notice> {
*
* @return 通知公告分页列表
*/
IPage<NoticePageVo> getNoticePage(NoticePageQuery queryParams);
IPage<NoticePageVO> getNoticePage(NoticePageQuery queryParams);
/**
* 获取通知公告表单数据
@@ -79,7 +79,7 @@ public interface NoticeService extends IService<Notice> {
* @param id 通知公告ID
* @return 通知公告详情
*/
NoticeDetailVo getNoticeDetail(Long id);
NoticeDetailVO getNoticeDetail(Long id);
/**
* 获取我的通知公告分页列表
@@ -87,5 +87,5 @@ public interface NoticeService extends IService<Notice> {
* @param queryParams 查询参数
* @return 通知公告分页列表
*/
IPage<UserNoticePageVo> getMyNoticePage(NoticePageQuery queryParams);
IPage<UserNoticePageVO> getMyNoticePage(NoticePageQuery queryParams);
}

View File

@@ -7,7 +7,7 @@ import com.youlai.boot.system.model.entity.Role;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery;
import com.youlai.boot.system.model.vo.RolePageVo;
import com.youlai.boot.system.model.vo.RolePageVO;
import java.util.List;
import java.util.Set;
@@ -26,7 +26,7 @@ public interface RoleService extends IService<Role> {
* @param queryParams
* @return
*/
Page<RolePageVo> getRolePage(RolePageQuery queryParams);
Page<RolePageVO> getRolePage(RolePageQuery queryParams);
/**

View File

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticePageVO;
import java.util.List;
@@ -31,5 +31,5 @@ public interface UserNoticeService extends IService<UserNotice> {
* @param queryParams 查询参数
* @return 我的通知公告分页列表
*/
IPage<UserNoticePageVo> getMyNoticePage(Page<NoticePageVo> page, NoticePageQuery queryParams);
IPage<UserNoticePageVO> getMyNoticePage(Page<NoticePageVO> page, NoticePageQuery queryParams);
}

View File

@@ -66,9 +66,9 @@ public class UserOnlineService {
*
* @return 在线用户名列表
*/
public List<UserOnlineDto> getOnlineUsers() {
public List<UserOnlineDTO> getOnlineUsers() {
return onlineUsers.values().stream()
.map(info -> new UserOnlineDto(info.getUsername(), info.getLoginTime()))
.map(info -> new UserOnlineDTO(info.getUsername(), info.getLoginTime()))
.collect(Collectors.toList());
}
@@ -127,7 +127,7 @@ public class UserOnlineService {
* 用户在线Dto用于返回给前端
*/
@Data
public static class UserOnlineDto {
public static class UserOnlineDTO {
private final String username;
private final long loginTime;
}
@@ -139,7 +139,7 @@ public class UserOnlineService {
private static class OnlineUsersChangeEvent {
private String type;
private int count;
private List<UserOnlineDto> users;
private List<UserOnlineDTO> users;
private long timestamp;
}
}

View File

@@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.security.model.UserAuthInfo;
import com.youlai.boot.system.model.dto.CurrentUserDto;
import com.youlai.boot.system.model.dto.UserExportDto;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserPageVo;
import com.youlai.boot.system.model.vo.UserProfileVo;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.form.*;
import java.util.List;
@@ -27,7 +27,7 @@ public interface UserService extends IService<User> {
*
* @return {@link IPage<UserPageVo>} 用户分页列表
*/
IPage<UserPageVo> getUserPage(UserPageQuery queryParams);
IPage<UserPageVO> getUserPage(UserPageQuery queryParams);
/**
* 获取用户表单数据
@@ -84,7 +84,7 @@ public interface UserService extends IService<User> {
* @param queryParams 查询参数
* @return {@link List<UserExportDto>} 导出用户列表
*/
List<UserExportDto> listExportUsers(UserPageQuery queryParams);
List<UserExportDTO> listExportUsers(UserPageQuery queryParams);
/**
@@ -92,14 +92,14 @@ public interface UserService extends IService<User> {
*
* @return {@link CurrentUserDto} 登录用户信息
*/
CurrentUserDto getCurrentUserInfo();
CurrentUserDTO getCurrentUserInfo();
/**
* 获取个人中心用户信息
*
* @return {@link UserProfileVo} 个人中心用户信息
*/
UserProfileVo getUserProfile(Long userId);
UserProfileVO getUserProfile(Long userId);
/**
* 修改个人中心用户信息

View File

@@ -11,7 +11,7 @@ import com.youlai.boot.system.mapper.ConfigMapper;
import com.youlai.boot.system.model.entity.Config;
import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery;
import com.youlai.boot.system.model.vo.ConfigVo;
import com.youlai.boot.system.model.vo.ConfigVO;
import com.youlai.boot.system.service.ConfigService;
import com.youlai.boot.security.util.SecurityUtils;
import jakarta.annotation.PostConstruct;
@@ -54,7 +54,7 @@ public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> impleme
* @return 系统配置分页列表
*/
@Override
public IPage<ConfigVo> page(ConfigPageQuery configPageQuery) {
public IPage<ConfigVO> page(ConfigPageQuery configPageQuery) {
Page<Config> page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize());
String keywords = configPageQuery.getKeywords();
LambdaQueryWrapper<Config> query = new LambdaQueryWrapper<Config>()

View File

@@ -12,7 +12,7 @@ import com.youlai.boot.system.mapper.DeptMapper;
import com.youlai.boot.system.model.entity.Dept;
import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery;
import com.youlai.boot.system.model.vo.DeptVo;
import com.youlai.boot.system.model.vo.DeptVO;
import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.common.enums.StatusEnum;
import com.youlai.boot.common.model.Option;
@@ -42,7 +42,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
* 获取部门列表
*/
@Override
public List<DeptVo> getDeptList(DeptQuery queryParams) {
public List<DeptVO> getDeptList(DeptQuery queryParams) {
// 查询参数
String keywords = queryParams.getKeywords();
Integer status = queryParams.getStatus();
@@ -83,12 +83,12 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
* @param deptList 部门列表
* @return 部门树形列表
*/
public List<DeptVo> recurDeptList(Long parentId, List<Dept> deptList) {
public List<DeptVO> recurDeptList(Long parentId, List<Dept> deptList) {
return deptList.stream()
.filter(dept -> dept.getParentId().equals(parentId))
.map(dept -> {
DeptVo deptVo = deptConverter.toVo(dept);
List<DeptVo> children = recurDeptList(dept.getId(), deptList);
DeptVO deptVo = deptConverter.toVo(dept);
List<DeptVO> children = recurDeptList(dept.getId(), deptList);
deptVo.setChildren(children);
return deptVo;
}).toList();

View File

@@ -8,8 +8,8 @@ import com.youlai.boot.system.mapper.DictItemMapper;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo;
import com.youlai.boot.system.model.vo.DictItemPageVo;
import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.service.DictItemService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -36,10 +36,10 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
* @return 字典项分页列表
*/
@Override
public Page<DictItemPageVo> getDictItemPage(DictItemPageQuery queryParams) {
public Page<DictItemPageVO> getDictItemPage(DictItemPageQuery queryParams) {
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<DictItemPageVo> page = new Page<>(pageNum, pageSize);
Page<DictItemPageVO> page = new Page<>(pageNum, pageSize);
return this.baseMapper.getDictItemPage(page, queryParams);
}
@@ -51,7 +51,7 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
* @param dictCode 字典编码
*/
@Override
public List<DictItemOptionVo> getDictItems(String dictCode) {
public List<DictItemOptionVO> getDictItems(String dictCode) {
return this.list(
new LambdaQueryWrapper<DictItem>()
.eq(DictItem::getDictCode, dictCode)
@@ -59,7 +59,7 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
.orderByAsc(DictItem::getSort)
).stream()
.map(item -> {
DictItemOptionVo dictItemOptionVo = new DictItemOptionVo();
DictItemOptionVO dictItemOptionVo = new DictItemOptionVO();
dictItemOptionVo.setLabel(item.getLabel());
dictItemOptionVo.setValue(item.getValue());
dictItemOptionVo.setTagType(item.getTagType());

View File

@@ -12,7 +12,7 @@ import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictPageVo;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.system.service.DictItemService;
import com.youlai.boot.system.service.DictService;
import lombok.RequiredArgsConstructor;
@@ -40,7 +40,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
* @param queryParams 分页查询对象
*/
@Override
public Page<DictPageVo> getDictPage(DictPageQuery queryParams) {
public Page<DictPageVO> getDictPage(DictPageQuery queryParams) {
// 查询参数
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();

View File

@@ -3,13 +3,13 @@ package com.youlai.boot.system.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.system.mapper.LogMapper;
import com.youlai.boot.system.model.bo.VisitCountBo;
import com.youlai.boot.system.model.bo.VisitStatsBo;
import com.youlai.boot.system.model.bo.VisitCountBO;
import com.youlai.boot.system.model.bo.VisitStatsBO;
import com.youlai.boot.system.model.entity.Log;
import com.youlai.boot.system.model.query.LogPageQuery;
import com.youlai.boot.system.model.vo.LogPageVo;
import com.youlai.boot.system.model.vo.VisitStatsVo;
import com.youlai.boot.system.model.vo.VisitTrendVo;
import com.youlai.boot.system.model.vo.LogPageVO;
import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVO;
import com.youlai.boot.system.service.LogService;
import org.springframework.stereotype.Service;
@@ -36,7 +36,7 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* @return 日志分页列表
*/
@Override
public Page<LogPageVo> getLogPage(LogPageQuery queryParams) {
public Page<LogPageVO> getLogPage(LogPageQuery queryParams) {
return this.baseMapper.getLogPage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams);
}
@@ -49,8 +49,8 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* @return
*/
@Override
public VisitTrendVo getVisitTrend(LocalDate startDate, LocalDate endDate) {
VisitTrendVo visitTrend = new VisitTrendVo();
public VisitTrendVO getVisitTrend(LocalDate startDate, LocalDate endDate) {
VisitTrendVO visitTrend = new VisitTrendVO();
List<String> dates = new ArrayList<>();
// 获取日期范围内的日期
@@ -61,12 +61,12 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
visitTrend.setDates(dates);
// 获取访问量和访问 IP 数的统计数据
List<VisitCountBo> pvCounts = this.baseMapper.getPvCounts(dates.get(0) + " 00:00:00", dates.get(dates.size() - 1) + " 23:59:59");
List<VisitCountBo> ipCounts = this.baseMapper.getIpCounts(dates.get(0) + " 00:00:00", dates.get(dates.size() - 1) + " 23:59:59");
List<VisitCountBO> pvCounts = this.baseMapper.getPvCounts(dates.get(0) + " 00:00:00", dates.get(dates.size() - 1) + " 23:59:59");
List<VisitCountBO> ipCounts = this.baseMapper.getIpCounts(dates.get(0) + " 00:00:00", dates.get(dates.size() - 1) + " 23:59:59");
// 将统计数据转换为 Map
Map<String, Integer> pvMap = pvCounts.stream().collect(Collectors.toMap(VisitCountBo::getDate, VisitCountBo::getCount));
Map<String, Integer> ipMap = ipCounts.stream().collect(Collectors.toMap(VisitCountBo::getDate, VisitCountBo::getCount));
Map<String, Integer> pvMap = pvCounts.stream().collect(Collectors.toMap(VisitCountBO::getDate, VisitCountBO::getCount));
Map<String, Integer> ipMap = ipCounts.stream().collect(Collectors.toMap(VisitCountBO::getDate, VisitCountBO::getCount));
// 匹配日期和访问量/访问 IP 数
List<Integer> pvList = new ArrayList<>();
@@ -87,11 +87,11 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* 访问量统计
*/
@Override
public VisitStatsVo getVisitStats() {
VisitStatsVo result = new VisitStatsVo();
public VisitStatsVO getVisitStats() {
VisitStatsVO result = new VisitStatsVO();
// 访客数统计(UV)
VisitStatsBo uvStats = this.baseMapper.getUvStats();
VisitStatsBO uvStats = this.baseMapper.getUvStats();
if(uvStats!=null){
result.setTodayUvCount(uvStats.getTodayCount());
result.setTotalUvCount(uvStats.getTotalCount());
@@ -99,7 +99,7 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
}
// 浏览量统计(PV)
VisitStatsBo pvStats = this.baseMapper.getPvStats();
VisitStatsBO pvStats = this.baseMapper.getPvStats();
if(pvStats!=null){
result.setTodayPvCount(pvStats.getTodayCount());
result.setTotalPvCount(pvStats.getTotalCount());

View File

@@ -17,8 +17,8 @@ import com.youlai.boot.system.mapper.MenuMapper;
import com.youlai.boot.system.model.entity.Menu;
import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo;
import com.youlai.boot.system.model.vo.RouteVo;
import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVO;
import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.system.enums.MenuTypeEnum;
import com.youlai.boot.common.enums.StatusEnum;
@@ -55,7 +55,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param queryParams {@link MenuQuery}
*/
@Override
public List<MenuVo> listMenus(MenuQuery queryParams) {
public List<MenuVO> listMenus(MenuQuery queryParams) {
List<Menu> menus = this.list(new LambdaQueryWrapper<Menu>()
.like(StrUtil.isNotBlank(queryParams.getKeywords()), Menu::getName, queryParams.getKeywords())
.orderByAsc(Menu::getSort)
@@ -88,13 +88,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param menuList 菜单列表
* @return 菜单列表
*/
private List<MenuVo> buildMenuTree(Long parentId, List<Menu> menuList) {
private List<MenuVO> buildMenuTree(Long parentId, List<Menu> menuList) {
return CollectionUtil.emptyIfNull(menuList)
.stream()
.filter(menu -> menu.getParentId().equals(parentId))
.map(entity -> {
MenuVo menuVo = menuConverter.toVo(entity);
List<MenuVo> children = buildMenuTree(entity.getId(), menuList);
MenuVO menuVo = menuConverter.toVo(entity);
List<MenuVO> children = buildMenuTree(entity.getId(), menuList);
menuVo.setChildren(children);
return menuVo;
}).toList();
@@ -142,7 +142,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* 获取当前用户的菜单路由列表
*/
@Override
public List<RouteVo> listCurrentUserRoutes() {
public List<RouteVO> listCurrentUserRoutes() {
Set<String> roleCodes = SecurityUtils.getRoles();
if (CollectionUtil.isEmpty(roleCodes)) {
@@ -195,7 +195,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* - template: 模板项目菜单数据
*/
@Override
public List<RouteVo> listCurrentUserRoutes(String datasource) {
public List<RouteVO> listCurrentUserRoutes(String datasource) {
return listCurrentUserRoutes();
}
@@ -207,13 +207,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param menuList 菜单列表
* @return 路由层级列表
*/
private List<RouteVo> buildRoutes(Long parentId, List<Menu> menuList) {
List<RouteVo> routeList = new ArrayList<>();
private List<RouteVO> buildRoutes(Long parentId, List<Menu> menuList) {
List<RouteVO> routeList = new ArrayList<>();
for (Menu menu : menuList) {
if (menu.getParentId().equals(parentId)) {
RouteVo routeVo = toRouteVo(menu);
List<RouteVo> children = buildRoutes(menu.getId(), menuList);
RouteVO routeVo = toRouteVo(menu);
List<RouteVO> children = buildRoutes(menu.getId(), menuList);
if (!children.isEmpty()) {
routeVo.setChildren(children);
}
@@ -227,8 +227,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
/**
* 根据RouteBO创建RouteVo
*/
private RouteVo toRouteVo(Menu menu) {
RouteVo routeVo = new RouteVo();
private RouteVO toRouteVo(Menu menu) {
RouteVO routeVo = new RouteVO();
String routePath = menu.getRoutePath();
boolean externalLink = StrUtil.startWithAny(routePath, "http://", "https://");
@@ -249,7 +249,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
// 外链无组件
routeVo.setComponent(externalLink ? null : menu.getComponent());
RouteVo.Meta meta = new RouteVo.Meta();
RouteVO.Meta meta = new RouteVO.Meta();
meta.setTitle(menu.getName());
meta.setIcon(menu.getIcon());
meta.setHidden(StatusEnum.DISABLE.getValue().equals(menu.getVisible()));

View File

@@ -13,16 +13,16 @@ import com.youlai.boot.system.converter.NoticeConverter;
import com.youlai.boot.system.enums.NoticePublishStatusEnum;
import com.youlai.boot.system.enums.NoticeTargetEnum;
import com.youlai.boot.system.mapper.NoticeMapper;
import com.youlai.boot.system.model.bo.NoticeBo;
import com.youlai.boot.system.model.dto.NoticeDto;
import com.youlai.boot.system.model.bo.NoticeBO;
import com.youlai.boot.system.model.dto.NoticeDTO;
import com.youlai.boot.system.model.entity.Notice;
import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticeDetailVo;
import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.service.NoticeService;
import com.youlai.boot.system.service.UserNoticeService;
import com.youlai.boot.system.service.UserOnlineService;
@@ -63,8 +63,8 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return {@link IPage< NoticePageVo >} 通知公告分页列表
*/
@Override
public IPage<NoticePageVo> getNoticePage(NoticePageQuery queryParams) {
Page<NoticeBo> noticePage = this.baseMapper.getNoticePage(
public IPage<NoticePageVO> getNoticePage(NoticePageQuery queryParams) {
Page<NoticeBO> noticePage = this.baseMapper.getNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams
);
@@ -215,13 +215,13 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
Set<String> receivers = targetUserList.stream().map(User::getUsername).collect(Collectors.toSet());
Set<String> allOnlineUsers = userOnlineService.getOnlineUsers().stream()
.map(UserOnlineService.UserOnlineDto::getUsername)
.map(UserOnlineService.UserOnlineDTO::getUsername)
.collect(Collectors.toSet());
// 找出在线用户的通知接收者
Set<String> onlineReceivers = new HashSet<>(CollectionUtil.intersection(receivers, allOnlineUsers));
NoticeDto noticeDto = new NoticeDto();
NoticeDTO noticeDto = new NoticeDTO();
noticeDto.setId(id);
noticeDto.setTitle(notice.getTitle());
noticeDto.setType(notice.getType());
@@ -271,8 +271,8 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return NoticeDetailVo 通知公告详情
*/
@Override
public NoticeDetailVo getNoticeDetail(Long id) {
NoticeBo noticeBo = this.baseMapper.getNoticeDetail(id);
public NoticeDetailVO getNoticeDetail(Long id) {
NoticeBO noticeBo = this.baseMapper.getNoticeDetail(id);
// 更新用户通知公告的阅读状态
Long userId = SecurityUtils.getUserId();
userNoticeService.update(new LambdaUpdateWrapper<UserNotice>()
@@ -291,7 +291,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return 通知公告分页列表
*/
@Override
public IPage<UserNoticePageVo> getMyNoticePage(NoticePageQuery queryParams) {
public IPage<UserNoticePageVO> getMyNoticePage(NoticePageQuery queryParams) {
queryParams.setUserId(SecurityUtils.getUserId());
return userNoticeService.getMyNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.system.mapper.RoleMenuMapper;
import com.youlai.boot.system.model.bo.RolePermsBo;
import com.youlai.boot.system.model.bo.RolePermsBO;
import com.youlai.boot.system.model.entity.RoleMenu;
import com.youlai.boot.system.service.RoleMenuService;
import jakarta.annotation.PostConstruct;
@@ -36,7 +36,7 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
public void initRolePermsCache() {
log.info("开始初始化权限缓存...");
List<RolePermsBo> allRolePermsList = this.baseMapper.getRolePermsList(null);
List<RolePermsBO> allRolePermsList = this.baseMapper.getRolePermsList(null);
if (CollectionUtil.isEmpty(allRolePermsList)) {
log.warn("权限数据为空,跳过缓存初始化");
@@ -67,7 +67,7 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.delete(cacheKey);
// 重新加载权限
List<RolePermsBo> list = this.baseMapper.getRolePermsList(null);
List<RolePermsBO> list = this.baseMapper.getRolePermsList(null);
if (CollectionUtil.isNotEmpty(list)) {
list.forEach(item -> {
String roleCode = item.getRoleCode();
@@ -92,9 +92,9 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.opsForHash().delete(cacheKey, roleCode);
// 重新加载指定角色权限
List<RolePermsBo> list = this.baseMapper.getRolePermsList(roleCode);
List<RolePermsBO> list = this.baseMapper.getRolePermsList(roleCode);
if (CollectionUtil.isNotEmpty(list)) {
RolePermsBo rolePerms = list.get(0);
RolePermsBO rolePerms = list.get(0);
if (rolePerms != null) {
Set<String> perms = rolePerms.getPerms();
if (CollectionUtil.isNotEmpty(perms)) {
@@ -117,9 +117,9 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.opsForHash().delete(cacheKey, oldRoleCode);
// 添加新角色权限缓存
List<RolePermsBo> list = this.baseMapper.getRolePermsList(newRoleCode);
List<RolePermsBO> list = this.baseMapper.getRolePermsList(newRoleCode);
if (CollectionUtil.isNotEmpty(list)) {
RolePermsBo rolePerms = list.get(0);
RolePermsBO rolePerms = list.get(0);
if (rolePerms != null) {
Set<String> perms = rolePerms.getPerms();
if (CollectionUtil.isNotEmpty(perms)) {

View File

@@ -14,7 +14,7 @@ import com.youlai.boot.system.model.entity.Role;
import com.youlai.boot.system.model.entity.RoleMenu;
import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery;
import com.youlai.boot.system.model.vo.RolePageVo;
import com.youlai.boot.system.model.vo.RolePageVO;
import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.security.util.SecurityUtils;
@@ -51,7 +51,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
* @return {@link Page< RolePageVo >} 角色分页列表
*/
@Override
public Page<RolePageVo> getRolePage(RolePageQuery queryParams) {
public Page<RolePageVO> getRolePage(RolePageQuery queryParams) {
// 查询参数
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();

View File

@@ -8,8 +8,8 @@ import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.system.mapper.UserNoticeMapper;
import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticePageVo;
import com.youlai.boot.system.model.vo.UserNoticePageVo;
import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.service.UserNoticeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -51,7 +51,7 @@ public class UserNoticeServiceImpl extends ServiceImpl<UserNoticeMapper, UserNot
* @return 通知公告分页列表
*/
@Override
public IPage<UserNoticePageVo> getMyNoticePage(Page<NoticePageVo> page, NoticePageQuery queryParams) {
public IPage<UserNoticePageVO> getMyNoticePage(Page<NoticePageVO> page, NoticePageQuery queryParams) {
return this.getBaseMapper().getMyNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams

View File

@@ -22,16 +22,16 @@ import com.youlai.boot.platform.mail.service.MailService;
import com.youlai.boot.system.converter.UserConverter;
import com.youlai.boot.system.enums.DictCodeEnum;
import com.youlai.boot.system.mapper.UserMapper;
import com.youlai.boot.system.model.bo.UserBo;
import com.youlai.boot.system.model.dto.CurrentUserDto;
import com.youlai.boot.system.model.dto.UserExportDto;
import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.entity.UserRole;
import com.youlai.boot.system.model.form.*;
import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserPageVo;
import com.youlai.boot.system.model.vo.UserProfileVo;
import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.service.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -84,18 +84,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link IPage<UserPageVo>} 用户分页列表
*/
@Override
public IPage<UserPageVo> getUserPage(UserPageQuery queryParams) {
public IPage<UserPageVO> getUserPage(UserPageQuery queryParams) {
// 参数构建
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<UserBo> page = new Page<>(pageNum, pageSize);
Page<UserBO> page = new Page<>(pageNum, pageSize);
boolean isRoot = SecurityUtils.isRoot();
queryParams.setIsRoot(isRoot);
// 查询数据
Page<UserBo> userPage = this.baseMapper.getUserPage(page, queryParams);
Page<UserBO> userPage = this.baseMapper.getUserPage(page, queryParams);
// 实体转换
return userConverter.toPageVo(userPage);
@@ -403,12 +403,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link List<UserExportDto>} 导出用户列表
*/
@Override
public List<UserExportDto> listExportUsers(UserPageQuery queryParams) {
public List<UserExportDTO> listExportUsers(UserPageQuery queryParams) {
boolean isRoot = SecurityUtils.isRoot();
queryParams.setIsRoot(isRoot);
List<UserExportDto> exportUsers = this.baseMapper.listExportUsers(queryParams);
List<UserExportDTO> exportUsers = this.baseMapper.listExportUsers(queryParams);
if (CollectionUtil.isNotEmpty(exportUsers)) {
//获取性别的字典项
Map<String, String> genderMap = dictItemService.list(
@@ -441,7 +441,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link CurrentUserDto} 用户信息
*/
@Override
public CurrentUserDto getCurrentUserInfo() {
public CurrentUserDTO getCurrentUserInfo() {
String username = SecurityUtils.getUsername();
@@ -456,7 +456,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
)
);
// entity->Vo
CurrentUserDto userInfoVo = userConverter.toCurrentUserDto(user);
CurrentUserDTO userInfoVo = userConverter.toCurrentUserDto(user);
// 用户角色集合
Set<String> roles = SecurityUtils.getRoles();
@@ -477,8 +477,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link UserProfileVo} 个人中心用户信息
*/
@Override
public UserProfileVo getUserProfile(Long userId) {
UserBo entity = this.baseMapper.getUserProfile(userId);
public UserProfileVO getUserProfile(Long userId) {
UserBO entity = this.baseMapper.getUserProfile(userId);
return userConverter.toProfileVo(entity);
}