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

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,11 +3,11 @@ package com.youlai.boot.platform.ai.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.youlai.boot.core.web.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDto; 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.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto; 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.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.service.AiAssistantRecordService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -41,17 +41,17 @@ public class AiAssistantController {
@Operation(summary = "解析自然语言命令") @Operation(summary = "解析自然语言命令")
@PostMapping("/parse") @PostMapping("/parse")
public Result<AiParseResponseDto> parseCommand( public Result<AiParseResponseDTO> parseCommand(
@RequestBody AiParseRequestDto request, @RequestBody AiParseRequestDTO request,
HttpServletRequest httpRequest HttpServletRequest httpRequest
) { ) {
log.info("收到 AI 命令解析请求: {}", request.getCommand()); log.info("收到 AI 命令解析请求: {}", request.getCommand());
try { try {
AiParseResponseDto response = aiAssistantRecordService.parseCommand(request, httpRequest); AiParseResponseDTO response = aiAssistantRecordService.parseCommand(request, httpRequest);
return Result.success(response); return Result.success(response);
} catch (Exception e) { } catch (Exception e) {
log.error("命令解析失败", e); log.error("命令解析失败", e);
return Result.success(AiParseResponseDto.builder() return Result.success(AiParseResponseDTO.builder()
.success(false) .success(false)
.error(e.getMessage()) .error(e.getMessage())
.build()); .build());
@@ -61,7 +61,7 @@ public class AiAssistantController {
@Operation(summary = "执行已解析的命令") @Operation(summary = "执行已解析的命令")
@PostMapping("/execute") @PostMapping("/execute")
public Result<Object> executeCommand( public Result<Object> executeCommand(
@RequestBody AiExecuteRequestDto request, @RequestBody AiExecuteRequestDTO request,
HttpServletRequest httpRequest HttpServletRequest httpRequest
) { ) {
log.info("收到 AI 命令执行请求: {}", request.getFunctionCall().getName()); log.info("收到 AI 命令执行请求: {}", request.getFunctionCall().getName());
@@ -76,8 +76,8 @@ public class AiAssistantController {
@Operation(summary = "获取 AI 命令记录分页列表") @Operation(summary = "获取 AI 命令记录分页列表")
@GetMapping("/records") @GetMapping("/records")
public PageResult<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams) { public PageResult<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams) {
IPage<AiAssistantRecordVo> page = aiAssistantRecordService.getRecordPage(queryParams); IPage<AiAssistantRecordVO> page = aiAssistantRecordService.getRecordPage(queryParams);
return PageResult.success(page); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord; 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.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; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
@@ -18,5 +18,5 @@ public interface AiAssistantRecordMapper extends BaseMapper<AiAssistantRecord> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 分页结果 * @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 * @since 3.0.0
*/ */
@Data @Data
public class AiExecuteRequestDto { public class AiExecuteRequestDTO {
/** /**
* 关联的解析日志ID * 关联的解析日志ID
@@ -24,7 +24,7 @@ public class AiExecuteRequestDto {
/** /**
* 要执行的函数调用 * 要执行的函数调用
*/ */
private AiFunctionCallDto functionCall; private AiFunctionCallDTO functionCall;
/** /**
* 确认模式auto=自动执行, manual=需要用户确认 * 确认模式auto=自动执行, manual=需要用户确认

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
*/ */
@Data @Data
@Schema(description = "AI 助手行为记录Vo") @Schema(description = "AI 助手行为记录Vo")
public class AiAssistantRecordVo implements Serializable { public class AiAssistantRecordVO implements Serializable {
@Schema(description = "主键ID") @Schema(description = "主键ID")
private String 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDto; 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.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto; 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.entity.AiAssistantRecord;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery; 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 jakarta.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
@@ -29,7 +29,7 @@ public interface AiAssistantRecordService extends IService<AiAssistantRecord> {
* @param httpRequest HTTP 请求(用于获取 IP 等上下文) * @param httpRequest HTTP 请求(用于获取 IP 等上下文)
* @return 解析结果(包含 functionCalls 等信息) * @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 执行结果 * @return 执行结果
* @throws Exception 执行异常 * @throws Exception 执行异常
*/ */
Object executeCommand(AiExecuteRequestDto request, HttpServletRequest httpRequest) throws Exception; Object executeCommand(AiExecuteRequestDTO request, HttpServletRequest httpRequest) throws Exception;
/** /**
* 获取 AI 助手行为记录分页列表 * 获取 AI 助手行为记录分页列表
@@ -47,7 +47,7 @@ public interface AiAssistantRecordService extends IService<AiAssistantRecord> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 分页列表 * @return 分页列表
*/ */
IPage<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams); IPage<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams);
/** /**
* 删除 AI 助手行为记录。 * 删除 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.platform.ai.mapper.AiAssistantRecordMapper; 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.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiFunctionCallDto; 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.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDto; 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.entity.AiAssistantRecord;
import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery; 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.service.AiAssistantRecordService;
import com.youlai.boot.platform.ai.tools.UserTools; import com.youlai.boot.platform.ai.tools.UserTools;
import com.youlai.boot.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
@@ -64,12 +64,12 @@ public class AiAssistantRecordServiceImpl
private final ChatClient chatClient; private final ChatClient chatClient;
@Override @Override
public AiParseResponseDto parseCommand(AiParseRequestDto request, HttpServletRequest httpRequest) { public AiParseResponseDTO parseCommand(AiParseRequestDTO request, HttpServletRequest httpRequest) {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
String command = Optional.ofNullable(request.getCommand()).orElse("").trim(); String command = Optional.ofNullable(request.getCommand()).orElse("").trim();
if (StrUtil.isBlank(command)) { if (StrUtil.isBlank(command)) {
return AiParseResponseDto.builder() return AiParseResponseDTO.builder()
.success(false) .success(false)
.error("命令不能为空") .error("命令不能为空")
.functionCalls(Collections.emptyList()) .functionCalls(Collections.emptyList())
@@ -116,7 +116,7 @@ public class AiAssistantRecordServiceImpl
this.save(commandRecord); this.save(commandRecord);
return AiParseResponseDto.builder() return AiParseResponseDTO.builder()
.parseLogId(commandRecord.getId()) .parseLogId(commandRecord.getId())
.success(parseResult.success()) .success(parseResult.success())
.functionCalls(parseResult.functionCalls()) .functionCalls(parseResult.functionCalls())
@@ -142,7 +142,7 @@ public class AiAssistantRecordServiceImpl
return SYSTEM_PROMPT; return SYSTEM_PROMPT;
} }
private String buildUserPrompt(AiParseRequestDto request) { private String buildUserPrompt(AiParseRequestDTO request) {
JSONObject payload = JSONUtil.createObj() JSONObject payload = JSONUtil.createObj()
.set("command", request.getCommand()) .set("command", request.getCommand())
.set("currentRoute", request.getCurrentRoute()) .set("currentRoute", request.getCurrentRoute())
@@ -180,7 +180,7 @@ public class AiAssistantRecordServiceImpl
String provider = jsonObject.getStr("provider"); String provider = jsonObject.getStr("provider");
String model = jsonObject.getStr("model"); 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); return new ParseResult(success, explanation, confidence, error, provider, model, functionCalls);
} catch (Exception ex) { } 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()) { if (array == null || array.isEmpty()) {
return Collections.emptyList(); return Collections.emptyList();
} }
List<AiFunctionCallDto> result = new ArrayList<>(); List<AiFunctionCallDTO> result = new ArrayList<>();
for (Object element : array) { for (Object element : array) {
JSONObject functionJson = JSONUtil.parseObj(element); JSONObject functionJson = JSONUtil.parseObj(element);
Map<String, Object> arguments = Optional.ofNullable(functionJson.getJSONObject("arguments")) Map<String, Object> arguments = Optional.ofNullable(functionJson.getJSONObject("arguments"))
@@ -201,7 +201,7 @@ public class AiAssistantRecordServiceImpl
})) }))
.orElse(Collections.emptyMap()); .orElse(Collections.emptyMap());
result.add(AiFunctionCallDto.builder() result.add(AiFunctionCallDTO.builder()
.name(functionJson.getStr("name")) .name(functionJson.getStr("name"))
.description(functionJson.getStr("description")) .description(functionJson.getStr("description"))
.arguments(arguments) .arguments(arguments)
@@ -217,17 +217,17 @@ public class AiAssistantRecordServiceImpl
String error, String error,
String provider, String provider,
String model, String model,
List<AiFunctionCallDto> functionCalls List<AiFunctionCallDTO> functionCalls
) { ) {
} }
@Override @Override
public Object executeCommand(AiExecuteRequestDto request, HttpServletRequest httpRequest) throws Exception { public Object executeCommand(AiExecuteRequestDTO request, HttpServletRequest httpRequest) throws Exception {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
String username = SecurityUtils.getUsername(); String username = SecurityUtils.getUsername();
String ipAddress = JakartaServletUtil.getClientIP(httpRequest); String ipAddress = JakartaServletUtil.getClientIP(httpRequest);
AiFunctionCallDto functionCall = request.getFunctionCall(); AiFunctionCallDTO functionCall = request.getFunctionCall();
AiAssistantRecord commandRecord; AiAssistantRecord commandRecord;
if (StrUtil.isNotBlank(request.getParseLogId())) { 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(); String functionName = functionCall.getName();
Map<String, Object> arguments = functionCall.getArguments(); Map<String, Object> arguments = functionCall.getArguments();
@@ -294,8 +294,8 @@ public class AiAssistantRecordServiceImpl
} }
@Override @Override
public IPage<AiAssistantRecordVo> getRecordPage(AiAssistantPageQuery queryParams) { public IPage<AiAssistantRecordVO> getRecordPage(AiAssistantPageQuery queryParams) {
Page<AiAssistantRecordVo> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); Page<AiAssistantRecordVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
return this.baseMapper.getRecordPage(page, queryParams); 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.service.CodegenService;
import com.youlai.boot.platform.codegen.model.form.GenConfigForm; 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.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVo; 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.TablePageVO;
import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.platform.codegen.service.GenTableService; import com.youlai.boot.platform.codegen.service.GenTableService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@@ -46,10 +46,10 @@ public class CodegenController {
@Operation(summary = "获取数据表分页列表") @Operation(summary = "获取数据表分页列表")
@GetMapping("/table/page") @GetMapping("/table/page")
@Log(value = "代码生成分页列表", module = LogModuleEnum.OTHER) @Log(value = "代码生成分页列表", module = LogModuleEnum.OTHER)
public PageResult<TablePageVo> getTablePage( public PageResult<TablePageVO> getTablePage(
TablePageQuery queryParams TablePageQuery queryParams
) { ) {
Page<TablePageVo> result = codegenService.getTablePage(queryParams); Page<TablePageVO> result = codegenService.getTablePage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@@ -82,9 +82,9 @@ public class CodegenController {
@Operation(summary = "获取预览生成代码") @Operation(summary = "获取预览生成代码")
@GetMapping("/{tableName}/preview") @GetMapping("/{tableName}/preview")
@Log(value = "预览生成代码", module = LogModuleEnum.OTHER) @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) { @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); 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.ColumnMetaData;
import com.youlai.boot.platform.codegen.model.bo.TableMetaData; 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.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 org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@@ -27,7 +27,7 @@ public interface DatabaseMapper extends BaseMapper {
* @param queryParams * @param queryParams
* @return * @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") @Schema(description = "代码生成代码预览Vo")
@Data @Data
public class CodegenPreviewVo { public class CodegenPreviewVO {
@Schema(description = "生成文件路径") @Schema(description = "生成文件路径")
private String path; private String path;

View File

@@ -6,7 +6,7 @@ import lombok.Data;
@Schema(description = "表视图对象") @Schema(description = "表视图对象")
@Data @Data
public class TablePageVo { public class TablePageVO {
@Schema(description = "表名称", example = "sys_user") @Schema(description = "表名称", example = "sys_user")
private String tableName; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.codegen.model.query.TablePageQuery; 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.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVo; import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import java.util.List; import java.util.List;
@@ -21,7 +21,7 @@ public interface CodegenService {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return * @return
*/ */
Page<TablePageVo> getTablePage(TablePageQuery queryParams); Page<TablePageVO> getTablePage(TablePageQuery queryParams);
/** /**
* 获取预览生成代码 * 获取预览生成代码
@@ -29,7 +29,7 @@ public interface CodegenService {
* @param tableName 表名 * @param tableName 表名
* @return * @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.GenTable;
import com.youlai.boot.platform.codegen.model.entity.GenTableColumn; 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.query.TablePageQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVo; 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.TablePageVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -61,8 +61,8 @@ public class CodegenServiceImpl implements CodegenService {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 分页结果 * @return 分页结果
*/ */
public Page<TablePageVo> getTablePage(TablePageQuery queryParams) { public Page<TablePageVO> getTablePage(TablePageQuery queryParams) {
Page<TablePageVo> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); Page<TablePageVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
// 设置排除的表 // 设置排除的表
List<String> excludeTables = codegenProperties.getExcludeTables(); List<String> excludeTables = codegenProperties.getExcludeTables();
queryParams.setExcludeTables(excludeTables); queryParams.setExcludeTables(excludeTables);
@@ -77,9 +77,9 @@ public class CodegenServiceImpl implements CodegenService {
* @return 预览数据 * @return 预览数据
*/ */
@Override @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>() GenTable genTable = genTableService.getOne(new LambdaQueryWrapper<GenTable>()
.eq(GenTable::getTableName, tableName) .eq(GenTable::getTableName, tableName)
@@ -100,7 +100,7 @@ public class CodegenServiceImpl implements CodegenService {
// 遍历模板配置 // 遍历模板配置
Map<String, CodegenProperties.TemplateConfig> templateConfigs = codegenProperties.getTemplateConfigs(); Map<String, CodegenProperties.TemplateConfig> templateConfigs = codegenProperties.getTemplateConfigs();
for (Map.Entry<String, CodegenProperties.TemplateConfig> templateConfigEntry : templateConfigs.entrySet()) { for (Map.Entry<String, CodegenProperties.TemplateConfig> templateConfigEntry : templateConfigs.entrySet()) {
CodegenPreviewVo previewVo = new CodegenPreviewVo(); CodegenPreviewVO previewVo = new CodegenPreviewVO();
CodegenProperties.TemplateConfig templateConfig = templateConfigEntry.getValue(); CodegenProperties.TemplateConfig templateConfig = templateConfigEntry.getValue();
@@ -325,9 +325,9 @@ public class CodegenServiceImpl implements CodegenService {
* @param ui 页面类型 * @param ui 页面类型
*/ */
private void generateAndZipCode(String tableName, ZipOutputStream zip, String 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 fileName = codePreview.getFileName();
String content = codePreview.getContent(); String content = codePreview.getContent();
String path = codePreview.getPath(); String path = codePreview.getPath();

View File

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

View File

@@ -66,7 +66,7 @@ public class UserSessionRegistry {
return sessions != null && !sessions.isEmpty(); return sessions != null && !sessions.isEmpty();
} }
public List<OnlineUserDto> getOnlineUsers() { public List<OnlineUserDTO> getOnlineUsers() {
return userSessionsMap.entrySet().stream() return userSessionsMap.entrySet().stream()
.map(entry -> { .map(entry -> {
String username = entry.getKey(); String username = entry.getKey();
@@ -78,7 +78,7 @@ public class UserSessionRegistry {
.min() .min()
.orElse(System.currentTimeMillis()); .orElse(System.currentTimeMillis());
return new OnlineUserDto(username, sessions.size(), earliestLoginTime); return new OnlineUserDTO(username, sessions.size(), earliestLoginTime);
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@@ -95,7 +95,7 @@ public class UserSessionRegistry {
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public static class OnlineUserDto { public static class OnlineUserDTO {
private String username; private String username;
private int sessionCount; private int sessionCount;
private long loginTime; 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.common.annotation.Log;
import com.youlai.boot.system.model.form.ConfigForm; import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery; 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.system.service.ConfigService;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@@ -38,8 +38,8 @@ public class ConfigController {
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@ss.hasPerm('sys:config:list')") @PreAuthorize("@ss.hasPerm('sys:config:list')")
@Log( value = "系统配置分页列表",module = LogModuleEnum.SETTING) @Log( value = "系统配置分页列表",module = LogModuleEnum.SETTING)
public PageResult<ConfigVo> page(@ParameterObject ConfigPageQuery configPageQuery) { public PageResult<ConfigVO> page(@ParameterObject ConfigPageQuery configPageQuery) {
IPage<ConfigVo> result = configService.page(configPageQuery); IPage<ConfigVO> result = configService.page(configPageQuery);
return PageResult.success(result); 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.core.web.Result;
import com.youlai.boot.system.model.form.DeptForm; import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery; 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.common.annotation.Log;
import com.youlai.boot.system.service.DeptService; import com.youlai.boot.system.service.DeptService;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -36,10 +36,10 @@ public class DeptController {
@Operation(summary = "部门列表") @Operation(summary = "部门列表")
@GetMapping @GetMapping
@Log( value = "部门列表",module = LogModuleEnum.DEPT) @Log( value = "部门列表",module = LogModuleEnum.DEPT)
public Result<List<DeptVo>> getDeptList( public Result<List<DeptVO>> getDeptList(
DeptQuery queryParams DeptQuery queryParams
) { ) {
List<DeptVo> list = deptService.getDeptList(queryParams); List<DeptVO> list = deptService.getDeptList(queryParams);
return Result.success(list); 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.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery; import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery; import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo; import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVo; import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.model.vo.DictPageVo; import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.common.annotation.RepeatSubmit; import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.system.model.form.DictForm; import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.Log;
@@ -50,10 +50,10 @@ public class DictController {
@Operation(summary = "字典分页列表") @Operation(summary = "字典分页列表")
@GetMapping("/page") @GetMapping("/page")
@Log( value = "字典分页列表",module = LogModuleEnum.DICT) @Log( value = "字典分页列表",module = LogModuleEnum.DICT)
public PageResult<DictPageVo> getDictPage( public PageResult<DictPageVO> getDictPage(
DictPageQuery queryParams DictPageQuery queryParams
) { ) {
Page<DictPageVo> result = dictService.getDictPage(queryParams); Page<DictPageVO> result = dictService.getDictPage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@@ -127,21 +127,21 @@ public class DictController {
//--------------------------------------------------- //---------------------------------------------------
@Operation(summary = "字典项分页列表") @Operation(summary = "字典项分页列表")
@GetMapping("/{dictCode}/items/page") @GetMapping("/{dictCode}/items/page")
public PageResult<DictItemPageVo> getDictItemPage( public PageResult<DictItemPageVO> getDictItemPage(
@PathVariable String dictCode, @PathVariable String dictCode,
DictItemPageQuery queryParams DictItemPageQuery queryParams
) { ) {
queryParams.setDictCode(dictCode); queryParams.setDictCode(dictCode);
Page<DictItemPageVo> result = dictItemService.getDictItemPage(queryParams); Page<DictItemPageVO> result = dictItemService.getDictItemPage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@Operation(summary = "字典项列表") @Operation(summary = "字典项列表")
@GetMapping("/{dictCode}/items") @GetMapping("/{dictCode}/items")
public Result<List<DictItemOptionVo>> getDictItems( public Result<List<DictItemOptionVO>> getDictItems(
@Parameter(description = "字典编码") @PathVariable String dictCode @Parameter(description = "字典编码") @PathVariable String dictCode
) { ) {
List<DictItemOptionVo> list = dictItemService.getDictItems(dictCode); List<DictItemOptionVO> list = dictItemService.getDictItems(dictCode);
return Result.success(list); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.core.web.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.system.model.query.LogPageQuery; 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 com.youlai.boot.system.service.LogService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,10 +26,10 @@ public class LogController {
@Operation(summary = "日志分页列表") @Operation(summary = "日志分页列表")
@GetMapping("/page") @GetMapping("/page")
public PageResult<LogPageVo> getLogPage( public PageResult<LogPageVO> getLogPage(
LogPageQuery queryParams LogPageQuery queryParams
) { ) {
Page<LogPageVo> result = logService.getLogPage(queryParams); Page<LogPageVO> result = logService.getLogPage(queryParams);
return PageResult.success(result); 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.core.web.Result;
import com.youlai.boot.system.model.form.MenuForm; import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.system.model.query.MenuQuery; import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo; import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVo; import com.youlai.boot.system.model.vo.RouteVO;
import com.youlai.boot.system.service.MenuService; import com.youlai.boot.system.service.MenuService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -38,8 +38,8 @@ public class MenuController {
@Operation(summary = "菜单列表") @Operation(summary = "菜单列表")
@GetMapping @GetMapping
@Log(value = "菜单列表", module = LogModuleEnum.MENU) @Log(value = "菜单列表", module = LogModuleEnum.MENU)
public Result<List<MenuVo>> getMenus(MenuQuery queryParams) { public Result<List<MenuVO>> getMenus(MenuQuery queryParams) {
List<MenuVo> menuList = menuService.listMenus(queryParams); List<MenuVO> menuList = menuService.listMenus(queryParams);
return Result.success(menuList); return Result.success(menuList);
} }
@@ -55,8 +55,8 @@ public class MenuController {
@Operation(summary = "当前用户菜单路由列表") @Operation(summary = "当前用户菜单路由列表")
@GetMapping("/routes") @GetMapping("/routes")
public Result<List<RouteVo>> getCurrentUserRoutes() { public Result<List<RouteVO>> getCurrentUserRoutes() {
List<RouteVo> routeList = menuService.listCurrentUserRoutes(); List<RouteVO> routeList = menuService.listCurrentUserRoutes();
return Result.success(routeList); 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.core.web.Result;
import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery; import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticeDetailVo; import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.model.vo.NoticePageVo; import com.youlai.boot.system.model.vo.NoticePageVO;
import com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.service.NoticeService; import com.youlai.boot.system.service.NoticeService;
import com.youlai.boot.system.service.UserNoticeService; import com.youlai.boot.system.service.UserNoticeService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@@ -38,8 +38,8 @@ public class NoticeController {
@Operation(summary = "通知公告分页列表") @Operation(summary = "通知公告分页列表")
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@ss.hasPerm('sys:notice:list')") @PreAuthorize("@ss.hasPerm('sys:notice:list')")
public PageResult<NoticePageVo> getNoticePage(NoticePageQuery queryParams) { public PageResult<NoticePageVO> getNoticePage(NoticePageQuery queryParams) {
IPage<NoticePageVo> result = noticeService.getNoticePage(queryParams); IPage<NoticePageVO> result = noticeService.getNoticePage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@@ -63,10 +63,10 @@ public class NoticeController {
@Operation(summary = "阅读获取通知公告详情") @Operation(summary = "阅读获取通知公告详情")
@GetMapping("/{id}/detail") @GetMapping("/{id}/detail")
public Result<NoticeDetailVo> getNoticeDetail( public Result<NoticeDetailVO> getNoticeDetail(
@Parameter(description = "通知公告ID") @PathVariable Long id @Parameter(description = "通知公告ID") @PathVariable Long id
) { ) {
NoticeDetailVo detailVo = noticeService.getNoticeDetail(id); NoticeDetailVO detailVo = noticeService.getNoticeDetail(id);
return Result.success(detailVo); return Result.success(detailVo);
} }
@@ -120,10 +120,10 @@ public class NoticeController {
@Operation(summary = "获取我的通知公告分页列表") @Operation(summary = "获取我的通知公告分页列表")
@GetMapping("/my") @GetMapping("/my")
public PageResult<UserNoticePageVo> getMyNoticePage( public PageResult<UserNoticePageVO> getMyNoticePage(
NoticePageQuery queryParams NoticePageQuery queryParams
) { ) {
IPage<UserNoticePageVo> result = noticeService.getMyNoticePage(queryParams); IPage<UserNoticePageVO> result = noticeService.getMyNoticePage(queryParams);
return PageResult.success(result); 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.core.web.Result;
import com.youlai.boot.system.model.form.RoleForm; import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery; 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.common.annotation.Log;
import com.youlai.boot.system.service.RoleService; import com.youlai.boot.system.service.RoleService;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -39,10 +39,10 @@ public class RoleController {
@Operation(summary = "角色分页列表") @Operation(summary = "角色分页列表")
@GetMapping("/page") @GetMapping("/page")
@Log(value = "角色分页列表", module = LogModuleEnum.ROLE) @Log(value = "角色分页列表", module = LogModuleEnum.ROLE)
public PageResult<RolePageVo> getRolePage( public PageResult<RolePageVO> getRolePage(
RolePageQuery queryParams RolePageQuery queryParams
) { ) {
Page<RolePageVo> result = roleService.getRolePage(queryParams); Page<RolePageVO> result = roleService.getRolePage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.system.controller; package com.youlai.boot.system.controller;
import com.youlai.boot.core.web.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.vo.VisitStatsVo; import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVo; import com.youlai.boot.system.model.vo.VisitTrendVO;
import com.youlai.boot.system.service.LogService; import com.youlai.boot.system.service.LogService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -28,20 +28,20 @@ public class StatisticsController {
@Operation(summary = "访问趋势统计") @Operation(summary = "访问趋势统计")
@GetMapping("/visits/trend") @GetMapping("/visits/trend")
public Result<VisitTrendVo> getVisitTrend( public Result<VisitTrendVO> getVisitTrend(
@Parameter(description = "开始时间", example = "2024-01-01") @RequestParam String startDate, @Parameter(description = "开始时间", example = "2024-01-01") @RequestParam String startDate,
@Parameter(description = "结束时间", example = "2024-12-31") @RequestParam String endDate @Parameter(description = "结束时间", example = "2024-12-31") @RequestParam String endDate
) { ) {
LocalDate start = LocalDate.parse(startDate); LocalDate start = LocalDate.parse(startDate);
LocalDate end = LocalDate.parse(endDate); LocalDate end = LocalDate.parse(endDate);
VisitTrendVo data = logService.getVisitTrend(start, end); VisitTrendVO data = logService.getVisitTrend(start, end);
return Result.success(data); return Result.success(data);
} }
@Operation(summary = "访问概览统计") @Operation(summary = "访问概览统计")
@GetMapping("/visits/overview") @GetMapping("/visits/overview")
public Result<VisitStatsVo> getVisitOverview() { public Result<VisitStatsVO> getVisitOverview() {
VisitStatsVo result = logService.getVisitStats(); VisitStatsVO result = logService.getVisitStats();
return Result.success(result); 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.common.util.ExcelUtils;
import com.youlai.boot.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.system.listener.UserImportListener; import com.youlai.boot.system.listener.UserImportListener;
import com.youlai.boot.system.model.dto.UserExportDto; import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.dto.UserImportDto; import com.youlai.boot.system.model.dto.UserImportDTO;
import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.form.*; import com.youlai.boot.system.model.form.*;
import com.youlai.boot.system.model.query.UserPageQuery; import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.dto.CurrentUserDto; import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.vo.UserPageVo; import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVo; import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -59,10 +59,10 @@ public class UserController {
@Operation(summary = "用户分页列表") @Operation(summary = "用户分页列表")
@GetMapping("/page") @GetMapping("/page")
@Log(value = "用户分页列表", module = LogModuleEnum.USER) @Log(value = "用户分页列表", module = LogModuleEnum.USER)
public PageResult<UserPageVo> getUserPage( public PageResult<UserPageVO> getUserPage(
@Valid UserPageQuery queryParams @Valid UserPageQuery queryParams
) { ) {
IPage<UserPageVo> result = userService.getUserPage(queryParams); IPage<UserPageVO> result = userService.getUserPage(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@@ -130,8 +130,8 @@ public class UserController {
@Operation(summary = "获取当前登录用户信息") @Operation(summary = "获取当前登录用户信息")
@GetMapping("/me") @GetMapping("/me")
@Log(value = "获取当前登录用户信息", module = LogModuleEnum.USER) @Log(value = "获取当前登录用户信息", module = LogModuleEnum.USER)
public Result<CurrentUserDto> getCurrentUser() { public Result<CurrentUserDTO> getCurrentUser() {
CurrentUserDto currentUserDto = userService.getCurrentUserInfo(); CurrentUserDTO currentUserDto = userService.getCurrentUserInfo();
return Result.success(currentUserDto); return Result.success(currentUserDto);
} }
@@ -160,7 +160,7 @@ public class UserController {
@Log(value = "导入用户", module = LogModuleEnum.USER) @Log(value = "导入用户", module = LogModuleEnum.USER)
public Result<ExcelResult> importUsers(MultipartFile file) throws IOException { public Result<ExcelResult> importUsers(MultipartFile file) throws IOException {
UserImportListener listener = new UserImportListener(); UserImportListener listener = new UserImportListener();
ExcelUtils.importExcel(file.getInputStream(), UserImportDto.class, listener); ExcelUtils.importExcel(file.getInputStream(), UserImportDTO.class, listener);
return Result.success(listener.getExcelResult()); return Result.success(listener.getExcelResult());
} }
@@ -173,17 +173,17 @@ public class UserController {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8)); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8));
List<UserExportDto> exportUserList = userService.listExportUsers(queryParams); List<UserExportDTO> exportUserList = userService.listExportUsers(queryParams);
EasyExcel.write(response.getOutputStream(), UserExportDto.class).sheet("用户列表") EasyExcel.write(response.getOutputStream(), UserExportDTO.class).sheet("用户列表")
.doWrite(exportUserList); .doWrite(exportUserList);
} }
@Operation(summary = "获取个人中心用户信息") @Operation(summary = "获取个人中心用户信息")
@GetMapping("/profile") @GetMapping("/profile")
@Log(value = "获取个人中心用户信息", module = LogModuleEnum.USER) @Log(value = "获取个人中心用户信息", module = LogModuleEnum.USER)
public Result<UserProfileVo> getUserProfile() { public Result<UserProfileVO> getUserProfile() {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
UserProfileVo userProfile = userService.getUserProfile(userId); UserProfileVO userProfile = userService.getUserProfile(userId);
return Result.success(userProfile); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Config; 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 com.youlai.boot.system.model.form.ConfigForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -15,7 +15,7 @@ import org.mapstruct.Mapper;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface ConfigConverter { public interface ConfigConverter {
Page<ConfigVo> toPageVo(Page<Config> page); Page<ConfigVO> toPageVo(Page<Config> page);
Config toEntity(ConfigForm configForm); Config toEntity(ConfigForm configForm);

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.system.converter; package com.youlai.boot.system.converter;
import com.youlai.boot.system.model.entity.Dept; 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 com.youlai.boot.system.model.form.DeptForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -16,7 +16,7 @@ public interface DeptConverter {
DeptForm toForm(Dept entity); DeptForm toForm(Dept entity);
DeptVo toVo(Dept entity); DeptVO toVo(Dept entity);
Dept toEntity(DeptForm deptForm); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Dict; 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 com.youlai.boot.system.model.form.DictForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -15,7 +15,7 @@ import org.mapstruct.Mapper;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface DictConverter { public interface DictConverter {
Page<DictPageVo> toPageVo(Page<Dict> page); Page<DictPageVO> toPageVo(Page<Dict> page);
DictForm toForm(Dict entity); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.DictItem; import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm; 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 com.youlai.boot.common.model.Option;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -18,7 +18,7 @@ import java.util.List;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface DictItemConverter { public interface DictItemConverter {
Page<DictPageVo> toPageVo(Page<DictItem> page); Page<DictPageVO> toPageVo(Page<DictItem> page);
DictItemForm toForm(DictItem entity); DictItemForm toForm(DictItem entity);

View File

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

View File

@@ -1,11 +1,11 @@
package com.youlai.boot.system.converter; package com.youlai.boot.system.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.Notice;
import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.vo.NoticeDetailVo; import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.model.vo.NoticePageVo; import com.youlai.boot.system.model.vo.NoticePageVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
@@ -30,9 +30,9 @@ public interface NoticeConverter{
}) })
Notice toEntity(NoticeForm formData); 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Role; 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.common.model.Option;
import com.youlai.boot.system.model.form.RoleForm; import com.youlai.boot.system.model.form.RoleForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -20,7 +20,7 @@ import java.util.List;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface RoleConverter { public interface RoleConverter {
Page<RolePageVo> toPageVo(Page<Role> page); Page<RolePageVO> toPageVo(Page<Role> page);
@Mappings({ @Mappings({
@Mapping(target = "value", source = "id"), @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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.dto.CurrentUserDto; import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.vo.UserPageVo; import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVo; import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.bo.UserBo; import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.form.UserForm; 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 com.youlai.boot.system.model.form.UserProfileForm;
import org.mapstruct.InheritInverseConfiguration; import org.mapstruct.InheritInverseConfiguration;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@@ -26,9 +26,9 @@ import java.util.List;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface UserConverter { 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); UserForm toForm(User entity);
@@ -38,12 +38,12 @@ public interface UserConverter {
@Mappings({ @Mappings({
@Mapping(target = "userId", source = "id") @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); 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.core.web.ExcelResult;
import com.youlai.boot.system.converter.UserConverter; import com.youlai.boot.system.converter.UserConverter;
import com.youlai.boot.system.enums.DictCodeEnum; 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.model.entity.*;
import com.youlai.boot.system.service.*; import com.youlai.boot.system.service.*;
import lombok.Getter; import lombok.Getter;
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
* @since 2022/4/10 * @since 2022/4/10
*/ */
@Slf4j @Slf4j
public class UserImportListener extends AnalysisEventListener<UserImportDto> { public class UserImportListener extends AnalysisEventListener<UserImportDTO> {
/** /**
* Excel 导入结果 * Excel 导入结果
@@ -85,7 +85,7 @@ public class UserImportListener extends AnalysisEventListener<UserImportDto> {
* @param userImportDto 一行数据,类似于 {@link AnalysisContext#readRowHolder()} * @param userImportDto 一行数据,类似于 {@link AnalysisContext#readRowHolder()}
*/ */
@Override @Override
public void invoke(UserImportDto userImportDto, AnalysisContext analysisContext) { public void invoke(UserImportDTO userImportDto, AnalysisContext analysisContext) {
log.info("解析到一条用户数据:{}", JSONUtil.toJsonStr(userImportDto)); log.info("解析到一条用户数据:{}", JSONUtil.toJsonStr(userImportDto));
boolean validation = true; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.DictItem; import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.query.DictItemPageQuery; 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; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.Dict; import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.query.DictPageQuery; 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; import org.apache.ibatis.annotations.Mapper;
/** /**
@@ -23,7 +23,7 @@ public interface DictMapper extends BaseMapper<Dict> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 字典分页列表 * @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.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.bo.VisitCountBo; import com.youlai.boot.system.model.bo.VisitCountBO;
import com.youlai.boot.system.model.bo.VisitStatsBo; import com.youlai.boot.system.model.bo.VisitStatsBO;
import com.youlai.boot.system.model.entity.Log; import com.youlai.boot.system.model.entity.Log;
import com.youlai.boot.system.model.query.LogPageQuery; 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 org.apache.ibatis.annotations.Mapper;
import java.util.List; 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) * 统计浏览数(PV)
@@ -32,7 +32,7 @@ public interface LogMapper extends BaseMapper<Log> {
* @param startDate 开始日期 yyyy-MM-dd * @param startDate 开始日期 yyyy-MM-dd
* @param endDate 结束日期 yyyy-MM-dd * @param endDate 结束日期 yyyy-MM-dd
*/ */
List<VisitCountBo> getPvCounts(String startDate, String endDate); List<VisitCountBO> getPvCounts(String startDate, String endDate);
/** /**
* 统计IP数 * 统计IP数
@@ -40,17 +40,17 @@ public interface LogMapper extends BaseMapper<Log> {
* @param startDate 开始日期 yyyy-MM-dd * @param startDate 开始日期 yyyy-MM-dd
* @param endDate 结束日期 yyyy-MM-dd * @param endDate 结束日期 yyyy-MM-dd
*/ */
List<VisitCountBo> getIpCounts(String startDate, String endDate); List<VisitCountBO> getIpCounts(String startDate, String endDate);
/** /**
* 获取浏览量(PV)统计 * 获取浏览量(PV)统计
*/ */
VisitStatsBo getPvStats(); VisitStatsBO getPvStats();
/** /**
* 获取访问IP统计 * 获取访问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.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.Notice;
import com.youlai.boot.system.model.query.NoticePageQuery; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -25,7 +25,7 @@ public interface NoticeMapper extends BaseMapper<Notice> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 通知公告分页数据 * @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 * @param id 通知公告ID
* @return 通知公告详情 * @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; package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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 com.youlai.boot.system.model.entity.RoleMenu;
import org.apache.ibatis.annotations.Mapper; 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.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.User;
import com.youlai.boot.system.model.query.UserPageQuery; import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.form.UserForm; import com.youlai.boot.system.model.form.UserForm;
import com.youlai.boot.common.annotation.DataPermission; import com.youlai.boot.common.annotation.DataPermission;
import com.youlai.boot.security.model.UserAuthInfo; 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 org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@@ -30,7 +30,7 @@ public interface UserMapper extends BaseMapper<User> {
* @return 用户分页列表 * @return 用户分页列表
*/ */
@DataPermission(deptAlias = "u", userAlias = "u") @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 导出用户列表 * @return 导出用户列表
*/ */
@DataPermission(deptAlias = "u", userAlias = "u") @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 * @param userId 用户ID
* @return 用户个人中心信息 * @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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.system.model.entity.UserNotice; import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery; 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 com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -25,5 +25,5 @@ public interface UserNoticeMapper extends BaseMapper<UserNotice> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 通知公告分页列表 * @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 * @since 2024-09-01 10:31
*/ */
@Data @Data
public class NoticeBo { public class NoticeBO {
/** /**
* 通知ID * 通知ID

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,7 +8,7 @@ import java.util.List;
@Schema(description ="菜单视图对象") @Schema(description ="菜单视图对象")
@Data @Data
public class MenuVo { public class MenuVO {
@Schema(description = "菜单ID") @Schema(description = "菜单ID")
private Long id; private Long id;
@@ -48,7 +48,7 @@ public class MenuVo {
@Schema(description = "子菜单") @Schema(description = "子菜单")
@JsonInclude(value = JsonInclude.Include.NON_NULL) @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 * @since 2024-9-8 01:25:06
*/ */
@Data @Data
public class NoticeDetailVo { public class NoticeDetailVO {
@Schema(description = "通知ID") @Schema(description = "通知ID")
private Long id; private Long id;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -15,7 +15,7 @@ import java.util.List;
@Schema(description = "访问趋势Vo") @Schema(description = "访问趋势Vo")
@Getter @Getter
@Setter @Setter
public class VisitTrendVo { public class VisitTrendVO {
@Schema(description = "日期列表") @Schema(description = "日期列表")
private List<String> dates; 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.entity.Config;
import com.youlai.boot.system.model.form.ConfigForm; import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery; 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接口 * 系统配置Service接口
@@ -20,7 +20,7 @@ public interface ConfigService extends IService<Config> {
* @param sysConfigPageQuery 查询参数 * @param sysConfigPageQuery 查询参数
* @return 系统配置分页列表 * @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.common.model.Option;
import com.youlai.boot.system.model.form.DeptForm; import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery; 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; import java.util.List;
@@ -21,7 +21,7 @@ public interface DeptService extends IService<Dept> {
* *
* @return 部门列表 * @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.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm; import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery; import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo; import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVo; import com.youlai.boot.system.model.vo.DictItemPageVO;
import java.util.List; import java.util.List;
@@ -24,7 +24,7 @@ public interface DictItemService extends IService<DictItem> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 字典项分页列表 * @return 字典项分页列表
*/ */
Page<DictItemPageVo> getDictItemPage(DictItemPageQuery queryParams); Page<DictItemPageVO> getDictItemPage(DictItemPageQuery queryParams);
/** /**
* 获取字典项列表 * 获取字典项列表
@@ -32,7 +32,7 @@ public interface DictItemService extends IService<DictItem> {
* @param dictCode 字典编码 * @param dictCode 字典编码
* @return 字典项列表 * @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.entity.Dict;
import com.youlai.boot.system.model.form.DictForm; import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery; import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo; import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictPageVo; import com.youlai.boot.system.model.vo.DictPageVO;
import java.util.List; import java.util.List;
@@ -25,7 +25,7 @@ public interface DictService extends IService<Dict> {
* @param queryParams 分页查询对象 * @param queryParams 分页查询对象
* @return 字典分页列表 * @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.youlai.boot.system.model.entity.Log;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.query.LogPageQuery; 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.model.vo.VisitStatsVo; import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVo; import com.youlai.boot.system.model.vo.VisitTrendVO;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; 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 startDate 开始时间
* @param endDate 结束时间 * @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.common.model.Option;
import com.youlai.boot.system.model.entity.Menu; import com.youlai.boot.system.model.entity.Menu;
import com.youlai.boot.system.model.query.MenuQuery; import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo; import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVo; import com.youlai.boot.system.model.vo.RouteVO;
import java.util.List; import java.util.List;
import java.util.Set; 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(模板数据库) * @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.entity.Notice;
import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery; 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 com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticeDetailVo; import com.youlai.boot.system.model.vo.NoticeDetailVO;
/** /**
* 通知公告服务类 * 通知公告服务类
@@ -22,7 +22,7 @@ public interface NoticeService extends IService<Notice> {
* *
* @return 通知公告分页列表 * @return 通知公告分页列表
*/ */
IPage<NoticePageVo> getNoticePage(NoticePageQuery queryParams); IPage<NoticePageVO> getNoticePage(NoticePageQuery queryParams);
/** /**
* 获取通知公告表单数据 * 获取通知公告表单数据
@@ -79,7 +79,7 @@ public interface NoticeService extends IService<Notice> {
* @param id 通知公告ID * @param id 通知公告ID
* @return 通知公告详情 * @return 通知公告详情
*/ */
NoticeDetailVo getNoticeDetail(Long id); NoticeDetailVO getNoticeDetail(Long id);
/** /**
* 获取我的通知公告分页列表 * 获取我的通知公告分页列表
@@ -87,5 +87,5 @@ public interface NoticeService extends IService<Notice> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 通知公告分页列表 * @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.common.model.Option;
import com.youlai.boot.system.model.form.RoleForm; import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery; 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.List;
import java.util.Set; import java.util.Set;
@@ -26,7 +26,7 @@ public interface RoleService extends IService<Role> {
* @param queryParams * @param queryParams
* @return * @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.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.UserNotice; import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery; import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticePageVo; import com.youlai.boot.system.model.vo.NoticePageVO;
import java.util.List; import java.util.List;
@@ -31,5 +31,5 @@ public interface UserNoticeService extends IService<UserNotice> {
* @param queryParams 查询参数 * @param queryParams 查询参数
* @return 我的通知公告分页列表 * @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 在线用户名列表 * @return 在线用户名列表
*/ */
public List<UserOnlineDto> getOnlineUsers() { public List<UserOnlineDTO> getOnlineUsers() {
return onlineUsers.values().stream() return onlineUsers.values().stream()
.map(info -> new UserOnlineDto(info.getUsername(), info.getLoginTime())) .map(info -> new UserOnlineDTO(info.getUsername(), info.getLoginTime()))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@@ -127,7 +127,7 @@ public class UserOnlineService {
* 用户在线Dto用于返回给前端 * 用户在线Dto用于返回给前端
*/ */
@Data @Data
public static class UserOnlineDto { public static class UserOnlineDTO {
private final String username; private final String username;
private final long loginTime; private final long loginTime;
} }
@@ -139,7 +139,7 @@ public class UserOnlineService {
private static class OnlineUsersChangeEvent { private static class OnlineUsersChangeEvent {
private String type; private String type;
private int count; private int count;
private List<UserOnlineDto> users; private List<UserOnlineDTO> users;
private long timestamp; 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.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.security.model.UserAuthInfo; import com.youlai.boot.security.model.UserAuthInfo;
import com.youlai.boot.system.model.dto.CurrentUserDto; import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserExportDto; import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.query.UserPageQuery; import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserPageVo; import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVo; import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.model.form.*; import com.youlai.boot.system.model.form.*;
import java.util.List; import java.util.List;
@@ -27,7 +27,7 @@ public interface UserService extends IService<User> {
* *
* @return {@link IPage<UserPageVo>} 用户分页列表 * @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 查询参数 * @param queryParams 查询参数
* @return {@link List<UserExportDto>} 导出用户列表 * @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} 登录用户信息 * @return {@link CurrentUserDto} 登录用户信息
*/ */
CurrentUserDto getCurrentUserInfo(); CurrentUserDTO getCurrentUserInfo();
/** /**
* 获取个人中心用户信息 * 获取个人中心用户信息
* *
* @return {@link UserProfileVo} 个人中心用户信息 * @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.entity.Config;
import com.youlai.boot.system.model.form.ConfigForm; import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery; 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.system.service.ConfigService;
import com.youlai.boot.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@@ -54,7 +54,7 @@ public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> impleme
* @return 系统配置分页列表 * @return 系统配置分页列表
*/ */
@Override @Override
public IPage<ConfigVo> page(ConfigPageQuery configPageQuery) { public IPage<ConfigVO> page(ConfigPageQuery configPageQuery) {
Page<Config> page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize()); Page<Config> page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize());
String keywords = configPageQuery.getKeywords(); String keywords = configPageQuery.getKeywords();
LambdaQueryWrapper<Config> query = new LambdaQueryWrapper<Config>() 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.entity.Dept;
import com.youlai.boot.system.model.form.DeptForm; import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery; 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.constant.SystemConstants;
import com.youlai.boot.common.enums.StatusEnum; import com.youlai.boot.common.enums.StatusEnum;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
@@ -42,7 +42,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
* 获取部门列表 * 获取部门列表
*/ */
@Override @Override
public List<DeptVo> getDeptList(DeptQuery queryParams) { public List<DeptVO> getDeptList(DeptQuery queryParams) {
// 查询参数 // 查询参数
String keywords = queryParams.getKeywords(); String keywords = queryParams.getKeywords();
Integer status = queryParams.getStatus(); Integer status = queryParams.getStatus();
@@ -83,12 +83,12 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
* @param deptList 部门列表 * @param deptList 部门列表
* @return 部门树形列表 * @return 部门树形列表
*/ */
public List<DeptVo> recurDeptList(Long parentId, List<Dept> deptList) { public List<DeptVO> recurDeptList(Long parentId, List<Dept> deptList) {
return deptList.stream() return deptList.stream()
.filter(dept -> dept.getParentId().equals(parentId)) .filter(dept -> dept.getParentId().equals(parentId))
.map(dept -> { .map(dept -> {
DeptVo deptVo = deptConverter.toVo(dept); DeptVO deptVo = deptConverter.toVo(dept);
List<DeptVo> children = recurDeptList(dept.getId(), deptList); List<DeptVO> children = recurDeptList(dept.getId(), deptList);
deptVo.setChildren(children); deptVo.setChildren(children);
return deptVo; return deptVo;
}).toList(); }).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.entity.DictItem;
import com.youlai.boot.system.model.form.DictItemForm; import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery; import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVo; import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVo; import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.service.DictItemService; import com.youlai.boot.system.service.DictItemService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -36,10 +36,10 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
* @return 字典项分页列表 * @return 字典项分页列表
*/ */
@Override @Override
public Page<DictItemPageVo> getDictItemPage(DictItemPageQuery queryParams) { public Page<DictItemPageVO> getDictItemPage(DictItemPageQuery queryParams) {
int pageNum = queryParams.getPageNum(); int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize(); int pageSize = queryParams.getPageSize();
Page<DictItemPageVo> page = new Page<>(pageNum, pageSize); Page<DictItemPageVO> page = new Page<>(pageNum, pageSize);
return this.baseMapper.getDictItemPage(page, queryParams); return this.baseMapper.getDictItemPage(page, queryParams);
} }
@@ -51,7 +51,7 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
* @param dictCode 字典编码 * @param dictCode 字典编码
*/ */
@Override @Override
public List<DictItemOptionVo> getDictItems(String dictCode) { public List<DictItemOptionVO> getDictItems(String dictCode) {
return this.list( return this.list(
new LambdaQueryWrapper<DictItem>() new LambdaQueryWrapper<DictItem>()
.eq(DictItem::getDictCode, dictCode) .eq(DictItem::getDictCode, dictCode)
@@ -59,7 +59,7 @@ public class DictItemServiceImpl extends ServiceImpl<DictItemMapper, DictItem> i
.orderByAsc(DictItem::getSort) .orderByAsc(DictItem::getSort)
).stream() ).stream()
.map(item -> { .map(item -> {
DictItemOptionVo dictItemOptionVo = new DictItemOptionVo(); DictItemOptionVO dictItemOptionVo = new DictItemOptionVO();
dictItemOptionVo.setLabel(item.getLabel()); dictItemOptionVo.setLabel(item.getLabel());
dictItemOptionVo.setValue(item.getValue()); dictItemOptionVo.setValue(item.getValue());
dictItemOptionVo.setTagType(item.getTagType()); 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.entity.DictItem;
import com.youlai.boot.system.model.form.DictForm; import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery; 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.DictItemService;
import com.youlai.boot.system.service.DictService; import com.youlai.boot.system.service.DictService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -40,7 +40,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
* @param queryParams 分页查询对象 * @param queryParams 分页查询对象
*/ */
@Override @Override
public Page<DictPageVo> getDictPage(DictPageQuery queryParams) { public Page<DictPageVO> getDictPage(DictPageQuery queryParams) {
// 查询参数 // 查询参数
int pageNum = queryParams.getPageNum(); int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize(); 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.system.mapper.LogMapper; import com.youlai.boot.system.mapper.LogMapper;
import com.youlai.boot.system.model.bo.VisitCountBo; import com.youlai.boot.system.model.bo.VisitCountBO;
import com.youlai.boot.system.model.bo.VisitStatsBo; import com.youlai.boot.system.model.bo.VisitStatsBO;
import com.youlai.boot.system.model.entity.Log; import com.youlai.boot.system.model.entity.Log;
import com.youlai.boot.system.model.query.LogPageQuery; 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.model.vo.VisitStatsVo; import com.youlai.boot.system.model.vo.VisitStatsVO;
import com.youlai.boot.system.model.vo.VisitTrendVo; import com.youlai.boot.system.model.vo.VisitTrendVO;
import com.youlai.boot.system.service.LogService; import com.youlai.boot.system.service.LogService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -36,7 +36,7 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* @return 日志分页列表 * @return 日志分页列表
*/ */
@Override @Override
public Page<LogPageVo> getLogPage(LogPageQuery queryParams) { public Page<LogPageVO> getLogPage(LogPageQuery queryParams) {
return this.baseMapper.getLogPage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()), return this.baseMapper.getLogPage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams); queryParams);
} }
@@ -49,8 +49,8 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* @return * @return
*/ */
@Override @Override
public VisitTrendVo getVisitTrend(LocalDate startDate, LocalDate endDate) { public VisitTrendVO getVisitTrend(LocalDate startDate, LocalDate endDate) {
VisitTrendVo visitTrend = new VisitTrendVo(); VisitTrendVO visitTrend = new VisitTrendVO();
List<String> dates = new ArrayList<>(); List<String> dates = new ArrayList<>();
// 获取日期范围内的日期 // 获取日期范围内的日期
@@ -61,12 +61,12 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
visitTrend.setDates(dates); visitTrend.setDates(dates);
// 获取访问量和访问 IP 数的统计数据 // 获取访问量和访问 IP 数的统计数据
List<VisitCountBo> pvCounts = this.baseMapper.getPvCounts(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"); List<VisitCountBO> ipCounts = this.baseMapper.getIpCounts(dates.get(0) + " 00:00:00", dates.get(dates.size() - 1) + " 23:59:59");
// 将统计数据转换为 Map // 将统计数据转换为 Map
Map<String, Integer> pvMap = pvCounts.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)); Map<String, Integer> ipMap = ipCounts.stream().collect(Collectors.toMap(VisitCountBO::getDate, VisitCountBO::getCount));
// 匹配日期和访问量/访问 IP 数 // 匹配日期和访问量/访问 IP 数
List<Integer> pvList = new ArrayList<>(); List<Integer> pvList = new ArrayList<>();
@@ -87,11 +87,11 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
* 访问量统计 * 访问量统计
*/ */
@Override @Override
public VisitStatsVo getVisitStats() { public VisitStatsVO getVisitStats() {
VisitStatsVo result = new VisitStatsVo(); VisitStatsVO result = new VisitStatsVO();
// 访客数统计(UV) // 访客数统计(UV)
VisitStatsBo uvStats = this.baseMapper.getUvStats(); VisitStatsBO uvStats = this.baseMapper.getUvStats();
if(uvStats!=null){ if(uvStats!=null){
result.setTodayUvCount(uvStats.getTodayCount()); result.setTodayUvCount(uvStats.getTodayCount());
result.setTotalUvCount(uvStats.getTotalCount()); result.setTotalUvCount(uvStats.getTotalCount());
@@ -99,7 +99,7 @@ public class LogServiceImpl extends ServiceImpl<LogMapper, Log>
} }
// 浏览量统计(PV) // 浏览量统计(PV)
VisitStatsBo pvStats = this.baseMapper.getPvStats(); VisitStatsBO pvStats = this.baseMapper.getPvStats();
if(pvStats!=null){ if(pvStats!=null){
result.setTodayPvCount(pvStats.getTodayCount()); result.setTodayPvCount(pvStats.getTodayCount());
result.setTotalPvCount(pvStats.getTotalCount()); 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.entity.Menu;
import com.youlai.boot.system.model.form.MenuForm; import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.system.model.query.MenuQuery; import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVo; import com.youlai.boot.system.model.vo.MenuVO;
import com.youlai.boot.system.model.vo.RouteVo; import com.youlai.boot.system.model.vo.RouteVO;
import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.system.enums.MenuTypeEnum; import com.youlai.boot.system.enums.MenuTypeEnum;
import com.youlai.boot.common.enums.StatusEnum; import com.youlai.boot.common.enums.StatusEnum;
@@ -55,7 +55,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param queryParams {@link MenuQuery} * @param queryParams {@link MenuQuery}
*/ */
@Override @Override
public List<MenuVo> listMenus(MenuQuery queryParams) { public List<MenuVO> listMenus(MenuQuery queryParams) {
List<Menu> menus = this.list(new LambdaQueryWrapper<Menu>() List<Menu> menus = this.list(new LambdaQueryWrapper<Menu>()
.like(StrUtil.isNotBlank(queryParams.getKeywords()), Menu::getName, queryParams.getKeywords()) .like(StrUtil.isNotBlank(queryParams.getKeywords()), Menu::getName, queryParams.getKeywords())
.orderByAsc(Menu::getSort) .orderByAsc(Menu::getSort)
@@ -88,13 +88,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param menuList 菜单列表 * @param menuList 菜单列表
* @return 菜单列表 * @return 菜单列表
*/ */
private List<MenuVo> buildMenuTree(Long parentId, List<Menu> menuList) { private List<MenuVO> buildMenuTree(Long parentId, List<Menu> menuList) {
return CollectionUtil.emptyIfNull(menuList) return CollectionUtil.emptyIfNull(menuList)
.stream() .stream()
.filter(menu -> menu.getParentId().equals(parentId)) .filter(menu -> menu.getParentId().equals(parentId))
.map(entity -> { .map(entity -> {
MenuVo menuVo = menuConverter.toVo(entity); MenuVO menuVo = menuConverter.toVo(entity);
List<MenuVo> children = buildMenuTree(entity.getId(), menuList); List<MenuVO> children = buildMenuTree(entity.getId(), menuList);
menuVo.setChildren(children); menuVo.setChildren(children);
return menuVo; return menuVo;
}).toList(); }).toList();
@@ -142,7 +142,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* 获取当前用户的菜单路由列表 * 获取当前用户的菜单路由列表
*/ */
@Override @Override
public List<RouteVo> listCurrentUserRoutes() { public List<RouteVO> listCurrentUserRoutes() {
Set<String> roleCodes = SecurityUtils.getRoles(); Set<String> roleCodes = SecurityUtils.getRoles();
if (CollectionUtil.isEmpty(roleCodes)) { if (CollectionUtil.isEmpty(roleCodes)) {
@@ -195,7 +195,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* - template: 模板项目菜单数据 * - template: 模板项目菜单数据
*/ */
@Override @Override
public List<RouteVo> listCurrentUserRoutes(String datasource) { public List<RouteVO> listCurrentUserRoutes(String datasource) {
return listCurrentUserRoutes(); return listCurrentUserRoutes();
} }
@@ -207,13 +207,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
* @param menuList 菜单列表 * @param menuList 菜单列表
* @return 路由层级列表 * @return 路由层级列表
*/ */
private List<RouteVo> buildRoutes(Long parentId, List<Menu> menuList) { private List<RouteVO> buildRoutes(Long parentId, List<Menu> menuList) {
List<RouteVo> routeList = new ArrayList<>(); List<RouteVO> routeList = new ArrayList<>();
for (Menu menu : menuList) { for (Menu menu : menuList) {
if (menu.getParentId().equals(parentId)) { if (menu.getParentId().equals(parentId)) {
RouteVo routeVo = toRouteVo(menu); RouteVO routeVo = toRouteVo(menu);
List<RouteVo> children = buildRoutes(menu.getId(), menuList); List<RouteVO> children = buildRoutes(menu.getId(), menuList);
if (!children.isEmpty()) { if (!children.isEmpty()) {
routeVo.setChildren(children); routeVo.setChildren(children);
} }
@@ -227,8 +227,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
/** /**
* 根据RouteBO创建RouteVo * 根据RouteBO创建RouteVo
*/ */
private RouteVo toRouteVo(Menu menu) { private RouteVO toRouteVo(Menu menu) {
RouteVo routeVo = new RouteVo(); RouteVO routeVo = new RouteVO();
String routePath = menu.getRoutePath(); String routePath = menu.getRoutePath();
boolean externalLink = StrUtil.startWithAny(routePath, "http://", "https://"); 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.setComponent(externalLink ? null : menu.getComponent());
RouteVo.Meta meta = new RouteVo.Meta(); RouteVO.Meta meta = new RouteVO.Meta();
meta.setTitle(menu.getName()); meta.setTitle(menu.getName());
meta.setIcon(menu.getIcon()); meta.setIcon(menu.getIcon());
meta.setHidden(StatusEnum.DISABLE.getValue().equals(menu.getVisible())); 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.NoticePublishStatusEnum;
import com.youlai.boot.system.enums.NoticeTargetEnum; import com.youlai.boot.system.enums.NoticeTargetEnum;
import com.youlai.boot.system.mapper.NoticeMapper; import com.youlai.boot.system.mapper.NoticeMapper;
import com.youlai.boot.system.model.bo.NoticeBo; import com.youlai.boot.system.model.bo.NoticeBO;
import com.youlai.boot.system.model.dto.NoticeDto; import com.youlai.boot.system.model.dto.NoticeDTO;
import com.youlai.boot.system.model.entity.Notice; import com.youlai.boot.system.model.entity.Notice;
import com.youlai.boot.system.model.entity.UserNotice; import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery; 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 com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.model.vo.NoticeDetailVo; import com.youlai.boot.system.model.vo.NoticeDetailVO;
import com.youlai.boot.system.service.NoticeService; import com.youlai.boot.system.service.NoticeService;
import com.youlai.boot.system.service.UserNoticeService; import com.youlai.boot.system.service.UserNoticeService;
import com.youlai.boot.system.service.UserOnlineService; import com.youlai.boot.system.service.UserOnlineService;
@@ -63,8 +63,8 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return {@link IPage< NoticePageVo >} 通知公告分页列表 * @return {@link IPage< NoticePageVo >} 通知公告分页列表
*/ */
@Override @Override
public IPage<NoticePageVo> getNoticePage(NoticePageQuery queryParams) { public IPage<NoticePageVO> getNoticePage(NoticePageQuery queryParams) {
Page<NoticeBo> noticePage = this.baseMapper.getNoticePage( Page<NoticeBO> noticePage = this.baseMapper.getNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()), new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams 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> receivers = targetUserList.stream().map(User::getUsername).collect(Collectors.toSet());
Set<String> allOnlineUsers = userOnlineService.getOnlineUsers().stream() Set<String> allOnlineUsers = userOnlineService.getOnlineUsers().stream()
.map(UserOnlineService.UserOnlineDto::getUsername) .map(UserOnlineService.UserOnlineDTO::getUsername)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
// 找出在线用户的通知接收者 // 找出在线用户的通知接收者
Set<String> onlineReceivers = new HashSet<>(CollectionUtil.intersection(receivers, allOnlineUsers)); Set<String> onlineReceivers = new HashSet<>(CollectionUtil.intersection(receivers, allOnlineUsers));
NoticeDto noticeDto = new NoticeDto(); NoticeDTO noticeDto = new NoticeDTO();
noticeDto.setId(id); noticeDto.setId(id);
noticeDto.setTitle(notice.getTitle()); noticeDto.setTitle(notice.getTitle());
noticeDto.setType(notice.getType()); noticeDto.setType(notice.getType());
@@ -271,8 +271,8 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return NoticeDetailVo 通知公告详情 * @return NoticeDetailVo 通知公告详情
*/ */
@Override @Override
public NoticeDetailVo getNoticeDetail(Long id) { public NoticeDetailVO getNoticeDetail(Long id) {
NoticeBo noticeBo = this.baseMapper.getNoticeDetail(id); NoticeBO noticeBo = this.baseMapper.getNoticeDetail(id);
// 更新用户通知公告的阅读状态 // 更新用户通知公告的阅读状态
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
userNoticeService.update(new LambdaUpdateWrapper<UserNotice>() userNoticeService.update(new LambdaUpdateWrapper<UserNotice>()
@@ -291,7 +291,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
* @return 通知公告分页列表 * @return 通知公告分页列表
*/ */
@Override @Override
public IPage<UserNoticePageVo> getMyNoticePage(NoticePageQuery queryParams) { public IPage<UserNoticePageVO> getMyNoticePage(NoticePageQuery queryParams) {
queryParams.setUserId(SecurityUtils.getUserId()); queryParams.setUserId(SecurityUtils.getUserId());
return userNoticeService.getMyNoticePage( return userNoticeService.getMyNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()), 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.system.mapper.RoleMenuMapper; 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.model.entity.RoleMenu;
import com.youlai.boot.system.service.RoleMenuService; import com.youlai.boot.system.service.RoleMenuService;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@@ -36,7 +36,7 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
public void initRolePermsCache() { public void initRolePermsCache() {
log.info("开始初始化权限缓存..."); log.info("开始初始化权限缓存...");
List<RolePermsBo> allRolePermsList = this.baseMapper.getRolePermsList(null); List<RolePermsBO> allRolePermsList = this.baseMapper.getRolePermsList(null);
if (CollectionUtil.isEmpty(allRolePermsList)) { if (CollectionUtil.isEmpty(allRolePermsList)) {
log.warn("权限数据为空,跳过缓存初始化"); log.warn("权限数据为空,跳过缓存初始化");
@@ -67,7 +67,7 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.delete(cacheKey); redisTemplate.delete(cacheKey);
// 重新加载权限 // 重新加载权限
List<RolePermsBo> list = this.baseMapper.getRolePermsList(null); List<RolePermsBO> list = this.baseMapper.getRolePermsList(null);
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String roleCode = item.getRoleCode(); String roleCode = item.getRoleCode();
@@ -92,9 +92,9 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.opsForHash().delete(cacheKey, roleCode); redisTemplate.opsForHash().delete(cacheKey, roleCode);
// 重新加载指定角色权限 // 重新加载指定角色权限
List<RolePermsBo> list = this.baseMapper.getRolePermsList(roleCode); List<RolePermsBO> list = this.baseMapper.getRolePermsList(roleCode);
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
RolePermsBo rolePerms = list.get(0); RolePermsBO rolePerms = list.get(0);
if (rolePerms != null) { if (rolePerms != null) {
Set<String> perms = rolePerms.getPerms(); Set<String> perms = rolePerms.getPerms();
if (CollectionUtil.isNotEmpty(perms)) { if (CollectionUtil.isNotEmpty(perms)) {
@@ -117,9 +117,9 @@ public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> i
redisTemplate.opsForHash().delete(cacheKey, oldRoleCode); redisTemplate.opsForHash().delete(cacheKey, oldRoleCode);
// 添加新角色权限缓存 // 添加新角色权限缓存
List<RolePermsBo> list = this.baseMapper.getRolePermsList(newRoleCode); List<RolePermsBO> list = this.baseMapper.getRolePermsList(newRoleCode);
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
RolePermsBo rolePerms = list.get(0); RolePermsBO rolePerms = list.get(0);
if (rolePerms != null) { if (rolePerms != null) {
Set<String> perms = rolePerms.getPerms(); Set<String> perms = rolePerms.getPerms();
if (CollectionUtil.isNotEmpty(perms)) { 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.entity.RoleMenu;
import com.youlai.boot.system.model.form.RoleForm; import com.youlai.boot.system.model.form.RoleForm;
import com.youlai.boot.system.model.query.RolePageQuery; 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.constant.SystemConstants;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
@@ -51,7 +51,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
* @return {@link Page< RolePageVo >} 角色分页列表 * @return {@link Page< RolePageVo >} 角色分页列表
*/ */
@Override @Override
public Page<RolePageVo> getRolePage(RolePageQuery queryParams) { public Page<RolePageVO> getRolePage(RolePageQuery queryParams) {
// 查询参数 // 查询参数
int pageNum = queryParams.getPageNum(); int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize(); 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.mapper.UserNoticeMapper;
import com.youlai.boot.system.model.entity.UserNotice; import com.youlai.boot.system.model.entity.UserNotice;
import com.youlai.boot.system.model.query.NoticePageQuery; 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 com.youlai.boot.system.model.vo.UserNoticePageVo; import com.youlai.boot.system.model.vo.UserNoticePageVO;
import com.youlai.boot.system.service.UserNoticeService; import com.youlai.boot.system.service.UserNoticeService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -51,7 +51,7 @@ public class UserNoticeServiceImpl extends ServiceImpl<UserNoticeMapper, UserNot
* @return 通知公告分页列表 * @return 通知公告分页列表
*/ */
@Override @Override
public IPage<UserNoticePageVo> getMyNoticePage(Page<NoticePageVo> page, NoticePageQuery queryParams) { public IPage<UserNoticePageVO> getMyNoticePage(Page<NoticePageVO> page, NoticePageQuery queryParams) {
return this.getBaseMapper().getMyNoticePage( return this.getBaseMapper().getMyNoticePage(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()), new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams 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.converter.UserConverter;
import com.youlai.boot.system.enums.DictCodeEnum; import com.youlai.boot.system.enums.DictCodeEnum;
import com.youlai.boot.system.mapper.UserMapper; import com.youlai.boot.system.mapper.UserMapper;
import com.youlai.boot.system.model.bo.UserBo; import com.youlai.boot.system.model.bo.UserBO;
import com.youlai.boot.system.model.dto.CurrentUserDto; import com.youlai.boot.system.model.dto.CurrentUserDTO;
import com.youlai.boot.system.model.dto.UserExportDto; import com.youlai.boot.system.model.dto.UserExportDTO;
import com.youlai.boot.system.model.entity.DictItem; import com.youlai.boot.system.model.entity.DictItem;
import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.entity.UserRole; import com.youlai.boot.system.model.entity.UserRole;
import com.youlai.boot.system.model.form.*; import com.youlai.boot.system.model.form.*;
import com.youlai.boot.system.model.query.UserPageQuery; import com.youlai.boot.system.model.query.UserPageQuery;
import com.youlai.boot.system.model.vo.UserPageVo; import com.youlai.boot.system.model.vo.UserPageVO;
import com.youlai.boot.system.model.vo.UserProfileVo; import com.youlai.boot.system.model.vo.UserProfileVO;
import com.youlai.boot.system.service.*; import com.youlai.boot.system.service.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -84,18 +84,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link IPage<UserPageVo>} 用户分页列表 * @return {@link IPage<UserPageVo>} 用户分页列表
*/ */
@Override @Override
public IPage<UserPageVo> getUserPage(UserPageQuery queryParams) { public IPage<UserPageVO> getUserPage(UserPageQuery queryParams) {
// 参数构建 // 参数构建
int pageNum = queryParams.getPageNum(); int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize(); int pageSize = queryParams.getPageSize();
Page<UserBo> page = new Page<>(pageNum, pageSize); Page<UserBO> page = new Page<>(pageNum, pageSize);
boolean isRoot = SecurityUtils.isRoot(); boolean isRoot = SecurityUtils.isRoot();
queryParams.setIsRoot(isRoot); queryParams.setIsRoot(isRoot);
// 查询数据 // 查询数据
Page<UserBo> userPage = this.baseMapper.getUserPage(page, queryParams); Page<UserBO> userPage = this.baseMapper.getUserPage(page, queryParams);
// 实体转换 // 实体转换
return userConverter.toPageVo(userPage); return userConverter.toPageVo(userPage);
@@ -403,12 +403,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link List<UserExportDto>} 导出用户列表 * @return {@link List<UserExportDto>} 导出用户列表
*/ */
@Override @Override
public List<UserExportDto> listExportUsers(UserPageQuery queryParams) { public List<UserExportDTO> listExportUsers(UserPageQuery queryParams) {
boolean isRoot = SecurityUtils.isRoot(); boolean isRoot = SecurityUtils.isRoot();
queryParams.setIsRoot(isRoot); queryParams.setIsRoot(isRoot);
List<UserExportDto> exportUsers = this.baseMapper.listExportUsers(queryParams); List<UserExportDTO> exportUsers = this.baseMapper.listExportUsers(queryParams);
if (CollectionUtil.isNotEmpty(exportUsers)) { if (CollectionUtil.isNotEmpty(exportUsers)) {
//获取性别的字典项 //获取性别的字典项
Map<String, String> genderMap = dictItemService.list( Map<String, String> genderMap = dictItemService.list(
@@ -441,7 +441,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link CurrentUserDto} 用户信息 * @return {@link CurrentUserDto} 用户信息
*/ */
@Override @Override
public CurrentUserDto getCurrentUserInfo() { public CurrentUserDTO getCurrentUserInfo() {
String username = SecurityUtils.getUsername(); String username = SecurityUtils.getUsername();
@@ -456,7 +456,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
) )
); );
// entity->Vo // entity->Vo
CurrentUserDto userInfoVo = userConverter.toCurrentUserDto(user); CurrentUserDTO userInfoVo = userConverter.toCurrentUserDto(user);
// 用户角色集合 // 用户角色集合
Set<String> roles = SecurityUtils.getRoles(); Set<String> roles = SecurityUtils.getRoles();
@@ -477,8 +477,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* @return {@link UserProfileVo} 个人中心用户信息 * @return {@link UserProfileVo} 个人中心用户信息
*/ */
@Override @Override
public UserProfileVo getUserProfile(Long userId) { public UserProfileVO getUserProfile(Long userId) {
UserBo entity = this.baseMapper.getUserProfile(userId); UserBO entity = this.baseMapper.getUserProfile(userId);
return userConverter.toProfileVo(entity); return userConverter.toProfileVo(entity);
} }