Version: 0.3.9.dev.260226
fix: 🐛 修复智能排程接口任务块信息缺失与数据插入错误 * 修复智能排程接口返回的任务块信息缺失问题,确保任务数据完整返回 * 修复 `UserInsertTaskItemRequestToModel` DTO 函数未填入起始时间字段的问题,解决多个接口插入数据时出现 500 错误 * 错误源自上次更新“获取最近完成动态任务接口”时,未同步更改数据库字段对应逻辑 * 将智能排程接口的 `ctx` 超时恢复为 1 秒,优化接口响应性能 feat: 🎯 新增正式应用日程接口 * 新增正式应用日程接口,并完成功能测试,确保业务流程无异常
This commit is contained in:
@@ -474,6 +474,7 @@ func buildBrief(slot slotInfo, day, start, end, span, order int) model.WeeklyEve
|
||||
brief.Name = *slot.plan.Content
|
||||
brief.Type = "task"
|
||||
brief.Status = "suggested" // 标记为建议状态
|
||||
brief.ID = slot.plan.ID // 虚日程的 ID 直接使用 TaskClassItem 的 ID,方便前端追踪和操作
|
||||
}
|
||||
|
||||
return brief
|
||||
|
||||
@@ -138,7 +138,7 @@ func ProcessUserGetCompleteTaskClassRequest(taskClass *model.TaskClass) (*model.
|
||||
}
|
||||
|
||||
// UserInsertTaskItemRequestToModel 用于将填入空闲时段日程的请求转换为 Schedule 模型
|
||||
func UserInsertTaskItemRequestToModel(req *model.UserInsertTaskClassItemToScheduleRequest, item *model.TaskClassItem, taskID *int, userID, startSection, endSection int) ([]model.Schedule, *model.ScheduleEvent) {
|
||||
func UserInsertTaskItemRequestToModel(req *model.UserInsertTaskClassItemToScheduleRequest, item *model.TaskClassItem, taskID *int, userID, startSection, endSection int) ([]model.Schedule, *model.ScheduleEvent, error) {
|
||||
var schedules []model.Schedule
|
||||
for section := startSection; section <= endSection; section++ {
|
||||
req1 := &model.Schedule{
|
||||
@@ -151,14 +151,20 @@ func UserInsertTaskItemRequestToModel(req *model.UserInsertTaskClassItemToSchedu
|
||||
}
|
||||
schedules = append(schedules, *req1)
|
||||
}
|
||||
startTime, endTime, err := RelativeTimeToRealTime(req.Week, req.DayOfWeek, startSection, endSection)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
req2 := &model.ScheduleEvent{
|
||||
UserID: userID, // 由调用方填充
|
||||
Name: safeStr(item.Content), // 任务内容作为事件名称
|
||||
Type: "task",
|
||||
RelID: &item.ID, // 关联到 TaskClassItem 的 ID
|
||||
CanBeEmbedded: false, // 任务事件允许嵌入其他任务(如果需要的话)
|
||||
StartTime: startTime,
|
||||
EndTime: endTime,
|
||||
}
|
||||
return schedules, req2
|
||||
return schedules, req2, nil
|
||||
}
|
||||
|
||||
// --- 🛡️ 辅助工具函数:保持代码清爽并防止 Panic ---
|
||||
|
||||
@@ -62,7 +62,7 @@ type SectionTime struct {
|
||||
End string // 第一个结束
|
||||
}
|
||||
|
||||
var sectionTimeMap2 = map[int]SectionTime{
|
||||
var SectionTimeMap2 = map[int]SectionTime{
|
||||
1: {Start: "08:00", End: "08:45"},
|
||||
2: {Start: "08:55", End: "09:40"},
|
||||
3: {Start: "10:15", End: "11:00"},
|
||||
@@ -83,8 +83,8 @@ func RelativeTimeToRealTime(week, dayOfWeek, startSection, endSection int) (time
|
||||
return time.Time{}, time.Time{}, respond.InvalidSectionRange
|
||||
}
|
||||
|
||||
startTimeInfo, okStart := sectionTimeMap2[startSection]
|
||||
endTimeInfo, okEnd := sectionTimeMap2[endSection]
|
||||
startTimeInfo, okStart := SectionTimeMap2[startSection]
|
||||
endTimeInfo, okEnd := SectionTimeMap2[endSection]
|
||||
if !okStart || !okEnd {
|
||||
return time.Time{}, time.Time{}, respond.InvalidSectionNumber
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user