Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
90560737
Commit
90560737
authored
Apr 03, 2020
by
王昆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gsb
parent
7029e472
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
849 additions
and
217 deletions
+849
-217
xgg-saas-platform/app/base/controller/impl/trade/tradeCtl.js
+71
-0
xgg-saas-platform/app/base/service/impl/saas/merchantSve.js
+5
-0
xgg-saas-platform/app/base/service/impl/trade/tradeSve.js
+107
-0
xgg-saas-platform/app/base/system.js
+225
-217
xgg-saas-platform/app/front/entry/public/apidoc/saas/trade.md
+441
-0
No files found.
xgg-saas-platform/app/base/controller/impl/trade/tradeCtl.js
0 → 100644
View file @
90560737
var
system
=
require
(
"../../../system"
)
const
CtlBase
=
require
(
"../../ctlms.base"
);
class
TradeCtl
extends
CtlBase
{
constructor
()
{
super
();
this
.
tradeSve
=
system
.
getObject
(
"service.trade.tradeSve"
);
this
.
redisClient
=
system
.
getObject
(
"util.redisClient"
);
}
async
orderPage
(
params
,
pobj2
,
req
)
{
try
{
this
.
doTimeCondition
(
params
,
[
"createBegin"
,
"createEnd"
]);
return
await
this
.
tradeSve
.
orderPage
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
orderInfo
(
params
,
pobj2
,
req
)
{
try
{
return
await
this
.
tradeSve
.
orderInfo
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
itemPage
(
params
,
pobj2
,
req
)
{
try
{
this
.
doTimeCondition
(
params
,
[
"createBegin"
,
"createEnd"
]);
return
await
this
.
tradeSve
.
itemPage
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
audit1
(
params
,
pobj2
,
req
)
{
try
{
return
await
this
.
tradeSve
.
audit1
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
audit2
(
params
,
pobj2
,
req
)
{
try
{
return
await
this
.
tradeSve
.
audit2
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
trade
(
params
,
pobj2
,
req
)
{
try
{
return
await
this
.
tradeSve
.
trade
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
async
tradeFeedBack
(
params
,
pobj2
,
req
)
{
try
{
return
await
this
.
tradeSve
.
tradeFeedBack
(
params
);
}
catch
(
error
)
{
return
system
.
getResult
(
null
,
`系统错误 错误信息
${
error
}
`
);
}
}
}
module
.
exports
=
TradeCtl
;
\ No newline at end of file
xgg-saas-platform/app/base/service/impl/saas/merchantSve.js
View file @
90560737
...
...
@@ -8,6 +8,11 @@ class MerchantService extends ServiceBase {
this
.
mainSve
=
system
.
getObject
(
"service.saas.mainSve"
);
}
async
idsLikeName
(
params
)
{
var
rs
=
await
this
.
callms
(
"merchant"
,
"mchtIdsLikeName"
,
params
||
{});
return
rs
;
}
async
mapByIds
(
params
)
{
var
rs
=
await
this
.
callms
(
"merchant"
,
"mchtMapByIds"
,
params
||
{});
return
rs
;
...
...
xgg-saas-platform/app/base/service/impl/trade/tradeSve.js
0 → 100644
View file @
90560737
const
system
=
require
(
"../../../system"
);
const
ServiceBase
=
require
(
"../../svems.base"
);
const
settings
=
require
(
"../../../../config/settings"
);
class
TradeService
extends
ServiceBase
{
constructor
()
{
super
();
this
.
businessmenSve
=
system
.
getObject
(
"service.business.businessmenSve"
);
this
.
merchantSve
=
system
.
getObject
(
"service.saas.merchantSve"
);
this
.
redisClient
=
system
.
getObject
(
"util.redisClient"
);
}
async
orderPage
(
params
)
{
params
.
currentPage
=
Number
(
params
.
currentPage
||
1
);
params
.
pageSize
=
Number
(
params
.
pageSize
||
10
);
let
res
=
await
this
.
setMerchantIdsByName
(
params
);
if
(
res
.
status
!==
0
)
{
return
system
.
getResultSuccess
({
count
:
0
,
rows
:
[]});
}
let
rs
=
await
this
.
callms
(
"trade"
,
"orderPage"
,
params
)
||
{};
if
(
rs
.
data
&&
rs
.
data
.
rows
)
{
this
.
transFields
(
rs
.
data
.
rows
);
}
return
rs
;
}
async
orderInfo
(
params
)
{
let
rs
=
await
this
.
callms
(
"trade"
,
"orderInfo"
,
params
)
||
{};
let
order
=
rs
.
data
;
if
(
order
)
{
this
.
transFields
([
order
]);
let
merchant
=
await
this
.
merchantSve
.
info
({
id
:
order
.
saas_merchant_id
})
||
{};
merchant
=
merchant
.
data
||
{};
order
.
merchant_name
=
merchant
.
name
;
}
return
rs
;
}
async
setMerchantIdsByName
(
params
)
{
let
merchantName
=
this
.
trim
(
params
.
merchant_name
);
if
(
merchantName
)
{
let
merchantIds
=
await
this
.
merchantSve
.
idsLikeName
({
name
:
merchantName
,
saas_id
:
this
.
trim
(
params
.
saas_id
),
saas_merchant_id
:
this
.
trim
(
params
.
saas_merchant_id
),
})
||
{};
if
(
!
merchantIds
||
!
merchantIds
.
data
||
merchantIds
.
data
.
length
==
0
)
{
return
system
.
getResult
(
null
);
}
params
.
saas_merchant_ids
=
merchantIds
.
data
;
}
return
system
.
getResultSuccess
();
}
async
itemPage
(
params
)
{
params
=
params
||
{};
params
.
currentPage
=
Number
(
params
.
currentPage
||
1
);
params
.
pageSize
=
Number
(
params
.
pageSize
||
10
);
let
res
=
await
this
.
setMerchantIdsByName
(
params
);
if
(
res
.
status
!==
0
)
{
return
system
.
getResultSuccess
({
count
:
0
,
rows
:
[]});
}
let
rs
=
await
this
.
callms
(
"trade"
,
"itemPage"
,
params
)
||
{};
if
(
rs
.
data
&&
rs
.
data
.
rows
)
{
this
.
transFields
(
rs
.
data
.
rows
);
}
return
rs
;
}
async
audit1
(
params
)
{
let
rs
=
await
this
.
callms
(
"trade"
,
"orderAudit1"
,
params
)
||
{};
return
rs
;
}
async
audit2
(
params
)
{
let
rs
=
await
this
.
callms
(
"trade"
,
"orderAudit2"
,
params
)
||
{};
return
rs
;
}
async
trade
(
params
)
{
let
rs
=
await
this
.
callms
(
"trade"
,
"orderTrade"
,
params
)
||
{};
return
rs
;
}
async
tradeFeedBack
(
params
)
{
let
rs
=
await
this
.
callms
(
"trade"
,
"itemTradeOfflineCB"
,
params
)
||
{};
return
rs
;
}
transFields
(
rows
)
{
if
(
!
rows
||
rows
.
length
==
0
)
{
return
;
}
for
(
let
row
of
rows
)
{
row
.
amt
=
system
.
f2y
(
row
.
amt
);
row
.
actual_amt
=
system
.
f2y
(
row
.
actual_amt
);
row
.
deduct_amt
=
system
.
f2y
(
row
.
deduct_amt
);
row
.
service_tax
=
system
.
f2y
(
row
.
service_tax
);
row
.
service_rate
=
system
.
f2y
(
row
.
service_rate
);
}
}
}
module
.
exports
=
TradeService
;
\ No newline at end of file
xgg-saas-platform/app/base/system.js
View file @
90560737
var
fs
=
require
(
"fs"
);
var
objsettings
=
require
(
"../config/objsettings"
);
var
settings
=
require
(
"../config/settings"
);
class
System
{
static
declare
(
ns
)
{
var
ar
=
ns
.
split
(
'.'
);
var
root
=
System
;
for
(
var
i
=
0
,
len
=
ar
.
length
;
i
<
len
;
++
i
)
{
var
n
=
ar
[
i
];
if
(
!
root
[
n
])
{
root
[
n
]
=
{};
root
=
root
[
n
];
}
else
{
root
=
root
[
n
];
}
}
}
static
register
(
key
,
ClassObj
)
{
if
(
System
.
objTable
[
key
]
!=
null
)
{
throw
new
Error
(
"相同key的对象已经存在"
);
}
else
{
let
obj
=
new
ClassObj
();
System
.
objTable
[
key
]
=
obj
;
}
return
System
.
objTable
[
key
];
}
static
getResult
(
data
,
opmsg
=
"操作成功"
,
req
)
{
return
{
status
:
!
data
?
-
1
:
0
,
msg
:
opmsg
,
data
:
data
||
null
,
bizmsg
:
req
&&
req
.
session
&&
req
.
session
.
bizmsg
?
req
.
session
.
bizmsg
:
"empty"
};
}
/**
* 请求返回成功
* @param {*} data 操作成功返回的数据
* @param {*} okmsg 操作成功的描述
*/
static
getResultSuccess
(
data
,
okmsg
=
"success"
)
{
return
{
status
:
0
,
msg
:
okmsg
,
data
:
data
||
null
,
};
}
/**
* 请求返回失败
* @param {*} status 操作失败状态,默认为-1
* @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据
*/
static
getResultFail
(
status
=
-
1
,
errmsg
=
"fail"
,
data
=
null
)
{
return
{
status
:
status
,
msg
:
errmsg
,
data
:
data
,
};
}
static
getObject
(
objpath
)
{
var
pathArray
=
objpath
.
split
(
"."
);
var
packageName
=
pathArray
[
0
];
var
groupName
=
pathArray
[
1
];
var
filename
=
pathArray
[
2
];
var
classpath
=
""
;
if
(
filename
)
{
classpath
=
objsettings
[
packageName
]
+
"/"
+
groupName
;
}
else
{
classpath
=
objsettings
[
packageName
];
filename
=
groupName
;
}
var
objabspath
=
classpath
+
"/"
+
filename
+
".js"
;
if
(
System
.
objTable
[
objabspath
]
!=
null
)
{
console
.
log
(
"get cached obj"
);
return
System
.
objTable
[
objabspath
];
}
else
{
console
.
log
(
"no cached..."
);
var
ClassObj
=
require
(
objabspath
);
return
System
.
register
(
objabspath
,
ClassObj
);
}
}
static
getUiConfig
(
appid
)
{
var
configPath
=
settings
.
basepath
+
"/app/base/db/metadata/"
+
appid
+
"/index.js"
;
if
(
settings
.
env
==
"dev"
)
{
delete
require
.
cache
[
configPath
];
}
var
configValue
=
require
(
configPath
);
return
configValue
;
}
static
getUiConfig2
(
appid
)
{
var
configPath
=
settings
.
basepath
+
"/app/base/db/metadata/index.js"
;
// if(settings.env=="dev"){
// console.log("delete "+configPath+"cache config");
// delete require.cache[configPath];
// }
delete
require
.
cache
[
configPath
];
var
configValue
=
require
(
configPath
);
return
configValue
[
appid
];
}
static
get_client_ip
(
req
)
{
var
ip
=
req
.
headers
[
'x-forwarded-for'
]
||
req
.
ip
||
req
.
connection
.
remoteAddress
||
req
.
socket
.
remoteAddress
||
(
req
.
connection
.
socket
&&
req
.
connection
.
socket
.
remoteAddress
)
||
''
;
var
x
=
ip
.
match
(
/
(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
])\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
]
|0
)\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
]
|0
)\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
0-9
])
$/
);
if
(
x
)
{
return
x
[
0
];
}
else
{
return
"localhost"
;
}
};
static
y2f
(
y
)
{
if
(
!
y
)
{
return
0
;
}
return
(
Number
(
y
)
*
100
).
toFixed
(
0
);
}
static
f2y
(
f
)
{
if
(
!
f
)
{
return
0
;
}
return
parseFloat
((
Number
(
f
)
/
100
).
toFixed
(
2
));
}
static
f2y4list
(
list
,
fields
,
prev
)
{
if
(
!
list
||
list
.
length
==
0
||
!
fields
||
fields
.
length
==
0
)
{
return
;
}
prev
=
prev
||
""
;
for
(
var
item
of
list
)
{
for
(
var
f
of
fields
)
{
var
v
=
item
[
f
]
||
0
;
try
{
item
[
f
+
"_y"
]
=
prev
+
parseFloat
((
Number
(
v
)
/
100
).
toFixed
(
2
));
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
}
}
static
getUid
(
len
,
radix
)
{
var
chars
=
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
.
split
(
''
);
var
uuid
=
[],
i
;
radix
=
radix
||
chars
.
length
;
if
(
len
)
{
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
}
else
{
var
r
;
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
uuid
[
14
]
=
'4'
;
for
(
i
=
0
;
i
<
36
;
i
++
)
{
if
(
!
uuid
[
i
])
{
r
=
0
|
Math
.
random
()
*
16
;
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
}
}
}
return
uuid
.
join
(
''
);
}
static
microsetting
()
{
console
.
log
(
settings
.
env
,
"-------------- microsetting env ------------------"
);
var
path
=
"/api/op/action/springboard"
;
if
(
settings
.
env
==
"dev"
)
{
// var domain = "http://192.168.18.237";
let
local
=
"http://127.0.0.1"
;
let
dev
=
"http://39.107.234.14"
;
return
{
// 公共服务
common
:
dev
+
":3102"
+
path
,
// common: "http://127.0.0.1:3102" + path,
// 商户服务
merchant
:
dev
+
":3101"
+
path
,
// merchant: "http://127.0.0.1:3101" + path,
// 订单服务
order
:
dev
+
":3103"
+
path
,
// order: "http://127.0.0.1:3103" + path,
// 发票服务
invoice
:
dev
+
":3105"
+
path
,
// invoice: "http://127.0.0.1:3105" + path,
// 用户服务
uc
:
dev
+
":3106"
+
path
,
// uc: "http://127.0.0.1:3106" + path,
}
}
else
{
var
odomain
=
"http://123.57.217.203"
return
{
common
:
"xggsvecommon-service"
+
path
,
merchant
:
"xggsvemerchant-service"
+
path
,
order
:
"xggsveorder-service"
+
path
,
invoice
:
"xggsveinvoice-service"
+
path
,
uc
:
"xggsveuc-service"
+
path
,
}
}
}
static
declare
(
ns
)
{
var
ar
=
ns
.
split
(
'.'
);
var
root
=
System
;
for
(
var
i
=
0
,
len
=
ar
.
length
;
i
<
len
;
++
i
)
{
var
n
=
ar
[
i
];
if
(
!
root
[
n
])
{
root
[
n
]
=
{};
root
=
root
[
n
];
}
else
{
root
=
root
[
n
];
}
}
}
static
register
(
key
,
ClassObj
)
{
if
(
System
.
objTable
[
key
]
!=
null
)
{
throw
new
Error
(
"相同key的对象已经存在"
);
}
else
{
let
obj
=
new
ClassObj
();
System
.
objTable
[
key
]
=
obj
;
}
return
System
.
objTable
[
key
];
}
static
getResult
(
data
,
opmsg
=
"操作成功"
,
req
)
{
return
{
status
:
!
data
?
-
1
:
0
,
msg
:
opmsg
,
data
:
data
||
null
,
bizmsg
:
req
&&
req
.
session
&&
req
.
session
.
bizmsg
?
req
.
session
.
bizmsg
:
"empty"
};
}
/**
* 请求返回成功
* @param {*} data 操作成功返回的数据
* @param {*} okmsg 操作成功的描述
*/
static
getResultSuccess
(
data
,
okmsg
=
"success"
)
{
return
{
status
:
0
,
msg
:
okmsg
,
data
:
data
||
null
,
};
}
/**
* 请求返回失败
* @param {*} status 操作失败状态,默认为-1
* @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据
*/
static
getResultFail
(
status
=
-
1
,
errmsg
=
"fail"
,
data
=
null
)
{
return
{
status
:
status
,
msg
:
errmsg
,
data
:
data
,
};
}
static
getObject
(
objpath
)
{
var
pathArray
=
objpath
.
split
(
"."
);
var
packageName
=
pathArray
[
0
];
var
groupName
=
pathArray
[
1
];
var
filename
=
pathArray
[
2
];
var
classpath
=
""
;
if
(
filename
)
{
classpath
=
objsettings
[
packageName
]
+
"/"
+
groupName
;
}
else
{
classpath
=
objsettings
[
packageName
];
filename
=
groupName
;
}
var
objabspath
=
classpath
+
"/"
+
filename
+
".js"
;
if
(
System
.
objTable
[
objabspath
]
!=
null
)
{
console
.
log
(
"get cached obj"
);
return
System
.
objTable
[
objabspath
];
}
else
{
console
.
log
(
"no cached..."
);
var
ClassObj
=
require
(
objabspath
);
return
System
.
register
(
objabspath
,
ClassObj
);
}
}
static
getUiConfig
(
appid
)
{
var
configPath
=
settings
.
basepath
+
"/app/base/db/metadata/"
+
appid
+
"/index.js"
;
if
(
settings
.
env
==
"dev"
)
{
delete
require
.
cache
[
configPath
];
}
var
configValue
=
require
(
configPath
);
return
configValue
;
}
static
getUiConfig2
(
appid
)
{
var
configPath
=
settings
.
basepath
+
"/app/base/db/metadata/index.js"
;
// if(settings.env=="dev"){
// console.log("delete "+configPath+"cache config");
// delete require.cache[configPath];
// }
delete
require
.
cache
[
configPath
];
var
configValue
=
require
(
configPath
);
return
configValue
[
appid
];
}
static
get_client_ip
(
req
)
{
var
ip
=
req
.
headers
[
'x-forwarded-for'
]
||
req
.
ip
||
req
.
connection
.
remoteAddress
||
req
.
socket
.
remoteAddress
||
(
req
.
connection
.
socket
&&
req
.
connection
.
socket
.
remoteAddress
)
||
''
;
var
x
=
ip
.
match
(
/
(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
])\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
]
|0
)\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
1-9
]
|0
)\.(
25
[
0-5
]
|2
[
0-4
][
0-9
]
|
[
0-1
]{1}[
0-9
]{2}
|
[
1-9
]{1}[
0-9
]{1}
|
[
0-9
])
$/
);
if
(
x
)
{
return
x
[
0
];
}
else
{
return
"localhost"
;
}
};
static
y2f
(
y
)
{
if
(
!
y
)
{
return
0
;
}
return
(
Number
(
y
)
*
100
).
toFixed
(
0
);
}
static
f2y
(
f
)
{
if
(
!
f
)
{
return
0
;
}
return
parseFloat
((
Number
(
f
)
/
100
).
toFixed
(
2
));
}
static
f2y4list
(
list
,
fields
,
prev
)
{
if
(
!
list
||
list
.
length
==
0
||
!
fields
||
fields
.
length
==
0
)
{
return
;
}
prev
=
prev
||
""
;
for
(
var
item
of
list
)
{
for
(
var
f
of
fields
)
{
var
v
=
item
[
f
]
||
0
;
try
{
item
[
f
+
"_y"
]
=
prev
+
parseFloat
((
Number
(
v
)
/
100
).
toFixed
(
2
));
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
}
}
static
getUid
(
len
,
radix
)
{
var
chars
=
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
.
split
(
''
);
var
uuid
=
[],
i
;
radix
=
radix
||
chars
.
length
;
if
(
len
)
{
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
}
else
{
var
r
;
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
uuid
[
14
]
=
'4'
;
for
(
i
=
0
;
i
<
36
;
i
++
)
{
if
(
!
uuid
[
i
])
{
r
=
0
|
Math
.
random
()
*
16
;
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
}
}
}
return
uuid
.
join
(
''
);
}
static
microsetting
()
{
console
.
log
(
settings
.
env
,
"-------------- microsetting env ------------------"
);
var
path
=
"/api/op/action/springboard"
;
if
(
settings
.
env
==
"dev"
)
{
let
local
=
"http://127.0.0.1"
;
let
dev
=
"http://39.107.234.14"
;
return
{
// 公共服务
common
:
dev
+
":3102"
+
path
,
// 商户服务
merchant
:
dev
+
":3101"
+
path
,
// 订单服务
order
:
dev
+
":3103"
+
path
,
// 发票服务
invoice
:
dev
+
":3105"
+
path
,
// 用户服务
uc
:
dev
+
":3106"
+
path
,
// 交易
trade
:
local
+
":3107"
+
path
,
}
}
else
{
return
{
common
:
"xggsvecommon-service"
+
path
,
merchant
:
"xggsvemerchant-service"
+
path
,
order
:
"xggsveorder-service"
+
path
,
invoice
:
"xggsveinvoice-service"
+
path
,
uc
:
"xggsveuc-service"
+
path
,
trade
:
"xggsvetrade-service"
+
path
,
}
}
}
}
Date
.
prototype
.
Format
=
function
(
fmt
)
{
//author: meizz
var
o
=
{
"M+"
:
this
.
getMonth
()
+
1
,
//月份
"d+"
:
this
.
getDate
(),
//日
"h+"
:
this
.
getHours
(),
//小时
"m+"
:
this
.
getMinutes
(),
//分
"s+"
:
this
.
getSeconds
(),
//秒
"q+"
:
Math
.
floor
((
this
.
getMonth
()
+
3
)
/
3
),
//季度
"S"
:
this
.
getMilliseconds
()
//毫秒
};
if
(
/
(
y+
)
/
.
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
this
.
getFullYear
()
+
""
).
substr
(
4
-
RegExp
.
$1
.
length
));
for
(
var
k
in
o
)
if
(
new
RegExp
(
"("
+
k
+
")"
).
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
RegExp
.
$1
.
length
==
1
)
?
(
o
[
k
])
:
((
"00"
+
o
[
k
]).
substr
((
""
+
o
[
k
]).
length
)));
return
fmt
;
var
o
=
{
"M+"
:
this
.
getMonth
()
+
1
,
//月份
"d+"
:
this
.
getDate
(),
//日
"h+"
:
this
.
getHours
(),
//小时
"m+"
:
this
.
getMinutes
(),
//分
"s+"
:
this
.
getSeconds
(),
//秒
"q+"
:
Math
.
floor
((
this
.
getMonth
()
+
3
)
/
3
),
//季度
"S"
:
this
.
getMilliseconds
()
//毫秒
};
if
(
/
(
y+
)
/
.
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
this
.
getFullYear
()
+
""
).
substr
(
4
-
RegExp
.
$1
.
length
));
for
(
var
k
in
o
)
if
(
new
RegExp
(
"("
+
k
+
")"
).
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
RegExp
.
$1
.
length
==
1
)
?
(
o
[
k
])
:
((
"00"
+
o
[
k
]).
substr
((
""
+
o
[
k
]).
length
)));
return
fmt
;
}
System
.
objTable
=
{};
//访问token失效,请重新获取
...
...
xgg-saas-platform/app/front/entry/public/apidoc/saas/trade.md
0 → 100644
View file @
90560737
<a
name=
"menu"
>
目录
</a>
1.
[
批量打款列表
](
#orderPage
)
1.
[
查看详情
](
#orderInfo
)
1.
[
一审
](
#audit1
)
1.
[
二审
](
#audit2
)
1.
[
二审
](
#audit2
)
1.
[
结果反馈
](
#tradeFeedBack
)
## **<a name="orderPage"> 批量打款列表</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/orderPage
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
按钮显示规则
一审:
check_status
==
'01'
二审:
check_status
==
'03'
打款:
check_status
==
'05'
&&
trade_mode
==
'00'
打款结果:
check_status
==
'05'
&&
trade_mode
!=
'00'
查看详情:
全部
{
"currentPage"
:
"1"
,
"pageSize"
:
"10"
,
"merchant_name"
:
"1"
,
// 商户名称
"out_trade_no"
:
""
,
// 商户订单号
"trade_status"
:
""
,
// 交易状态 00成功 01待处理 02失败 03部分成功
"check_status"
:
""
,
// 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05审核通过
"createBegin"
:
""
,
// 创建时间-开始 可以只选开始,也可以只选结束,格式:2020-04-03
"createEnd"
:
""
// 创建时间-结束
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:
{
"count"
:
21
,
"rows"
:
[
{
"id"
:
"1298463038002876"
,
// id
"out_trade_no"
:
"13695922219233720"
,
// 商户订单号
"service_rate"
:
0
,
// 服务费比率
"created_at"
:
"2020-04-02 14:16:21"
,
// 创建时间
"item_count"
:
4
,
// 打款记录
"amt"
:
131083.32
,
// 商户请求打款金额
"actual_amt"
:
131083.32
,
// 实发金额
"service_tax"
:
2621.66
,
// 服务费
"deduct_amt"
:
128535.56
,
// 总扣款金额
"check_status"
:
"00"
,
// 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05二审通过
"check_status_name"
:
"待处理"
,
// 审核状态名称
"trade_status"
:
"01"
,
// 打款状态 00成功 01待处理 02失败 03部分成功
"trade_status_name"
:
"待处理"
,
// 打款状态名称
"pay_voucher"
:
""
,
// 支付凭证图
"acc_type"
:
"00"
,
// 打款通道
"acc_type_name"
:
"银行"
,
// 打款通道名称
"trade_mode"
:
"00"
,
// 打款模式 00未设置 01系统打款 02手工打款
"trade_mode_name"
:
"未设置"
,
// 打款模式名称
"check1_remark"
:
""
,
// 一审备注
"check2_remark"
:
""
,
// 二审备注
"pay_bank_account"
:
"111xxx"
,
// 订单付款账户名称
"pay_bank_name"
:
"1231234"
,
// 订单付款开户银行
"pay_bank_no"
:
"123456"
// 订单付款银行账户
}
]
},
"requestid"
:
"09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="parseItems"> 上传数据</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/parseItems
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
// 上传文件地址
"fileUrl"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_273315857206750512020113575551testbank2.xlsx"
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:
{
"actual_amt"
:
"131083.32"
,
// 实发总额
"deduct_amt"
:
"133704.99"
,
// 扣除总额
"service_tax"
:
"2621.67"
,
// 服务费
"error"
:
false
,
// 上传文件是否有错误 false没有,true有错误
"itemList"
:
[
{
"errors"
:
[
// 错误信息数组,多条,都在页面展示吧
"错误信息1"
,
"错误信息2"
,
],
"acc_name"
:
"11"
,
// 收款户名
"credit_code"
:
"92321311MA205KN92J"
,
// 统一社会信用代码
"acc_no"
:
"3"
,
// 收款账号
"open_bank"
:
"4"
,
// 开户银行
"amt"
:
"5"
,
// 请求打款金额
"remark"
:
"6"
,
// 备注
// ※※※※※※※※ 以下字段不允许编辑 ※※※※※※※※※※※
"service_tax"
:
"0.10"
,
// 服务费
"actual_amt"
:
"5.00"
,
// 实发金额
"deduct_amt"
:
"5.10"
// 扣除金额
},
]
}
}
```
## **<a name="lockOrder"> 锁定批次</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/lockOrder
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"acc_type"
:
"00"
,
"fileUrl"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_273315857206750512020113575551testbank2.xlsx"
,
"itemList"
:
[
{
"errors"
:
[
// 错误信息数组,多条,都在页面展示吧
"错误信息1"
,
"错误信息2"
,
],
"acc_name"
:
"11"
,
// 收款户名
"credit_code"
:
"92321311MA205KN92J"
,
// 统一社会信用代码
"acc_no"
:
"3"
,
// 收款账号
"open_bank"
:
"4"
,
// 开户银行
"open_bank"
:
"4"
,
// 开户银行
"amt"
:
"5"
,
// 请求打款金额
"remark"
:
"6"
,
// 备注
// ※※※※※※※※ 以下字段不允许编辑 ※※※※※※※※※※※
"service_tax"
:
"0.10"
,
// 服务费
"actual_amt"
:
"5.00"
,
// 实发金额
"deduct_amt"
:
"5.10"
// 扣除金额
},
]
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"操作成功"
,
"data"
:
{
"id"
:
"1298533711001487"
,
// 订单id
"out_trade_no"
:
"13695851544002235"
,
// 商户订单号
"amt"
:
131083.32
,
// 总请求打款金额
"actual_amt"
:
131083.32
,
// 总实发金额
"deduct_amt"
:
128535.56
,
// 总扣除金额 应付金额 X 元
"service_tax"
:
2621.66
,
// 总服务费
"item_count"
:
4
,
// 明细订单数量 总计 X 比交易
"acc_type"
:
"00"
,
"pay_bank_account"
:
"111xxx"
,
// 账户名称
"pay_bank_name"
:
"1231234"
,
// 开户银行
"pay_bank_no"
:
"123456"
// 银行账户
},
"bizmsg"
:
"empty"
}
```
## **<a name="offlinePay"> 付款申请</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/offlinePay
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"id"
:
"1298475347002331"
,
// 订单id,锁定批次时返回的id(列表中也有返回)
"pay_voucher"
:
"https://gsb........"
// 付款凭证
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:
null
,
"requestid"
:
"b46e1ff5176143ffa4135a357f93d757"
}
```
## **<a name="orderInfo"> 查看详情</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/orderInfo
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"id"
:
"1"
,
// id
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:
{
"count"
:
21
,
"rows"
:
[
{
"id"
:
"1298463038002876"
,
// id
"merchant_name"
:
"13695922219233720"
,
// 商户名称
"out_trade_no"
:
"13695922219233720"
,
// 商户订单号
"service_rate"
:
0
,
// 服务费比率
"created_at"
:
"2020-04-02 14:16:21"
,
// 创建时间
"item_count"
:
4
,
// 打款记录
"amt"
:
131083.32
,
// 商户请求打款金额
"actual_amt"
:
131083.32
,
// 实发金额
"service_tax"
:
2621.66
,
// 服务费
"deduct_amt"
:
128535.56
,
// 总扣款金额
"check_status"
:
"00"
,
// 审核状态 00待处理 01一审 02一审失败 03二审 04二审失败 05二审通过
"check_status_name"
:
"待处理"
,
// 审核状态名称
"trade_status"
:
"01"
,
// 打款状态 00成功 01待处理 02失败 03部分成功
"trade_status_name"
:
"待处理"
,
// 打款状态名称
"pay_voucher"
:
""
,
// 支付凭证图
"acc_type"
:
"00"
,
// 打款通道
"acc_type_name"
:
"银行"
,
// 打款通道名称
"trade_mode"
:
"00"
,
// 打款模式 00未设置 01系统打款 02手工打款
"trade_mode_name"
:
"未设置"
,
// 打款模式名称
"check1_remark"
:
""
,
// 一审备注
"check2_remark"
:
""
,
// 二审备注
"pay_bank_account"
:
"111xxx"
,
// 订单付款账户名称
"pay_bank_name"
:
"1231234"
,
// 订单付款开户银行
"pay_bank_no"
:
"123456"
// 订单付款银行账户
}
]
},
"requestid"
:
"09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="audit1"> 一审</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/audit1
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"id"
:
"1"
,
// id
"status"
:
1
,
// 审核状态 1通过 0驳回
"remark"
:
"xpxpxpxpx"
// 审核备注
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"requestid"
:
"09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="audit2"> 二审</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/audit2
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"id"
:
"1"
,
// id
"status"
:
1
,
// 审核状态 1通过 0驳回
"remark"
:
"xpxpxpxpx"
// 审核备注
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"requestid"
:
"09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="tradeFeedBack"> 结果反馈</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/tradeFeedBack
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"order_id"
:
"1298386120003945"
,
// 订单id
"item_ids"
:
[
// 选择产品ids
1001496
,
1001497
],
"trade_time"
:
"2020-04-03 12:55:11"
,
// 交易时间
"trade_desc"
:
"上面几把玩意"
// 交易描述
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"requestid"
:
"09cd6abe34da475cb676b550ff9b282d"
}
```
## **<a name="itemPage"> 交易列表</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/trade/tradeCtl/itemPage
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
```
javascript
{
"currentPage"
:
1
,
"pageSize"
:
10
,
"out_trade_no"
:
""
,
// 商户订单号
"acc_name"
:
""
,
// 收款户名
"acc_no"
:
""
,
// 收款账户
"credit_code"
:
""
,
// 信用代码
"trade_status"
:
""
,
// 交易状态 00成功 01待处理 02失败
"createBegin"
:
""
,
// 创建时间-开始 可以只选开始,也可以只选结束,格式:2020-04-03
"createEnd"
:
""
// 创建时间-结束
"order_id"
:
"1298534682000884"
,
// 订单id,查订单详情时,使用这个字段过滤
}
```
#### 返回结果
```
javascript
{
"status": 0,
"msg": "success",
"data": {
"count": 1493,
"rows":
[
{
"id": "1298463038002876", // id
"trade_no": "T10014949456718", // 打款编号
"acc_name": "11", // 收款户名
"acc_no": "3", // 收款账号
"trade_status": "01", // 交易状态
"trade_status_name": "待处理", // 交易状态名称
"trade_desc": "", // 交易描述
"trade_receipt": "", // 回执图片,判断为空时不显示按钮
"amt": 131083.32, // 商户请求打款金额
"actual_amt": 131083.32, // 实发金额
"service_tax": 2621.66, // 服务费
"deduct_amt": 128535.56, // 总扣款金额
"credit_code": "92321311MA205KN92J", // 信用代码
"out_trade_no": "13695922219233720", // 商户订单号
"created_at": "2020-04-03 11:38:19", // 创建时间
"order_id": "1298386120003945", // 订单id
"open_bank": "4", // 开户行全称
"trade_time": null, // 交易时间
"remark": "6", // 打款备注
"service_rate": 0, // 服务费比率
}
]
},
"requestid": "d14ae10263ec45ab8cd3be23ab59faf2"
}
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