jiapu 2 месяцев назад
Родитель
Сommit
c1a99be358

+ 11 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -5287,6 +5287,7 @@ try {
         runMigration91();
         runMigration92();
         runMigration93();
+        runMigration96();
     }
 
     private void runMigration81() {
@@ -5888,4 +5889,14 @@ try {
         // 迁移93: users表添加roles字段
         ensureColumn("users", "roles", "VARCHAR(100) COMMENT '角色列表'");
     }
+
+    private void runMigration96() {
+        // 迁移96: 修复assessment_appointments.status列类型为TINYINT(原库可能为VARCHAR/ENUM导致Data truncated)
+        try {
+            jdbcTemplate.execute("ALTER TABLE assessment_appointments MODIFY COLUMN status TINYINT DEFAULT 0 COMMENT '0=待确认,1=已确认,2=已完成,3=已取消,4=未到'");
+            log.info("已修复assessment_appointments.status列类型为TINYINT");
+        } catch (Exception e) {
+            log.warn("Migration 96 skipped: {}", e.getMessage());
+        }
+    }
 }

+ 7 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/DanAssessmentController.java

@@ -165,7 +165,13 @@ public class DanAssessmentController {
     public Result<AssessmentAppointment> createAppointment(@RequestBody Map<String, Object> body) {
         Long userId = body.get("userId") != null ? Long.valueOf(body.get("userId").toString()) : null;
         Long childId = Long.valueOf(body.get("childId").toString());
-        Long guideId = Long.valueOf(body.get("guideId").toString());
+        // 兼容前端 teacherId / guideId 字段,允许为 null(系统安排)
+        Long guideId = null;
+        if (body.get("guideId") != null) {
+            guideId = Long.valueOf(body.get("guideId").toString());
+        } else if (body.get("teacherId") != null) {
+            guideId = Long.valueOf(body.get("teacherId").toString());
+        }
         Long packageId = body.get("packageId") != null ? Long.valueOf(body.get("packageId").toString()) : null;
         String appointmentDate = (String) body.get("appointmentDate");
         String appointmentTime = (String) body.get("appointmentTime");