feat: 完善后端架构和service层实现

- 创建完整的entity实体类体系,包括所有业务实体
- 实现BaseEntity基类,统一管理公共字段
- 创建雪花算法ID生成器和自动填充处理器
- 简化所有mapper接口,只继承BaseMapper
- 重构service层,使用LambdaQueryWrapper进行数据库操作
- 创建BasePageRequest分页查询基类
- 完善用户上下文管理和JWT认证
- 新增WebSocket聊天功能和相关控制器
- 更新前端配置和组件,完善用户认证流程
- 同步数据库建表脚本
This commit is contained in:
2025-07-24 00:37:23 +08:00
parent 645036fcd2
commit 880e0e3c88
87 changed files with 8114 additions and 1106 deletions
@@ -1,106 +1,162 @@
package com.emotion.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.emotion.common.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 用户实体
*
* 用户实体
*
* @author emotion-museum
* @date 2025-07-22
* @date 2025-07-23
*/
public class User {
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User extends BaseEntity {
private String id;
private String username;
/**
* 账号
*/
@TableField("account")
private String account;
/**
* 密码(加密后)
*/
@TableField("password")
private String password;
/**
* 用户名
*/
@TableField("username")
private String username;
/**
* 邮箱
*/
@TableField("email")
private String email;
/**
* 手机号
*/
@TableField("phone")
private String phone;
private String nickname;
/**
* 头像URL
*/
@TableField("avatar")
private String avatar;
private Integer gender;
/**
* 昵称
*/
@TableField("nickname")
private String nickname;
/**
* 生日
*/
@TableField("birth_date")
private LocalDate birthDate;
/**
* 所在地
*/
@TableField("location")
private String location;
/**
* 个人简介
*/
@TableField("bio")
private String bio;
/**
* 会员等级
*/
@TableField("member_level")
private String memberLevel;
/**
* 使用天数
*/
@TableField("total_days")
private Integer totalDays;
/**
* 自我感知
*/
@TableField("self_awareness")
private BigDecimal selfAwareness;
/**
* 情绪韧性
*/
@TableField("emotional_resilience")
private BigDecimal emotionalResilience;
/**
* 行动力
*/
@TableField("action_power")
private BigDecimal actionPower;
/**
* 共情力
*/
@TableField("empathy")
private BigDecimal empathy;
/**
* 生活热度
*/
@TableField("life_enthusiasm")
private BigDecimal lifeEnthusiasm;
/**
* 状态: 0-禁用, 1-正常
*/
@TableField("status")
private Integer status;
/**
* 是否已验证: 0-未验证, 1-已验证
*/
@TableField("is_verified")
private Integer isVerified;
private LocalDateTime createTime;
private LocalDateTime updateTime;
/**
* 最后活跃时间
*/
@TableField("last_active_time")
private LocalDateTime lastActiveTime;
private String createBy;
private String updateBy;
private Integer isDeleted;
private String remarks;
// 构造函数
public User() {
this.createTime = LocalDateTime.now();
this.updateTime = LocalDateTime.now();
this.status = 1;
this.isDeleted = 0;
}
/**
* 第三方平台ID
*/
@TableField("third_party_id")
private String thirdPartyId;
// Getter和Setter方法
public String getId() { return id; }
public void setId(String id) { this.id = id; }
/**
* 第三方平台类型
*/
@TableField("third_party_type")
private String thirdPartyType;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getAccount() { return account; }
public void setAccount(String account) { this.account = account; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getPhone() { return phone; }
public void setPhone(String phone) { this.phone = phone; }
public String getNickname() { return nickname; }
public void setNickname(String nickname) { this.nickname = nickname; }
public String getAvatar() { return avatar; }
public void setAvatar(String avatar) { this.avatar = avatar; }
public Integer getGender() { return gender; }
public void setGender(Integer gender) { this.gender = gender; }
public String getBio() { return bio; }
public void setBio(String bio) { this.bio = bio; }
public String getMemberLevel() { return memberLevel; }
public void setMemberLevel(String memberLevel) { this.memberLevel = memberLevel; }
public Integer getTotalDays() { return totalDays; }
public void setTotalDays(Integer totalDays) { this.totalDays = totalDays; }
public Integer getStatus() { return status; }
public void setStatus(Integer status) { this.status = status; }
public Integer getIsVerified() { return isVerified; }
public void setIsVerified(Integer isVerified) { this.isVerified = isVerified; }
public LocalDateTime getCreateTime() { return createTime; }
public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; }
public LocalDateTime getUpdateTime() { return updateTime; }
public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; }
public LocalDateTime getLastActiveTime() { return lastActiveTime; }
public void setLastActiveTime(LocalDateTime lastActiveTime) { this.lastActiveTime = lastActiveTime; }
public String getCreateBy() { return createBy; }
public void setCreateBy(String createBy) { this.createBy = createBy; }
public String getUpdateBy() { return updateBy; }
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
public Integer getIsDeleted() { return isDeleted; }
public void setIsDeleted(Integer isDeleted) { this.isDeleted = isDeleted; }
public String getRemarks() { return remarks; }
public void setRemarks(String remarks) { this.remarks = remarks; }
}