Browse Source

新增查询单个作业信息接口

majun
majun 5 months ago
parent
commit
cd09845d5e
  1. 4
      link_homework/api/v1/homework/homework.go
  2. 1
      link_homework/internal/cmd/cmd.go
  3. 22
      link_homework/internal/controller/homework/homework.go
  4. 17
      link_homework/internal/logic/homework/homework.go
  5. 1
      link_homework/internal/model/entity/activity_interactive_group.go
  6. 1
      link_homework/internal/service/homework.go

4
link_homework/api/v1/homework/homework.go

@ -10,6 +10,10 @@ type GetHomeworkListReq struct {
PageSize int `v:"required#页面大小不能为空" dc:"页面大小"` PageSize int `v:"required#页面大小不能为空" dc:"页面大小"`
} }
type GetHomeworkReq struct {
Id int `v:"required#作业id不能为空" dc:"作业id"`
}
type AddHomeworkReq struct { type AddHomeworkReq struct {
Name string `v:"required#作业名称不能为空" dc:"作业名称"` Name string `v:"required#作业名称不能为空" dc:"作业名称"`
ClubType int `v:"required|min:1|max:9#作业所属不能为空|作业所属不存在|作业所属不存在" dc:"作业所属"` ClubType int `v:"required|min:1|max:9#作业所属不能为空|作业所属不存在|作业所属不存在" dc:"作业所属"`

1
link_homework/internal/cmd/cmd.go

@ -42,6 +42,7 @@ var (
//gfToken.Middleware(ctx, group) //gfToken.Middleware(ctx, group)
//直接写接口,不用再分组 //直接写接口,不用再分组
group.POST("/get-homework-list", homework.Homework().GetHomeworkList) group.POST("/get-homework-list", homework.Homework().GetHomeworkList)
group.POST("/get-homework", homework.Homework().GetHomework)
group.POST("/add-homework", homework.Homework().AddHomework) group.POST("/add-homework", homework.Homework().AddHomework)
group.POST("/edit-homework", homework.Homework().EditHomework) group.POST("/edit-homework", homework.Homework().EditHomework)
group.ALL("/get-article-list", article.Article().GetArticleList) group.ALL("/get-article-list", article.Article().GetArticleList)

22
link_homework/internal/controller/homework/homework.go

@ -40,6 +40,28 @@ func (c cHomework) GetHomeworkList(r *ghttp.Request) {
}) })
} }
func (c cHomework) GetHomework(r *ghttp.Request) {
var req *homework.GetHomeworkReq
if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
res, err := service.Homework().GetHomework(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: res,
})
}
func (c cHomework) AddHomework(r *ghttp.Request) { func (c cHomework) AddHomework(r *ghttp.Request) {
var req *homework.AddHomeworkReq var req *homework.AddHomeworkReq
if err := r.Parse(&req); err != nil { if err := r.Parse(&req); err != nil {

17
link_homework/internal/logic/homework/homework.go

@ -32,7 +32,7 @@ func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize in
if value.String() != "" { if value.String() != "" {
// 如果Redis中有数据,尝试解析为ActivityInteractiveGroup列表 // 如果Redis中有数据,尝试解析为ActivityInteractiveGroup列表
err = json.Unmarshal(value.Bytes(), &homeworkList) //反序列化 err = json.Unmarshal(value.Bytes(), &homeworkList) //反序列化
homeworkList = UpdateHomework(ctx, homeworkList)
//homeworkList = UpdateHomework(ctx, homeworkList)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -45,11 +45,16 @@ func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize in
if err != nil { if err != nil {
return nil, err return nil, err
} }
homeworkList = UpdateHomework(ctx, homeworkList)
// 将查询到的作业列表序列化并存储到Redis,更新频繁变更的数据 // 将查询到的作业列表序列化并存储到Redis,更新频繁变更的数据
homeworkListJson, _ := json.Marshal(homeworkList) homeworkListJson, _ := json.Marshal(homeworkList)
_, _ = g.Redis().Set(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize), homeworkListJson)
homeworkList = UpdateHomework(ctx, homeworkList)
_, err = g.Redis().Set(ctx, fmt.Sprintf("%d-%d homeworklist", pageNo, pageSize), homeworkListJson)
if err != nil {
fmt.Println("redis set error", err)
return nil, err
}
//homeworkList = UpdateHomework(ctx, homeworkList)
return return
} }
@ -76,6 +81,12 @@ func (s *sHomework) GetHomeworkListTotal(ctx context.Context) (total int, err er
return return
} }
func (s *sHomework) GetHomework(ctx context.Context, id int) (homework *entity.ActivityInteractiveGroup, err error) {
err = dao.ActivityInteractiveGroup.Ctx(ctx).Where("id", id).With(entity.Live{}, entity.ActivityInteractiveForm{}).Scan(&homework)
err = g.DB("cms").Model("fx_article").Where("id", homework.ArticleId).Scan(&homework.Article)
return
}
func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error) { func (s *sHomework) AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error) {
// 判断作业是否已结束 // 判断作业是否已结束
status := 0 status := 0

1
link_homework/internal/model/entity/activity_interactive_group.go

@ -22,5 +22,6 @@ type ActivityInteractiveGroup struct {
EndDate *gtime.Time `json:"endDate" orm:"end_date" description:"作业结束时间"` // 作业结束时间 EndDate *gtime.Time `json:"endDate" orm:"end_date" description:"作业结束时间"` // 作业结束时间
Article *FxArticle `json:"article" description:"关联文章"` // 关联文章 Article *FxArticle `json:"article" description:"关联文章"` // 关联文章
Live *Live `json:"live" orm:"with:id=live_id" description:"关联直播"` // 关联直播 Live *Live `json:"live" orm:"with:id=live_id" description:"关联直播"` // 关联直播
Form []*ActivityInteractiveForm `json:"form" orm:"with:group_id=id" description:"关联题目"`
Count int `json:"count" description:"作业提交次数"` Count int `json:"count" description:"作业提交次数"`
} }

1
link_homework/internal/service/homework.go

@ -14,6 +14,7 @@ import (
type ( type (
IHomework interface { IHomework interface {
GetHomeworkList(ctx context.Context, pageNo int, pageSize int) (homeworkList []*entity.ActivityInteractiveGroup, err error) GetHomeworkList(ctx context.Context, pageNo int, pageSize int) (homeworkList []*entity.ActivityInteractiveGroup, err error)
GetHomework(ctx context.Context, id int) (homework *entity.ActivityInteractiveGroup, err error)
AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error) AddHomework(ctx context.Context, req *homework.AddHomeworkReq) (err error)
EditHomework(ctx context.Context, req *homework.EditHomeworkReq) (err error) EditHomework(ctx context.Context, req *homework.EditHomeworkReq) (err error)
GetHomeworkListTotal(ctx context.Context) (total int, err error) GetHomeworkListTotal(ctx context.Context) (total int, err error)

Loading…
Cancel
Save