diff --git a/link_homework/internal/logic/homework/homework.go b/link_homework/internal/logic/homework/homework.go index 4afdfcb..278cf9a 100644 --- a/link_homework/internal/logic/homework/homework.go +++ b/link_homework/internal/logic/homework/homework.go @@ -26,83 +26,6 @@ func New() service.IHomework { return &sHomework{} } -//func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize int) (homeworkList []*entity.ActivityInteractiveGroup, err error) { -// // 从Redis中获取数据 -// value, _ := g.Redis().Get(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize)) -// if value.String() != "" { -// // 如果Redis中有数据,尝试解析为ActivityInteractiveGroup列表 -// err = json.Unmarshal(value.Bytes(), &homeworkList) //反序列化 -// homeworklist, cnt := UpdateHomework(ctx, homeworkList) -// -// if cnt > 0 { -// // 将修改后的作业列表排序后序列化并存储到Redis,更新频繁变更的数据 -// sort.Slice(homeworklist, func(i, j int) bool { -// return homeworklist[i].Status < homeworklist[j].Status -// }) -// homeworkListJson, _ := json.Marshal(homeworklist) -// _, err = g.Redis().Set(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize), homeworkListJson) -// } -// -// if err != nil { -// return nil, err -// } -// return homeworklist, err -// } -// -// // 如果Redis中没有数据,查询数据库 -// err = dao.ActivityInteractiveGroup.Ctx(ctx).With(entity.Live{}).Order("status asc, created_at desc").Page(pageNo, pageSize).Scan(&homeworkList) -// err = g.DB("cms").Model("fx_article").Where("id", gdb.ListItemValuesUnique(homeworkList, "ArticleId")).ScanList(&homeworkList, "Article", "id:ArticleId") -// homeworkList = InitHomework(ctx, homeworkList) -// homeworkList, _ = UpdateHomework(ctx, homeworkList) -// if err != nil { -// return nil, err -// } -// -// // 将查询到的作业列表序列化并存储到Redis,更新频繁变更的数据 -// homeworkListJson, _ := json.Marshal(homeworkList) -// _, err = g.Redis().Set(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize), homeworkListJson) -// -// return -//} -// -//func UpdateHomework(ctx context.Context, homeworkList []*entity.ActivityInteractiveGroup) ([]*entity.ActivityInteractiveGroup, int) { -// cnt := 0 -// for _, v := range homeworkList { -// if v.Status != 2 { -// if v.StartDate.After(gtime.Now()) { -// v.Status = 1 -// } else if v.EndDate.Before(gtime.Now().AddDate(0, 0, -1)) { -// v.Status = 2 -// cnt++ -// _, _ = dao.ActivityInteractiveGroup.Ctx(ctx).Data(do.ActivityInteractiveGroup{ -// Status: 2, -// }).WherePri(v.Id).Update() -// } else { -// v.Status = 0 -// } -// if v.Status != 1 { -// result, _ := dao.ActivityInteractiveRecord.Ctx(ctx).Where("group_id", v.Id).Group("form_id").Limit(1).Value("COUNT(*)") -// v.Count = result.Int() -// } -// } -// } -// -// return homeworkList, cnt -//} -// -//func InitHomework(ctx context.Context, homeworkList []*entity.ActivityInteractiveGroup) []*entity.ActivityInteractiveGroup { -// for _, v := range homeworkList { -// if v.Status == 2 { -// if v.Status != 1 { -// result, _ := dao.ActivityInteractiveRecord.Ctx(ctx).Where("group_id", v.Id).Group("form_id").Limit(1).Value("COUNT(*)") -// v.Count = result.Int() -// } -// } -// } -// -// return homeworkList -//} - func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize int) (homeworkList []*entity.ActivityInteractiveGroup, err error) { // 从Redis中获取数据 value, _ := g.Redis().Get(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize)) @@ -167,10 +90,8 @@ func UpdateHomework(ctx context.Context, homeworkList []*entity.ActivityInteract func InitHomework(ctx context.Context, homeworkList []*entity.ActivityInteractiveGroup) []*entity.ActivityInteractiveGroup { for _, v := range homeworkList { if v.Status == 2 { - if v.Status != 0 { - result, _ := dao.ActivityInteractiveRecord.Ctx(ctx).Where("group_id", v.Id).Group("form_id").Limit(1).Value("COUNT(*)") - v.Count = result.Int() - } + result, _ := dao.ActivityInteractiveRecord.Ctx(ctx).Where("group_id", v.Id).Group("form_id").Limit(1).Value("COUNT(*)") + v.Count = result.Int() } } @@ -257,9 +178,9 @@ func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomework return fmt.Errorf("作业已结束,无法修改!") } else { // 判断作业是否已开始 - flag := true + flag := true //作业未开始 if nowhomework.StartDate.Before(gtime.Now()) { - flag = false + flag = false //作业已开始 } // 判断提交修改表单状态 status := 0 @@ -335,148 +256,3 @@ func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomework return } } - -//func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error) { -// // 判断作业是否已结束 -// status := 1 -// if req.StartDate.Before(gtime.Now()) { -// if req.EndDate.Before(gtime.Now().AddDate(0, 0, -1)) { -// return fmt.Errorf("作业时间已过期,无法添加!") -// } else { -// status = 0 -// } -// } -// var Id int64 -// if req.ArticleId == 0 { // 关联文章 -// Id, err = dao.ActivityInteractiveGroup.Ctx(ctx).Data(do.ActivityInteractiveGroup{ -// Name: req.Name, -// Status: status, -// ClubType: req.ClubType, -// LiveId: req.LiveId, -// StartDate: req.StartDate, -// EndDate: req.EndDate, -// }).InsertAndGetId() -// } else if req.LiveId == 0 { // 关联直播 -// Id, err = dao.ActivityInteractiveGroup.Ctx(ctx).Data(do.ActivityInteractiveGroup{ -// Name: req.Name, -// Status: status, -// ClubType: req.ClubType, -// ArticleId: req.ArticleId, -// StartDate: req.StartDate, -// EndDate: req.EndDate, -// }).InsertAndGetId() -// } else { -// return fmt.Errorf("不能同时关联文章和直播!") -// } -// // 添加所有题目 -// for _, v := range req.Questions { -// _, err = dao.ActivityInteractiveForm.Ctx(ctx).Data(do.ActivityInteractiveForm{ -// Name: req.Name, -// Description: v.Description, -// Content: v.Content, -// Status: status, -// Type: v.Type, -// GroupId: Id, -// }).Insert() -// } -// // 添加数据后,删除所有缓存 -// keys, err := g.Redis().Keys(ctx, "*-* homeworklist") -// if len(keys) > 0 { -// _, err = g.Redis().Del(ctx, keys...) -// } -// -// //删除客户端缓存 -// keys, err = g.Redis().Keys(ctx, "* ClientHomeworkList") -// if len(keys) > 0 { -// _, err = g.Redis().Del(ctx, keys...) -// } -// -// return -//} -// -//func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomeworkReq) (err error) { -// // 判断作业是否已结束 -// var nowhomework *entity.ActivityInteractiveGroup -// err = dao.ActivityInteractiveGroup.Ctx(ctx).WherePri(req.Id).Scan(&nowhomework) -// if nowhomework.EndDate.Before(gtime.Now().AddDate(0, 0, -1)) { -// return fmt.Errorf("作业已结束,无法修改!") -// } else { -// // 判断作业是否已开始 -// flag := true // 作业未开始 -// if nowhomework.StartDate.Before(gtime.Now()) { //作业已开始 -// flag = false -// } -// // 判断提交修改表单状态 -// status := 1 -// if req.StartDate.Before(gtime.Now()) { -// if req.EndDate.Before(gtime.Now().AddDate(0, 0, -1)) { -// status = 2 -// } else { -// status = 0 -// } -// } -// // 判断是否关联文章或直播 -// if req.ArticleId == 0 { -// _, err = g.Model("activity_interactive_group").Data(g.Map{ -// "name": req.Name, -// "status": status, -// "club_type": req.ClubType, -// "article_id": nil, -// "live_id": req.LiveId, -// "start_date": req.StartDate, -// "end_date": req.EndDate, -// }).WherePri(req.Id).Update() -// } else if req.LiveId == 0 { -// _, err = g.Model("activity_interactive_group").Data(g.Map{ -// "name": req.Name, -// "status": status, -// "club_type": req.ClubType, -// "article_id": req.ArticleId, -// "live_id": nil, -// "start_date": req.StartDate, -// "end_date": req.EndDate, -// }).WherePri(req.Id).Update() -// } else { -// return fmt.Errorf("不能同时关联文章和直播!") -// } -// if flag { // 未开始 -// _, err = dao.ActivityInteractiveForm.Ctx(ctx).Where("group_id", req.Id).Delete() -// for _, v := range req.Questions { -// _, err = dao.ActivityInteractiveForm.Ctx(ctx).Data(do.ActivityInteractiveForm{ -// Name: req.Name, -// Description: v.Description, -// Content: v.Content, -// Status: status, -// Type: v.Type, -// GroupId: req.Id, -// }).Insert() -// } -// } else { // 已开始 -// for _, v := range req.Questions { -// _, err = dao.ActivityInteractiveForm.Ctx(ctx).Data(do.ActivityInteractiveForm{ -// Name: req.Name, -// Description: v.Description, -// Content: v.Content, -// Status: status, -// }).WherePri(v.Id).Update() -// } -// } -// // 修改数据后,删除所有缓存 -// keys, _ := g.Redis().Keys(ctx, "*-* homeworklist") -// if len(keys) > 0 { -// _, _ = g.Redis().Del(ctx, keys...) -// } -// -// //删除客户端缓存 -// keys, err = g.Redis().Keys(ctx, "* ClientHomeworkList") -// if len(keys) > 0 { -// _, err = g.Redis().Del(ctx, keys...) -// } -// keys, err = g.Redis().Keys(ctx, "* HomeworkQuestions") -// if len(keys) > 0 { -// _, err = g.Redis().Del(ctx, keys...) -// } -// -// return -// } -//}