From 1afa93687ef74eef9e863b917f9804329290f687 Mon Sep 17 00:00:00 2001 From: lijikun Date: Tue, 17 Dec 2024 16:32:08 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=8817=E6=97=A5=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E4=BD=9C=E4=B8=9A=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- link_homework/api/v1/ClientPage/ClientPage.go | 13 ++++++- link_homework/internal/cmd/cmd.go | 1 + .../internal/controller/clientPage/clientPage.go | 40 ++++++++++++++++++++++ .../internal/logic/homework/homeworkList.go | 40 ++++++++++++++++++++-- link_homework/internal/service/homework.go | 1 + 5 files changed, 91 insertions(+), 4 deletions(-) diff --git a/link_homework/api/v1/ClientPage/ClientPage.go b/link_homework/api/v1/ClientPage/ClientPage.go index eba8737..512f7a7 100644 --- a/link_homework/api/v1/ClientPage/ClientPage.go +++ b/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:简答"` +} diff --git a/link_homework/internal/cmd/cmd.go b/link_homework/internal/cmd/cmd.go index 88e617b..1075d69 100644 --- a/link_homework/internal/cmd/cmd.go +++ b/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() diff --git a/link_homework/internal/controller/clientPage/clientPage.go b/link_homework/internal/controller/clientPage/clientPage.go index fe4ca4f..7bb2154 100644 --- a/link_homework/internal/controller/clientPage/clientPage.go +++ b/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) + +} diff --git a/link_homework/internal/logic/homework/homeworkList.go b/link_homework/internal/logic/homework/homeworkList.go index 2efb32b..4ca4a4d 100644 --- a/link_homework/internal/logic/homework/homeworkList.go +++ b/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 +} diff --git a/link_homework/internal/service/homework.go b/link_homework/internal/service/homework.go index 63fd6b8..1b71bfb 100644 --- a/link_homework/internal/service/homework.go +++ b/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) } )