From ba72634d7a7201695349c2ea01ce45b37a520108 Mon Sep 17 00:00:00 2001 From: lijikun Date: Sat, 4 Jan 2025 11:50:24 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=884=E6=97=A5,=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8F=90=E4=BA=A4=E6=98=8E=E7=BB=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=BB=E8=BE=91,=E7=BB=99cmd=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- link_homework/internal/cmd/cmd.go | 35 +++---- .../internal/controller/clientPage/clientPage.go | 1 + link_homework/internal/logic/record/record.go | 107 +++++++++------------ link_homework/internal/service/record.go | 2 +- 4 files changed, 64 insertions(+), 81 deletions(-) diff --git a/link_homework/internal/cmd/cmd.go b/link_homework/internal/cmd/cmd.go index c67a6ce..c901767 100644 --- a/link_homework/internal/cmd/cmd.go +++ b/link_homework/internal/cmd/cmd.go @@ -29,35 +29,28 @@ var ( group.POST("/logout", auth.NewLoginController().Logout) }) s.Group("/api/homework_manage", func(group *ghttp.RouterGroup) { - //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) - group.POST("/edit-homework", homework.Homework().EditHomework) - group.ALL("/get-article-list", article.Article().GetArticleList) - group.ALL("/get-live-list", live.Live().GetLiveList) + //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) //添加作业 + group.POST("/edit-homework", homework.Homework().EditHomework) //编辑作业 + group.ALL("/get-article-list", article.Article().GetArticleList) //查询文章列表 + group.ALL("/get-live-list", live.Live().GetLiveList) //查询直播列表 //导出excel - //group.ALL("/export-record", record.NewExportRecord().ExportRecordByCondition) - //group.POST("/exceleexport", record.NewManageRecord().ExeclExport) - group.ALL("export-record", record.NewManageRecord().ExportRecordByCondition) + group.ALL("export-record", record.NewManageRecord().ExportRecordByCondition) //导出 }) //客户端 s.Group("/api/homework_client", func(group *ghttp.RouterGroup) { - //group.Middleware(middleware.MiddlewareCORS) - //group.Middleware(middleware.MiddlewareIsLogin) group.Middleware(middleware.MiddlewareIsLoginClient) - //gfToken.Middleware(ctx, group) //直接写接口,不用再分组 - group.POST("/gethomeworklist", clientPage.NewClientPage().GetHomeworkList) - group.POST("/gethomeworkquestion", clientPage.NewClientPage().GetHomeworkQuestion) - group.POST("/commithomework", clientPage.NewClientPage().CommitHomework) + 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 index 8dfc064..6c640ec 100644 --- a/link_homework/internal/controller/clientPage/clientPage.go +++ b/link_homework/internal/controller/clientPage/clientPage.go @@ -16,6 +16,7 @@ func NewClientPage() *ClientPage { // 查询作业列表 func (c *ClientPage) GetHomeworkList(r *ghttp.Request) { + // 获取请求头中的token token := r.Header.Get("token") // 调用utility包中的GetJwcodeJSON函数,传入token,获取jwcode diff --git a/link_homework/internal/logic/record/record.go b/link_homework/internal/logic/record/record.go index cf19c8b..32c9ad7 100644 --- a/link_homework/internal/logic/record/record.go +++ b/link_homework/internal/logic/record/record.go @@ -71,72 +71,61 @@ func (s *sRecord) GetRecordList(ctx context.Context, groupId, pageNo, pageSize i 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) + query := dao.ActivityInteractiveRecord.Ctx(ctx).Fields("jwcode").Where("group_id", groupId).Group("jwcode") + + //增加条件筛选 + if jwcode != 0 { + query = query.Where("jwcode", jwcode) + } + if deptId != "" { + query = query.Where("deptId", deptId) + } + if shopId != "" { + query = query.Where("shopId", shopId) + } + + //分页处理 + if pageNo > 0 && pageSize > 0 { + query = query.Page(pageNo, pageSize) + } + + err = query.Scan(&record) if err != nil { - return recordList, err + return nil, errors.New("查询作业提交明细中jwcode失败") } - //判断传来的jwcode, deptId, shopId是否为空,根据情况进行不同的筛选 - if jwcode == 0 { //没有传jwcode - if deptId == "" && shopId == "" { //000 - return recordList, err - } 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 + + //补充详细信息逻辑:根据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 { + return nil, errors.New("无条件根据jwcode查member_info表失败") } - } 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("精网号,部门,门店 没有查询到相关记录") + total, err1 := dao.ActivityInteractiveRecord.Ctx(ctx).Fields("jwcode").Where("group_id", groupId).Group("jwcode").Count() + if err1 != nil { + return nil, errors.New("无条件查询总数失败") + } + 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) + if err != nil { + return nil, errors.New("根据jwcode查询提交记录失败") + } + for i, title := range recordInfo { + err = dao.ActivityInteractiveForm.Ctx(ctx).Fields("description", "type").Where("id", title.FormId).Scan(&recordInfo[i]) + if err != nil { + return nil, errors.New("根据jwcode查询作业题目信息失败") } - return record, err } + record[i].Reply = recordInfo + //fmt.Println(record) } - return nil, errors.New("检查一下穿的参数是否正常") + return + } // 查询部门信息 diff --git a/link_homework/internal/service/record.go b/link_homework/internal/service/record.go index a331ed5..1492cc1 100644 --- a/link_homework/internal/service/record.go +++ b/link_homework/internal/service/record.go @@ -16,7 +16,7 @@ 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)