瀏覽代碼

Merge branch 'bzq/dev' of eta_mini/eta_mini_bridge into master

鲍自强 9 月之前
父節點
當前提交
71a6a96e35
共有 4 個文件被更改,包括 138 次插入8 次删除
  1. 40 3
      controllers/base_auth.go
  2. 93 0
      controllers/base_common.go
  3. 1 1
      controllers/wechat.go
  4. 4 4
      services/template_msg.go

+ 40 - 3
controllers/base_auth.go

@@ -7,6 +7,7 @@ import (
 	"fmt"
 	"net/http"
 	"net/url"
+	"strings"
 
 	"github.com/beego/beego/v2/server/web"
 )
@@ -129,14 +130,50 @@ func (c *BaseAuthController) JSON(data interface{}, hasIndent bool, coding bool)
 	if requestBody == "" {
 		requestBody = c.Ctx.Input.URI()
 	}
-	c.logUri(data, requestBody, ip)
+	c.logUri(content, requestBody, ip)
 	if coding {
 		content = []byte(utils.StringsToJSON(string(content)))
 	}
 	return c.Ctx.Output.Body(content)
 }
 
-func (c *BaseAuthController) logUri(respContent interface{}, requestBody, ip string) {
-	utils.ApiLog.Info("uri:%s,  requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), requestBody, respContent, ip)
+func (c *BaseAuthController) logUri(respContent []byte, requestBody, ip string) {
+	authorization := ""
+	method := c.Ctx.Input.Method()
+	uri := c.Ctx.Input.URI()
+	if method != "HEAD" {
+		if method == "POST" || method == "GET" {
+			authorization = c.Ctx.Input.Header("authorization")
+			if authorization == "" {
+				authorization = c.Ctx.Input.Header("Authorization")
+			}
+			if authorization == "" {
+				newAuthorization := c.GetString("authorization")
+				if newAuthorization != `` {
+					authorization = "authorization=" + newAuthorization
+				} else {
+					newAuthorization = c.GetString("Authorization")
+					authorization = "authorization=" + newAuthorization
+				}
+			} else {
+				if strings.Contains(authorization, ";") {
+					authorization = strings.Replace(authorization, ";", "$", 1)
+				}
+			}
+			if authorization == "" {
+				strArr := strings.Split(uri, "?")
+				for k, v := range strArr {
+					fmt.Println(k, v)
+				}
+				if len(strArr) > 1 {
+					authorization = strArr[1]
+					authorization = strings.Replace(authorization, "Authorization", "authorization", -1)
+					fmt.Println(authorization)
+				}
+			}
+		}
+	}
+
+	utils.ApiLog.Info("uri:%s, authorization:%s, requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), authorization, requestBody, respContent, ip)
 	return
 }

+ 93 - 0
controllers/base_common.go

@@ -1,8 +1,13 @@
 package controllers
 
 import (
+	"encoding/json"
+	"eta/eta_mini_bridge/models"
 	"eta/eta_mini_bridge/utils"
+	"fmt"
+	"net/http"
 	"net/url"
+	"strings"
 
 	"github.com/beego/beego/v2/server/web"
 )
@@ -23,3 +28,91 @@ func (c *BaseCommonController) Prepare() {
 	ip := c.Ctx.Input.IP()
 	utils.ApiLog.Info("uri:%s, requestBody:%s, ip:%s", c.Ctx.Input.URI(), requestBody, ip)
 }
+
+func (c *BaseCommonController) ServeJSON(encoding ...bool) {
+	var (
+		hasIndent   = false
+		hasEncoding = false
+	)
+	if web.BConfig.RunMode == web.PROD {
+		hasIndent = false
+	}
+	if len(encoding) > 0 && encoding[0] == true {
+		hasEncoding = true
+	}
+	if c.Data["json"] == nil {
+		utils.ApiLog.Notice(utils.APPNAME+" "+utils.RunMode+"异常提醒", "接口:"+"URI:"+c.Ctx.Input.URI()+";无返回值")
+		return
+	}
+	baseRes := c.Data["json"].(*models.BaseResponse)
+	if baseRes != nil && !baseRes.Success {
+		utils.ApiLog.Notice("接口:" + "URI:" + c.Ctx.Input.URI() + ";ErrMsg:" + baseRes.ErrMsg + ";Msg" + baseRes.Msg)
+	}
+	c.JSON(c.Data["json"], hasIndent, hasEncoding)
+}
+
+func (c *BaseCommonController) JSON(data interface{}, hasIndent bool, coding bool) error {
+	c.Ctx.Output.Header("Content-Type", "application/json; charset=utf-8")
+	var content []byte
+	var err error
+	if hasIndent {
+		content, err = json.MarshalIndent(data, "", "  ")
+	} else {
+		content, err = json.Marshal(data)
+	}
+	if err != nil {
+		http.Error(c.Ctx.Output.Context.ResponseWriter, err.Error(), http.StatusInternalServerError)
+		return err
+	}
+	ip := c.Ctx.Input.IP()
+	requestBody, _ := url.QueryUnescape(string(c.Ctx.Input.RequestBody))
+
+	c.logUri(content, requestBody, ip)
+
+	if coding {
+		content = []byte(utils.StringsToJSON(string(content)))
+	}
+
+	return c.Ctx.Output.Body(content)
+}
+
+func (c *BaseCommonController) logUri(respContent []byte, requestBody, ip string) {
+	authorization := ""
+	method := c.Ctx.Input.Method()
+	uri := c.Ctx.Input.URI()
+	if method != "HEAD" {
+		if method == "POST" || method == "GET" {
+			authorization = c.Ctx.Input.Header("authorization")
+			if authorization == "" {
+				authorization = c.Ctx.Input.Header("Authorization")
+			}
+			if authorization == "" {
+				newAuthorization := c.GetString("authorization")
+				if newAuthorization != `` {
+					authorization = "authorization=" + newAuthorization
+				} else {
+					newAuthorization = c.GetString("Authorization")
+					authorization = "authorization=" + newAuthorization
+				}
+			} else {
+				if strings.Contains(authorization, ";") {
+					authorization = strings.Replace(authorization, ";", "$", 1)
+				}
+			}
+			if authorization == "" {
+				strArr := strings.Split(uri, "?")
+				for k, v := range strArr {
+					fmt.Println(k, v)
+				}
+				if len(strArr) > 1 {
+					authorization = strArr[1]
+					authorization = strings.Replace(authorization, "Authorization", "authorization", -1)
+					fmt.Println(authorization)
+				}
+			}
+		}
+	}
+
+	utils.ApiLog.Info("uri:%s, authorization:%s, requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), authorization, requestBody, respContent, ip)
+	return
+}

+ 1 - 1
controllers/wechat.go

@@ -170,7 +170,7 @@ func (this *WeChatController) SendTemplateMsg() {
 		fmt.Println("推送模板消息:", reportId)
 		err = services.SendMultiTemplateMsg(sendData, openIds, 1, reportId)
 		if err != nil {
-			utils.FileLog.Info("推送模板消息失败, Err:"+err.Error(), 1)
+			utils.FileLog.Info("推送模板消息失败, Err:" + err.Error())
 		}
 	}(sendData, openIds, 1, reportId)
 

+ 4 - 4
services/template_msg.go

@@ -138,7 +138,7 @@ func SendMultiTemplateMsg(sendData map[string]interface{}, items []*OpenIdList,
 	ws := GetWxChat()
 	accessToken, err := ws.GetAccessToken()
 	if err != nil {
-		utils.FileLog.Info("获取微信token失败, Err:"+err.Error(), 1)
+		utils.FileLog.Info("获取微信token失败, Err:" + err.Error())
 		// alarm_msg.SendAlarmMsg("获取微信token失败, Err:"+err.Error(), 1)
 		return
 	}
@@ -154,7 +154,7 @@ func SendMultiTemplateMsg(sendData map[string]interface{}, items []*OpenIdList,
 		sendMap["data"] = sendData
 		data, e := json.Marshal(sendMap)
 		if e != nil {
-			utils.FileLog.Info("新增模板消息推送记录失败, Err:"+e.Error(), 1)
+			utils.FileLog.Info("新增模板消息推送记录失败, Err:" + e.Error())
 			return
 		}
 		ts := &TemplateMsgSendClient{
@@ -163,7 +163,7 @@ func SendMultiTemplateMsg(sendData map[string]interface{}, items []*OpenIdList,
 		}
 		result, e := ts.SendMsg()
 		if e != nil {
-			utils.FileLog.Info("新增模板消息推送记录失败, Err:"+e.Error(), 1)
+			utils.FileLog.Info("新增模板消息推送记录失败, Err:" + e.Error())
 			return
 		}
 		if result == nil {
@@ -179,7 +179,7 @@ func SendMultiTemplateMsg(sendData map[string]interface{}, items []*OpenIdList,
 				resultJson, _ := json.Marshal(result)
 				err = AddUserTemplateRecord(v.UserId, sendStatus, sendType, v.OpenId, string(data), string(resultJson))
 				if err != nil {
-					utils.FileLog.Info("新增模板消息推送记录失败, Err:"+err.Error(), 1)
+					utils.FileLog.Info("新增模板消息推送记录失败, Err:" + err.Error())
 					return
 				}
 			}(item)