diff --git a/link_homework/api/v1/homework/homework.go b/link_homework/api/v1/homework/homework.go index 89feddd..0f9b2e1 100644 --- a/link_homework/api/v1/homework/homework.go +++ b/link_homework/api/v1/homework/homework.go @@ -10,6 +10,10 @@ type GetHomeworkListReq struct { PageSize int `v:"required#页面大小不能为空" dc:"页面大小"` } +type GetHomeworkReq struct { + Id int `v:"required#作业id不能为空" dc:"作业id"` +} + type AddHomeworkReq struct { Name string `v:"required#作业名称不能为空" dc:"作业名称"` ClubType int `v:"required|min:1|max:9#作业所属不能为空|作业所属不存在|作业所属不存在" dc:"作业所属"` diff --git a/link_homework/internal/cmd/cmd.go b/link_homework/internal/cmd/cmd.go index f588a2f..42be6b3 100644 --- a/link_homework/internal/cmd/cmd.go +++ b/link_homework/internal/cmd/cmd.go @@ -42,6 +42,7 @@ var ( //gfToken.Middleware(ctx, group) //直接写接口,不用再分组 group.POST("/get-homework-list", homework.Homework().GetHomeworkList) + group.POST("/get-homework", homework.Homework().GetHomework) group.POST("/add-homework", homework.Homework().AddHomework) group.POST("/edit-homework", homework.Homework().EditHomework) group.ALL("/get-article-list", article.Article().GetArticleList) diff --git a/link_homework/internal/controller/homework/homework.go b/link_homework/internal/controller/homework/homework.go index ac70043..cdeb996 100644 --- a/link_homework/internal/controller/homework/homework.go +++ b/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) { var req *homework.AddHomeworkReq if err := r.Parse(&req); err != nil { diff --git a/link_homework/internal/logic/homework/homework.go b/link_homework/internal/logic/homework/homework.go index a944f79..f0988d9 100644 --- a/link_homework/internal/logic/homework/homework.go +++ b/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() != "" { // 如果Redis中有数据,尝试解析为ActivityInteractiveGroup列表 err = json.Unmarshal(value.Bytes(), &homeworkList) //反序列化 - homeworkList = UpdateHomework(ctx, homeworkList) + //homeworkList = UpdateHomework(ctx, homeworkList) if err != nil { return nil, err } @@ -45,11 +45,16 @@ func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize in if err != nil { return nil, err } + homeworkList = UpdateHomework(ctx, homeworkList) // 将查询到的作业列表序列化并存储到Redis,更新频繁变更的数据 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 } @@ -76,6 +81,12 @@ func (s *sHomework) GetHomeworkListTotal(ctx context.Context) (total int, err er 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) { // 判断作业是否已结束 status := 0 diff --git a/link_homework/internal/model/entity/activity_interactive_group.go b/link_homework/internal/model/entity/activity_interactive_group.go index 11d989d..d71670a 100644 --- a/link_homework/internal/model/entity/activity_interactive_group.go +++ b/link_homework/internal/model/entity/activity_interactive_group.go @@ -10,17 +10,18 @@ import ( // ActivityInteractiveGroup is the golang structure for table activity_interactive_group. type ActivityInteractiveGroup struct { - Id int `json:"id" orm:"id" description:""` // - Name string `json:"name" orm:"name" description:"表单名称"` // 表单名称 - Status uint `json:"status" orm:"status" description:"表单状态 0 未发布 1 发布中 2 过期"` // 表单状态 0 未发布 1 发布中 2 过期 - CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间 - UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // - ClubType int `json:"clubType" orm:"club_type" description:"1:牧民俱乐部 2:博股论坛 3:神枪手俱乐部 4:环球俱乐部 5:价值投资 6:波段行情 7:抄底卖顶 8:资金及仓位管理 9 财富的游戏"` // 1:牧民俱乐部 2:博股论坛 3:神枪手俱乐部 4:环球俱乐部 5:价值投资 6:波段行情 7:抄底卖顶 8:资金及仓位管理 9 财富的游戏 - ArticleId int `json:"articleId" orm:"article_id" description:"关联文章id"` // 关联文章id - LiveId int `json:"liveId" orm:"live_id" description:"关联直播id"` // 关联直播id - StartDate *gtime.Time `json:"startDate" orm:"start_date" description:"作业开始时间"` // 作业开始时间 - EndDate *gtime.Time `json:"endDate" orm:"end_date" description:"作业结束时间"` // 作业结束时间 - Article *FxArticle `json:"article" description:"关联文章"` // 关联文章 - Live *Live `json:"live" orm:"with:id=live_id" description:"关联直播"` // 关联直播 - Count int `json:"count" description:"作业提交次数"` + Id int `json:"id" orm:"id" description:""` // + Name string `json:"name" orm:"name" description:"表单名称"` // 表单名称 + Status uint `json:"status" orm:"status" description:"表单状态 0 未发布 1 发布中 2 过期"` // 表单状态 0 未发布 1 发布中 2 过期 + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间 + UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // + ClubType int `json:"clubType" orm:"club_type" description:"1:牧民俱乐部 2:博股论坛 3:神枪手俱乐部 4:环球俱乐部 5:价值投资 6:波段行情 7:抄底卖顶 8:资金及仓位管理 9 财富的游戏"` // 1:牧民俱乐部 2:博股论坛 3:神枪手俱乐部 4:环球俱乐部 5:价值投资 6:波段行情 7:抄底卖顶 8:资金及仓位管理 9 财富的游戏 + ArticleId int `json:"articleId" orm:"article_id" description:"关联文章id"` // 关联文章id + LiveId int `json:"liveId" orm:"live_id" description:"关联直播id"` // 关联直播id + StartDate *gtime.Time `json:"startDate" orm:"start_date" description:"作业开始时间"` // 作业开始时间 + EndDate *gtime.Time `json:"endDate" orm:"end_date" description:"作业结束时间"` // 作业结束时间 + Article *FxArticle `json:"article" 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:"作业提交次数"` } diff --git a/link_homework/internal/service/homework.go b/link_homework/internal/service/homework.go index 24f864c..f2c7b74 100644 --- a/link_homework/internal/service/homework.go +++ b/link_homework/internal/service/homework.go @@ -14,6 +14,7 @@ import ( type ( IHomework interface { 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) EditHomework(ctx context.Context, req *homework.EditHomeworkReq) (err error) GetHomeworkListTotal(ctx context.Context) (total int, err error)