package basic // StatusResponse 公司自定义状态码 type StatusResponse struct { Code int Message string } var ( CodeOK = &StatusResponse{200, "success"} // 成功 CodeApiErr = &StatusResponse{500, "api error"} // api 错误 CodeSaveErr = &StatusResponse{501, "fail to save"} // 储存错误 CodeServiceErr = &StatusResponse{510, "server logic error"} // server logic 错误 CodeUnAuth = &StatusResponse{401, "unauthorized"} // 未授权 CodeUpdateErr = &StatusResponse{5000, "update database error"} // update database logic 错误 ) type Response struct { Code int `json:"code"` Message string `json:"msg"` Data interface{} `json:"data"` } // Set 设置Response的Code和Message值 func (resp *Response) Set(Code int, Message string) *Response { return &Response{ Code: Code, Message: Message, } } // Set 设置整个Response func (resp *Response) SetWithData(Code int, Message string, Data interface{}) *Response { return &Response{ Code: Code, Message: Message, Data: Data, } } // SetStatus 设置默认StatusResponse(内部自定义) 默认msg, 可以带data, data只使用一个参数 func (resp *Response) SetStatus(sr *StatusResponse, data ...interface{}) *Response { newResp := &Response{ Code: sr.Code, Message: sr.Message, } if len(data) == 1 { newResp.Data = data[0] } return newResp } // SetStatusWithMessage 设置默认StatusResponse(内部自定义) 非默认msg, 可以带data, data只使用一个参数 func (resp *Response) SetStatusWithMessage(sr *StatusResponse, msg string, data ...interface{}) *Response { newResp := &Response{ Code: sr.Code, Message: msg, } if len(data) == 1 { newResp.Data = data[0] } return newResp }