Commit 73ac0802 authored by 张宇迪's avatar 张宇迪

update

parent 5fe39203
......@@ -5,6 +5,7 @@ import (
"compress/gzip"
"encoding/json"
"errors"
"fmt"
"github.com/gin-gonic/gin"
"github.com/vulcand/oxy/forward"
"github.com/vulcand/oxy/testutils"
......@@ -14,11 +15,14 @@ import (
"net/http"
"strconv"
"strings"
"time"
)
//var Resp *http.Response
func Proxy(c *gin.Context) {
appT := time.Now()
fmt.Println(`开始:`, appT)
applyId := c.Param("applyId")
if applyId == "" {
res := model.WebRes{}
......@@ -51,19 +55,31 @@ func Proxy(c *gin.Context) {
Return(nil, err, resp)
return nil
}
bT := time.Now()
fmt.Println(`开始获取数据:`, bT)
respbody, _ := ioutil.ReadAll(resp.Body)
var res interface{}
res = respbody
eT := time.Since(bT)
fmt.Println("获取数据: ", eT)
//是否需要过滤字段
if proxyData.ResFields != "" {
bT := time.Now()
fmt.Println(`过滤:`, bT)
res = service.FiledFilter(proxyData, respbody)
eT := time.Since(bT)
fmt.Println("过滤: ", eT)
}
//是否需要屏蔽敏感字段
if sensitiveflag == false {
res = service.SensitiveFilter(proxyData, res)
}
//计次
bgn := time.Now()
fmt.Println(`开始携程:`, bgn)
go service.CallCounts(proxyData)
end := time.Since(bgn)
fmt.Println("结束携程: ", end)
//err = service.CallCounts(proxyData)
//if err != nil {
// Return(nil, err, resp)
......@@ -77,6 +93,8 @@ func Proxy(c *gin.Context) {
// return nil
//}
Return(res, nil, resp)
appeT := time.Since(appT)
fmt.Println("结束: ", appeT)
return nil
}))
c.Request.URL = testutils.ParseURI(getProxyURL(proxyData, c.Request))
......
......@@ -75,7 +75,7 @@ func GetExpire() time.Duration {
timeNumber := zero
fmt.Println("timeNumber:", timeNumber)
subMin := now.Sub(zero)
fmt.Println(subMin.Minutes(), "分钟")
//fmt.Println(subMin.Minutes(), "分钟")
return subMin
}
......@@ -187,23 +187,21 @@ func CallCounts(proxyData model.ProxyData) (err error) {
date := time.Now().Format(config.LocalDateFormat)
session := db.NewSession()
session.Begin()
sql1 := fmt.Sprintf(`BEGIN WORK;
sql1 := fmt.Sprintf(`
LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE;
update service set request_count =request_count+1 where id = %d;
update service_apply set request_count =request_count+1 where id = %d;
COMMIT WORK; `, proxyData.Service_id, proxyData.Apply_id)
`, proxyData.Service_id, proxyData.Apply_id)
_, err = session.SQL(sql1).Execute()
if err != nil {
fmt.Println("error******service、service_apply更新失败:" + err.Error())
return
}
sql := fmt.Sprintf(`BEGIN WORK;
sql := fmt.Sprintf(`
LOCK TABLE service_daliy_count IN SHARE ROW EXCLUSIVE MODE;
INSERT INTO service_daliy_count ( service_id,date,count) VALUES
(%d,'%s',%d) ON conflict (service_id,date) DO
UPDATE SET count=(service_daliy_count.count+1);
COMMIT WORK;
UPDATE SET count=(service_daliy_count.count+1);
`, proxyData.Service_id, date, 1)
_, err = session.SQL(sql).Execute()
if err != nil {
......@@ -211,12 +209,11 @@ COMMIT WORK;
session.Rollback()
return
}
sql3 := fmt.Sprintf(`BEGIN WORK;
sql3 := fmt.Sprintf(`
LOCK TABLE service_count_person IN SHARE ROW EXCLUSIVE MODE;
INSERT INTO service_count_person ( user_id,date,count) VALUES
('%s','%s',%d) ON conflict (user_id,date) DO
UPDATE SET count=(service_count_person.count+1);
COMMIT WORK;
UPDATE SET count=(service_count_person.count+1);
`, proxyData.User_id, date, 1)
_, err = session.SQL(sql3).Execute()
if err != nil {
......@@ -259,7 +256,8 @@ func FiledFilter(proxyData model.ProxyData, respbody []byte) interface{} {
//返回申请字段
func Change(model interface{}, returnData interface{}) interface{} {
switch t := model.(type) {
//switch t := model.(type) {
switch model.(type) {
case map[string]interface{}:
// TODO 判定值是否相等
for k, v := range returnData.(map[string]interface{}) {
......@@ -307,13 +305,13 @@ func Change(model interface{}, returnData interface{}) interface{} {
break
default:
// TODO 判断old是否有这个值
fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
//fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
}
}
break
default:
fmt.Println("old=====new=====>: ", model, returnData)
fmt.Println("类型是*******>:", t)
//fmt.Println("old=====new=====>: ", model, returnData)
//fmt.Println("类型是*******>:", t)
}
return returnData
}
......@@ -348,7 +346,8 @@ func SensitiveFilter(proxyData model.ProxyData, res interface{}) interface{} {
// 过滤敏感字段
func FilterSensituveField(model interface{}, returnData interface{}) (body interface{}) {
switch t := model.(type) {
//switch t := model.(type) {
switch model.(type) {
case map[string]interface{}:
// TODO 判定值是否相等
for k, v := range returnData.(map[string]interface{}) {
......@@ -412,13 +411,13 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter
break
default:
// TODO 判断old是否有这个值
fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
//fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
}
}
break
default:
fmt.Println("old=====new=====>: ", model, returnData)
fmt.Println("类型是*******>:", t)
//fmt.Println("old=====new=====>: ", model, returnData)
//fmt.Println("类型是*******>:", t)
}
return returnData
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment