From 851e2bd23c43894fb9bf5febc0b9d84585caa223 Mon Sep 17 00:00:00 2001 From: liangzy Date: Tue, 3 Aug 2021 20:02:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=88=90=E5=8A=9F=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=80=BC=E8=87=AA=E5=AE=9A=E4=B9=89=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- response/json.go | 10 +++++++++- response/json_interface.go | 4 +++- response/json_test.go | 21 +++++++++++++-------- response/response.go | 14 +++++++++++--- 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/response/json.go b/response/json.go index bbfd0e1..b7f53ba 100644 --- a/response/json.go +++ b/response/json.go @@ -7,7 +7,7 @@ import ( const ( JsonMsgDefaultOk = "ok" - JsonMsgDefaultFailed = "unknown" + JsonMsgDefaultFailed = "unknown error" ) type Json struct { @@ -17,6 +17,14 @@ type Json struct { Status bool `json:"status"` } +func (j *Json) GetDefaultSuccessCode() int { + return 0 +} + +func (j *Json) GetDefaultFailedCode() int { + return 10086 +} + func (j *Json) SetCode(code int) { j.Code = code } diff --git a/response/json_interface.go b/response/json_interface.go index 104ff29..0c27522 100644 --- a/response/json_interface.go +++ b/response/json_interface.go @@ -5,5 +5,7 @@ type JsonInterface interface { SetMessage(msg string) SetData(data interface{}) SetStatus(status bool) - ToString() (str string, err error) + // + GetDefaultSuccessCode() int + GetDefaultFailedCode() int } diff --git a/response/json_test.go b/response/json_test.go index 6c667a3..2164b47 100644 --- a/response/json_test.go +++ b/response/json_test.go @@ -12,15 +12,20 @@ type A struct { Json } -func (j *A) String() string { - s, _ := j.ToString() - return s +func (j *A) GetDefaultSuccessCode() int { + return 0 +} + +func (j *A) GetDefaultFailedCode() int { + return -1 } -func (a *A) ToString() (str string, err error) { - var b []byte - b, err = json.Marshal(a) - return bytes.NewBuffer(b).String(), err +func (j *A) String() string { + b, err := json.Marshal(j) + if err == nil { + return bytes.NewBuffer(b).String() + } + return "" } func (a *A) SetCode(code int) { @@ -33,5 +38,5 @@ func TestNewJsonByDefaultSuccess(t *testing.T) { func TestName(t *testing.T) { resp := JsonResponseGenerator{&A{Code: 232}} - fmt.Println(fmt.Sprintf("%+v", resp.NewJonsByFailed(123232, "hahah"))) + fmt.Println(fmt.Sprintf("%+v", resp.NewJsonByDefaultFailed())) } diff --git a/response/response.go b/response/response.go index d3ee891..cd689bb 100644 --- a/response/response.go +++ b/response/response.go @@ -7,17 +7,25 @@ type JsonResponseGenerator struct { } func (j JsonResponseGenerator) NewJsonByDefaultSuccess(data ...interface{}) JsonInterface { - return j.NewJson(true, 0, JsonMsgDefaultOk, data...) + ptr := j.NewJson(true, 0, JsonMsgDefaultOk, data...) + ptr.SetCode(ptr.GetDefaultSuccessCode()) + return ptr } func (j JsonResponseGenerator) NewJsonByDefaultFailed(data ...interface{}) JsonInterface { - return j.NewJson(false, 1, JsonMsgDefaultFailed, data...) + ptr := j.NewJson(false, 1, JsonMsgDefaultFailed, data...) + ptr.SetCode(ptr.GetDefaultFailedCode()) + return ptr } -func (j JsonResponseGenerator) NewJonsByFailed(code int, msg string) JsonInterface { +func (j JsonResponseGenerator) NewJsonByFailed(code int, msg string) JsonInterface { return j.NewJson(false, code, msg) } +func (j JsonResponseGenerator) NewJsonByFailedWithData(code int, msg string, data interface{}) JsonInterface { + return j.NewJson(false, code, msg, data) +} + func (j JsonResponseGenerator) NewJson(status bool, code int, msg string, data ...interface{}) JsonInterface { jPtr := reflect.New(reflect.TypeOf(j.Interface).Elem()) if b, ok := jPtr.Interface().(JsonInterface); ok {