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
1771b127
Commit
1771b127
authored
Jun 15, 2024
by
yangfangfang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建订单
parent
56ef759e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
218 additions
and
1 deletions
+218
-1
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
+132
-1
src/main/java/com/xiaomai/cases/polar/finance/order/TestSignOrder.java
+86
-0
No files found.
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
View file @
1771b127
package
com
.
xiaomai
.
cases
.
polar
.
finance
.
order
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
public
class
OrderTools
extends
XMBaseTest
{
...
...
@@ -230,7 +233,7 @@ public class OrderTools extends XMBaseTest {
**/
public
JSONObject
fetchPageOfMemberCard
(
String
brandId
,
String
studioId
,
String
operatorId
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
dataApi
.
setApiModule
(
ApiModule
.
polar_Card
)
.
setApiName
(
"API_fetchPageOfMemberCard"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
...
...
@@ -249,5 +252,133 @@ public class OrderTools extends XMBaseTest {
return
response
;
}
/**
* @param
* @description: 获取会员卡详情
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public
JSONObject
fetchDetailById
(
String
id
,
String
brandId
,
String
studioId
,
String
operatorId
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
polar_Card
)
.
setApiName
(
"API_fetchDetailById"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"id"
,
id
);
jsonObject
.
put
(
"brandId"
,
brandId
);
jsonObject
.
put
(
"studioId"
,
studioId
);
jsonObject
.
put
(
"operatorId"
,
operatorId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description: 检查会员对该卡是否超出购买上限
* @param skuType:商品类型:[ MEMBER_CARD, TRAINING_CAMP, SINGLE_RESERVE, EXPERIENCE_CARD "会员卡", "训练营", "单次约课", "体验卡"
* @param skuId:场馆ID
* @param memberId:会员ID
* @param quantity:卡张数,默认为1
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public
JSONObject
checkAllowPurchase
(
String
skuType
,
String
skuId
,
String
memberId
,
String
quantity
,
String
brandId
,
String
studioId
,
String
operatorId
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
.
setApiName
(
"API_checkAllowPurchase"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"skuType"
,
skuType
);
jsonObject
.
put
(
"skuId"
,
skuId
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"quantity"
,
quantity
);
jsonObject
.
put
(
"brandId"
,
brandId
);
jsonObject
.
put
(
"studioId"
,
studioId
);
jsonObject
.
put
(
"operatorId"
,
operatorId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description: 检查会员对该卡是否超出购买上限
* @param cardId:卡id
* @param cardSnapshotId:卡快照id
* @param quantity:次数
* @param price:卡的价格
* @param validPeriod:有效期
* @param activatePattern:激活方式 [ "即时生效", "首次使用生效", "指定日期生效" ][ PURCHASE, FIRST_USED, SPECIFIC_DATE ]
* @param memberId:会员ID
* @param receivableAmount:应收金额
* @param amount:支付金额
* @param paymentWay:支付方式
* @author: yangfangfang
**/
public
JSONObject
signOrder
(
String
cardId
,
String
cardSnapshotId
,
int
quantity
,
float
price
,
int
validPeriod
,
String
latestSnapshotId
,
String
activatePattern
,
String
memberId
,
float
receivableAmount
,
float
amount
,
String
paymentWay
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
.
setApiName
(
"API_signOrder"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
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"
,
cardSnapshotId
);
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
(
"activatePattern"
,
activatePattern
);
jsonObject
.
put
(
"card"
,
card
);
jsonObject
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
20
));
jsonObject
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"receivableAmount"
,
receivableAmount
);
jsonObject
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
JSONArray
paymentWays
=
new
JSONArray
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"amount"
,
amount
);
object
.
put
(
"paymentWay"
,
paymentWay
);
JSONArray
voucherResourceIds
=
new
JSONArray
();
//支付凭证
voucherResourceIds
.
add
(
""
);
object
.
put
(
"voucherResourceIds"
,
voucherResourceIds
);
paymentWays
.
add
(
object
);
jsonObject
.
put
(
"paymentWays"
,
paymentWays
);
jsonObject
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
}
src/main/java/com/xiaomai/cases/polar/finance/order/TestSignOrder.java
0 → 100644
View file @
1771b127
package
com
.
xiaomai
.
cases
.
polar
.
finance
.
order
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.client.XMAppApi
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
public
class
TestSignOrder
extends
XMBaseTest
{
Tools
tools
=
new
Tools
();
OrderTools
orderTools
=
new
OrderTools
();
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
.
setApiName
(
"API_signOrder"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yff"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"创建订单"
)
public
void
testSignOrder
(){
//获取会员ID
String
memberId
=
tools
.
search
(
"NORMAL"
,
"NORMAL"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取会员卡信息
//获取会员卡列表
JSONObject
memberCard
=
orderTools
.
fetchPageOfMemberCard
(
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
());
String
cardId
=
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
int
quantity
=
Integer
.
parseInt
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"balance"
));
float
price
=
Float
.
parseFloat
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
int
validPeriod
=
Integer
.
parseInt
(
memberCard
.
getJSONObject
(
"result"
).
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
);
}
//检查会员对该卡是否超出购买上限
boolean
limitResult
=
orderTools
.
checkAllowPurchase
(
"MEMBER_CARD"
,
cardId
,
memberId
,
"1"
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getBoolean
(
"success"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
limitResult
==
true
){
//创建订单
JSONObject
orderResult
=
orderTools
.
signOrder
(
cardId
,
latestSnapshotId
,
quantity
,
price
,
validPeriod
,
latestSnapshotId
,
"PURCHASE"
,
memberId
,
price
,
price
,
"1"
);
}
else
{
}
}
}
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