Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-sportstest
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
xiamai-test
xm-sportstest
Commits
f416d753
Commit
f416d753
authored
Oct 13, 2025
by
yangfangfang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加先享后付违约金相关case
parent
a30bbbd6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
2 deletions
+139
-2
src/main/java/com/xiaomai/cases/polar/finance/order/TestSignOrderAxf.java
+139
-2
No files found.
src/main/java/com/xiaomai/cases/polar/finance/order/TestSignOrderAxf.java
View file @
f416d753
...
...
@@ -43,8 +43,8 @@ public class TestSignOrderAxf extends BaseTestImpl {
}
@Test
public
void
testSignOrderAxf
(){
@Test
(
description
=
"创建先享后付订单_无违约金"
)
public
void
testSignOrderAxf
_noBreakCosts
(){
String
memberId
=
""
;
// 查询存量的学员没有则创建学员
...
...
@@ -172,4 +172,141 @@ public class TestSignOrderAxf extends BaseTestImpl {
orderTools
.
discard
(
getDetailId
,
"重复录入"
,
"作废订单"
);
}
@Test
(
description
=
"创建先享后付订单_有违约金"
)
public
void
testSignOrderAxf_breakCosts
(){
String
memberId
=
""
;
// 查询存量的学员没有则创建学员
if
(
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"先享后付学员嘉艺"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId
=
memberTools
.
create
(
"先享后付学员嘉艺"
,
RandomStringUtil
.
randomMobile
(
"213"
)).
getString
(
"result"
);
}
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 查询存量的卡
JSONObject
fetchPageOfMemberCard
=
orderTools
.
fetchPageOfMemberCard
(
""
,
"MEMBER_CARD"
).
getJSONObject
(
"result"
);
int
total
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getString
(
"total"
));
String
cardId
=
""
;
if
(
total
==
0
)
{
cardId
=
cardTools
.
memberCardCreate
(
"创建先享后付订单"
+
TimeUtils
.
getCurrentTime
()).
getString
(
"result"
);
}
cardId
=
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
quantity
=
new
BigDecimal
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getJSONArray
(
"benefitList"
).
getJSONObject
(
0
).
getString
(
"balance"
));
float
price
=
Float
.
parseFloat
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
int
validPeriod
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"validPeriod"
));
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取签单要用的卡快照id
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"salesmanId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"operationTime"
,
TimeUtils
.
getCurrentTime
());
JSONObject
card
=
new
JSONObject
();
card
.
put
(
"cardId"
,
cardId
);
card
.
put
(
"cardSnapshotId"
,
latestSnapshotId
);
JSONObject
cardChange
=
new
JSONObject
();
cardChange
.
put
(
"quantity"
,
quantity
);
cardChange
.
put
(
"price"
,
price
);
cardChange
.
put
(
"validPeriod"
,
validPeriod
);
cardChange
.
put
(
"latestSnapshotId"
,
latestSnapshotId
);
card
.
put
(
"cardChange"
,
cardChange
);
card
.
put
(
"deductionAmount"
,
0
);
//优惠金额(元)
card
.
put
(
"activatePattern"
,
"PURCHASE"
);
card
.
put
(
"commodityCardType"
,
"MEMBER_CARD"
);
jsonObject
.
put
(
"card"
,
card
);
jsonObject
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
20
));
jsonObject
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"receivableAmount"
,
price
);
//应收金额
jsonObject
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
JSONObject
axfOrderInfo
=
new
JSONObject
();
axfOrderInfo
.
put
(
"totalPeriod"
,
"2"
);
//总期数
axfOrderInfo
.
put
(
"cycleType"
,
"MONTH"
);
// 按月扣款
axfOrderInfo
.
put
(
"periodType"
,
"SAME_EACH_PERIOD"
);
// 扣款每期一致
axfOrderInfo
.
put
(
"cycleValue"
,
1
);
// 按月1号
axfOrderInfo
.
put
(
"chargeNow"
,
false
);
//违约金相关字段
axfOrderInfo
.
put
(
"breakCostsType"
,
"REMAIN_RATE"
);
//违约金类型:REMAIN_RATE按剩余未付金额比例收取,DEFAULT无违约金
axfOrderInfo
.
put
(
"breakCosts7Days"
,
false
);
//7天内解约是否收取:true一律不收取;false仅未扣款时不收取
axfOrderInfo
.
put
(
"breakCostsRate"
,
"15"
);
//收取违约金的是剩余未扣款金额的百分之多少
axfOrderInfo
.
put
(
"noBreakCostsFlag"
,
false
);
//是否支付免违约金:true支持 false不支持
// axfOrderInfo.put("noBreakCostsStandardValue","1");//几期,是否支付免违约金为支持的时候,才有这个字段,成功扣满几期后可以免违约金
JSONArray
periodPriceList
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
2
;
i
++){
JSONObject
priceObj
=
new
JSONObject
();
priceObj
.
put
(
"period"
,
i
+
1
);
// 期数
priceObj
.
put
(
"salePrice"
,
price
/
2
);
// 每期还款金额
periodPriceList
.
add
(
priceObj
);
}
axfOrderInfo
.
put
(
"periodPriceList"
,
periodPriceList
);
jsonObject
.
put
(
"axfOrderInfo"
,
axfOrderInfo
);
JSONArray
paymentWays
=
new
JSONArray
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"amount"
,
price
);
//支付金额
object
.
put
(
"paymentWay"
,
"7"
);
// 7先享后付支付
JSONArray
voucherResourceIds
=
new
JSONArray
();
//支付凭证
voucherResourceIds
.
add
(
""
);
object
.
put
(
"voucherResourceIds"
,
voucherResourceIds
);
paymentWays
.
add
(
object
);
jsonObject
.
put
(
"paymentWays"
,
paymentWays
);
jsonObject
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
jsonObject
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
JSONObject
bodyInJSON
=
xmAppApi
.
getBodyInJSON
();
String
getDetailId
=
bodyInJSON
.
getString
(
"result"
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 校验订单详情状态:待支付、先享后付状态为签约中
JSONObject
getDetailResult
=
orderTools
.
getDetail
(
getDetailId
);
String
state
=
getDetailResult
.
getJSONObject
(
"result"
).
getString
(
"state"
);
Assert
.
assertEquals
(
state
,
"WAITING"
,
"先享后付订单创建成功后订单状态不是待支付"
);
String
axfState
=
getDetailResult
.
getJSONObject
(
"result"
).
getString
(
"axfState"
);
Assert
.
assertEquals
(
axfState
,
"PROCESS"
,
"先享后付订单安心付状态不是签约中"
);
orderTools
.
cancel
(
getDetailId
);
}
}
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