Browse Source

12月17日完成客户端作业提交

client_ljk
lijikun 5 months ago
parent
commit
1afa93687e
  1. 13
      link_homework/api/v1/ClientPage/ClientPage.go
  2. 1
      link_homework/internal/cmd/cmd.go
  3. 40
      link_homework/internal/controller/clientPage/clientPage.go
  4. 40
      link_homework/internal/logic/homework/homeworkList.go
  5. 1
      link_homework/internal/service/homework.go

13
link_homework/api/v1/ClientPage/ClientPage.go

@ -5,7 +5,7 @@ import (
)
type GetHomeworkListRse struct {
Id int `json:"id" orm:"table:activity_interactive_group;column:id" dc:"id" `
Id int `json:"groupId" orm:"table:activity_interactive_group;column:id" dc:"id" `
Name string `json:"name" orm:"table:activity_interactive_group;column:name" dc:"作业题目"`
EndDate *gtime.Time `json:"endData" orm:"table:activity_interactive_group;column:end_date;time_format:yy-MM-dd" dc:"作业截止时间"`
Submit int `json:"submit"`
@ -25,3 +25,14 @@ type GetHomeworkQuestionRes struct {
}
//需要id(group_id)(form表),查id,form.name是作业的题目,form.description是作业题目的名字,content, status,type
type CommitHomeworkReq struct {
GroupId int `json:"id" v:"required:#作业id不能为空" dc:"作业id"`
CommitedAnswer []CommitAnswer `json:"homework" dc:"传过来的答案"`
}
type CommitAnswer struct {
Id int `json:"id" orm:"table:activity_interactive_record;column:form_id" dc:"作业题目id"`
Answer []string `json:"answer" dc:"作业答案,包含两部分,第一部分是题目,第二部分是答案,使用','分割的"`
Type int `json:"type" dc:"题目类型,1:单选,2:多选,3:简答"`
}

1
link_homework/internal/cmd/cmd.go

@ -47,6 +47,7 @@ var (
//直接写接口,不用再分组
group.POST("/gethomeworklist", clientPage.NewClientPage().GetHomeworkList)
group.POST("/gethomeworkquestion", clientPage.NewClientPage().GetHomeworkQuestion)
group.POST("/commithomework", clientPage.NewClientPage().CommitHomework)
})
s.Run()

40
link_homework/internal/controller/clientPage/clientPage.go

@ -13,6 +13,7 @@ func NewClientPage() *ClientPage {
return &ClientPage{}
}
// 查询作业列表
func (c *ClientPage) GetHomeworkList(r *ghttp.Request) {
//请求中不需要携带任何参数
result, err := service.Homework().GetHomeworkList(r.Context())
@ -29,6 +30,7 @@ func (c *ClientPage) GetHomeworkList(r *ghttp.Request) {
})
}
// 查询题目列表
func (c *ClientPage) GetHomeworkQuestion(r *ghttp.Request) {
var req CPage.GetHomeworkQuestionReq
if err := r.Parse(&req); err != nil {
@ -51,3 +53,41 @@ func (c *ClientPage) GetHomeworkQuestion(r *ghttp.Request) {
Data: result,
})
}
func (c *ClientPage) CommitHomework(r *ghttp.Request) {
var jwcode int = 90038794
var req CPage.CommitHomeworkReq
if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
err := service.Homework().CommitHomework(r.Context(), req, jwcode)
if err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
r.Response.WriteJsonExit(dto.Result{
Code: 200,
Message: "success",
})
//
//parts := strings.SplitN(answer, ",", 2)
//// 使用正则表达式提取汉字部分
//re := regexp.MustCompile(`[\p{Han}]+`)
//matches := re.FindAllString(parts[0], -1)
//// 将 matches 转换为数组
//
//contentTitle := matches[0]
//fmt.Println(contentTitle)
//re = regexp.MustCompile(`"insert":"(.*?)"`)
//matches = re.FindStringSubmatch(parts[1])
//content := matches[1]
//fmt.Println(content)
}

40
link_homework/internal/logic/homework/homeworkList.go

@ -3,6 +3,7 @@ package homework
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"link_homework/api/v1/ClientPage"
"link_homework/internal/dao"
@ -30,9 +31,9 @@ func (s *sHomework) GetHomeworkList(ctx context.Context) (homeworkList []ClientP
fmt.Println("提交记录数查询失败:", err)
return
}
num, err := dao.ActivityInteractiveForm.Ctx(ctx).Where("group", item.Id).Count()
if err != nil {
fmt.Println("题目数查询失败:", err)
num, err1 := dao.ActivityInteractiveForm.Ctx(ctx).Where("group", item.Id).Count()
if err1 != nil {
fmt.Println("题目数查询失败:", err1)
return
}
homeworkList[i].Submit = count / num
@ -45,3 +46,36 @@ func (s *sHomework) GetHomeworkQuestion(ctx context.Context, groupId int) (quest
Where("group_id", groupId).Scan(&questions)
return
}
func (s *sHomework) CommitHomework(ctx context.Context, req ClientPage.CommitHomeworkReq, jwcode int) (err error) {
//req中需要有:作业id,提交的每一个题的答案,每一个提的类型
for _, answer := range req.CommitedAnswer {
if answer.Type == 1 { //单选或者多选
num, err := dao.ActivityInteractiveRecord.Ctx(ctx).Data(g.Map{
"jwcode": jwcode,
"form_id": answer.Id,
"group_id": req.GroupId,
"content": answer.Answer[0],
}).Insert()
fmt.Println(num, err)
} else if answer.Type == 2 { //多选
num, err := dao.ActivityInteractiveRecord.Ctx(ctx).Data(g.Map{
"jwcode": jwcode,
"form_id": answer.Id,
"group_id": req.GroupId,
"content": answer.Answer,
}).Insert()
fmt.Println(num, err)
} else if answer.Type == 3 { //简答
num, 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],
}).Insert()
fmt.Println(num, err)
}
}
return
}

1
link_homework/internal/service/homework.go

@ -14,6 +14,7 @@ type (
IHomework interface {
GetHomeworkList(ctx context.Context) (homeworkList []ClientPage.GetHomeworkListRse, err error)
GetHomeworkQuestion(ctx context.Context, groupId int) (questions []ClientPage.GetHomeworkQuestionRes, err error)
CommitHomework(ctx context.Context, req ClientPage.CommitHomeworkReq, jwcode int) (err error)
}
)

Loading…
Cancel
Save