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 |
|||
|
|||
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 |
|||
|
|||
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