Version: 0.3.9.dev.260226

fix: 🐛 修复智能排程接口任务块信息缺失与数据插入错误

* 修复智能排程接口返回的任务块信息缺失问题,确保任务数据完整返回
* 修复 `UserInsertTaskItemRequestToModel` DTO 函数未填入起始时间字段的问题,解决多个接口插入数据时出现 500 错误

  * 错误源自上次更新“获取最近完成动态任务接口”时,未同步更改数据库字段对应逻辑
* 将智能排程接口的 `ctx` 超时恢复为 1 秒,优化接口响应性能

feat: 🎯 新增正式应用日程接口

* 新增正式应用日程接口,并完成功能测试,确保业务流程无异常
This commit is contained in:
LoveLosita
2026-02-26 20:07:55 +08:00
parent 1399b38f16
commit fca4004024
12 changed files with 397 additions and 10 deletions

View File

@@ -573,3 +573,55 @@ func (d *ScheduleDAO) GetUserSchedulesByTimeRange(ctx context.Context, userID in
}
return schedules, nil
}
func (d *ScheduleDAO) BatchEmbedTaskIntoSchedule(ctx context.Context, eventIDs, taskItemIDs []int) error {
if len(eventIDs) == 0 {
return nil
}
if len(eventIDs) != len(taskItemIDs) {
return fmt.Errorf("eventIDs length != taskItemIDs length")
}
db := d.db.WithContext(ctx)
for i, eventID := range eventIDs {
taskItemID := taskItemIDs[i]
// 1) 校验该 event 是否为 course
var typ string
if err := db.
Table("schedule_events").
Select("type").
Where("id = ?", eventID).
Scan(&typ).Error; err != nil {
return err
}
if typ != "course" {
continue
}
// 2) 一 event 对多 schedules批量写入 embedded_task_id
if err := db.
Table("schedules").
Where("event_id = ?", eventID).
Update("embedded_task_id", taskItemID).Error; err != nil {
return err
}
}
return nil
}
func (d *ScheduleDAO) InsertScheduleEvents(ctx context.Context, events []model.ScheduleEvent) ([]int, error) {
if len(events) == 0 {
return nil, nil
}
if err := d.db.WithContext(ctx).Create(&events).Error; err != nil {
return nil, err
}
ids := make([]int, len(events))
for i, e := range events {
ids[i] = e.ID
}
return ids, nil
}