|
|
@ -20,33 +20,30 @@ func init() { |
|
|
|
|
|
|
|
func (s *sClient) ClientGetHomeworkList(ctx context.Context, jwcode int) (homeworkList []ClientPage.GetHomeworkListRse, err error) { |
|
|
|
// 从Redis中获取数据
|
|
|
|
value, _ := g.Redis().Get(ctx, "ClientHomeworkList") |
|
|
|
if value.String() != "" { |
|
|
|
value, _ := g.Redis().Get(ctx, "ClientHomeworkList") //从Redis中获取ClientHomeworkList的值
|
|
|
|
if value.String() != "" { //如果值不为空
|
|
|
|
err = json.Unmarshal(value.Bytes(), &homeworkList) //JSON -> Go数据结构
|
|
|
|
if err != nil { |
|
|
|
return nil, errors.New("从Redis获取数据,JSON解析失败") |
|
|
|
if err != nil { //如果解析失败
|
|
|
|
return nil, errors.New("从Redis获取数据,JSON解析失败") //返回错误信息
|
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 如果Redis中没有数据,查询数据库
|
|
|
|
//var jwcode = 90038794 //需要从token中获取当前的数据
|
|
|
|
// 查询活动互动组表,根据条件查询id、name、end_date字段,并按照end_date降序排列
|
|
|
|
err = dao.ActivityInteractiveGroup.Ctx(ctx).Fields("id", "name", "DATE_FORMAT(end_date, '%Y-%m-%d') as end_date"). |
|
|
|
Where("end_date>?", gtime.Now()).Where("status", 1).OrderDesc("end_date").Scan(&homeworkList) |
|
|
|
if err != nil { |
|
|
|
//fmt.Println("作业列表查询失败:", err)
|
|
|
|
return |
|
|
|
} |
|
|
|
for i, item := range homeworkList { |
|
|
|
var count int |
|
|
|
count, err = dao.ActivityInteractiveRecord.Ctx(ctx).Where("group_id=?", item.Id).Where("jwcode", jwcode).Count() //只有精网号和作业id查出来的结果是所需要的结果的题目数倍数
|
|
|
|
if err != nil { |
|
|
|
//fmt.Println("提交记录数查询失败:", err)
|
|
|
|
return |
|
|
|
} |
|
|
|
num, err1 := dao.ActivityInteractiveForm.Ctx(ctx).Where("group_id", item.Id).Count() |
|
|
|
if err1 != nil { |
|
|
|
//fmt.Println("题目数查询失败:", err1)
|
|
|
|
return |
|
|
|
} |
|
|
|
homeworkList[i].Submit = count / num |
|
|
@ -87,32 +84,35 @@ func (s *sClient) CommitHomework(ctx context.Context, req ClientPage.CommitHomew |
|
|
|
//req中需要有:作业id,提交的每一个题的答案,每一个提的类型
|
|
|
|
for _, answer := range req.CommitedAnswer { |
|
|
|
if answer.Type == 1 { //单选或者多选
|
|
|
|
// 插入单选或者多选答案
|
|
|
|
_, err := dao.ActivityInteractiveRecord.Ctx(ctx).Data(g.Map{ |
|
|
|
"jwcode": jwcode, |
|
|
|
"form_id": answer.Id, |
|
|
|
"group_id": req.GroupId, |
|
|
|
"content": answer.Answer[0], |
|
|
|
"jwcode": jwcode, // 问卷编号
|
|
|
|
"form_id": answer.Id, // 答案编号
|
|
|
|
"group_id": req.GroupId, // 组编号
|
|
|
|
"content": answer.Answer[0], // 答案内容
|
|
|
|
}).Insert() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} else if answer.Type == 2 { //多选
|
|
|
|
// 插入多选答案
|
|
|
|
_, err := dao.ActivityInteractiveRecord.Ctx(ctx).Data(g.Map{ |
|
|
|
"jwcode": jwcode, |
|
|
|
"form_id": answer.Id, |
|
|
|
"group_id": req.GroupId, |
|
|
|
"content": answer.Answer, |
|
|
|
"jwcode": jwcode, // 问卷编号
|
|
|
|
"form_id": answer.Id, // 答案编号
|
|
|
|
"group_id": req.GroupId, // 组编号
|
|
|
|
"content": answer.Answer, // 答案内容
|
|
|
|
}).Insert() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} else if answer.Type == 3 { //简答
|
|
|
|
// 插入简答答案
|
|
|
|
_, err := dao.ActivityInteractiveRecord.Ctx(ctx).Data(g.Map{ |
|
|
|
"jwcode": jwcode, |
|
|
|
"form_id": answer.Id, |
|
|
|
"group_id": req.GroupId, |
|
|
|
"content_title": answer.Answer[0], |
|
|
|
"content": answer.Answer[1], |
|
|
|
"jwcode": jwcode, // 问卷编号
|
|
|
|
"form_id": answer.Id, // 答案编号
|
|
|
|
"group_id": req.GroupId, // 组编号
|
|
|
|
"content_title": answer.Answer[0], // 答案标题
|
|
|
|
"content": answer.Answer[1], // 答案内容
|
|
|
|
}).Insert() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|