接口优化
This commit is contained in:
@@ -22,4 +22,4 @@ public class ChatStatsRequest extends BaseRequest {
|
||||
* 会话ID
|
||||
*/
|
||||
private String conversationId;
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,11 @@ import javax.validation.constraints.NotBlank;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ConversationCreateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 对话ID(更新时使用)
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 对话分页请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ConversationPageRequest extends PageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 对话状态(可选)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 对话类型(可选)
|
||||
*/
|
||||
private String type;
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -16,6 +15,11 @@ import java.util.List;
|
||||
@Data
|
||||
public class DiaryCommentCreateRequest {
|
||||
|
||||
/**
|
||||
* 评论ID (用于更新操作)
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 日记ID
|
||||
*/
|
||||
@@ -49,4 +53,4 @@ public class DiaryCommentCreateRequest {
|
||||
*/
|
||||
@NotNull(message = "是否匿名不能为空")
|
||||
private Integer isAnonymous;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 日记评论分页请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DiaryCommentPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 日记ID(可选)
|
||||
*/
|
||||
private String diaryId;
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论类型(可选)
|
||||
*/
|
||||
private String commentType;
|
||||
|
||||
/**
|
||||
* 是否只查询顶级评论(可选)
|
||||
*/
|
||||
private Boolean topLevelOnly;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 日记分页请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DiaryPostPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 是否只查询公开日记(可选)
|
||||
*/
|
||||
private Boolean publicOnly;
|
||||
|
||||
/**
|
||||
* 是否只查询精选日记(可选)
|
||||
*/
|
||||
private Boolean featuredOnly;
|
||||
|
||||
/**
|
||||
* 心情状态(可选)
|
||||
*/
|
||||
private String mood;
|
||||
|
||||
/**
|
||||
* 标签(可选)
|
||||
*/
|
||||
private String tag;
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
@@ -15,6 +16,12 @@ import java.util.List;
|
||||
@Data
|
||||
public class DiaryPostUpdateRequest {
|
||||
|
||||
/**
|
||||
* 日记ID
|
||||
*/
|
||||
@NotBlank(message = "日记ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 日记标题
|
||||
*/
|
||||
@@ -88,4 +95,4 @@ public class DiaryPostUpdateRequest {
|
||||
* 状态: draft-草稿, published-已发布, hidden-隐藏, deleted-已删除
|
||||
*/
|
||||
private String status;
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 情绪分析创建请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionAnalysisCreateRequest {
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
@NotBlank(message = "消息ID不能为空")
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 主要情绪
|
||||
*/
|
||||
@NotBlank(message = "主要情绪不能为空")
|
||||
private String primaryEmotion;
|
||||
|
||||
/**
|
||||
* 情绪极性
|
||||
*/
|
||||
private String polarity;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
@NotNull(message = "情绪强度不能为空")
|
||||
private Double intensity;
|
||||
|
||||
/**
|
||||
* 置信度
|
||||
*/
|
||||
@NotNull(message = "置信度不能为空")
|
||||
private Double confidence;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 情绪分析分页请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionAnalysisPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 消息ID(可选)
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* 主要情绪(可选)
|
||||
*/
|
||||
private String primaryEmotion;
|
||||
|
||||
/**
|
||||
* 情绪极性(可选)
|
||||
*/
|
||||
private String polarity;
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 情绪分析更新请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionAnalysisUpdateRequest {
|
||||
|
||||
/**
|
||||
* 情绪分析ID
|
||||
*/
|
||||
@NotBlank(message = "情绪分析ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 主要情绪
|
||||
*/
|
||||
private String primaryEmotion;
|
||||
|
||||
/**
|
||||
* 情绪极性
|
||||
*/
|
||||
private String polarity;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
private Double intensity;
|
||||
|
||||
/**
|
||||
* 置信度
|
||||
*/
|
||||
private Double confidence;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 情绪记录创建请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionRecordCreateRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
@NotNull(message = "记录日期不能为空")
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 情绪类型
|
||||
*/
|
||||
@NotBlank(message = "情绪类型不能为空")
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
@NotNull(message = "情绪强度不能为空")
|
||||
private BigDecimal intensity;
|
||||
|
||||
/**
|
||||
* 触发因素
|
||||
*/
|
||||
private String triggers;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private List<String> tags;
|
||||
|
||||
/**
|
||||
* 天气
|
||||
*/
|
||||
private String weather;
|
||||
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 活动
|
||||
*/
|
||||
private String activity;
|
||||
|
||||
/**
|
||||
* 相关人物
|
||||
*/
|
||||
private String people;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String notes;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 情绪记录分页请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionRecordPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 情绪类型(可选)
|
||||
*/
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
* 地点(可选)
|
||||
*/
|
||||
private String location;
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 情绪记录更新请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionRecordUpdateRequest {
|
||||
|
||||
/**
|
||||
* 情绪记录ID
|
||||
*/
|
||||
@NotBlank(message = "情绪记录ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 情绪类型
|
||||
*/
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
private BigDecimal intensity;
|
||||
|
||||
/**
|
||||
* 触发因素
|
||||
*/
|
||||
private String triggers;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private List<String> tags;
|
||||
|
||||
/**
|
||||
* 天气
|
||||
*/
|
||||
private String weather;
|
||||
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 活动
|
||||
*/
|
||||
private String activity;
|
||||
|
||||
/**
|
||||
* 相关人物
|
||||
*/
|
||||
private String people;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String notes;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 访客用户信息请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GuestUserInfoRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 客户端IP
|
||||
*/
|
||||
private String clientIp;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* WebSocket请求对象
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WebSocketRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 发送者ID
|
||||
*/
|
||||
private String senderId;
|
||||
|
||||
/**
|
||||
* 发送者类型
|
||||
*/
|
||||
private String senderType;
|
||||
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
private String messageType;
|
||||
|
||||
/**
|
||||
* 会话ID(可选)
|
||||
*/
|
||||
private String conversationId;
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.emotion.dto.request.achievement;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 创建成就请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class AchievementCreateRequest {
|
||||
|
||||
/**
|
||||
* 成就标题
|
||||
*/
|
||||
@NotBlank(message = "成就标题不能为空")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
@NotBlank(message = "分类不能为空")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
@NotBlank(message = "稀有度不能为空")
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 条件类型
|
||||
*/
|
||||
private String conditionType;
|
||||
|
||||
/**
|
||||
* 条件值
|
||||
*/
|
||||
private String conditionValue;
|
||||
|
||||
/**
|
||||
* 奖励
|
||||
*/
|
||||
private String rewards;
|
||||
|
||||
/**
|
||||
* 是否隐藏
|
||||
*/
|
||||
private Integer isHidden;
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.emotion.dto.request.achievement;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 成就分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AchievementPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 成就分类
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 成就稀有度
|
||||
*/
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 是否已解锁
|
||||
*/
|
||||
private Boolean unlocked;
|
||||
|
||||
/**
|
||||
* 是否隐藏
|
||||
*/
|
||||
private Boolean hidden;
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.emotion.dto.request.achievement;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 更新成就进度请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class AchievementProgressUpdateRequest {
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
@NotBlank(message = "成就ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 进度值
|
||||
*/
|
||||
@NotNull(message = "进度值不能为空")
|
||||
private Double progress;
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.emotion.dto.request.achievement;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 解锁成就请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class AchievementUnlockRequest {
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
@NotBlank(message = "成就ID不能为空")
|
||||
private String id;
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
package com.emotion.dto.request.achievement;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 更新成就请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class AchievementUpdateRequest {
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
@NotBlank(message = "成就ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 成就标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 条件类型
|
||||
*/
|
||||
private String conditionType;
|
||||
|
||||
/**
|
||||
* 条件值
|
||||
*/
|
||||
private String conditionValue;
|
||||
|
||||
/**
|
||||
* 奖励
|
||||
*/
|
||||
private String rewards;
|
||||
|
||||
/**
|
||||
* 是否隐藏
|
||||
*/
|
||||
private Integer isHidden;
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.emotion.dto.request.comment;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 评论创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommentCreateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 帖子ID
|
||||
*/
|
||||
@NotBlank(message = "帖子ID不能为空")
|
||||
private String postId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId; // 不再使用@NotBlank注解,因为将从上下文中获取
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
@NotBlank(message = "评论内容不能为空")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 回复的评论ID
|
||||
*/
|
||||
private String replyToId;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.emotion.dto.request.comment;
|
||||
|
||||
import com.emotion.dto.request.PageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 评论分页请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommentPageRequest extends PageRequest {
|
||||
|
||||
/**
|
||||
* 帖子ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "帖子ID格式不正确")
|
||||
private String postId;
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "用户ID格式不正确")
|
||||
private String userId;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.emotion.dto.request.comment;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 评论查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommentQueryRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 帖子ID
|
||||
*/
|
||||
private String postId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 回复的评论ID
|
||||
*/
|
||||
private String replyToId;
|
||||
|
||||
/**
|
||||
* 最小点赞数
|
||||
*/
|
||||
private Integer minLikes;
|
||||
|
||||
/**
|
||||
* 最大点赞数
|
||||
*/
|
||||
private Integer maxLikes;
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.emotion.dto.request.comment;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 评论更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommentUpdateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 评论ID
|
||||
*/
|
||||
@NotBlank(message = "评论ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
@NotBlank(message = "评论内容不能为空")
|
||||
private String content;
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.emotion.dto.request.community;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 社区帖子创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommunityPostCreateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@NotBlank(message = "内容不能为空")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 帖子类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 地点ID
|
||||
*/
|
||||
private String locationId;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 是否私密
|
||||
*/
|
||||
private Integer isPrivate;
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.emotion.dto.request.community;
|
||||
|
||||
import com.emotion.dto.request.PageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 社区帖子分页请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommunityPostPageRequest extends PageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "用户ID格式不正确")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 帖子类型(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\u4e00-\\u9fa5]{1,20}$", message = "帖子类型格式不正确")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 地点ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "地点ID格式不正确")
|
||||
private String locationId;
|
||||
|
||||
/**
|
||||
* 是否只查询公开帖子
|
||||
*/
|
||||
private Boolean publicOnly;
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.emotion.dto.request.community;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 社区帖子更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommunityPostUpdateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 帖子ID
|
||||
*/
|
||||
@NotBlank(message = "帖子ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@NotBlank(message = "内容不能为空")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 帖子类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 地点ID
|
||||
*/
|
||||
private String locationId;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 是否私密
|
||||
*/
|
||||
private Integer isPrivate;
|
||||
}
|
||||
+215
@@ -0,0 +1,215 @@
|
||||
package com.emotion.dto.request.coze;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Coze API调用记录创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CozeApiCallCreateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 对话ID
|
||||
*/
|
||||
@NotBlank(message = "对话ID不能为空")
|
||||
private String conversationId;
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* Coze聊天ID
|
||||
*/
|
||||
private String cozeChatId;
|
||||
|
||||
/**
|
||||
* Coze对话ID
|
||||
*/
|
||||
private String cozeConversationId;
|
||||
|
||||
/**
|
||||
* Bot ID
|
||||
*/
|
||||
private String botId;
|
||||
|
||||
/**
|
||||
* Workflow ID
|
||||
*/
|
||||
private String workflowId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 请求类型: chat/stream/retrieve/messages
|
||||
*/
|
||||
private String requestType;
|
||||
|
||||
/**
|
||||
* 请求URL
|
||||
*/
|
||||
private String requestUrl;
|
||||
|
||||
/**
|
||||
* 请求体
|
||||
*/
|
||||
private String requestBody;
|
||||
|
||||
/**
|
||||
* 请求头
|
||||
*/
|
||||
private String requestHeaders;
|
||||
|
||||
/**
|
||||
* 用户输入的消息内容
|
||||
*/
|
||||
private String userMessage;
|
||||
|
||||
/**
|
||||
* 用户消息类型: text/image/file
|
||||
*/
|
||||
private String userMessageType;
|
||||
|
||||
/**
|
||||
* AI回复的消息内容
|
||||
*/
|
||||
private String aiReply;
|
||||
|
||||
/**
|
||||
* AI回复类型: text/image/file
|
||||
*/
|
||||
private String aiReplyType;
|
||||
|
||||
/**
|
||||
* HTTP状态码
|
||||
*/
|
||||
private Integer responseStatus;
|
||||
|
||||
/**
|
||||
* 响应体
|
||||
*/
|
||||
private String responseBody;
|
||||
|
||||
/**
|
||||
* 响应头
|
||||
*/
|
||||
private String responseHeaders;
|
||||
|
||||
/**
|
||||
* 轮询次数
|
||||
*/
|
||||
private Integer pollCount;
|
||||
|
||||
/**
|
||||
* 轮询开始时间
|
||||
*/
|
||||
private String pollStartTime;
|
||||
|
||||
/**
|
||||
* 轮询结束时间
|
||||
*/
|
||||
private String pollEndTime;
|
||||
|
||||
/**
|
||||
* 最终状态: completed/failed/timeout
|
||||
*/
|
||||
private String finalStatus;
|
||||
|
||||
/**
|
||||
* 调用状态: pending/success/failed/timeout
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 耗时(毫秒)
|
||||
*/
|
||||
private Integer durationMs;
|
||||
|
||||
/**
|
||||
* 输入Token数
|
||||
*/
|
||||
private Integer promptTokens;
|
||||
|
||||
/**
|
||||
* 输出Token数
|
||||
*/
|
||||
private Integer completionTokens;
|
||||
|
||||
/**
|
||||
* 总Token数
|
||||
*/
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 费用
|
||||
*/
|
||||
private BigDecimal cost;
|
||||
|
||||
/**
|
||||
* 函数调用记录
|
||||
*/
|
||||
private String functionCalls;
|
||||
|
||||
/**
|
||||
* 函数调用结果
|
||||
*/
|
||||
private String functionResults;
|
||||
|
||||
/**
|
||||
* 错误代码
|
||||
*/
|
||||
private String errorCode;
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
*/
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
* 客户端IP
|
||||
*/
|
||||
private String clientIp;
|
||||
|
||||
/**
|
||||
* 用户代理
|
||||
*/
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 会话ID
|
||||
*/
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* 追踪ID
|
||||
*/
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 扩展元数据
|
||||
*/
|
||||
private String metadata;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.emotion.dto.request.coze;
|
||||
|
||||
import com.emotion.dto.request.PageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* Coze API调用记录分页请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CozeApiCallPageRequest extends PageRequest {
|
||||
|
||||
/**
|
||||
* 会话ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "会话ID格式不正确")
|
||||
private String conversationId;
|
||||
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "用户ID格式不正确")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* Bot ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "Bot ID格式不正确")
|
||||
private String botId;
|
||||
|
||||
/**
|
||||
* 状态(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\u4e00-\\u9fa5]{1,20}$", message = "状态格式不正确")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 请求类型(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,20}$", message = "请求类型格式不正确")
|
||||
private String requestType;
|
||||
|
||||
/**
|
||||
* 追踪ID(可选)
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_\\-]{1,50}$", message = "追踪ID格式不正确")
|
||||
private String traceId;
|
||||
}
|
||||
+220
@@ -0,0 +1,220 @@
|
||||
package com.emotion.dto.request.coze;
|
||||
|
||||
import com.emotion.dto.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Coze API调用记录更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CozeApiCallUpdateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 对话ID
|
||||
*/
|
||||
private String conversationId;
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* Coze聊天ID
|
||||
*/
|
||||
private String cozeChatId;
|
||||
|
||||
/**
|
||||
* Coze对话ID
|
||||
*/
|
||||
private String cozeConversationId;
|
||||
|
||||
/**
|
||||
* Bot ID
|
||||
*/
|
||||
private String botId;
|
||||
|
||||
/**
|
||||
* Workflow ID
|
||||
*/
|
||||
private String workflowId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 请求类型: chat/stream/retrieve/messages
|
||||
*/
|
||||
private String requestType;
|
||||
|
||||
/**
|
||||
* 请求URL
|
||||
*/
|
||||
private String requestUrl;
|
||||
|
||||
/**
|
||||
* 请求体
|
||||
*/
|
||||
private String requestBody;
|
||||
|
||||
/**
|
||||
* 请求头
|
||||
*/
|
||||
private String requestHeaders;
|
||||
|
||||
/**
|
||||
* 用户输入的消息内容
|
||||
*/
|
||||
private String userMessage;
|
||||
|
||||
/**
|
||||
* 用户消息类型: text/image/file
|
||||
*/
|
||||
private String userMessageType;
|
||||
|
||||
/**
|
||||
* AI回复的消息内容
|
||||
*/
|
||||
private String aiReply;
|
||||
|
||||
/**
|
||||
* AI回复类型: text/image/file
|
||||
*/
|
||||
private String aiReplyType;
|
||||
|
||||
/**
|
||||
* HTTP状态码
|
||||
*/
|
||||
private Integer responseStatus;
|
||||
|
||||
/**
|
||||
* 响应体
|
||||
*/
|
||||
private String responseBody;
|
||||
|
||||
/**
|
||||
* 响应头
|
||||
*/
|
||||
private String responseHeaders;
|
||||
|
||||
/**
|
||||
* 轮询次数
|
||||
*/
|
||||
private Integer pollCount;
|
||||
|
||||
/**
|
||||
* 轮询开始时间
|
||||
*/
|
||||
private String pollStartTime;
|
||||
|
||||
/**
|
||||
* 轮询结束时间
|
||||
*/
|
||||
private String pollEndTime;
|
||||
|
||||
/**
|
||||
* 最终状态: completed/failed/timeout
|
||||
*/
|
||||
private String finalStatus;
|
||||
|
||||
/**
|
||||
* 调用状态: pending/success/failed/timeout
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 耗时(毫秒)
|
||||
*/
|
||||
private Integer durationMs;
|
||||
|
||||
/**
|
||||
* 输入Token数
|
||||
*/
|
||||
private Integer promptTokens;
|
||||
|
||||
/**
|
||||
* 输出Token数
|
||||
*/
|
||||
private Integer completionTokens;
|
||||
|
||||
/**
|
||||
* 总Token数
|
||||
*/
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 费用
|
||||
*/
|
||||
private BigDecimal cost;
|
||||
|
||||
/**
|
||||
* 函数调用记录
|
||||
*/
|
||||
private String functionCalls;
|
||||
|
||||
/**
|
||||
* 函数调用结果
|
||||
*/
|
||||
private String functionResults;
|
||||
|
||||
/**
|
||||
* 错误代码
|
||||
*/
|
||||
private String errorCode;
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
*/
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
* 客户端IP
|
||||
*/
|
||||
private String clientIp;
|
||||
|
||||
/**
|
||||
* 用户代理
|
||||
*/
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 会话ID
|
||||
*/
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* 追踪ID
|
||||
*/
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 扩展元数据
|
||||
*/
|
||||
private String metadata;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 情绪分析响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionAnalysisResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 主要情绪
|
||||
*/
|
||||
private String primaryEmotion;
|
||||
|
||||
/**
|
||||
* 情绪极性
|
||||
*/
|
||||
private String polarity;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
private Double intensity;
|
||||
|
||||
/**
|
||||
* 置信度
|
||||
*/
|
||||
private Double confidence;
|
||||
|
||||
/**
|
||||
* 情绪详情
|
||||
*/
|
||||
private String emotionDetails;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 情绪记录响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionRecordResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 情绪类型
|
||||
*/
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
* 情绪强度
|
||||
*/
|
||||
private BigDecimal intensity;
|
||||
|
||||
/**
|
||||
* 触发因素
|
||||
*/
|
||||
private String triggers;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private List<String> tags;
|
||||
|
||||
/**
|
||||
* 天气
|
||||
*/
|
||||
private String weather;
|
||||
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 活动
|
||||
*/
|
||||
private String activity;
|
||||
|
||||
/**
|
||||
* 相关人物
|
||||
*/
|
||||
private String people;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String notes;
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* WebSocket响应对象
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WebSocketResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* 会话ID
|
||||
*/
|
||||
private String conversationId;
|
||||
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 发送者ID
|
||||
*/
|
||||
private String senderId;
|
||||
|
||||
/**
|
||||
* 发送者类型
|
||||
*/
|
||||
private String senderType;
|
||||
|
||||
/**
|
||||
* 消息状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 扩展数据
|
||||
*/
|
||||
private Object data;
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.emotion.dto.response.achievement;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 成就响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AchievementResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 成就标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 条件类型
|
||||
*/
|
||||
private String conditionType;
|
||||
|
||||
/**
|
||||
* 条件值
|
||||
*/
|
||||
private String conditionValue;
|
||||
|
||||
/**
|
||||
* 奖励
|
||||
*/
|
||||
private String rewards;
|
||||
|
||||
/**
|
||||
* 解锁时间
|
||||
*/
|
||||
private String unlockedTime;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
private Double progress;
|
||||
|
||||
/**
|
||||
* 是否隐藏
|
||||
*/
|
||||
private Integer isHidden;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.emotion.dto.response.comment;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 评论响应
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommentResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 帖子ID
|
||||
*/
|
||||
private String postId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 回复的评论ID
|
||||
*/
|
||||
private String replyToId;
|
||||
|
||||
/**
|
||||
* 点赞数
|
||||
*/
|
||||
private Integer likes;
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.emotion.dto.response.community;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 社区帖子响应
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CommunityPostResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 地点ID
|
||||
*/
|
||||
private String locationId;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 帖子类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
private String images;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 点赞数
|
||||
*/
|
||||
private Integer likes;
|
||||
|
||||
/**
|
||||
* 浏览数
|
||||
*/
|
||||
private Integer viewCount;
|
||||
|
||||
/**
|
||||
* 评论数
|
||||
*/
|
||||
private Integer commentCount;
|
||||
|
||||
/**
|
||||
* 是否私密
|
||||
*/
|
||||
private Integer isPrivate;
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
package com.emotion.dto.response.coze;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Coze API调用记录响应
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CozeApiCallResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 对话ID
|
||||
*/
|
||||
private String conversationId;
|
||||
|
||||
/**
|
||||
* 消息ID
|
||||
*/
|
||||
private String messageId;
|
||||
|
||||
/**
|
||||
* Coze聊天ID
|
||||
*/
|
||||
private String cozeChatId;
|
||||
|
||||
/**
|
||||
* Coze对话ID
|
||||
*/
|
||||
private String cozeConversationId;
|
||||
|
||||
/**
|
||||
* Bot ID
|
||||
*/
|
||||
private String botId;
|
||||
|
||||
/**
|
||||
* Workflow ID
|
||||
*/
|
||||
private String workflowId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 请求类型: chat/stream/retrieve/messages
|
||||
*/
|
||||
private String requestType;
|
||||
|
||||
/**
|
||||
* 请求URL
|
||||
*/
|
||||
private String requestUrl;
|
||||
|
||||
/**
|
||||
* 请求体
|
||||
*/
|
||||
private String requestBody;
|
||||
|
||||
/**
|
||||
* 请求头
|
||||
*/
|
||||
private String requestHeaders;
|
||||
|
||||
/**
|
||||
* 用户输入的消息内容
|
||||
*/
|
||||
private String userMessage;
|
||||
|
||||
/**
|
||||
* 用户消息类型: text/image/file
|
||||
*/
|
||||
private String userMessageType;
|
||||
|
||||
/**
|
||||
* AI回复的消息内容
|
||||
*/
|
||||
private String aiReply;
|
||||
|
||||
/**
|
||||
* AI回复类型: text/image/file
|
||||
*/
|
||||
private String aiReplyType;
|
||||
|
||||
/**
|
||||
* HTTP状态码
|
||||
*/
|
||||
private Integer responseStatus;
|
||||
|
||||
/**
|
||||
* 响应体
|
||||
*/
|
||||
private String responseBody;
|
||||
|
||||
/**
|
||||
* 响应头
|
||||
*/
|
||||
private String responseHeaders;
|
||||
|
||||
/**
|
||||
* 轮询次数
|
||||
*/
|
||||
private Integer pollCount;
|
||||
|
||||
/**
|
||||
* 轮询开始时间
|
||||
*/
|
||||
private String pollStartTime;
|
||||
|
||||
/**
|
||||
* 轮询结束时间
|
||||
*/
|
||||
private String pollEndTime;
|
||||
|
||||
/**
|
||||
* 最终状态: completed/failed/timeout
|
||||
*/
|
||||
private String finalStatus;
|
||||
|
||||
/**
|
||||
* 调用状态: pending/success/failed/timeout
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 耗时(毫秒)
|
||||
*/
|
||||
private Integer durationMs;
|
||||
|
||||
/**
|
||||
* 输入Token数
|
||||
*/
|
||||
private Integer promptTokens;
|
||||
|
||||
/**
|
||||
* 输出Token数
|
||||
*/
|
||||
private Integer completionTokens;
|
||||
|
||||
/**
|
||||
* 总Token数
|
||||
*/
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 费用
|
||||
*/
|
||||
private BigDecimal cost;
|
||||
|
||||
/**
|
||||
* 函数调用记录
|
||||
*/
|
||||
private String functionCalls;
|
||||
|
||||
/**
|
||||
* 函数调用结果
|
||||
*/
|
||||
private String functionResults;
|
||||
|
||||
/**
|
||||
* 错误代码
|
||||
*/
|
||||
private String errorCode;
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
*/
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
* 客户端IP
|
||||
*/
|
||||
private String clientIp;
|
||||
|
||||
/**
|
||||
* 用户代理
|
||||
*/
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 会话ID
|
||||
*/
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* 追踪ID
|
||||
*/
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 扩展元数据
|
||||
*/
|
||||
private String metadata;
|
||||
}
|
||||
@@ -35,14 +35,14 @@ public class ChatRequest {
|
||||
/**
|
||||
* 发送者类型
|
||||
*/
|
||||
@NotNull(message = "发送者类型不能为空")
|
||||
private SenderType senderType;
|
||||
@NotBlank(message = "发送者类型不能为空")
|
||||
private String senderType;
|
||||
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
@NotNull(message = "消息类型不能为空")
|
||||
private MessageType messageType;
|
||||
@NotBlank(message = "消息类型不能为空")
|
||||
private String messageType;
|
||||
|
||||
/**
|
||||
* 会话ID(可选)
|
||||
@@ -53,45 +53,4 @@ public class ChatRequest {
|
||||
* 发送时间戳
|
||||
*/
|
||||
private Long timestamp;
|
||||
|
||||
/**
|
||||
* 发送者类型枚举
|
||||
*/
|
||||
public enum SenderType {
|
||||
USER("用户"),
|
||||
GUEST("访客"),
|
||||
AI("AI助手"),
|
||||
SYSTEM("系统");
|
||||
|
||||
private final String description;
|
||||
|
||||
SenderType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息类型枚举
|
||||
*/
|
||||
public enum MessageType {
|
||||
TEXT("文本消息"),
|
||||
IMAGE("图片消息"),
|
||||
FILE("文件消息"),
|
||||
SYSTEM("系统消息"),
|
||||
HEARTBEAT("心跳消息");
|
||||
|
||||
private final String description;
|
||||
|
||||
MessageType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class WebSocketMessage {
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
private MessageType type;
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
@@ -47,12 +47,12 @@ public class WebSocketMessage {
|
||||
/**
|
||||
* 发送者类型
|
||||
*/
|
||||
private SenderType senderType;
|
||||
private String senderType;
|
||||
|
||||
/**
|
||||
* 消息状态
|
||||
*/
|
||||
private MessageStatus status;
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
@@ -63,68 +63,4 @@ public class WebSocketMessage {
|
||||
* 扩展数据
|
||||
*/
|
||||
private Object data;
|
||||
|
||||
/**
|
||||
* 消息类型枚举
|
||||
*/
|
||||
public enum MessageType {
|
||||
TEXT("文本消息"),
|
||||
TYPING("正在输入"),
|
||||
SYSTEM("系统消息"),
|
||||
ERROR("错误消息"),
|
||||
HEARTBEAT("心跳消息"),
|
||||
CONNECTION("连接消息"),
|
||||
AI_THINKING("AI思考中");
|
||||
|
||||
private final String description;
|
||||
|
||||
MessageType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送者类型枚举
|
||||
*/
|
||||
public enum SenderType {
|
||||
USER("用户"),
|
||||
GUEST("访客"),
|
||||
AI("AI助手"),
|
||||
SYSTEM("系统");
|
||||
|
||||
private final String description;
|
||||
|
||||
SenderType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息状态枚举
|
||||
*/
|
||||
public enum MessageStatus {
|
||||
SENDING("发送中"),
|
||||
SENT("已发送"),
|
||||
DELIVERED("已送达"),
|
||||
READ("已读"),
|
||||
FAILED("发送失败");
|
||||
|
||||
private final String description;
|
||||
|
||||
MessageStatus(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user