refactor all
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import com.imyeyu.api.bean.CaptchaFrom;
|
||||
|
||||
/**
|
||||
* 验证码请求,不要执行参数校验,否则会被全局拦截器统一返回 JSON 错误,但这是验证码,需要返回错误图片
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2023-07-15 18:14
|
||||
*/
|
||||
@Data
|
||||
public class CaptchaRequest {
|
||||
|
||||
private int width;
|
||||
|
||||
private int height;
|
||||
|
||||
private CaptchaFrom from;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2023-05-26 13:21
|
||||
*/
|
||||
@Data
|
||||
public class FeedbackRequest {
|
||||
|
||||
@NotBlank
|
||||
private String from;
|
||||
|
||||
@Email
|
||||
private String email;
|
||||
|
||||
@NotBlank
|
||||
private String data;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.imyeyu.api.modules.common.vo.attach;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 业务附件差分更新请求
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-03-11 00:00
|
||||
*/
|
||||
@Data
|
||||
public class BizDeleteReq {
|
||||
|
||||
/** 业务类型 */
|
||||
private Attachment.BizType bizType;
|
||||
|
||||
/** 业务 ID */
|
||||
private String bizId;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.imyeyu.api.modules.common.vo.attach;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 业务附件差分更新请求
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-03-11 00:00
|
||||
*/
|
||||
@Data
|
||||
public class BizUpdateReq {
|
||||
|
||||
/** 业务类型 */
|
||||
private Attachment.BizType bizType;
|
||||
|
||||
/** 业务 ID */
|
||||
private String bizId;
|
||||
|
||||
/** 附件项列表 */
|
||||
private List<Attachment> items = new ArrayList<>();
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.imyeyu.api.modules.common.vo.attach;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2025-09-27 01:37
|
||||
*/
|
||||
@Data
|
||||
public class TempFileResp {
|
||||
|
||||
private String id;
|
||||
|
||||
private Long expireAt;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.imyeyu.api.modules.common.vo.attach;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2026-01-13 14:55
|
||||
*/
|
||||
@Data
|
||||
public class TempFileSaveReq {
|
||||
|
||||
private Attachment.BizType bizType;
|
||||
|
||||
private String bizId;
|
||||
|
||||
private String[] tempFileIds;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 创建主评论请求
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 18:40
|
||||
*/
|
||||
@Data
|
||||
public class CommentCreateReq {
|
||||
|
||||
/** 业务类型 */
|
||||
protected String bizType;
|
||||
|
||||
/** 业务 ID */
|
||||
protected String bizId;
|
||||
|
||||
/** 评论用户 ID,登录用户评论时使用 */
|
||||
protected String userId;
|
||||
|
||||
/** 评论用户昵称,游客评论时使用 */
|
||||
protected String userNick;
|
||||
|
||||
/** 评论内容 */
|
||||
protected String content;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 评论层查询请求
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class CommentLayerQueryReq {
|
||||
|
||||
/** 业务类型 */
|
||||
protected String bizType;
|
||||
|
||||
/** 业务 ID */
|
||||
protected String bizId;
|
||||
|
||||
/** 父评论 ID,查询主评论时为 null */
|
||||
protected String parentId;
|
||||
|
||||
/** 起始偏移量 */
|
||||
protected Integer offset;
|
||||
|
||||
/** 查询条数 */
|
||||
protected Integer limit;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.api.modules.common.entity.Comment;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 评论层响应
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class CommentLayerResp {
|
||||
|
||||
/** 当前层总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long total;
|
||||
|
||||
/** 当前层评论列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<Comment> list;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.api.modules.common.entity.Comment;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 评论节点响应
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class CommentNodeResp {
|
||||
|
||||
/** 当前评论 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Comment comment;
|
||||
|
||||
/** 直属回复总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long replyTotal;
|
||||
|
||||
/** 直属回复列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<Comment> replyList;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 回复评论请求
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 18:40
|
||||
*/
|
||||
@Data
|
||||
public class CommentReplyReq {
|
||||
|
||||
/** 父评论 ID */
|
||||
protected String parentId;
|
||||
|
||||
/** 评论用户 ID,登录用户评论时使用 */
|
||||
protected String userId;
|
||||
|
||||
/** 评论用户昵称,游客评论时使用 */
|
||||
protected String userNick;
|
||||
|
||||
/** 回复内容 */
|
||||
protected String content;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.api.modules.common.entity.Comment;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 评论线程响应
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class CommentThreadResp {
|
||||
|
||||
/** 主评论 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Comment root;
|
||||
|
||||
/** 子评论总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long replyTotal;
|
||||
|
||||
/** 子评论列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<Comment> replyList;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.api.modules.common.entity.Comment;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 扁平评论列表项
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class FlatCommentListItemResp {
|
||||
|
||||
/** 主评论 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Comment root;
|
||||
|
||||
/** 回复预览总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long replyPreviewTotal;
|
||||
|
||||
/** 回复预览列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<Comment> replyPreviewList;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 扁平评论列表响应
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class FlatCommentListResp {
|
||||
|
||||
/** 主评论总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long total;
|
||||
|
||||
/** 主评论列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<FlatCommentListItemResp> list;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.imyeyu.api.modules.common.vo.comment;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.imyeyu.spring.util.ResponseView;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 层级评论列表响应
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2026-05-27 17:20
|
||||
*/
|
||||
@Data
|
||||
public class NestedCommentListResp {
|
||||
|
||||
/** 主评论总数 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private Long total;
|
||||
|
||||
/** 主评论列表 */
|
||||
@JsonView(ResponseView.Public.class)
|
||||
private List<CommentNodeResp> list;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import com.imyeyu.api.modules.common.validation.UserPassword;
|
||||
|
||||
/**
|
||||
* 登录请求对象
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2023-04-25 17:26
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class LoginRequest {
|
||||
|
||||
/** 用户(可能是 UID、邮箱或用户名) */
|
||||
private String user;
|
||||
|
||||
/** 明文密码 */
|
||||
@UserPassword
|
||||
private String password;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 登录返回对象
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2023-05-05 17:57
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class LoginResponse {
|
||||
|
||||
/** 登录用户 ID */
|
||||
private Long id;
|
||||
|
||||
/** 令牌 */
|
||||
private String token;
|
||||
|
||||
/** 过期时间 */
|
||||
private Long expireAt;
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import com.imyeyu.api.modules.common.validation.UserName;
|
||||
import com.imyeyu.api.modules.common.validation.UserPassword;
|
||||
|
||||
/**
|
||||
* 注册请求对象
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2023-05-05 18:08
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RegisterRequest {
|
||||
|
||||
/** 用户名 */
|
||||
@UserName
|
||||
private String name;
|
||||
|
||||
/** 明文密码 */
|
||||
@UserPassword
|
||||
private String password;
|
||||
|
||||
/** 邮箱 */
|
||||
@Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", message = "user.email.not_match_regex")
|
||||
private String email;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import com.imyeyu.api.modules.common.validation.UserPassword;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2023-07-15 11:23
|
||||
*/
|
||||
@Data
|
||||
public class UpdatePasswordByKeyRequest {
|
||||
|
||||
@NotBlank
|
||||
private String key;
|
||||
|
||||
@UserPassword
|
||||
private String newPassword;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import lombok.Data;
|
||||
import com.imyeyu.api.modules.common.validation.UserPassword;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2023-07-15 11:23
|
||||
*/
|
||||
@Data
|
||||
public class UpdatePasswordRequest {
|
||||
|
||||
@UserPassword
|
||||
private String oldValue;
|
||||
|
||||
@UserPassword
|
||||
private String newValue;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import com.imyeyu.api.modules.common.entity.UserProfile;
|
||||
import com.imyeyu.spring.annotation.table.Transient;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2024-02-21 13:00
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserProfileView extends UserProfile {
|
||||
|
||||
@Transient
|
||||
private List<Attachment> attachmentList;
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import com.imyeyu.api.modules.common.entity.User;
|
||||
import com.imyeyu.api.modules.common.entity.UserProfile;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2024-02-21 11:55
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserRequest extends User {
|
||||
|
||||
private UserProfileRequest profile;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2024-05-17 00:06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public static final class UserProfileRequest extends UserProfile {
|
||||
|
||||
private MultipartFile wrapper;
|
||||
|
||||
private MultipartFile avatar;
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package com.imyeyu.api.modules.common.vo.user;
|
||||
|
||||
import com.imyeyu.java.bean.timi.TimiCode;
|
||||
import com.imyeyu.java.bean.timi.TimiException;
|
||||
import com.imyeyu.java.ref.Ref;
|
||||
import com.imyeyu.api.TimiServerAPI;
|
||||
import com.imyeyu.api.modules.common.entity.User;
|
||||
import com.imyeyu.api.modules.common.entity.UserPrivacy;
|
||||
import com.imyeyu.api.modules.common.service.UserPrivacyService;
|
||||
import com.imyeyu.api.modules.common.service.UserService;
|
||||
import com.imyeyu.spring.annotation.table.Transient;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户视图
|
||||
*
|
||||
* @author 夜雨
|
||||
* @since 2024-03-05 20:00
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserView extends User {
|
||||
|
||||
/** 用户信息视图 */
|
||||
@Transient
|
||||
private UserProfileView profile;
|
||||
|
||||
public UserView doFilter() {
|
||||
try {
|
||||
UserService userService = TimiServerAPI.applicationContext.getBean(UserService.class);
|
||||
UserPrivacyService privacyService = TimiServerAPI.applicationContext.getBean(UserPrivacyService.class);
|
||||
|
||||
password = null;
|
||||
updatedAt = null;
|
||||
emailVerifyAt = null;
|
||||
|
||||
profile.setUpdatedAt(null);
|
||||
profile.setLastLoginIP(null);
|
||||
User loginUser = userService.getLoginUser();
|
||||
if (loginUser == null || !id.equals(loginUser.getId())) {
|
||||
// 未登录,并且获取的用户资料不是自己的,执行隐私控制过滤
|
||||
UserPrivacy privacy = privacyService.get(id);
|
||||
List<String> filters = privacy.listFilterFields();
|
||||
for (int i = 0; i < filters.size(); i++) {
|
||||
Ref.setFieldValue(profile, filters.get(i), null);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
} catch (Exception e) {
|
||||
throw new TimiException(TimiCode.ERROR, "TODO filter user fail", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user