From d89b88cc3278814dff239e70fcced0f793f9cfbe Mon Sep 17 00:00:00 2001 From: lijikun Date: Sat, 21 Dec 2024 18:24:22 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=8821=E6=97=A5=20=E5=AF=B9=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=89=8D=E7=AB=AF=E7=9A=84=E6=96=B9=E6=B3=95=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=AE=9E=E7=8E=B0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=87=8D=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/controller/clientPage/clientPage.go | 85 +++++++++------------- .../internal/controller/record/manageRecord.go | 85 +++++++++------------- link_homework/internal/logic/client/client.go | 42 +++++------ .../internal/logic/middleware/interceptor.go | 2 +- link_homework/internal/model/dto/Result.go | 31 +++++--- 5 files changed, 109 insertions(+), 136 deletions(-) diff --git a/link_homework/internal/controller/clientPage/clientPage.go b/link_homework/internal/controller/clientPage/clientPage.go index fad3a1c..8dfc064 100644 --- a/link_homework/internal/controller/clientPage/clientPage.go +++ b/link_homework/internal/controller/clientPage/clientPage.go @@ -16,89 +16,70 @@ func NewClientPage() *ClientPage { // 查询作业列表 func (c *ClientPage) GetHomeworkList(r *ghttp.Request) { - //请求中不需要携带任何参数 - //token := r.Request.Header.Get("token") + // 获取请求头中的token token := r.Header.Get("token") - //fmt.Println("======") - //fmt.Println(token) - //fmt.Println("------") + // 调用utility包中的GetJwcodeJSON函数,传入token,获取jwcode jwcode, err := utility.GetJwcodeJSON(token) - //fmt.Println(token) + // 如果出现错误,则返回错误信息 if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 调用service包中的ClientGetHomeworkList函数,传入r.Context()和jwcode,获取作业列表 result, err := service.Client().ClientGetHomeworkList(r.Context(), jwcode) + // 如果出现错误,则返回错误信息 if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 返回作业列表 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // 查询题目列表 func (c *ClientPage) GetHomeworkQuestion(r *ghttp.Request) { + // 定义一个CPage.GetHomeworkQuestionReq类型的变量req var req CPage.GetHomeworkQuestionReq + // 解析请求参数,将解析结果赋值给req if err := r.Parse(&req); err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + // 如果解析失败,返回错误信息 + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 调用service.Client().GetHomeworkQuestion方法,传入req.Id作为参数,获取作业题目 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.Error(err.Error())) } + // 如果获取的作业题目为空,返回错误信息 if result == nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: "该作业没有题目", - }) + r.Response.WriteJsonExit(dto.Error("该作业没有题目")) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 返回作业题目 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } func (c *ClientPage) CommitHomework(r *ghttp.Request) { + // 获取请求头中的token token := r.Request.Header.Get("token") + // 根据token获取jwcode jwcode, err := utility.GetJwcodeJSON(token) + // 如果获取失败,返回错误信息 if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 定义提交作业请求结构体 var req CPage.CommitHomeworkReq + // 解析请求参数 if err := r.Parse(&req); err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + // 如果解析失败,返回错误信息 + r.Response.WriteJsonExit(dto.Error(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.Error(err.Error())) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "提交作业成功", - }) + // 提交成功,返回成功信息 + r.Response.WriteJsonExit(dto.SuccessWithMsg("提交作业成功")) } diff --git a/link_homework/internal/controller/record/manageRecord.go b/link_homework/internal/controller/record/manageRecord.go index 2c9429e..408ea8d 100644 --- a/link_homework/internal/controller/record/manageRecord.go +++ b/link_homework/internal/controller/record/manageRecord.go @@ -18,93 +18,71 @@ func NewManageRecord() *ManageRecord { // 查询所有提交记录 func (m *ManageRecord) GetRecordList(r *ghttp.Request) { + // 定义一个record.GetRecordListReq类型的变量req var req record.GetRecordListReq + // 解析请求参数,如果解析失败,则返回错误信息 if err := r.Parse(&req); err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error("参数解析失败: " + err.Error())) } + // 调用service.Record().GetRecordList方法,获取记录列表,如果获取失败,则返回错误信息 result, err := service.Record().GetRecordList(r.Context(), req.Id, req.PageNo, req.PageSize) if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 返回成功信息,并附带记录列表 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // 根据条件查询提交记录 func (m *ManageRecord) GetRecordByCondition(r *ghttp.Request) { + // 定义一个record.GetRecordByConditionReq类型的变量req var req record.GetRecordByConditionReq + // 解析请求参数,将解析结果赋值给req if err := r.Parse(&req); err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + // 如果解析失败,返回错误信息 + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 调用service.Record().GetRecordByCondition方法,根据req中的参数查询记录 result, err := service.Record().GetRecordByCondition(r.Context(), req.Id, req.Jwcode, req.DeptId, req.ShopId, req.PageNo, req.PageSize) + // 如果查询失败,返回错误信息 if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 如果查询结果为空,返回错误信息 if result == nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: "没有查询到记录", - }) + r.Response.WriteJsonExit(dto.Error("没有查询到记录")) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 返回查询结果 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // 查询用户部门信息 func (m *ManageRecord) GetDeptInfo(r *ghttp.Request) { + // 调用service.Record().GetDeptInfo()方法,获取部门信息 result, err := service.Record().GetDeptInfo(r.Context()) + // 如果出现错误,则返回错误信息 if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 如果没有错误,则返回成功信息 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // 查询用户门店信息 func (m *ManageRecord) GetShopInfo(r *ghttp.Request) { + // 定义一个结构体变量req,用于存储请求参数 var req record.GetShopInfoByDeptIdReq + // 解析请求参数,如果解析失败,则返回错误信息 if err := r.Parse(&req); err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } + // 调用service.Record().GetShopInfoByDeptId方法,根据部门ID获取店铺信息,如果获取失败,则返回错误信息 result, err := service.Record().GetShopInfoByDeptId(r.Context(), req.DeptId) if err != nil { - r.Response.WriteJsonExit(dto.Result{ - Code: 400, - Message: err.Error(), - }) + r.Response.WriteJsonExit(dto.Error(err.Error())) } - r.Response.WriteJsonExit(dto.Result{ - Code: 200, - Message: "success", - Data: result, - }) + // 返回成功信息,包含获取到的店铺信息 + r.Response.WriteJsonExit(dto.SuccessWithData(result)) } // ExportRecordByCondition 导出记录 @@ -174,7 +152,10 @@ func (m *ManageRecord) ExportRecordByCondition(r *ghttp.Request) { return } + // 设置响应头,指定内容类型为Excel文件 r.Response.Header().Set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") + // 设置响应头,指定文件名为fileName r.Response.Header().Set("Content-Disposition", "attachment; filename="+fileName) + // 将buffer中的内容写入响应 r.Response.Write(buffer.Bytes()) } diff --git a/link_homework/internal/logic/client/client.go b/link_homework/internal/logic/client/client.go index d7ff4ef..600093a 100644 --- a/link_homework/internal/logic/client/client.go +++ b/link_homework/internal/logic/client/client.go @@ -20,33 +20,30 @@ func init() { func (s *sClient) ClientGetHomeworkList(ctx context.Context, jwcode int) (homeworkList []ClientPage.GetHomeworkListRse, err error) { // 从Redis中获取数据 - value, _ := g.Redis().Get(ctx, "ClientHomeworkList") - if value.String() != "" { + value, _ := g.Redis().Get(ctx, "ClientHomeworkList") //从Redis中获取ClientHomeworkList的值 + if value.String() != "" { //如果值不为空 err = json.Unmarshal(value.Bytes(), &homeworkList) //JSON -> Go数据结构 - if err != nil { - return nil, errors.New("从Redis获取数据,JSON解析失败") + if err != nil { //如果解析失败 + return nil, errors.New("从Redis获取数据,JSON解析失败") //返回错误信息 } return } // 如果Redis中没有数据,查询数据库 - //var jwcode = 90038794 //需要从token中获取当前的数据 + // 查询活动互动组表,根据条件查询id、name、end_date字段,并按照end_date降序排列 err = dao.ActivityInteractiveGroup.Ctx(ctx).Fields("id", "name", "DATE_FORMAT(end_date, '%Y-%m-%d') as end_date"). Where("end_date>?", gtime.Now()).Where("status", 1).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 @@ -87,32 +84,35 @@ func (s *sClient) CommitHomework(ctx context.Context, req ClientPage.CommitHomew //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], + "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, + "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], + "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 diff --git a/link_homework/internal/logic/middleware/interceptor.go b/link_homework/internal/logic/middleware/interceptor.go index 650ef5c..c59d381 100644 --- a/link_homework/internal/logic/middleware/interceptor.go +++ b/link_homework/internal/logic/middleware/interceptor.go @@ -30,7 +30,7 @@ func MiddlewareIsLoginClient(r *ghttp.Request) { if token != LocalToken { r.Response.WriteJsonExit(dto.Result{ Code: 401, - Message: "Token 无效123", + Message: "客户端Token 无效123", }) } else { r.Middleware.Next() diff --git a/link_homework/internal/model/dto/Result.go b/link_homework/internal/model/dto/Result.go index 810c7ed..864f1c4 100644 --- a/link_homework/internal/model/dto/Result.go +++ b/link_homework/internal/model/dto/Result.go @@ -1,9 +1,5 @@ package dto -import ( - "github.com/gogf/gf/v2/frame/g" -) - // 定义响应结构 type Result struct { Code int `json:"code"` @@ -16,7 +12,18 @@ func Success() *Result { return &Result{ Code: 200, Message: "success", - Data: g.Map{}, + //Data: g.Map{}, + Data: nil, + } +} + +/*成功,自定义相应信息*/ +func SuccessWithMsg(msg string) *Result { + return &Result{ + Code: 200, + Message: msg, + //Data: g.Map{}, + Data: nil, } } @@ -32,9 +39,10 @@ func SuccessWithData(data interface{}) *Result { /*错误,只有错误信息,错误码0*/ func Error(msg string) *Result { return &Result{ - Code: 0, // 错误码 + Code: 400, // 错误码 Message: msg, // 错误信息 - Data: g.Map{}, + //Data: g.Map{}, + Data: nil, } } @@ -43,7 +51,8 @@ func ErrorWithCode(code int, msg string) *Result { return &Result{ Code: code, // 错误码 Message: msg, // 错误信息 - Data: g.Map{}, + //Data: g.Map{}, + Data: nil, } } @@ -52,7 +61,8 @@ func Unauthorized(msg string) *Result { return &Result{ Code: 401, // 错误码 Message: msg, // 错误信息 - Data: g.Map{}, + //Data: g.Map{}, + Data: nil, } } @@ -61,6 +71,7 @@ func UnauthorizedWithCode(code int, msg string) *Result { return &Result{ Code: code, // 错误码 Message: msg, // 错误信息 - Data: g.Map{}, + //Data: g.Map{}, + Data: nil, } }