Spring Boot 2.7.18 后端服务,MyBatis-Plus ORM,JWT 认证。
| Task | Location | Notes |
|---|---|---|
| REST API 端点 | src/main/java/com/zxyj/controller/ |
按功能分组: admin/, auth/, assessment/, family/, guide/, task/, reward/ |
| 业务逻辑 | src/main/java/com/zxyj/service/ |
Service 命名: XxxService.java |
| 数据实体 | src/main/java/com/zxyj/entity/ |
使用 MyBatis-Plus 注解 |
| MyBatis Mapper | src/main/java/com/zxyj/mapper/ |
接口文件,与XML映射对应 |
| SQL 映射文件 | src/main/resources/mapper/ |
MyBatis XML 文件 |
| 配置类 | src/main/java/com/zxyj/config/ |
JWT, Security, Swagger, DatabaseInitializer |
| DTO传输对象 | src/main/java/com/zxyj/dto/ |
请求/响应数据结构 |
| 数据迁移 | src/main/java/com/zxyj/service/DataMigrationService.java |
sfms → zxyj |
| Symbol | Type | Location | Role |
|---|---|---|---|
AuthController |
Controller | controller/auth/AuthController.java |
微信登录、JWT 认证 |
TaskService |
Service | service/TaskService.java |
任务业务逻辑核心 |
AssessmentOrderController |
Controller | controller/assessment/AssessmentOrderController.java |
测评订单(创建/详情/支付) |
AssessmentAppointmentController |
Controller | controller/assessment/AssessmentAppointmentController.java |
测评预约管理 |
DataMigrationService |
Service | service/DataMigrationService.java |
sfms → zxyj 全量数据迁移 |
User |
Entity | entity/User.java |
用户实体 (parent/child/teacher) |
Task |
Entity | entity/Task.java |
任务实体 |
DanAssessmentResult |
Entity | entity/DanAssessmentResult.java |
DAN测评结果(含孩子快照字段) |
DatabaseInitializer |
Config | config/DatabaseInitializer.java |
数据库迁移和初始化 |
SfmsDataSourceConfig |
Config | config/SfmsDataSourceConfig.java |
sfms 多数据源配置 |
@TableName、@TableId(type = IdType.AUTO)Result<T> 返回,包含 code/message/dataAuthorization: Bearer {token}Controller 结尾,Service 以 Service 结尾@Resource 代替 @Autowired,字段名必须与类型默认 Bean Name 一致(如 PaymentService 的字段名必须为 paymentService)@PostMapping(POST 方法),禁止使用 @GetMapping/@PutMapping/@DeleteMapping新增接口前: 必须运行 mvn clean compile 并启动项目验证无冲突;使用以下命令检查重复路由:
grep -rn '@GetMapping\|@PostMapping\|@PutMapping\|@DeleteMapping' src/main/java/com/zxyj/controller/ | grep -oP '@\w+Mapping\("\K[^"]*' | sort -u
Bean名冲突检查: 新增 Controller/Service 时,确保类名不与其他包中的类重名(Spring 默认 Bean Name 为类名首字母小写)
application.yml@ts-ignore、as any 绕过类型检查@Resource(name="xxx") 与字段名不一致的注入方式,保持字段名与类型默认 Bean Name 一致@GetMapping/@PutMapping/@DeleteMapping — 统一使用 @PostMappingnew XxxMapper() — Mapper 必须通过 @Resource 注入awk '!seen[$0]++' 对 Java 源文件去重 — 会删除合法的重复行(如多个方法的 } 闭合括号)role 字段分流,家长端可切孩子端,切换过来的孩子端可退出切换,即时出需要密码。直接登录的孩子端不能切换到家长 端PointsServicespring.datasource.* + sfms 源库 sfms.datasource.*(只读)mvn clean compile # 编译验证
mvn spring-boot:run # 启动开发服务器 (localhost:8080)
# 注意:每次完成后端任务后,必须通过此命令启动验证应用能正常启动
mvn test # 运行测试 (目前只有1个测试类)
mvn clean compile 验证编译通过mvn spring-boot:run 启动应用192.168.16.251:3306/zxyjapplication.ymlapplication.yml 的 sfms.datasource.*/api/migration/run