model目录模型类说明.md 6.1 KB

model 目录模型类说明

src/main/java/work/baiyun/chronicdiseaseapp/model 目录下包含了项目中的模型类,分为 po(持久化对象)和 vo(值对象)两个子目录。这些类用于表示系统中的数据结构和传输对象。

po 包(持久化对象)

BaseEntity.java

用途

BaseEntity 是所有持久化对象的基类,包含了实体对象的通用字段。

实现细节

  • 实现了 Serializable 接口
  • 包含以下通用字段:
    • id: 主键ID,使用雪花算法生成
    • version: 版本号,用于乐观锁
    • createUser: 创建者ID
    • createTime: 创建时间
    • updateUser: 更新者ID
    • updateTime: 更新时间
    • remark: 备注
  • 使用了 MyBatis-Plus 注解进行数据库映射
  • 使用了 Jackson 注解进行 JSON 序列化处理
  • 使用了 Lombok 注解简化 getter 和 setter 方法

BloodGlucoseData.java

用途

BloodGlucoseData 是血糖数据实体类,对应数据库中的 t_blood_glucose_data 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • userId: 用户ID
    • measureTime: 测量时间
    • type: 血糖测量类型
    • value: 血糖值
  • 使用了 Swagger 注解进行 API 文档说明

BloodPressureData.java

用途

BloodPressureData 是血压数据实体类,对应数据库中的 t_blood_pressure_data 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • userId: 用户ID
    • systolicPressure: 收缩压(mmHg)
    • diastolicPressure: 舒张压(mmHg)
    • measureTime: 测量时间
  • 使用了 Swagger 注解进行 API 文档说明

HeartRateData.java

用途

HeartRateData 是心率数据实体类,对应数据库中的 t_heart_rate_data 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • userId: 用户ID
    • heartRate: 心率(次/分钟)
    • measureTime: 测量时间
  • 使用了 Swagger 注解进行 API 文档说明

PhysicalData.java

用途

PhysicalData 是体格数据实体类,对应数据库中的 t_physical_data 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • userId: 用户ID
    • height: 身高(cm)
    • weight: 体重(kg)
    • measureTime: 测量时间
  • 使用了 Swagger 注解进行 API 文档说明

UserBinding.java

用途

UserBinding 是用户绑定关系实体类,对应数据库中的 t_user_binding 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • patientUserId: 患者用户ID
    • boundUserId: 被绑定用户ID(医生或家属)
    • bindingType: 绑定类型(DOCTOR-医生, FAMILY-家属)
    • status: 绑定状态(1-有效,0-无效)
  • 使用了自定义的 UserBindingTypeHandler 进行类型处理

UserInfo.java

用途

UserInfo 是用户信息实体类,对应数据库中的 t_user_info 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • username: 用户名
    • password: 密码
    • role: 角色(权限组)
    • wxOpenid: 微信ID
    • avatar: 头像
    • nickname: 昵称
    • sex: 性别
    • phone: 手机号
    • age: 年龄
    • address: 地址
  • 使用了自定义的 PermissionGroupTypeHandler 和 GenderTypeHandler 进行类型处理

UserToken.java

用途

UserToken 是用户认证令牌实体类,对应数据库中的 t_user_token 表。

实现细节

  • 继承自 BaseEntity
  • 包含以下字段:
    • userId: 用户ID
    • token: 认证令牌
    • expireTime: 过期时间
  • 设计说明:
    1. 每次登录成功后,生成新的token,覆盖旧的token
    2. token有效期为72小时
    3. 每次请求时,检查token是否过期,若过期则返回未登录状态
    4. 每次请求时,若token快过期(小于24小时),则延长token有效期
    5. token的生成格式为uuid,存储在DB中

vo 包(值对象/视图对象)

BaseQueryRequest.java

用途

BaseQueryRequest 是基础查询请求对象,用于分页查询的参数传递。

实现细节

  • 包含以下字段:
    • pageNum: 页码,默认值为1
    • pageSize: 每页大小,默认值为10,最大值为100
    • startTime: 开始时间
    • endTime: 结束时间
  • 使用了验证注解确保参数的有效性

AuthPrincipal.java

用途

AuthPrincipal 是认证主体对象,包含用户ID和权限组信息。

实现细节

  • 包含以下字段:
    • userId: 用户ID
    • role: 权限组
  • 提供了默认构造方法和带参构造方法
  • 提供了 getter 和 setter 方法

UserBindingResponse.java

用途

UserBindingResponse 是用户绑定关系响应对象,用于返回用户绑定关系信息。

实现细节

  • 包含以下字段:
    • id: 记录ID
    • patientUserId: 患者用户ID
    • boundUserId: 被绑定用户ID(医生或家属)
    • bindingType: 绑定类型
    • status: 绑定状态
    • createTime: 创建时间
    • boundUserNickname: 被绑定用户昵称
    • boundUserPhone: 被绑定用户手机号

BloodGlucoseDataResponse.java

用途

BloodGlucoseDataResponse 是血糖数据响应对象,用于返回血糖数据信息。

实现细节

  • 包含以下字段:
    • id: 记录ID
    • measureTime: 测量时间
    • type: 血糖测量类型
    • value: 血糖值
    • createTime: 创建时间

AddBloodGlucoseDataRequest.java

用途

AddBloodGlucoseDataRequest 是添加血糖数据请求对象,用于接收添加血糖数据的参数。

实现细节

  • 包含以下字段:
    • type: 血糖测量类型(必填)
    • value: 血糖值(必填,范围1.0-30.0)
    • measureTime: 测量时间(必填)
  • 使用了验证注解确保参数的有效性

PhysicalDataPageResponse.java

用途

PhysicalDataPageResponse 是体格数据分页响应对象,用于返回分页查询的体格数据结果。

实现细节

  • 包含以下字段:
    • records: 数据列表
    • total: 总数
    • size: 每页大小
    • current: 当前页码
    • orders: 排序字段
    • optimizeCountSql: 是否优化 count SQL
    • searchCount: 是否搜索 count
    • optimizeJoinOfCountSql: 是否优化 join count SQL
    • maxLimit: 最大限制
    • countId: countId
    • pages: 总页数
  • 内部定义了 OrderItem 静态类用于表示排序信息