|
|
@ -40,6 +40,7 @@ func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize in |
|
|
|
} |
|
|
|
|
|
|
|
func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error) { |
|
|
|
// 判断作业是否已结束
|
|
|
|
status := 0 |
|
|
|
if req.StartDate.Before(gtime.Now()) { |
|
|
|
if req.EndDate.Before(gtime.Now()) { |
|
|
@ -49,7 +50,7 @@ func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkRe |
|
|
|
} |
|
|
|
} |
|
|
|
var Id int64 |
|
|
|
if req.ArticleId == 0 { |
|
|
|
if req.ArticleId == 0 { // 关联文章
|
|
|
|
Id, err = dao.ActivityInteractiveGroup.Ctx(ctx).Data(do.ActivityInteractiveGroup{ |
|
|
|
Name: req.Name, |
|
|
|
Status: status, |
|
|
@ -58,7 +59,7 @@ func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkRe |
|
|
|
StartDate: req.StartDate, |
|
|
|
EndDate: req.EndDate, |
|
|
|
}).InsertAndGetId() |
|
|
|
} else if req.LiveId == 0 { |
|
|
|
} else if req.LiveId == 0 { // 关联直播
|
|
|
|
Id, err = dao.ActivityInteractiveGroup.Ctx(ctx).Data(do.ActivityInteractiveGroup{ |
|
|
|
Name: req.Name, |
|
|
|
Status: status, |
|
|
@ -70,6 +71,7 @@ func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkRe |
|
|
|
} else { |
|
|
|
return fmt.Errorf("不能同时关联文章和直播!") |
|
|
|
} |
|
|
|
// 添加所有题目
|
|
|
|
for _, v := range req.Questions { |
|
|
|
_, err = dao.ActivityInteractiveForm.Ctx(ctx).Data(do.ActivityInteractiveForm{ |
|
|
|
Name: req.Name, |
|
|
@ -84,15 +86,18 @@ func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkRe |
|
|
|
} |
|
|
|
|
|
|
|
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()) { |
|
|
|
return fmt.Errorf("作业已结束,无法修改!") |
|
|
|
} else { |
|
|
|
// 判断作业是否已开始
|
|
|
|
flag := true |
|
|
|
if nowhomework.StartDate.Before(gtime.Now()) { |
|
|
|
flag = false |
|
|
|
} |
|
|
|
// 判断提交修改表单状态
|
|
|
|
status := 0 |
|
|
|
if req.StartDate.Before(gtime.Now()) { |
|
|
|
if req.EndDate.Before(gtime.Now()) { |
|
|
@ -101,6 +106,7 @@ func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomework |
|
|
|
status = 1 |
|
|
|
} |
|
|
|
} |
|
|
|
// 判断是否关联文章或直播
|
|
|
|
if req.ArticleId == 0 { |
|
|
|
_, err = g.Model("activity_interactive_group").Data(g.Map{ |
|
|
|
"name": req.Name, |
|
|
@ -124,7 +130,7 @@ func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomework |
|
|
|
} else { |
|
|
|
return fmt.Errorf("不能同时关联文章和直播!") |
|
|
|
} |
|
|
|
if flag { |
|
|
|
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{ |
|
|
@ -136,7 +142,7 @@ func (s *sHomework) EditHomework(ctx context.Context, req *homework.EditHomework |
|
|
|
GroupId: req.Id, |
|
|
|
}).Insert() |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { // 已开始
|
|
|
|
for _, v := range req.Questions { |
|
|
|
_, err = dao.ActivityInteractiveForm.Ctx(ctx).Data(do.ActivityInteractiveForm{ |
|
|
|
Name: req.Name, |
|
|
|