项目当前状态:仅有
ServerApplication.java和application.yaml,其余代码均需新建。
| # | 任务 | 涉及文件 | 说明 |
|---|---|---|---|
| 1.1 | 统一响应类 | common/R.java |
code + message + data,提供 ok/error 静态工厂 |
| 1.2 | 错误码枚举 | common/ResultCode.java |
定义业务状态码常量 |
| 1.3 | 业务异常 | common/BusinessException.java |
继承 RuntimeException,携带 code |
| 1.4 | 全局异常处理 | config/GlobalExceptionHandler.java |
覆盖文档第 3.1.3 节列出的所有异常类型 |
| 1.5 | 跨域配置 | config/CorsConfig.java |
允许所有来源(开发阶段),allowCredentials(true) |
| 1.6 | 拦截器注册 | config/WebMvcConfig.java |
注册 AuthInterceptor 和 AdminInterceptor |
| 1.7 | MD5 密码工具 | config/PasswordConfig.java |
MD5 加盐加密工具 |
| 1.8 | 分页 VO | common/PageVo.java |
data + total + pageNum + pageSize |
| 1.9 | 分页工具 | util/PageUtil.java |
封装 LIMIT 分页逻辑(Supplier 方式) |
| 1.10 | 登录拦截器 | interceptor/AuthInterceptor.java |
从 Session 获取用户,抛 UnauthorizedException |
| 1.11 | 管理员拦截器 | interceptor/AdminInterceptor.java |
校验 role=admin,抛 ForbiddenException |
| # | 任务 | 文件 | 关键字段 |
|---|---|---|---|
| 2.1 | 用户实体 | entity/User.java |
id, account, username, password, email, phone, avatar, role, enable, createdAt, updatedAt |
| 2.2 | 宠物实体 | entity/Pet.java |
id, userId, name, species, breed, gender, birthDate, weight, avatar, remark, createdAt, updatedAt |
| 2.3 | 疫苗记录 | entity/VaccinationRecord.java |
id, petId, vaccineName, vaccineDate, hospital, doctor, remark, createdAt |
| 2.4 | 驱虫记录 | entity/DewormingRecord.java |
id, petId, dewormingName, dewormingDate, hospital, doctor, remark, createdAt |
| 2.5 | 套餐实体 | entity/ServicePackage.java |
id, name, type(BOARDING/GROOMING), price, duration, description, isActive, createdAt, updatedAt |
| 2.6 | 寄养房型 | entity/BoardingRoom.java |
id, roomName, roomType, capacity, pricePerDay, isActive, description, createdAt, updatedAt |
| 2.7 | 房态记录 | entity/BoardingRoomStatus.java |
id, roomId, date, status(AVAILABLE/OCCUPIED/MAINTENANCE), appointmentId, createdAt |
| 2.8 | 预约订单 | entity/Appointment.java |
id, userId, petId, packageId, roomId, type, status, startDate, endDate, totalPrice, deposit, depositPaid, cancelReason, rejectReason, remark, createdAt, updatedAt |
| 2.9 | 排班 | entity/Schedule.java |
id, employeeName, workDate, timeSlot, remark, createdAt |
| # | 任务 | Mapper 接口 | XML 文件 | 关键 SQL |
|---|---|---|---|---|
| 3.1 | 用户 Mapper | mapper/UserMapper.java |
UserMapper.xml |
insert/selectById/selectByAccount/update/delete, selectByPage, countByCondition |
| 3.2 | 宠物 Mapper | mapper/PetMapper.java |
PetMapper.xml |
insert/selectById/selectByUserId/update/delete |
| 3.3 | 疫苗 Mapper | mapper/VaccinationRecordMapper.java |
VaccinationRecordMapper.xml |
insert/selectByPetId/deleteByPetId |
| 3.4 | 驱虫 Mapper | mapper/DewormingRecordMapper.java |
DewormingRecordMapper.xml |
insert/selectByPetId/deleteByPetId |
| 3.5 | 套餐 Mapper | mapper/PackageMapper.java |
PackageMapper.xml |
insert/selectById/selectByType/update/isActive 逻辑删除 |
| 3.6 | 房型 Mapper | mapper/BoardingRoomMapper.java |
BoardingRoomMapper.xml |
insert/selectById/selectActive/update |
| 3.7 | 房态 Mapper | mapper/BoardingRoomStatusMapper.java |
BoardingRoomStatusMapper.xml |
insertOrUpdate(ON DUPLICATE KEY)/selectByRoomAndDate/deleteByAppointment |
| 3.8 | 预约 Mapper | mapper/AppointmentMapper.java |
AppointmentMapper.xml |
insert/selectById/selectByUserId/selectAllByPage, updateStatus/updateDepositPaid |
| 3.9 | 排班 Mapper | mapper/ScheduleMapper.java |
ScheduleMapper.xml |
insert/selectByMonth/deleteById, checkConflict |
| # | 任务 | 文件 |
|---|---|---|
| 4.1 | 认证 DTO | dto/auth/LoginDto.java, RegisterDto.java |
| 4.2 | 用户 DTO | dto/user/UserDto.java, UpdateUserPasswordDto.java, UpdateUserAvatarDto.java, UpdateUserStatusDto.java |
| 4.3 | 宠物 DTO | dto/pet/PetDto.java, VaccinationDto.java, DewormingDto.java |
| 4.4 | 预约 DTO | dto/appointment/AppointmentDto.java, ReviewDto.java, HandleCancelDto.java |
| 4.5 | 套餐 DTO | dto/servicePackage/PackageDto.java |
| 4.6 | 房态 DTO | dto/room/RoomStatusDto.java, QueryByPageParams.java |
| 4.7 | 排班 DTO | dto/schedule/ScheduleDto.java |
| # | 任务 | 文件 |
|---|---|---|
| 5.1 | 用户 VO | vo/user/UserVo.java |
| 5.2 | 宠物 VO | vo/pet/PetVo.java, VaccinationVo.java, DewormingVo.java |
| 5.3 | 预约 VO | vo/appointment/AppointmentVo.java |
| 5.4 | 套餐 VO | vo/servicePackage/PackageVo.java |
| 5.5 | 房型/VO | vo/room/BoardingRoomVo.java, RoomStatusVo.java |
| 5.6 | 排班 VO | vo/schedule/ScheduleVo.java |
| 5.7 | 管理员用户详情 VO | vo/user/AdminUserDetailVo.java |
| # | 任务 | 接口 | 实现 | 关键逻辑 |
|---|---|---|---|---|
| 6.1 | 认证服务 | AuthService |
AuthServiceImpl |
注册(唯一性校验+MD5+session)、登录(密码校验+session)、logout |
| 6.2 | 用户服务 | UserService |
UserServiceImpl |
分页、CRUD、updatePassword/updateStatus/updateAvatar |
| 6.3 | 宠物服务 | PetService |
PetServiceImpl |
当前用户宠物列表、CRUD(校验归属)、疫苗/驱虫子记录 |
| 6.4 | 预约服务 | AppointmentService |
AppointmentServiceImpl |
创建(校验套餐/宠物/房态+计算价格)、支付定金、取消、审核、处理取消(含事务) |
| 6.5 | 房型服务 | BoardingRoomService |
BoardingRoomServiceImpl |
房型列表(active)、按月房态查询、手动修改房态 |
| 6.6 | 套餐服务 | PackageService |
PackageServiceImpl |
按类型查询(active)、CRUD(逻辑删除) |
| 6.7 | 排班服务 | ScheduleService |
ScheduleServiceImpl |
按月查询、新增(冲突校验)、删除 |
| # | 任务 | 文件 | 说明 |
|---|---|---|---|
| 7.1 | 认证控制器 | controller/AuthController.java |
/auth/register, /auth/login, /auth/logout |
| 7.2 | 用户控制器 | controller/UserController.java |
/user/** 分页/CRUD/状态/密码/头像 |
| 7.3 | 宠物控制器 | controller/PetController.java |
/pets/** 宠物 CRUD + 疫苗/驱虫子接口 |
| 7.4 | 预约控制器 | controller/AppointmentController.java |
/appointments/** 创建/列表/详情/取消/支付 |
| 7.5 | 房型控制器 | controller/BoardingRoomController.java |
/boarding-rooms/** 房型列表 + 房态查询 |
| 7.6 | 套餐控制器 | controller/PackageController.java |
/packages/** 列表 + 详情 |
| 7.7 | 排班视图 | controller/ScheduleController.java |
/schedules/**(排班查询,用户侧) |
| 7.8 | 管理员-预约 | controller/admin/AdminAppointmentController.java |
/admin/appointments 审核 + 处理取消 |
| 7.9 | 管理员-房态 | controller/admin/AdminBoardingRoomController.java |
/admin/boarding-rooms 修改房态 |
| 7.10 | 管理员-排班 | controller/admin/AdminScheduleController.java |
/admin/schedules 排班 CRUD |
| 7.11 | 管理员-套餐 | controller/admin/AdminPackageController.java |
/admin/packages 套餐 CRUD |
| 7.12 | 管理员-用户 | controller/admin/AdminUserController.java |
/admin/users 用户列表 + 详情(含宠物档案) |
| # | 任务 | 说明 |
|---|---|---|
| 8.1 | Service 单元测试 | 核心逻辑(AuthService、AppointmentService 等)JUnit 5 + Mockito |
| 8.2 | 构建验证 | ./mvnw clean package 确保编译通过 |
@Operation OpenAPI 注解@Valid 校验注解@Transactional(rollbackFor = Exception.class)(写操作)application.yaml 与文档第 8 节一致entity/Package.java → entity/ServicePackage.java(Package 与 java.lang.Package 冲突)dto/package/ → dto/servicePackage/(package 为 Java 关键字,不可用作包名)vo/package/ → vo/servicePackage/(同上)