service目录服务类说明.md 6.6 KB

service 目录服务类说明

src/main/java/work/baiyun/chronicdiseaseapp/service 目录下包含了项目中的服务接口和实现类,这些类负责处理业务逻辑,是系统的核心部分。

接口类

BloodGlucoseDataService.java

用途

BloodGlucoseDataService 是血糖数据服务接口,定义了血糖数据相关业务操作的方法。

方法说明

  • addBloodGlucoseData: 添加血糖数据
  • listBloodGlucoseData: 分页查询当前用户的血糖数据
  • listBloodGlucoseDataByPatient: 分页查询指定患者的血糖数据(需要绑定关系)
  • deleteBloodGlucoseData: 删除指定ID的血糖数据

BloodPressureDataService.java

用途

BloodPressureDataService 是血压数据服务接口,定义了血压数据相关业务操作的方法。

方法说明

  • addBloodPressureData: 添加血压数据
  • listBloodPressureData: 分页查询当前用户的血压数据
  • listBloodPressureDataByPatient: 分页查询指定患者的血压数据(需要绑定关系)
  • deleteBloodPressureData: 删除指定ID的血压数据

HeartRateDataService.java

用途

HeartRateDataService 是心率数据服务接口,定义了心率数据相关业务操作的方法。

方法说明

  • addHeartRateData: 添加心率数据
  • listHeartRateData: 分页查询当前用户的心率数据
  • listHeartRateDataByPatient: 分页查询指定患者的心率数据(需要绑定关系)
  • deleteHeartRateData: 删除指定ID的心率数据

PhysicalDataService.java

用途

PhysicalDataService 是体格数据服务接口,定义了体格数据相关业务操作的方法。

方法说明

  • addPhysicalData: 添加体格数据
  • listPhysicalData: 分页查询当前用户的体格数据
  • listPhysicalDataByPatient: 分页查询指定患者的体格数据(需要绑定关系)
  • deletePhysicalData: 删除指定ID的体格数据

TokenService.java

用途

TokenService 是令牌服务接口,负责用户认证令牌的生成、验证和撤销。

方法说明

  • createToken: 为用户生成新的令牌
  • validateToken: 校验令牌并返回认证主体信息
  • revokeToken: 撤销指定令牌

UserAvatarService.java

用途

UserAvatarService 是用户头像服务接口,负责用户头像的保存和加载。

方法说明

  • saveAvatar: 保存用户头像并返回相对路径
  • loadAvatarAsResource: 根据用户ID加载头像资源

UserBindingService.java

用途

UserBindingService 是用户绑定服务接口,负责处理用户之间的绑定关系。

方法说明

  • createUserBinding: 创建用户绑定关系
  • deleteUserBinding: 删除用户绑定关系
  • listBindingsByPatient: 分页查询患者的绑定关系列表
  • listBindingsByBoundUser: 分页查询用户被绑定的关系列表
  • checkUserBinding: 检查绑定关系是否存在

UserService.java

用途

UserService 是用户服务接口,继承自 MyBatis-Plus 的 IService 接口。

WeChatService.java

用途

WeChatService 是微信服务接口,负责与微信小程序相关的操作。

方法说明

  • getOpenId: 根据微信code获取用户openid

实现类

BloodGlucoseDataServiceImpl.java

用途

BloodGlucoseDataServiceImpl 是血糖数据服务的实现类,实现了血糖数据相关业务逻辑。

实现细节

  • 实现了添加血糖数据功能,自动关联当前用户
  • 实现了分页查询功能,支持按时间范围查询
  • 实现了根据患者ID查询血糖数据功能,包含权限控制(家属只能查看一年内的数据)
  • 实现了删除血糖数据功能,验证数据归属后才允许删除

BloodPressureDataServiceImpl.java

用途

BloodPressureDataServiceImpl 是血压数据服务的实现类,实现了血压数据相关业务逻辑。

实现细节

  • 实现了添加血压数据功能,自动关联当前用户
  • 实现了分页查询功能,支持按时间范围查询
  • 实现了根据患者ID查询血压数据功能,包含权限控制(家属只能查看一年内的数据)
  • 实现了删除血压数据功能,验证数据归属后才允许删除

HeartRateDataServiceImpl.java

用途

HeartRateDataServiceImpl 是心率数据服务的实现类,实现了心率数据相关业务逻辑。

实现细节

  • 实现了添加心率数据功能,自动关联当前用户
  • 实现了分页查询功能,支持按时间范围查询
  • 实现了根据患者ID查询心率数据功能,包含权限控制(家属只能查看一年内的数据)
  • 实现了删除心率数据功能,验证数据归属后才允许删除

PhysicalDataServiceImpl.java

用途

PhysicalDataServiceImpl 是体格数据服务的实现类,实现了体格数据相关业务逻辑。

实现细节

  • 实现了添加体格数据功能,自动关联当前用户
  • 实现了分页查询功能,支持按时间范围查询
  • 实现了根据患者ID查询体格数据功能,包含权限控制(家属只能查看一年内的数据)
  • 实现了删除体格数据功能,验证数据归属后才允许删除

TokenServiceImpl.java

用途

TokenServiceImpl 是令牌服务的实现类,负责用户认证令牌的生成、验证和撤销。

实现细节

  • 使用 TokenUtil 工具类生成令牌
  • 实现了令牌的创建和更新逻辑
  • 实现了令牌验证功能,包含过期检查和自动续期机制
  • 实现了令牌撤销功能

UserAvatarServiceImpl.java

用途

UserAvatarServiceImpl 是用户头像服务的实现类,负责用户头像的保存和加载。

实现细节

  • 实现了头像文件的上传和保存,包含文件类型和大小验证
  • 实现了防止路径穿越的安全措施
  • 实现了头像文件的加载功能
  • 通过事务管理确保数据库更新和文件保存的一致性

UserBindingServiceImpl.java

用途

UserBindingServiceImpl 是用户绑定服务的实现类,负责处理用户之间的绑定关系。

实现细节

  • 实现了创建用户绑定关系功能,支持更新已存在的绑定关系
  • 实现了删除用户绑定关系功能(软删除)
  • 实现了分页查询绑定关系功能,支持按患者ID或绑定用户ID查询
  • 实现了批量查询用户信息以避免N+1问题
  • 实现了绑定关系检查功能

UserServiceImpl.java

用途

UserServiceImpl 是用户服务的实现类,继承自 MyBatis-Plus 的 ServiceImpl 类。

WeChatServiceImpl.java

用途

WeChatServiceImpl 是微信服务的实现类,负责与微信小程序相关的操作。

实现细节

  • 实现了调用微信 jscode2session 接口获取 openid 的功能
  • 包含了完整的错误处理和日志记录
  • 使用 RestTemplate 进行 HTTP 请求