优化
This commit is contained in:
@@ -4,6 +4,7 @@ import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -21,6 +22,7 @@ public class EmotionRecordCreateRequest {
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
@Size(max = 32, message = "用户ID长度不能超过32个字符")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
@@ -33,6 +35,7 @@ public class EmotionRecordCreateRequest {
|
||||
* 情绪类型
|
||||
*/
|
||||
@NotBlank(message = "情绪类型不能为空")
|
||||
@Size(max = 32, message = "情绪类型长度不能超过32个字符")
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
@@ -44,11 +47,13 @@ public class EmotionRecordCreateRequest {
|
||||
/**
|
||||
* 触发因素
|
||||
*/
|
||||
@Size(max = 768, message = "触发因素长度不能超过768个字符")
|
||||
private String triggers;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 768, message = "描述长度不能超过768个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
@@ -59,25 +64,30 @@ public class EmotionRecordCreateRequest {
|
||||
/**
|
||||
* 天气
|
||||
*/
|
||||
@Size(max = 64, message = "天气长度不能超过64个字符")
|
||||
private String weather;
|
||||
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
@Size(max = 128, message = "地点长度不能超过128个字符")
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 活动
|
||||
*/
|
||||
@Size(max = 128, message = "活动长度不能超过128个字符")
|
||||
private String activity;
|
||||
|
||||
/**
|
||||
* 相关人物
|
||||
*/
|
||||
@Size(max = 256, message = "相关人物长度不能超过256个字符")
|
||||
private String people;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Size(max = 1024, message = "备注长度不能超过1024个字符")
|
||||
private String notes;
|
||||
}
|
||||
@@ -4,6 +4,8 @@ import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 情绪记录分页请求类
|
||||
*
|
||||
@@ -17,15 +19,18 @@ public class EmotionRecordPageRequest extends BasePageRequest {
|
||||
/**
|
||||
* 用户ID(可选)
|
||||
*/
|
||||
@Size(max = 32, message = "用户ID长度不能超过32个字符")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 情绪类型(可选)
|
||||
*/
|
||||
@Size(max = 32, message = "情绪类型长度不能超过32个字符")
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
* 地点(可选)
|
||||
*/
|
||||
@Size(max = 128, message = "地点长度不能超过128个字符")
|
||||
private String location;
|
||||
}
|
||||
@@ -3,6 +3,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.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -20,6 +21,7 @@ public class EmotionRecordUpdateRequest {
|
||||
* 情绪记录ID
|
||||
*/
|
||||
@NotBlank(message = "情绪记录ID不能为空")
|
||||
@Size(max = 32, message = "情绪记录ID长度不能超过32个字符")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
@@ -30,6 +32,7 @@ public class EmotionRecordUpdateRequest {
|
||||
/**
|
||||
* 情绪类型
|
||||
*/
|
||||
@Size(max = 32, message = "情绪类型长度不能超过32个字符")
|
||||
private String emotionType;
|
||||
|
||||
/**
|
||||
@@ -40,11 +43,13 @@ public class EmotionRecordUpdateRequest {
|
||||
/**
|
||||
* 触发因素
|
||||
*/
|
||||
@Size(max = 768, message = "触发因素长度不能超过768个字符")
|
||||
private String triggers;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 768, message = "描述长度不能超过768个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
@@ -55,25 +60,30 @@ public class EmotionRecordUpdateRequest {
|
||||
/**
|
||||
* 天气
|
||||
*/
|
||||
@Size(max = 64, message = "天气长度不能超过64个字符")
|
||||
private String weather;
|
||||
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
@Size(max = 128, message = "地点长度不能超过128个字符")
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 活动
|
||||
*/
|
||||
@Size(max = 128, message = "活动长度不能超过128个字符")
|
||||
private String activity;
|
||||
|
||||
/**
|
||||
* 相关人物
|
||||
*/
|
||||
@Size(max = 256, message = "相关人物长度不能超过256个字符")
|
||||
private String people;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Size(max = 1024, message = "备注长度不能超过1024个字符")
|
||||
private String notes;
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 情绪总结生成请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionSummaryGenerateRequest {
|
||||
// 目前情绪总结生成不需要额外参数
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 情绪总结状态请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class EmotionSummaryStatusRequest {
|
||||
// 目前情绪总结状态查询不需要额外参数
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 话题互动创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class TopicInteractionCreateRequest {
|
||||
|
||||
/**
|
||||
* 话题ID
|
||||
*/
|
||||
@NotBlank(message = "话题ID不能为空")
|
||||
@Size(max = 50, message = "话题ID长度不能超过50个字符")
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 互动类型
|
||||
*/
|
||||
@NotBlank(message = "互动类型不能为空")
|
||||
@Size(max = 50, message = "互动类型长度不能超过50个字符")
|
||||
private String interactionType;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@Size(max = 1000, message = "内容长度不能超过1000个字符")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 用户输入
|
||||
*/
|
||||
@Size(max = 1000, message = "用户输入长度不能超过1000个字符")
|
||||
private String userInput;
|
||||
|
||||
/**
|
||||
* AI回应
|
||||
*/
|
||||
@Size(max = 1000, message = "AI回应长度不能超过1000个字符")
|
||||
private String aiResponse;
|
||||
|
||||
/**
|
||||
* 附件
|
||||
*/
|
||||
@Size(max = 500, message = "附件长度不能超过500个字符")
|
||||
private String attachments;
|
||||
|
||||
/**
|
||||
* 评分
|
||||
*/
|
||||
private Integer rating;
|
||||
|
||||
/**
|
||||
* 反馈
|
||||
*/
|
||||
@Size(max = 500, message = "反馈长度不能超过500个字符")
|
||||
private String feedback;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 话题互动分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TopicInteractionPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 话题ID
|
||||
*/
|
||||
@Size(max = 50, message = "话题ID长度不能超过50个字符")
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@Size(max = 50, message = "用户ID长度不能超过50个字符")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 互动类型
|
||||
*/
|
||||
@Size(max = 50, message = "互动类型长度不能超过50个字符")
|
||||
private String interactionType;
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 话题互动更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class TopicInteractionUpdateRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
@Size(max = 50, message = "ID长度不能超过50个字符")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 话题ID
|
||||
*/
|
||||
@Size(max = 50, message = "话题ID长度不能超过50个字符")
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 互动类型
|
||||
*/
|
||||
@Size(max = 50, message = "互动类型长度不能超过50个字符")
|
||||
private String interactionType;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@Size(max = 1000, message = "内容长度不能超过1000个字符")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 用户输入
|
||||
*/
|
||||
@Size(max = 1000, message = "用户输入长度不能超过1000个字符")
|
||||
private String userInput;
|
||||
|
||||
/**
|
||||
* AI回应
|
||||
*/
|
||||
@Size(max = 1000, message = "AI回应长度不能超过1000个字符")
|
||||
private String aiResponse;
|
||||
|
||||
/**
|
||||
* 附件
|
||||
*/
|
||||
@Size(max = 500, message = "附件长度不能超过500个字符")
|
||||
private String attachments;
|
||||
|
||||
/**
|
||||
* 评分
|
||||
*/
|
||||
private Integer rating;
|
||||
|
||||
/**
|
||||
* 反馈
|
||||
*/
|
||||
@Size(max = 500, message = "反馈长度不能超过500个字符")
|
||||
private String feedback;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 用户分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
@Size(max = 20, message = "账号长度不能超过20个字符")
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
@Size(max = 20, message = "用户名长度不能超过20个字符")
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@Size(max = 100, message = "邮箱长度不能超过100个字符")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@Size(max = 20, message = "手机号长度不能超过20个字符")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
@Size(max = 20, message = "会员等级长度不能超过20个字符")
|
||||
private String memberLevel;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户统计创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-09
|
||||
*/
|
||||
@Data
|
||||
public class UserStatsCreateRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 统计类型
|
||||
*/
|
||||
@NotBlank(message = "统计类型不能为空")
|
||||
private String statsType;
|
||||
|
||||
/**
|
||||
* 统计值
|
||||
*/
|
||||
@NotNull(message = "统计值不能为空")
|
||||
private Double value;
|
||||
|
||||
/**
|
||||
* 周期
|
||||
*/
|
||||
private String period;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户统计值增加请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-09
|
||||
*/
|
||||
@Data
|
||||
public class UserStatsIncrementRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 统计类型
|
||||
*/
|
||||
@NotBlank(message = "统计类型不能为空")
|
||||
private String statsType;
|
||||
|
||||
/**
|
||||
* 增加值
|
||||
*/
|
||||
@NotNull(message = "增加值不能为空")
|
||||
private Double increment;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 用户统计分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserStatsPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 统计类型
|
||||
*/
|
||||
private String statsType;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户统计值更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-09
|
||||
*/
|
||||
@Data
|
||||
public class UserStatsUpdateValueRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 统计类型
|
||||
*/
|
||||
@NotBlank(message = "统计类型不能为空")
|
||||
private String statsType;
|
||||
|
||||
/**
|
||||
* 统计值
|
||||
*/
|
||||
@NotNull(message = "统计值不能为空")
|
||||
private Double value;
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.emotion.dto.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.Email;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDate;
|
||||
@@ -12,11 +12,16 @@ import java.time.LocalDate;
|
||||
* 用户更新请求类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-24
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserUpdateRequest extends BaseRequest {
|
||||
public class UserUpdateRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
@@ -70,4 +75,10 @@ public class UserUpdateRequest extends BaseRequest {
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
@Size(max = 20, message = "会员等级长度不能超过20个字符")
|
||||
private String memberLevel;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.emotion.dto.request.growth;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 成长话题创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class GrowthTopicCreateRequest {
|
||||
|
||||
/**
|
||||
* 课题标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空")
|
||||
@Size(max = 100, message = "标题长度不能超过100个字符")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 500, message = "描述长度不能超过500个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
@NotBlank(message = "分类不能为空")
|
||||
@Size(max = 50, message = "分类长度不能超过50个字符")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 难度等级
|
||||
*/
|
||||
@NotBlank(message = "难度等级不能为空")
|
||||
@Size(max = 20, message = "难度等级长度不能超过20个字符")
|
||||
private String difficultyLevel;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
@Size(max = 200, message = "标签长度不能超过200个字符")
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package com.emotion.dto.request.growth;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 成长话题分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GrowthTopicPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 难度等级
|
||||
*/
|
||||
private String difficultyLevel;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.emotion.dto.request.growth;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 成长话题更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class GrowthTopicUpdateRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 课题标题
|
||||
*/
|
||||
@Size(max = 100, message = "标题长度不能超过100个字符")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 500, message = "描述长度不能超过500个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
@Size(max = 50, message = "分类长度不能超过50个字符")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 难度等级
|
||||
*/
|
||||
@Size(max = 20, message = "难度等级长度不能超过20个字符")
|
||||
private String difficultyLevel;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
@Size(max = 200, message = "标签长度不能超过200个字符")
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.emotion.dto.request.guest;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 访客用户创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class GuestUserCreateRequest {
|
||||
|
||||
/**
|
||||
* 设备ID
|
||||
*/
|
||||
@NotBlank(message = "设备ID不能为空")
|
||||
@Size(max = 100, message = "设备ID长度不能超过100个字符")
|
||||
private String deviceId;
|
||||
|
||||
/**
|
||||
* IP地址
|
||||
*/
|
||||
@Size(max = 50, message = "IP地址长度不能超过50个字符")
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 用户代理
|
||||
*/
|
||||
@Size(max = 500, message = "用户代理长度不能超过500个字符")
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 地理位置
|
||||
*/
|
||||
@Size(max = 100, message = "地理位置长度不能超过100个字符")
|
||||
private String location;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.emotion.dto.request.guest;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 访客用户分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GuestUserPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 设备ID
|
||||
*/
|
||||
private String deviceId;
|
||||
|
||||
/**
|
||||
* IP地址
|
||||
*/
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 用户代理
|
||||
*/
|
||||
private String userAgent;
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.emotion.dto.request.guest;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 访客用户更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class GuestUserUpdateRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 访客昵称
|
||||
*/
|
||||
@Size(max = 50, message = "访客昵称长度不能超过50个字符")
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 访客头像
|
||||
*/
|
||||
@Size(max = 200, message = "访客头像长度不能超过200个字符")
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 地理位置
|
||||
*/
|
||||
@Size(max = 100, message = "地理位置长度不能超过100个字符")
|
||||
private String location;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.emotion.dto.request.reward;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 奖励创建请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class RewardCreateRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 奖励类型
|
||||
*/
|
||||
@NotBlank(message = "奖励类型不能为空")
|
||||
@Size(max = 50, message = "奖励类型长度不能超过50个字符")
|
||||
private String rewardType;
|
||||
|
||||
/**
|
||||
* 奖励值
|
||||
*/
|
||||
@Size(max = 100, message = "奖励值长度不能超过100个字符")
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 200, message = "描述长度不能超过200个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 课题ID
|
||||
*/
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
private String achievementId;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@Size(max = 200, message = "图标长度不能超过200个字符")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
@Size(max = 20, message = "稀有度长度不能超过20个字符")
|
||||
private String rarity;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.emotion.dto.request.reward;
|
||||
|
||||
import com.emotion.common.BasePageRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 奖励分页查询请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RewardPageRequest extends BasePageRequest {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 奖励类型
|
||||
*/
|
||||
private String rewardType;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String source;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.emotion.dto.request.reward;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 奖励更新请求
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
public class RewardUpdateRequest {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@NotBlank(message = "ID不能为空")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 奖励类型
|
||||
*/
|
||||
@Size(max = 50, message = "奖励类型长度不能超过50个字符")
|
||||
private String rewardType;
|
||||
|
||||
/**
|
||||
* 奖励值
|
||||
*/
|
||||
@Size(max = 100, message = "奖励值长度不能超过100个字符")
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Size(max = 200, message = "描述长度不能超过200个字符")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 课题ID
|
||||
*/
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
private String achievementId;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@Size(max = 200, message = "图标长度不能超过200个字符")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
@Size(max = 20, message = "稀有度长度不能超过20个字符")
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 是否新获得
|
||||
*/
|
||||
private Integer isNew;
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 情绪总结生成响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionSummaryGenerateResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 是否成功
|
||||
*/
|
||||
private Boolean success;
|
||||
|
||||
/**
|
||||
* 消息
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 情绪记录ID
|
||||
*/
|
||||
private String emotionRecordId;
|
||||
|
||||
/**
|
||||
* 情绪分析ID
|
||||
*/
|
||||
private String emotionAnalysisId;
|
||||
|
||||
/**
|
||||
* 消息数量
|
||||
*/
|
||||
private Integer messageCount;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
private String recordDate;
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 情绪总结状态响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmotionSummaryStatusResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 是否可以生成
|
||||
*/
|
||||
private Boolean canGenerate;
|
||||
|
||||
/**
|
||||
* 消息
|
||||
*/
|
||||
private String message;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 话题互动响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TopicInteractionResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 话题ID
|
||||
*/
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 互动类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 用户输入
|
||||
*/
|
||||
private String userInput;
|
||||
|
||||
/**
|
||||
* AI回应
|
||||
*/
|
||||
private String aiResponse;
|
||||
|
||||
/**
|
||||
* 评分
|
||||
*/
|
||||
private Integer rating;
|
||||
|
||||
/**
|
||||
* 反馈
|
||||
*/
|
||||
private String feedback;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private LocalDateTime completedTime;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.emotion.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 用户统计响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserStatsResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 统计类型
|
||||
*/
|
||||
private String statsType;
|
||||
|
||||
/**
|
||||
* 统计值
|
||||
*/
|
||||
private Double value;
|
||||
|
||||
/**
|
||||
* 周期
|
||||
*/
|
||||
private String period;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.emotion.dto.response.growth;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 成长话题响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GrowthTopicResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 课题标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 难度: easy-简单, medium-中等, hard-困难
|
||||
*/
|
||||
private String difficulty;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 持续天数
|
||||
*/
|
||||
private Integer durationDays;
|
||||
|
||||
/**
|
||||
* 解锁条件
|
||||
*/
|
||||
private String unlockConditions;
|
||||
|
||||
/**
|
||||
* 是否解锁
|
||||
*/
|
||||
private Integer isUnlocked;
|
||||
|
||||
/**
|
||||
* 进度百分比
|
||||
*/
|
||||
private BigDecimal progress;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private LocalDateTime completedTime;
|
||||
|
||||
/**
|
||||
* 奖励
|
||||
*/
|
||||
private String rewards;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.emotion.dto.response.guest;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 访客用户响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GuestUserResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 访客用户ID (格式: guest_xxx)
|
||||
*/
|
||||
private String guestUserId;
|
||||
|
||||
/**
|
||||
* 客户端IP地址 (支持IPv6)
|
||||
*/
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 用户代理信息
|
||||
*/
|
||||
private String userAgent;
|
||||
|
||||
/**
|
||||
* 访客昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 访客头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 最后活跃时间
|
||||
*/
|
||||
private LocalDateTime lastActiveTime;
|
||||
|
||||
/**
|
||||
* 会话数量
|
||||
*/
|
||||
private Integer conversationCount;
|
||||
|
||||
/**
|
||||
* 消息数量
|
||||
*/
|
||||
private Integer messageCount;
|
||||
|
||||
/**
|
||||
* IP地址的地理位置信息
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 设备信息
|
||||
*/
|
||||
private String deviceInfo;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.emotion.dto.response.reward;
|
||||
|
||||
import com.emotion.dto.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 奖励响应类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RewardResponse extends BaseResponse {
|
||||
|
||||
/**
|
||||
* 课题ID
|
||||
*/
|
||||
private String topicId;
|
||||
|
||||
/**
|
||||
* 成就ID
|
||||
*/
|
||||
private String achievementId;
|
||||
|
||||
/**
|
||||
* 奖励类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 奖励名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 稀有度
|
||||
*/
|
||||
private String rarity;
|
||||
|
||||
/**
|
||||
* 奖励值
|
||||
*/
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 获得时间
|
||||
*/
|
||||
private LocalDateTime earnedTime;
|
||||
|
||||
/**
|
||||
* 是否新获得
|
||||
*/
|
||||
private Integer isNew;
|
||||
}
|
||||
Reference in New Issue
Block a user