diff --git a/link_homework/api/v1/ClientPage/ClientPage.go b/link_homework/api/v1/ClientPage/ClientPage.go new file mode 100644 index 0000000..512f7a7 --- /dev/null +++ b/link_homework/api/v1/ClientPage/ClientPage.go @@ -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:简答"` +} diff --git a/link_homework/api/v1/record/Record.go b/link_homework/api/v1/record/Record.go new file mode 100644 index 0000000..d0d2a62 --- /dev/null +++ b/link_homework/api/v1/record/Record.go @@ -0,0 +1,46 @@ +package record + +import "link_homework/internal/model/dto" + +type GetRecordListReq struct { + Id int `json:"id" orm:"" dc:"作业id"` + PageNo int `json:"pageNo" dc:"当前页"` + PageSize int `json:"pageSize" dc:"每页条数"` +} + +// 合并并返回的提交详情所用信息 +type GetRecordListRes struct { + Total int `json:"total" dc:"总条数"` + Jwcode int `json:"jwcode" orm:"db:cms;table:member_info;column:jwcode" dc:"精网号"` + Name string `json:"name" orm:"db:cms;table:member_info;column:name" dc:"用户名字"` + DeptId string `json:"deptId" orm:"db:cms;table:member_info;column:deptId" dc:"部门id"` + DeptName string `json:"deptName" orm:"db:cms;member_info;column:deptName" dc:"部门名"` + ShopId string `json:"shopId" orm:"db:cms;member_info;column:shopId" dc:"门店id"` + ShopName string `json:"shopName" orm:"db:cms;member_info;column:shopName" dc:"门店名"` + Reply []dto.RecordInfo +} + +type GetRecordByConditionReq struct { + Id int `json:"id" orm:"" dc:"作业id"` + Jwcode int `json:"jwcode" dc:"精网号"` + DeptId string `json:"deptId" dc:"部门id"` + ShopId string `json:"shopId" dc:"门店id"` + PageNo int `json:"pageNo" dc:"当前页"` + PageSize int `json:"pageSize" dc:"每页条数"` +} + +/*GetRecordByConditionRes的返回值与GetRecordListRes的一致,所以直接套用*/ + +type GetDeptInfoRes struct { + DeptId string `json:"deptId" orm:"db:cms;table:member_info;column:deptId" dc:"部门id"` + DeptName string `json:"deptName" orm:"db:cms;member_info;column:deptName" dc:"部门名"` +} + +type GetShopInfoByDeptIdReq struct { + DeptId string `json:"deptId" dc:"部门id"` +} + +type GetShopInfoByDeptIdRes struct { + ShopId string `json:"shopId" orm:"db:cms;member_info;column:shopId" dc:"门店id"` + ShopName string `json:"shopName" orm:"db:cms;member_info;column:shopName" dc:"门店名"` +} diff --git a/link_homework/internal/cmd/cmd.go b/link_homework/internal/cmd/cmd.go index 42be6b3..d62a5e7 100644 --- a/link_homework/internal/cmd/cmd.go +++ b/link_homework/internal/cmd/cmd.go @@ -6,8 +6,10 @@ import ( "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gcmd" "link_homework/internal/controller/article" + "link_homework/internal/controller/clientPage" "link_homework/internal/controller/homework" "link_homework/internal/controller/live" + "link_homework/internal/controller/record" "link_homework/internal/logic/middleware" ) @@ -20,15 +22,15 @@ var ( s := g.Server() //后台 - //启动gtoken - // 创建一个GfToken对象,用于处理用户登录、登出、权限验证等操作 + ////启动gtoken + //// 创建一个GfToken对象,用于处理用户登录、登出、权限验证等操作 //gfToken := >oken.GfToken{ // // 设置登录路径,即用户登录接口登入成功后会获得一个Token // LoginPath: "/login", // //// 设置登录前执行的函数,在用户登录之前会调用这个函数进行一些预处理,比如验证用户名和密码等。 // //LoginBeforeFunc: loginFunc, //手动编写 没有同时配置登入路径,登入方法,登出路径启动时会报错 // // 设置登出路径,即用户登出接口登入成功后会删除Token - // LogoutPath: "/logout", + // LogoutPath: "/user/logout", // //// 设置需要拦截的路径,按照前缀拦截,所有以/user或/system开头的路径都需要进行Token认证。 // //AuthPaths: g.SliceStr{"/user", "/system"}, // //// 设置不需要拦截的路径,所有以/user/info或/system/user/开头的路径都不需要进行Token认证。 @@ -37,10 +39,14 @@ var ( // //GlobalMiddleware: true, //} s.Group("/api/homework_manage", func(group *ghttp.RouterGroup) { - //group.Middleware(middleware.MiddlewareIsLogin) group.Middleware(middleware.MiddlewareCORS) + //group.Middleware(middleware.MiddlewareIsLogin) //gfToken.Middleware(ctx, group) //直接写接口,不用再分组 + group.POST("/getrecordlist", record.NewManageRecord().GetRecordList) + group.POST("/getrecordbycondition", record.NewManageRecord().GetRecordByCondition) + group.POST("/getdeptinfo", record.NewManageRecord().GetDeptInfo) + group.POST("/getshopinfo", record.NewManageRecord().GetShopInfo) group.POST("/get-homework-list", homework.Homework().GetHomeworkList) group.POST("/get-homework", homework.Homework().GetHomework) group.POST("/add-homework", homework.Homework().AddHomework) @@ -50,10 +56,13 @@ var ( }) //客户端 s.Group("/api/homework_client", func(group *ghttp.RouterGroup) { - //group.Middleware(middleware.MiddlewareIsLogin) group.Middleware(middleware.MiddlewareCORS) + //group.Middleware(middleware.MiddlewareIsLogin) //gfToken.Middleware(ctx, group) //直接写接口,不用再分组 + 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 new file mode 100644 index 0000000..9c7b91b --- /dev/null +++ b/link_homework/internal/controller/clientPage/clientPage.go @@ -0,0 +1,79 @@ +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(), + }) + } + groupId := req.Id + result, err := service.Client().GetHomeworkQuestion(r.Context(), groupId) + 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: "success", + }) + +} diff --git a/link_homework/internal/controller/record/manageRecord.go b/link_homework/internal/controller/record/manageRecord.go new file mode 100644 index 0000000..cb7dd08 --- /dev/null +++ b/link_homework/internal/controller/record/manageRecord.go @@ -0,0 +1,110 @@ +package record + +import ( + "github.com/gogf/gf/v2/net/ghttp" + "link_homework/api/v1/record" + "link_homework/internal/model/dto" + "link_homework/internal/service" +) + +type ManageRecord struct{} + +func NewManageRecord() *ManageRecord { + return &ManageRecord{} +} + +// 查询所有提交记录 +func (m *ManageRecord) GetRecordList(r *ghttp.Request) { + var req record.GetRecordListReq + if err := r.Parse(&req); err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } + groupId := req.Id + pageNo := req.PageNo + pageSize := req.PageSize + result, err := service.Record().GetRecordList(r.Context(), groupId, pageNo, pageSize) + 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 (m *ManageRecord) GetRecordByCondition(r *ghttp.Request) { + var req record.GetRecordByConditionReq + if err := r.Parse(&req); err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } + groupId := req.Id + jwcode := req.Jwcode + deptId := req.DeptId + shopId := req.ShopId + pageNo := req.PageNo + pageSize := req.PageSize + result, err := service.Record().GetRecordByCondition(r.Context(), groupId, jwcode, deptId, shopId, pageNo, pageSize) + 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 (m *ManageRecord) GetDeptInfo(r *ghttp.Request) { + result, err := service.Record().GetDeptInfo(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 (m *ManageRecord) GetShopInfo(r *ghttp.Request) { + var req record.GetShopInfoByDeptIdReq + if err := r.Parse(&req); err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } + deptId := req.DeptId + result, err := service.Record().GetShopInfoByDeptId(r.Context(), deptId) + if err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } + r.Response.WriteJsonExit(dto.Result{ + Code: 200, + Message: "success", + Data: result, + }) + +} diff --git a/link_homework/internal/logic/client/client.go b/link_homework/internal/logic/client/client.go new file mode 100644 index 0000000..7f6be94 --- /dev/null +++ b/link_homework/internal/logic/client/client.go @@ -0,0 +1,81 @@ +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 { //单选或者多选 + 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/logic/homework/homework.go b/link_homework/internal/logic/homework/homework.go index f0988d9..45034cd 100644 --- a/link_homework/internal/logic/homework/homework.go +++ b/link_homework/internal/logic/homework/homework.go @@ -40,7 +40,7 @@ func (s *sHomework) GetHomeworkList(ctx context.Context, pageNo int, pageSize in } // 如果Redis中没有数据,查询数据库 - err = dao.ActivityInteractiveGroup.Ctx(ctx).With(entity.Live{}).Order("start_date desc, end_date desc").Page(pageNo, pageSize).Scan(&homeworkList) + err = dao.ActivityInteractiveGroup.Ctx(ctx).With(entity.Live{}).Order("end_date desc, start_date desc").Page(pageNo, pageSize).Scan(&homeworkList) err = g.DB("cms").Model("fx_article").Where("id", gdb.ListItemValuesUnique(homeworkList, "ArticleId")).ScanList(&homeworkList, "Article", "id:ArticleId") if err != nil { return nil, err diff --git a/link_homework/internal/logic/logic.go b/link_homework/internal/logic/logic.go index 58b939c..180fa90 100644 --- a/link_homework/internal/logic/logic.go +++ b/link_homework/internal/logic/logic.go @@ -2,6 +2,8 @@ package logic import ( _ "link_homework/internal/logic/article" + _ "link_homework/internal/logic/client" _ "link_homework/internal/logic/homework" _ "link_homework/internal/logic/live" + _ "link_homework/internal/logic/record" ) diff --git a/link_homework/internal/logic/record/record.go b/link_homework/internal/logic/record/record.go new file mode 100644 index 0000000..1783d51 --- /dev/null +++ b/link_homework/internal/logic/record/record.go @@ -0,0 +1,138 @@ +package record + +import ( + "context" + "errors" + "fmt" + "github.com/gogf/gf/v2/frame/g" + pkgRecord "link_homework/api/v1/record" + "link_homework/internal/dao" + "link_homework/internal/model/dto" + "link_homework/internal/service" +) + +type sRecord struct{} + +func init() { + service.RegisterRecord(&sRecord{}) +} + +func NewRecord() *sRecord { + return &sRecord{} +} + +// 无条件全查 +func (s *sRecord) GetRecordList(ctx context.Context, groupId, pageNo, pageSize int) (record []pkgRecord.GetRecordListRes, err error) { + //从record表中查询出jwcode,根据group_id + err = dao.ActivityInteractiveRecord.Ctx(ctx).Fields("jwcode").Where("group_id", groupId).Group("jwcode"). + Page(pageNo, pageSize).Scan(&record) + if err != nil { + panic("无条件查jwcode失败") + } + + fmt.Println(record) + //根据jwcode在member_info表中查询姓名(name), 部门id(deptId), 部门名(deptName), 门店id(shopId), 门店名(shopName) + for i, info := range record { + err = g.DB("cms").Model("member_info").Fields("jwcode", "name", "deptId", "deptName", "shopId", "shopName"). + Where("jwcode", info.Jwcode).Scan(&record[i]) + if err != nil { + panic("无条件根据jwcode查member_info表失败") + } + total, err1 := dao.ActivityInteractiveRecord.Ctx(ctx).Fields("jwcode").Where("group_id", groupId).Group("jwcode").Count() + if err1 != nil { + return + } + record[i].Total = total + //根据jwcode,groupId在record表中查询最新的提交记录进行存放 + var recordInfo []dto.RecordInfo + err = dao.ActivityInteractiveRecord.Ctx(ctx).Fields("content", "content_title", "updated_at", "form_id"). + Where("jwcode", info.Jwcode).Where("group_id", groupId).Group("form_id").Order("updated_at desc").Scan(&recordInfo) //不是最新的,需要再改 + for i, title := range recordInfo { + err = dao.ActivityInteractiveForm.Ctx(ctx).Fields("description", "type").Where("id", title.FormId).Scan(&recordInfo[i]) + } + record[i].Reply = recordInfo + fmt.Println(record) + } + return +} + +// 根据条件查询 +func (s *sRecord) GetRecordByCondition(ctx context.Context, groupId, jwcode int, deptId, shopId string, pageNo, pageSize int) (record []pkgRecord.GetRecordListRes, err error) { + //全查 + recordList, err := s.GetRecordList(ctx, groupId, pageNo, pageSize) + if err != nil { + return nil, err + } + //判断传来的jwcode, deptId, shopId是否为空,根据情况进行不同的筛选 + if jwcode == 0 { //没有传jwcode + if deptId == "" && shopId == "" { //000 + return recordList, nil + } else if deptId != "" && shopId == "" { //010 + for _, info := range recordList { + if info.DeptId == deptId { + record = append(record, info) + } + } + if record == nil { + return nil, errors.New("只部门没有查询到相关记录") + } + return record, err + } else if deptId != "" && shopId != "" { //011 + for _, info := range recordList { + if info.DeptId == deptId && info.ShopId == shopId { + record = append(record, info) + } + } + if record == nil { + return nil, errors.New("部门,门店 没有查询到相关记录") + } + return record, err + } + } else { //传了jwcode + if deptId == "" && shopId == "" { //100 + for _, info := range recordList { + if info.Jwcode == jwcode { + record = append(record, info) + } + } + if record == nil { + return nil, errors.New("只精网号没有查询到相关记录") + } + return record, err + } else if deptId != "" && shopId == "" { //110 + for _, info := range recordList { + if info.Jwcode == jwcode && info.DeptId == deptId { + record = append(record, info) + } + } + if record == nil { + return nil, errors.New("精网号,部门 没有查询到相关记录") + } + return record, err + } else if deptId != "" && shopId != "" { //111 + for _, info := range recordList { + if info.Jwcode == jwcode && info.DeptId == deptId && info.ShopId == shopId { + record = append(record, info) + } + } + if record == nil { + return nil, errors.New("精网号,部门,门店 没有查询到相关记录") + } + return record, err + } + } + return nil, errors.New("检查一下穿的参数是否正常") +} + +// 查询部门信息 +func (s *sRecord) GetDeptInfo(ctx context.Context) (depts []pkgRecord.GetDeptInfoRes, err error) { + err = g.DB("cms").Model("member_info").Fields("deptId", "deptName").Group("deptId").Scan(&depts) + return +} + +// 根据部门信息查询门店信息 +func (s *sRecord) GetShopInfoByDeptId(ctx context.Context, deptId string) (shops []pkgRecord.GetShopInfoByDeptIdRes, err error) { + err = g.DB("cms").Model("member_info").Fields("shopId", "shopName"). + Where("deptId", deptId).Group("shopId").Scan(&shops) + return +} diff --git a/link_homework/internal/model/dto/ToolStruct.go b/link_homework/internal/model/dto/ToolStruct.go new file mode 100644 index 0000000..1fc38ad --- /dev/null +++ b/link_homework/internal/model/dto/ToolStruct.go @@ -0,0 +1,24 @@ +package dto + +import "github.com/gogf/gf/v2/os/gtime" + +// 从cms库中查询用户信息 +type MemberInfo struct { + Jwcode int `json:"jwcode" orm:"db:cms;table:member_info;column:jwcode" dc:"精网号"` + Name string `json:"name" orm:"db:cms;table:member_info;column:name" dc:"用户名字"` + DeptId string `json:"deptId" orm:"db:cms;table:member_info;column:deptId" dc:"部门id"` + DeptName string `json:"deptName" orm:"db:cms;member_info;column:deptName" dc:"部门名"` + ShopId string `json:"shopId" orm:"db:cms;member_info;column:shopId" dc:"门店id"` + ShopName string `json:"shopName" orm:"db:cms;member_info;column:shopName" dc:"门店名"` +} + +// 从live库里查询作业信息 +type RecordInfo struct { + //Jwcode int `json:"jwcode" orm:"db:default;table:activity_interactive_record;column:jwcode" dc:"精网号"` + FormId int `json:"formId" orm:"db:default;table:activity_interactive_record;column:form_id" dc:"题目id"` + Type int `json:"type" orm:"db:default;table:activity_interactive_form;column:type" dc:"题目类型"` + Description string `json:"formTitle" orm:"db:default;table:activity_interactive_form;column:description" dc:"题目"` + ContentTitle string `json:"contentTitle" orm:"db:default;table:activity_interactive_record;column:content_title" dc:"作答标题"` + Content string `json:"content" orm:"db:default;table:activity_interactive_record;column:content" dc:"作答内容"` + UpdatedAt gtime.Time `json:"submitTime" orm:"db:default;table:activity_interactive_record;column:updated_at" dc:"提交时间/更新时间"` +} diff --git a/link_homework/internal/service/client.go b/link_homework/internal/service/client.go new file mode 100644 index 0000000..57314c2 --- /dev/null +++ b/link_homework/internal/service/client.go @@ -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 +} diff --git a/link_homework/internal/service/homework.go b/link_homework/internal/service/homework.go index f2c7b74..7c0b2d2 100644 --- a/link_homework/internal/service/homework.go +++ b/link_homework/internal/service/homework.go @@ -14,10 +14,10 @@ import ( type ( IHomework interface { GetHomeworkList(ctx context.Context, pageNo int, pageSize int) (homeworkList []*entity.ActivityInteractiveGroup, err error) + GetHomeworkListTotal(ctx context.Context) (total int, 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) } ) diff --git a/link_homework/internal/service/record.go b/link_homework/internal/service/record.go new file mode 100644 index 0000000..ba08449 --- /dev/null +++ b/link_homework/internal/service/record.go @@ -0,0 +1,39 @@ +// ================================================================================ +// 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" + pkgRecord "link_homework/api/v1/record" +) + +type ( + IRecord interface { + // 无条件全查 + GetRecordList(ctx context.Context, groupId int, pageNo int, pageSize int) (record []pkgRecord.GetRecordListRes, err error) + // 根据条件查询 + GetRecordByCondition(ctx context.Context, groupId int, jwcode int, deptId string, shopId string, pageNo int, pageSize int) (record []pkgRecord.GetRecordListRes, err error) + // 查询部门信息 + GetDeptInfo(ctx context.Context) (depts []pkgRecord.GetDeptInfoRes, err error) + // 根据部门信息查询门店信息 + GetShopInfoByDeptId(ctx context.Context, deptId string) (shops []pkgRecord.GetShopInfoByDeptIdRes, err error) + } +) + +var ( + localRecord IRecord +) + +func Record() IRecord { + if localRecord == nil { + panic("implement not found for interface IRecord, forgot register?") + } + return localRecord +} + +func RegisterRecord(i IRecord) { + localRecord = i +} diff --git a/link_homework/main.go b/link_homework/main.go index 78ba3e3..135dbcb 100644 --- a/link_homework/main.go +++ b/link_homework/main.go @@ -8,6 +8,8 @@ import ( _ "github.com/gogf/gf/contrib/nosql/redis/v2" + _ "github.com/gogf/gf/contrib/nosql/redis/v2" + "link_homework/internal/cmd" _ "link_homework/internal/logic" diff --git a/link_homework/manifest/config/config.yaml b/link_homework/manifest/config/config.yaml index 786d5a5..90f42d2 100644 --- a/link_homework/manifest/config/config.yaml +++ b/link_homework/manifest/config/config.yaml @@ -1,6 +1,8 @@ # https://goframe.org/docs/web/server-config-file-template server: - address: ":8080" + address: ":8080" + openapiPath: "/api.json" + swaggerPath: "/swagger" # https://goframe.org/docs/core/glog-config logger: @@ -16,7 +18,7 @@ database: link: "mysql:cms:AF42R3ib6YkFaemm@tcp(39.101.133.168:3306)/cms?charset=utf8mb4&parseTime=True&loc=Local" debug: true -# https://goframe.org/docs/core/gredis-config-file +# redis暂不配置,记得加 redis: default: address: "127.0.0.1:6379"