zwxi 10 miesięcy temu
rodzic
commit
2871a8e1d6
3 zmienionych plików z 54 dodań i 2 usunięć
  1. 52 0
      controllers/base_auth.go
  2. 1 1
      controllers/chart.go
  3. 1 1
      controllers/excel.go

+ 52 - 0
controllers/base_auth.go

@@ -97,3 +97,55 @@ func (c *BaseAuthController) JSON(data interface{}, hasIndent bool, coding bool)
 	}
 	return c.Ctx.Output.Body(content)
 }
+
+
+func (c *BaseAuthController) ServeJSONNoEncryption(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 {
+		go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+"异常提醒:", "接口:"+"URI:"+c.Ctx.Input.URI()+";无返回值", utils.EmailSendToUsers)
+		return
+	}
+	baseRes := c.Data["json"].(*models.BaseResponse)
+	if baseRes != nil && baseRes.Ret != 200 && baseRes.Ret != 408 && baseRes.IsSendEmail {
+		body, _ := json.Marshal(baseRes)
+		go utils.SendEmail(utils.APPNAME+" "+utils.RunMode+" 失败提醒", "URI:"+c.Ctx.Input.URI()+"<br/> ErrMsg:"+baseRes.ErrMsg+";<br/>Msg:"+baseRes.Msg+";<br/> Body:"+string(body), utils.EmailSendToUsers)
+	}
+	c.JSONNoEncryption(c.Data["json"], hasIndent, hasEncoding)
+}
+
+func (c *BaseAuthController) JSONNoEncryption(data interface{}, hasIndent bool, coding bool) error {
+	c.Ctx.Output.Header("Content-Type", "application/json; charset=utf-8")
+	desEncrypt := utils.DesBase64Encrypt([]byte(utils.DesKey), utils.DesKeySalt)
+	c.Ctx.Output.Header("Dk", string(desEncrypt)) // des3加解密key
+	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
+	}
+	if coding {
+		content = []byte(utils.StringsToJSON(string(content)))
+	}
+
+	//// 数据加密
+	//if services.CheckEncryption() {
+	//	content = utils.DesBase64Encrypt(content, utils.DesKey)
+	//	// get请求时,不加双引号就获取不到数据,不知道什么原因,所以还是在前后加上双引号吧
+	//	content = []byte(`"` + string(content) + `"`)
+	//}
+	return c.Ctx.Output.Body(content)
+}

+ 1 - 1
controllers/chart.go

@@ -28,7 +28,7 @@ func (this *ChartController) ChartDetail()  {
 			br.IsSendEmail = false
 		}
 		this.Data["json"] = br
-		this.ServeJSON()
+		this.ServeJSONNoEncryption()
 	}()
 
 	var req services.ChartDetailReq

+ 1 - 1
controllers/excel.go

@@ -27,7 +27,7 @@ func (this *ExcelController) ExcelDetail()  {
 			br.IsSendEmail = false
 		}
 		this.Data["json"] = br
-		this.ServeJSON()
+		this.ServeJSONNoEncryption()
 	}()
 
 	var req services.ExcelDetailReq