Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apaas-meshproxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gzga-jzapi
apaas-meshproxy
Commits
73ac0802
Commit
73ac0802
authored
Jul 01, 2020
by
张宇迪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
5fe39203
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
18 deletions
+35
-18
src/handler/proxyhandler.go
src/handler/proxyhandler.go
+18
-0
src/service/field.go
src/service/field.go
+17
-18
No files found.
src/handler/proxyhandler.go
View file @
73ac0802
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"compress/gzip"
"compress/gzip"
"encoding/json"
"encoding/json"
"errors"
"errors"
"fmt"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin"
"github.com/vulcand/oxy/forward"
"github.com/vulcand/oxy/forward"
"github.com/vulcand/oxy/testutils"
"github.com/vulcand/oxy/testutils"
...
@@ -14,11 +15,14 @@ import (
...
@@ -14,11 +15,14 @@ import (
"net/http"
"net/http"
"strconv"
"strconv"
"strings"
"strings"
"time"
)
)
//var Resp *http.Response
//var Resp *http.Response
func
Proxy
(
c
*
gin
.
Context
)
{
func
Proxy
(
c
*
gin
.
Context
)
{
appT
:=
time
.
Now
()
fmt
.
Println
(
`开始:`
,
appT
)
applyId
:=
c
.
Param
(
"applyId"
)
applyId
:=
c
.
Param
(
"applyId"
)
if
applyId
==
""
{
if
applyId
==
""
{
res
:=
model
.
WebRes
{}
res
:=
model
.
WebRes
{}
...
@@ -51,19 +55,31 @@ func Proxy(c *gin.Context) {
...
@@ -51,19 +55,31 @@ func Proxy(c *gin.Context) {
Return
(
nil
,
err
,
resp
)
Return
(
nil
,
err
,
resp
)
return
nil
return
nil
}
}
bT
:=
time
.
Now
()
fmt
.
Println
(
`开始获取数据:`
,
bT
)
respbody
,
_
:=
ioutil
.
ReadAll
(
resp
.
Body
)
respbody
,
_
:=
ioutil
.
ReadAll
(
resp
.
Body
)
var
res
interface
{}
var
res
interface
{}
res
=
respbody
res
=
respbody
eT
:=
time
.
Since
(
bT
)
fmt
.
Println
(
"获取数据: "
,
eT
)
//是否需要过滤字段
//是否需要过滤字段
if
proxyData
.
ResFields
!=
""
{
if
proxyData
.
ResFields
!=
""
{
bT
:=
time
.
Now
()
fmt
.
Println
(
`过滤:`
,
bT
)
res
=
service
.
FiledFilter
(
proxyData
,
respbody
)
res
=
service
.
FiledFilter
(
proxyData
,
respbody
)
eT
:=
time
.
Since
(
bT
)
fmt
.
Println
(
"过滤: "
,
eT
)
}
}
//是否需要屏蔽敏感字段
//是否需要屏蔽敏感字段
if
sensitiveflag
==
false
{
if
sensitiveflag
==
false
{
res
=
service
.
SensitiveFilter
(
proxyData
,
res
)
res
=
service
.
SensitiveFilter
(
proxyData
,
res
)
}
}
//计次
//计次
bgn
:=
time
.
Now
()
fmt
.
Println
(
`开始携程:`
,
bgn
)
go
service
.
CallCounts
(
proxyData
)
go
service
.
CallCounts
(
proxyData
)
end
:=
time
.
Since
(
bgn
)
fmt
.
Println
(
"结束携程: "
,
end
)
//err = service.CallCounts(proxyData)
//err = service.CallCounts(proxyData)
//if err != nil {
//if err != nil {
// Return(nil, err, resp)
// Return(nil, err, resp)
...
@@ -77,6 +93,8 @@ func Proxy(c *gin.Context) {
...
@@ -77,6 +93,8 @@ func Proxy(c *gin.Context) {
// return nil
// return nil
//}
//}
Return
(
res
,
nil
,
resp
)
Return
(
res
,
nil
,
resp
)
appeT
:=
time
.
Since
(
appT
)
fmt
.
Println
(
"结束: "
,
appeT
)
return
nil
return
nil
}))
}))
c
.
Request
.
URL
=
testutils
.
ParseURI
(
getProxyURL
(
proxyData
,
c
.
Request
))
c
.
Request
.
URL
=
testutils
.
ParseURI
(
getProxyURL
(
proxyData
,
c
.
Request
))
...
...
src/service/field.go
View file @
73ac0802
...
@@ -75,7 +75,7 @@ func GetExpire() time.Duration {
...
@@ -75,7 +75,7 @@ func GetExpire() time.Duration {
timeNumber
:=
zero
timeNumber
:=
zero
fmt
.
Println
(
"timeNumber:"
,
timeNumber
)
fmt
.
Println
(
"timeNumber:"
,
timeNumber
)
subMin
:=
now
.
Sub
(
zero
)
subMin
:=
now
.
Sub
(
zero
)
fmt
.
Println
(
subMin
.
Minutes
(),
"分钟"
)
//
fmt.Println(subMin.Minutes(), "分钟")
return
subMin
return
subMin
}
}
...
@@ -187,23 +187,21 @@ func CallCounts(proxyData model.ProxyData) (err error) {
...
@@ -187,23 +187,21 @@ func CallCounts(proxyData model.ProxyData) (err error) {
date
:=
time
.
Now
()
.
Format
(
config
.
LocalDateFormat
)
date
:=
time
.
Now
()
.
Format
(
config
.
LocalDateFormat
)
session
:=
db
.
NewSession
()
session
:=
db
.
NewSession
()
session
.
Begin
()
session
.
Begin
()
sql1
:=
fmt
.
Sprintf
(
`
BEGIN WORK;
sql1
:=
fmt
.
Sprintf
(
`
LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE;
LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE;
update service set request_count =request_count+1 where id = %d;
update service set request_count =request_count+1 where id = %d;
update service_apply set request_count =request_count+1 where id = %d;
update service_apply set request_count =request_count+1 where id = %d;
`
,
proxyData
.
Service_id
,
proxyData
.
Apply_id
)
COMMIT WORK; `
,
proxyData
.
Service_id
,
proxyData
.
Apply_id
)
_
,
err
=
session
.
SQL
(
sql1
)
.
Execute
()
_
,
err
=
session
.
SQL
(
sql1
)
.
Execute
()
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
"error******service、service_apply更新失败:"
+
err
.
Error
())
fmt
.
Println
(
"error******service、service_apply更新失败:"
+
err
.
Error
())
return
return
}
}
sql
:=
fmt
.
Sprintf
(
`
BEGIN WORK;
sql
:=
fmt
.
Sprintf
(
`
LOCK TABLE service_daliy_count IN SHARE ROW EXCLUSIVE MODE;
LOCK TABLE service_daliy_count IN SHARE ROW EXCLUSIVE MODE;
INSERT INTO service_daliy_count ( service_id,date,count) VALUES
INSERT INTO service_daliy_count ( service_id,date,count) VALUES
(%d,'%s',%d) ON conflict (service_id,date) DO
(%d,'%s',%d) ON conflict (service_id,date) DO
UPDATE SET count=(service_daliy_count.count+1);
UPDATE SET count=(service_daliy_count.count+1);
COMMIT WORK;
`
,
proxyData
.
Service_id
,
date
,
1
)
`
,
proxyData
.
Service_id
,
date
,
1
)
_
,
err
=
session
.
SQL
(
sql
)
.
Execute
()
_
,
err
=
session
.
SQL
(
sql
)
.
Execute
()
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -211,12 +209,11 @@ COMMIT WORK;
...
@@ -211,12 +209,11 @@ COMMIT WORK;
session
.
Rollback
()
session
.
Rollback
()
return
return
}
}
sql3
:=
fmt
.
Sprintf
(
`
BEGIN WORK;
sql3
:=
fmt
.
Sprintf
(
`
LOCK TABLE service_count_person IN SHARE ROW EXCLUSIVE MODE;
LOCK TABLE service_count_person IN SHARE ROW EXCLUSIVE MODE;
INSERT INTO service_count_person ( user_id,date,count) VALUES
INSERT INTO service_count_person ( user_id,date,count) VALUES
('%s','%s',%d) ON conflict (user_id,date) DO
('%s','%s',%d) ON conflict (user_id,date) DO
UPDATE SET count=(service_count_person.count+1);
UPDATE SET count=(service_count_person.count+1);
COMMIT WORK;
`
,
proxyData
.
User_id
,
date
,
1
)
`
,
proxyData
.
User_id
,
date
,
1
)
_
,
err
=
session
.
SQL
(
sql3
)
.
Execute
()
_
,
err
=
session
.
SQL
(
sql3
)
.
Execute
()
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -259,7 +256,8 @@ func FiledFilter(proxyData model.ProxyData, respbody []byte) interface{} {
...
@@ -259,7 +256,8 @@ func FiledFilter(proxyData model.ProxyData, respbody []byte) interface{} {
//返回申请字段
//返回申请字段
func
Change
(
model
interface
{},
returnData
interface
{})
interface
{}
{
func
Change
(
model
interface
{},
returnData
interface
{})
interface
{}
{
switch
t
:=
model
.
(
type
)
{
//switch t := model.(type) {
switch
model
.
(
type
)
{
case
map
[
string
]
interface
{}
:
case
map
[
string
]
interface
{}
:
// TODO 判定值是否相等
// TODO 判定值是否相等
for
k
,
v
:=
range
returnData
.
(
map
[
string
]
interface
{})
{
for
k
,
v
:=
range
returnData
.
(
map
[
string
]
interface
{})
{
...
@@ -307,13 +305,13 @@ func Change(model interface{}, returnData interface{}) interface{} {
...
@@ -307,13 +305,13 @@ func Change(model interface{}, returnData interface{}) interface{} {
break
break
default
:
default
:
// TODO 判断old是否有这个值
// TODO 判断old是否有这个值
fmt
.
Println
(
"数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: "
,
model
,
returnData
)
//
fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
}
}
}
}
break
break
default
:
default
:
fmt
.
Println
(
"old=====new=====>: "
,
model
,
returnData
)
//
fmt.Println("old=====new=====>: ", model, returnData)
fmt
.
Println
(
"类型是*******>:"
,
t
)
//
fmt.Println("类型是*******>:", t)
}
}
return
returnData
return
returnData
}
}
...
@@ -348,7 +346,8 @@ func SensitiveFilter(proxyData model.ProxyData, res interface{}) interface{} {
...
@@ -348,7 +346,8 @@ func SensitiveFilter(proxyData model.ProxyData, res interface{}) interface{} {
// 过滤敏感字段
// 过滤敏感字段
func
FilterSensituveField
(
model
interface
{},
returnData
interface
{})
(
body
interface
{})
{
func
FilterSensituveField
(
model
interface
{},
returnData
interface
{})
(
body
interface
{})
{
switch
t
:=
model
.
(
type
)
{
//switch t := model.(type) {
switch
model
.
(
type
)
{
case
map
[
string
]
interface
{}
:
case
map
[
string
]
interface
{}
:
// TODO 判定值是否相等
// TODO 判定值是否相等
for
k
,
v
:=
range
returnData
.
(
map
[
string
]
interface
{})
{
for
k
,
v
:=
range
returnData
.
(
map
[
string
]
interface
{})
{
...
@@ -412,13 +411,13 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter
...
@@ -412,13 +411,13 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter
break
break
default
:
default
:
// TODO 判断old是否有这个值
// TODO 判断old是否有这个值
fmt
.
Println
(
"数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: "
,
model
,
returnData
)
//
fmt.Println("数组类型 |||||||||||||||||||||||||||||||| old=====new=====>: ", model, returnData)
}
}
}
}
break
break
default
:
default
:
fmt
.
Println
(
"old=====new=====>: "
,
model
,
returnData
)
//
fmt.Println("old=====new=====>: ", model, returnData)
fmt
.
Println
(
"类型是*******>:"
,
t
)
//
fmt.Println("类型是*******>:", t)
}
}
return
returnData
return
returnData
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment