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
bdfa0c6a
Commit
bdfa0c6a
authored
Jan 02, 2025
by
yangfangfang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
物品
parent
7261572c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
182 additions
and
29 deletions
+182
-29
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
+42
-0
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrder.java
+140
-29
No files found.
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
View file @
bdfa0c6a
...
...
@@ -926,6 +926,48 @@ public class OrderTools extends XMBaseTest {
return
response
;
}
/**
* @param
* @description:继续收款
* @param unpaidAmount:欠费金额
* @param getDetailId:订单ID
* @param paymentWay:支付方式 1-线下微信 2 3
* @param directReceive:true待补交 false待支付
* @author: yangfangfang
**/
public
JSONObject
pay_unpaid
(
BigDecimal
unpaidAmount
,
String
paymentWay
,
String
getDetailId
,
boolean
directReceive
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
.
setApiName
(
"API_pay"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"operationTime"
,
TimeUtils
.
getCurrentTime
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
JSONArray
paymentWays
=
new
JSONArray
();
JSONObject
jsonObject1
=
new
JSONObject
();
jsonObject1
.
put
(
"amount"
,
unpaidAmount
);
jsonObject1
.
put
(
"paymentWay"
,
paymentWay
);
JSONArray
voucherResourceIds
=
new
JSONArray
();
voucherResourceIds
.
add
(
""
);
jsonObject1
.
put
(
"voucherResourceIds"
,
voucherResourceIds
);
paymentWays
.
add
(
jsonObject1
);
jsonObject
.
put
(
"paymentWays"
,
paymentWays
);
jsonObject
.
put
(
"voucherId"
,
getDetailId
);
jsonObject
.
put
(
"directReceive"
,
directReceive
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
...
...
src/main/java/com/xiaomai/cases/polar/goods/Test
RefundGoods
.java
→
src/main/java/com/xiaomai/cases/polar/goods/Test
GoodsOrder
.java
View file @
bdfa0c6a
...
...
@@ -11,6 +11,7 @@ import com.xiaomai.client.DataUserInfo;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
org.testng.Assert
;
...
...
@@ -18,8 +19,9 @@ import org.testng.annotations.BeforeMethod;
import
org.testng.annotations.Test
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
public
class
Test
RefundGoods
extends
XMBaseTest
{
public
class
Test
GoodsOrder
extends
XMBaseTest
{
GoodTools
goodTools
=
new
GoodTools
();
GoodCTools
goodCTools
=
new
GoodCTools
();
...
...
@@ -28,20 +30,15 @@ public class TestRefundGoods extends XMBaseTest {
DataUserInfo
info
=
new
DataUserInfo
();
UserTools
userTools
=
new
UserTools
();
OrderCTools
orderCTools
=
new
OrderCTools
();
OrderTools
orderTools
=
new
OrderTools
();
FinanceDataTools
financeDataTools
=
new
FinanceDataTools
();
String
orderId1
;
String
memberId
;
@BeforeMethod
public
void
beforeTest
()
{
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Goods
)
...
...
@@ -55,7 +52,7 @@ public class TestRefundGoods extends XMBaseTest {
}
@Test
(
description
=
"签单单规格:待支付->取消订单"
)
public
void
test
Modify
Goods_single
()
{
public
void
test
Sign
Goods_single
()
{
//涉及到订单的都使用存量物品数据,因为购买过物品就不能被删除了,所以不会买一次新建一个
...
...
@@ -111,7 +108,7 @@ public class TestRefundGoods extends XMBaseTest {
if
(
checkAllowPurchase
==
true
)
{
JSONObject
purchaseGoods
=
goodCTools
.
purchaseGoods
(
"0.00"
,
null
,
memberId
,
""
,
price
,
id
,
price
,
1
,
info
);
orderId1
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
String
orderId1
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
//生成待支付订单后,去B端继续收款
...
...
@@ -168,34 +165,148 @@ public class TestRefundGoods extends XMBaseTest {
}
else
{
System
.
out
.
println
(
"物品购买校验未通过,不能下单"
);
}
}
@Test
(
description
=
"签单单规格:待支付->待补交->作废订单"
)
public
void
testSignGoods_single1
()
{
//case1:购买非0订单->待支付->带补交->作废订单
//
// //继续收款
// JSONObject pay=orderTools.pay(unpaidAmount,"1",orderId1);
//
// //获取B端订单详情:待支付状态
// JSONObject getDetailResult1 = orderTools.getDetail(orderId1,info);
// String state1=getDetailResult1.getJSONObject("result").getString("state");
//
// Assert.assertEquals(state1,"PAID","继续收款后订单状态由待支付变为已完成");
@Test
(
description
=
"退单物品_多规格"
)
public
void
testModifyGoods_multiple
()
{
//切换端位
info
.
setTerminal
(
Terminal
.
minApp
);
info
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
);
//涉及到订单的都使用存量物品数据,因为购买过物品就不能被删除了,所以不会买一次新建一个
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// "id": "1874413681302990849",
// "name": "自动化禁用-购买订单单规格1元",
// "id": "1874413587237335042",
// "name": "自动化禁用-购买订单多规格1元",
// "id": "1874413193018896386",
// "name": "自动化禁用-购买订单多规格0元",
// "id": "1874411064376061954",
// "name": "自动化禁用-购买订单单规格0元",
//case1:购买多规格非0元物品生成待支付订单
//获取会员信息
//获取用户
memberId
=
userTools
.
getMemberInfo
(
info
).
getString
(
"memberId"
);
String
goodsId1
=
"1874413681302990849"
;
//获取B端商品详情
JSONObject
getDetail_goods
=
goodTools
.
getDetail_goods
(
goodsId1
);
String
id
=
getDetail_goods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
String
price
=
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"price"
);
int
beforeInventory
=
Integer
.
parseInt
(
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
beforeGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
beforeConfirmedAmount
=
new
BigDecimal
(
beforeGetCostData_type
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
boolean
checkAllowPurchase
=
Boolean
.
parseBoolean
(
goodCTools
.
checkAllowPurchase
(
id
,
memberId
,
price
,
beforeInventory
,
info
).
getJSONObject
(
"result"
).
getString
(
"success"
));
//校验一下物品购买是否可以通过,为true才可以
if
(
checkAllowPurchase
==
true
)
{
JSONObject
purchaseGoods
=
goodCTools
.
purchaseGoods
(
"0.00"
,
null
,
memberId
,
""
,
price
,
id
,
price
,
1
,
info
);
String
orderId2
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
JSONObject
getDetailResult
=
orderTools
.
getDetail
(
orderId2
,
info
);
String
state
=
getDetailResult
.
getJSONObject
(
"result"
).
getString
(
"state"
);
BigDecimal
unpaidAmount
=
new
BigDecimal
(
getDetailResult
.
getJSONObject
(
"result"
).
getString
(
"unpaidAmount"
));
Assert
.
assertEquals
(
state
,
"WAITING"
,
"未生成待支付物品订单"
);
//校验1:B端商品详情库存数-1
JSONObject
afterGetDetail_goods
=
goodTools
.
getDetail_goods
(
goodsId1
);
int
afterInventory
=
Integer
.
parseInt
(
afterGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
afterInventory
,
beforeInventory
-
1
,
"购买1个物品生成待支付订单后,应扣除1个库存数"
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
afterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
afterConfirmedAmount
=
new
BigDecimal
(
afterGetCostData_type
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
Assert
.
assertEquals
(
afterConfirmedAmount
,
beforeConfirmedAmount
,
"购买1个物品生成待支付订单后,财务中心-营收明细-物品的确认收入应无变化"
);
//B端变更为待补交物品订单
BigDecimal
num
=
new
BigDecimal
(
2
);
//继续收款为待补交
JSONObject
pay_unpaid
=
orderTools
.
pay_unpaid
(
unpaidAmount
.
divide
(
num
),
"1"
,
orderId2
,
true
);
//校验1:获取B端订单详情:待补交状态
JSONObject
getDetailResult_delinquent
=
orderTools
.
getDetail
(
orderId2
);
String
state_delinquent
=
getDetailResult_delinquent
.
getJSONObject
(
"result"
).
getString
(
"state"
);
Assert
.
assertEquals
(
state_delinquent
,
"DELINQUENT"
,
"B端继续收款后订单状态由待支付变为待补交"
);
//校验2:B端商品详情库存数不变
JSONObject
lastGetDetail_goods
=
goodTools
.
getDetail_goods
(
goodsId1
);
int
lastInventory
=
Integer
.
parseInt
(
lastGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
lastInventory
,
afterInventory
,
"B端继续收款后订单状态由待支付变为待补交,库存数应不变"
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:权益到,数据中心的确认收入应增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
lastGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
lastConfirmedAmount
=
new
BigDecimal
(
lastGetCostData_type
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
Assert
.
assertEquals
(
lastConfirmedAmount
,
afterConfirmedAmount
.
add
(
unpaidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)),
"B端继续收款后订单状态由待支付变为待补交,财务中心-营收明细-物品的确认收入应增加"
);
//作废待补交订单
JSONObject
discard
=
orderTools
.
discard
(
orderId2
,
"重复录入"
,
"已作废签单订单"
+
RandomStringUtil
.
randomString
(
10
));
//校验1:获取B端订单详情:已作废状态
JSONObject
getDetailResult_discard
=
orderTools
.
getDetail
(
orderId2
);
String
state_discard
=
getDetailResult_discard
.
getJSONObject
(
"result"
).
getString
(
"state"
);
Assert
.
assertEquals
(
state_discard
,
"DISCARD"
,
"B端作废订单后状态由待补交变为已作废"
);
//校验2:B端商品详情库存数+1
JSONObject
discardGetDetail_goods
=
goodTools
.
getDetail_goods
(
goodsId1
);
int
discardInventory
=
Integer
.
parseInt
(
discardGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
discardInventory
,
lastInventory
+
1
,
"B端作废订单后,应增加1个库存数"
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:权益退回,数据中心的确认收入应减少
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
discardGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
discardConfirmedAmount
=
new
BigDecimal
(
discardGetCostData_type
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
Assert
.
assertEquals
(
discardConfirmedAmount
,
lastConfirmedAmount
.
subtract
(
unpaidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)),
"B端作废订单后,财务中心-营收明细-物品的确认收入应减少"
);
}
else
{
System
.
out
.
println
(
"物品购买校验未通过,不能下单"
);
}
}
}
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