Compare commits
merge into: donghanyang:master
donghanyang:client_ljk
donghanyang:details_ljk
donghanyang:dev
donghanyang:dev_ljk
donghanyang:dhy
donghanyang:lijikun
donghanyang:majun
donghanyang:master
pull from: donghanyang:client_ljk
donghanyang:client_ljk
donghanyang:details_ljk
donghanyang:dev
donghanyang:dev_ljk
donghanyang:dhy
donghanyang:lijikun
donghanyang:majun
donghanyang:master
7 Commits
master
...
client_ljk
Author | SHA1 | Message | Date |
---|---|---|---|
|
52faf6c60e |
12月18日调整logic层与service层名字,功能未变动,对上次调整改错名字的改成了正确的
|
5 months ago |
|
76445706a7 |
12月18日调整logic层与service层名字,功能未变动
|
5 months ago |
|
1afa93687e |
12月17日完成客户端作业提交
|
5 months ago |
|
d43da39151 |
Merge branch 'client_ljk' of http://39.101.133.168:8807/donghanyang/Link_Homework_Go into client_ljk
|
5 months ago |
|
55fb5a16ef |
12月12日代码编写,对客户端主页查询接口进行修改完善(函数名,提交次数),完成作业题目查询
|
5 months ago |
|
686f9370ba |
12月11日客户端首页查询接口编写(未从token获取jwcode)
|
5 months ago |
|
940d3bfcab |
12月11日客户端首页查询接口编写(未从token获取jwcode)
|
5 months ago |
17 changed files with 343 additions and 94 deletions
-
38link_homework/api/v1/ClientPage/ClientPage.go
-
1link_homework/api/v1/hello.go
-
2link_homework/hack/config.yaml
-
45link_homework/internal/cmd/cmd.go
-
76link_homework/internal/controller/clientPage/clientPage.go
-
24link_homework/internal/dao/internal/activity_interactive_form.go
-
24link_homework/internal/dao/internal/activity_interactive_group.go
-
24link_homework/internal/dao/internal/activity_interactive_record.go
-
22link_homework/internal/dao/internal/fx_article.go
-
24link_homework/internal/dao/internal/live.go
-
22link_homework/internal/dao/internal/member_info.go
-
87link_homework/internal/logic/client/client.go
-
0link_homework/internal/logic/homework/.gitkeep
-
4link_homework/internal/logic/logic.go
-
34link_homework/internal/service/client.go
-
8link_homework/internal/service/middleware.go
-
2link_homework/manifest/config/config.yaml
@ -0,0 +1,38 @@ |
|||||
|
package ClientPage |
||||
|
|
||||
|
import ( |
||||
|
"github.com/gogf/gf/v2/os/gtime" |
||||
|
) |
||||
|
|
||||
|
type GetHomeworkListRse struct { |
||||
|
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"` |
||||
|
} |
||||
|
|
||||
|
type GetHomeworkQuestionReq struct { |
||||
|
Id int `json:"id" dc:"作业id"` |
||||
|
} |
||||
|
|
||||
|
type GetHomeworkQuestionRes struct { |
||||
|
Id int `json:"id" orm:"table:activity_interactive_form;column:id" dc:"题目id"` |
||||
|
Name string `json:"name" orm:"table:activity_interactive_form;column:name" dc:"作业名称"` |
||||
|
Description string `json:"description" orm:"table:activity_interactive_form;column:description" dc:"作业题目名字"` |
||||
|
Content string `json:"content" orm:"table:activity_interactive_form;column:content" dc:"题目内容"` |
||||
|
Status int `json:"status"` |
||||
|
Type int `json:"type" orm:"table:activity_interactive_form;column:type" dc:"题目类型"` |
||||
|
} |
||||
|
|
||||
|
//需要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 +0,0 @@ |
|||||
package v1 |
|
@ -1 +1,77 @@ |
|||||
package clientPage |
package clientPage |
||||
|
|
||||
|
import ( |
||||
|
"github.com/gogf/gf/v2/net/ghttp" |
||||
|
CPage "link_homework/api/v1/ClientPage" |
||||
|
"link_homework/internal/model/dto" |
||||
|
"link_homework/internal/service" |
||||
|
) |
||||
|
|
||||
|
type ClientPage struct{} |
||||
|
|
||||
|
func NewClientPage() *ClientPage { |
||||
|
return &ClientPage{} |
||||
|
} |
||||
|
|
||||
|
// 查询作业列表
|
||||
|
func (c *ClientPage) GetHomeworkList(r *ghttp.Request) { |
||||
|
//请求中不需要携带任何参数
|
||||
|
result, err := service.Client().ClientGetHomeworkList(r.Context()) |
||||
|
if err != nil { |
||||
|
r.Response.WriteJsonExit(dto.Result{ |
||||
|
Code: 400, |
||||
|
Message: err.Error(), |
||||
|
}) |
||||
|
} |
||||
|
r.Response.WriteJsonExit(dto.Result{ |
||||
|
Code: 200, |
||||
|
Message: "success", |
||||
|
Data: result, |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 查询题目列表
|
||||
|
func (c *ClientPage) GetHomeworkQuestion(r *ghttp.Request) { |
||||
|
var req CPage.GetHomeworkQuestionReq |
||||
|
if err := r.Parse(&req); err != nil { |
||||
|
r.Response.WriteJsonExit(dto.Result{ |
||||
|
Code: 400, |
||||
|
Message: err.Error(), |
||||
|
}) |
||||
|
} |
||||
|
result, err := service.Client().GetHomeworkQuestion(r.Context(), req.Id) |
||||
|
if err != nil { |
||||
|
r.Response.WriteJsonExit(dto.Result{ |
||||
|
Code: 400, |
||||
|
Message: err.Error(), |
||||
|
}) |
||||
|
} |
||||
|
r.Response.WriteJsonExit(dto.Result{ |
||||
|
Code: 200, |
||||
|
Message: "success", |
||||
|
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.Client().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: "提交作业成功", |
||||
|
}) |
||||
|
} |
@ -0,0 +1,87 @@ |
|||||
|
package client |
||||
|
|
||||
|
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" |
||||
|
"link_homework/internal/service" |
||||
|
) |
||||
|
|
||||
|
type sClient struct{} |
||||
|
|
||||
|
func init() { |
||||
|
service.RegisterClient(&sClient{}) |
||||
|
} |
||||
|
|
||||
|
func (s *sClient) ClientGetHomeworkList(ctx context.Context) (homeworkList []ClientPage.GetHomeworkListRse, err error) { |
||||
|
var jwcode = 90038794 //需要从token中获取当前的数据
|
||||
|
err = dao.ActivityInteractiveGroup.Ctx(ctx).Fields("id", "name", "DATE_FORMAT(end_date, '%Y-%m-%d') as end_date"). |
||||
|
Where("end_date>?", gtime.Now()).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 |
||||
|
} |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (s *sClient) GetHomeworkQuestion(ctx context.Context, groupId int) (questions []ClientPage.GetHomeworkQuestionRes, err error) { |
||||
|
err = dao.ActivityInteractiveForm.Ctx(ctx).Fields("id", "name", "content", "status", "type"). |
||||
|
Where("group_id", groupId).Scan(&questions) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
func (s *sClient) CommitHomework(ctx context.Context, req ClientPage.CommitHomeworkReq, jwcode int) (err error) { |
||||
|
//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], |
||||
|
}).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, |
||||
|
}).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], |
||||
|
}).Insert() |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return |
||||
|
} |
@ -1 +1,5 @@ |
|||||
package logic |
package logic |
||||
|
|
||||
|
import ( |
||||
|
_ "link_homework/internal/logic/client" |
||||
|
) |
@ -0,0 +1,34 @@ |
|||||
|
// ================================================================================
|
||||
|
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
||||
|
// You can delete these comments if you wish manually maintain this interface file.
|
||||
|
// ================================================================================
|
||||
|
|
||||
|
package service |
||||
|
|
||||
|
import ( |
||||
|
"context" |
||||
|
"link_homework/api/v1/ClientPage" |
||||
|
) |
||||
|
|
||||
|
type ( |
||||
|
IClient interface { |
||||
|
ClientGetHomeworkList(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) |
||||
|
} |
||||
|
) |
||||
|
|
||||
|
var ( |
||||
|
localClient IClient |
||||
|
) |
||||
|
|
||||
|
func Client() IClient { |
||||
|
if localClient == nil { |
||||
|
panic("implement not found for interface IClient, forgot register?") |
||||
|
} |
||||
|
return localClient |
||||
|
} |
||||
|
|
||||
|
func RegisterClient(i IClient) { |
||||
|
localClient = i |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
// ================================================================================
|
||||
|
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
||||
|
// You can delete these comments if you wish manually maintain this interface file.
|
||||
|
// ================================================================================
|
||||
|
|
||||
|
package service |
||||
|
|
||||
|
type () |
Write
Preview
Loading…
Cancel
Save
Reference in new issue