mirror of
				https://github.com/bjdgyc/anylink.git
				synced 2025-11-01 00:59:34 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package admin
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"fmt"
 | |
| 	"net/http"
 | |
| 	"runtime"
 | |
| 
 | |
| 	"github.com/bjdgyc/anylink/base"
 | |
| )
 | |
| 
 | |
| type Resp struct {
 | |
| 	Code     int         `json:"code"`
 | |
| 	Msg      string      `json:"msg"`
 | |
| 	Location string      `json:"location"`
 | |
| 	Data     interface{} `json:"data"`
 | |
| }
 | |
| 
 | |
| func respHttp(w http.ResponseWriter, respCode int, data interface{}, errS ...interface{}) {
 | |
| 	resp := Resp{
 | |
| 		Code: respCode,
 | |
| 		Msg:  "success",
 | |
| 		Data: data,
 | |
| 	}
 | |
| 	_, file, line, _ := runtime.Caller(2)
 | |
| 	resp.Location = fmt.Sprintf("%v:%v", file, line)
 | |
| 
 | |
| 	if respCode != 0 {
 | |
| 		resp.Msg = ""
 | |
| 		if v, ok := RespMap[respCode]; ok {
 | |
| 			resp.Msg += v
 | |
| 		}
 | |
| 
 | |
| 		if len(errS) > 0 {
 | |
| 			resp.Msg += fmt.Sprint(errS...)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	b, err := json.Marshal(resp)
 | |
| 	if err != nil {
 | |
| 		base.Error(err, resp)
 | |
| 	}
 | |
| 
 | |
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | |
| 	w.WriteHeader(http.StatusOK)
 | |
| 	_, err = w.Write(b)
 | |
| 	if err != nil {
 | |
| 		base.Error(err)
 | |
| 	}
 | |
| 	// 记录返回数据
 | |
| 	// logger.Category("response").Debug(string(b))
 | |
| }
 | |
| 
 | |
| func RespSucess(w http.ResponseWriter, data interface{}) {
 | |
| 	respHttp(w, 0, data, "")
 | |
| }
 | |
| 
 | |
| func RespError(w http.ResponseWriter, respCode int, errS ...interface{}) {
 | |
| 	respHttp(w, respCode, nil, errS...)
 | |
| }
 | |
| 
 | |
| func RespData(w http.ResponseWriter, data interface{}, err error) {
 | |
| 	respHttp(w, http.StatusOK, data, "")
 | |
| }
 |