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 请求