From 245155d10e03ef70d4219738db66ed8b635b2761 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 15:52:41 +0800 Subject: [PATCH] fix --- goctl_template/api/types.tpl | 25 +++++++----- .../handler/getsuccessrecommandhandler.go | 40 +++++++++++++++++++ .../logic/getsuccessrecommandlogic.go | 31 ++++++++++++++ product/internal/types/types.go | 21 ++++++---- 4 files changed, 101 insertions(+), 16 deletions(-) create mode 100644 product/internal/handler/getsuccessrecommandhandler.go create mode 100644 product/internal/logic/getsuccessrecommandlogic.go diff --git a/goctl_template/api/types.tpl b/goctl_template/api/types.tpl index 0875ec47..4cf86d10 100644 --- a/goctl_template/api/types.tpl +++ b/goctl_template/api/types.tpl @@ -8,48 +8,55 @@ import ( {{.types}} // Set 设置Response的Code和Message值 -func (resp *Response) Set(Code int, Message string) { +func (resp *Response) Set(Code int, Message string) *Response{ resp.Code = Code resp.Message = Message + return resp } // Set 设置整个Response -func (resp *Response) SetWithData(Code int, Message string, Data interface{}) { +func (resp *Response) SetWithData(Code int, Message string, Data interface{}) *Response{ resp.Code = Code resp.Message = Message resp.Data = Data + return resp } // SetMessage 设置Response的Message -func (resp *Response) SetMessage(msg string) { +func (resp *Response) SetMessage(msg string) *Response{ resp.Message = msg + return resp } // SetWithData 设置Data -func (resp *Response) SetData(Data interface{}) { +func (resp *Response) SetData(Data interface{}) *Response{ resp.Data = Data + return resp } // SetWithData 设置Response的Code和Message值 带Data入参数 -func (resp *Response) SetCode(Code int) { +func (resp *Response) SetCode(Code int) *Response{ resp.Code = Code + return resp } // SetStatus 设置默认StatusResponse(内部自定义) 默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatus(sr *basic.StatusResponse, data ...interface{}) { +func (resp *Response) SetStatus(sr *basic.StatusResponse, data ...interface{}) *Response{ resp.Code = sr.Code resp.Message = sr.Message if len(data) == 1 { resp.Data = data[0] - } + } + return resp } // SetStatusWithMessage 设置默认StatusResponse(内部自定义) 非默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatusWithMessage(sr *basic.StatusResponse, msg string, data ...interface{}) { +func (resp *Response) SetStatusWithMessage(sr *basic.StatusResponse, msg string, data ...interface{}) *Response{ resp.Code = sr.Code resp.Message = msg if len(data) == 1 { resp.Data = data[0] - } + } + return resp } \ No newline at end of file diff --git a/product/internal/handler/getsuccessrecommandhandler.go b/product/internal/handler/getsuccessrecommandhandler.go new file mode 100644 index 00000000..7a067ca9 --- /dev/null +++ b/product/internal/handler/getsuccessrecommandhandler.go @@ -0,0 +1,40 @@ +package handler + +import ( + "errors" + "fusenapi/utils/auth" + "net/http" + + "github.com/zeromicro/go-zero/core/logx" + "github.com/zeromicro/go-zero/rest/httpx" + + "fusenapi/product/internal/logic" + "fusenapi/product/internal/svc" + "fusenapi/product/internal/types" +) + +func GetSuccessRecommandHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + //用户登录信息 + userInfo := auth.CheckAuth(r) + var req types.GetSuccessRecommandReq + if err := httpx.Parse(r, &req); err != nil { + httpx.OkJsonCtx(r.Context(), w, &types.Response{ + Code: 510, + Message: "parameter error", + }) + logx.Info(err) + return + } + + l := logic.NewGetSuccessRecommandLogic(r.Context(), svcCtx) + resp := l.GetSuccessRecommand(&req, userInfo) + if resp != nil { + httpx.OkJsonCtx(r.Context(), w, resp) + } else { + err := errors.New("server logic is error, resp must not be nil") + httpx.ErrorCtx(r.Context(), w, err) + logx.Error(err) + } + } +} diff --git a/product/internal/logic/getsuccessrecommandlogic.go b/product/internal/logic/getsuccessrecommandlogic.go new file mode 100644 index 00000000..e72b4a39 --- /dev/null +++ b/product/internal/logic/getsuccessrecommandlogic.go @@ -0,0 +1,31 @@ +package logic + +import ( + "context" + "fusenapi/utils/auth" + + "fusenapi/product/internal/svc" + "fusenapi/product/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetSuccessRecommandLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewGetSuccessRecommandLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSuccessRecommandLogic { + return &GetSuccessRecommandLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessRecommandReq, loginInfo auth.UserInfo) (resp *types.Response) { + // 必须返回response, 前端需要的是内部约定的Code码, 处理相关的逻辑. 例子(eg): resp.Set(501, "error") + resp = &types.Response{} + return resp +} diff --git a/product/internal/types/types.go b/product/internal/types/types.go index 46d0aefb..7c5bdc57 100644 --- a/product/internal/types/types.go +++ b/product/internal/types/types.go @@ -79,47 +79,54 @@ type Response struct { } // Set 设置Response的Code和Message值 -func (resp *Response) Set(Code int, Message string) { +func (resp *Response) Set(Code int, Message string) *Response { resp.Code = Code resp.Message = Message + return resp } // Set 设置整个Response -func (resp *Response) SetWithData(Code int, Message string, Data interface{}) { +func (resp *Response) SetWithData(Code int, Message string, Data interface{}) *Response { resp.Code = Code resp.Message = Message resp.Data = Data + return resp } // SetMessage 设置Response的Message -func (resp *Response) SetMessage(msg string) { +func (resp *Response) SetMessage(msg string) *Response { resp.Message = msg + return resp } // SetWithData 设置Data -func (resp *Response) SetData(Data interface{}) { +func (resp *Response) SetData(Data interface{}) *Response { resp.Data = Data + return resp } // SetWithData 设置Response的Code和Message值 带Data入参数 -func (resp *Response) SetCode(Code int) { +func (resp *Response) SetCode(Code int) *Response { resp.Code = Code + return resp } // SetStatus 设置默认StatusResponse(内部自定义) 默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatus(sr *basic.StatusResponse, data ...interface{}) { +func (resp *Response) SetStatus(sr *basic.StatusResponse, data ...interface{}) *Response { resp.Code = sr.Code resp.Message = sr.Message if len(data) == 1 { resp.Data = data[0] } + return resp } // SetStatusWithMessage 设置默认StatusResponse(内部自定义) 非默认msg, 可以带data, data只使用一个参数 -func (resp *Response) SetStatusWithMessage(sr *basic.StatusResponse, msg string, data ...interface{}) { +func (resp *Response) SetStatusWithMessage(sr *basic.StatusResponse, msg string, data ...interface{}) *Response { resp.Code = sr.Code resp.Message = msg if len(data) == 1 { resp.Data = data[0] } + return resp }