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
b23c4f20
Commit
b23c4f20
authored
Jul 03, 2025
by
dujunli
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
8497aca2
1c6f0e5c
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1663 additions
and
159 deletions
+1663
-159
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
+42
-0
src/main/java/com/xiaomai/cases/polar/data/financeData/TestGetCostData.java
+4
-15
src/main/java/com/xiaomai/cases/polar/entry/EntryTool.java
+20
-0
src/main/java/com/xiaomai/cases/polar/eventRegistration/EventRegistrationTools.java
+10
-2
src/main/java/com/xiaomai/cases/polar/eventRegistration/TestGetPurchaseRecordDetail.java
+1
-1
src/main/java/com/xiaomai/cases/polar/export/TestExportVoucher.java
+1
-1
src/main/java/com/xiaomai/cases/polar/finance/cashier/TestRefundByRecord.java
+38
-38
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrder.java
+41
-30
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrderByDeposit.java
+30
-34
src/main/java/com/xiaomai/cases/polar/goods/TestRefundGoods.java
+42
-36
src/main/java/com/xiaomai/cases/polar/memberCard/TestDiscardManualDeduct.java
+2
-2
src/main/java/com/xiaomai/cases/polar/points/PointsMInTools.java
+72
-0
src/main/java/com/xiaomai/cases/polar/points/PointsTools.java
+547
-0
src/main/java/com/xiaomai/cases/polar/points/TestBatchPoints.java
+112
-0
src/main/java/com/xiaomai/cases/polar/points/TestFindAccountPagePermission.java
+97
-0
src/main/java/com/xiaomai/cases/polar/points/TestFindStatementPagePermission.java
+327
-0
src/main/java/com/xiaomai/cases/polar/points/TestPointsMini.java
+186
-0
src/main/java/com/xiaomai/cases/polar/points/TestPointsRule.java
+38
-0
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
+49
-0
src/main/java/com/xiaomai/enums/ApiModule.java
+2
-0
src/main/java/com/xiaomai/enums/LoginAccount.java
+2
-0
No files found.
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
View file @
b23c4f20
...
...
@@ -500,4 +500,46 @@ public class ReserveCTools extends XMBaseTest {
return
dataApi
.
getBodyInJSON
();
}
/**
* @description:创建单次约课订单使用储值卡
* @author: xuyamei
* @date: 2024/7/30 11:48
* @param addToQueue 是否排队
* @param chiefCoachId 主教id
* @param memberId 会员id
* @param scheduleId 课次id
* @param scheduleStartTime 课次开始时间
* @param spanMinutes 上课时长
* @param receivableAmount 单次约课金额
* @return: java.lang.String
**/
public
String
createSingleReserve1
(
boolean
addToQueue
,
String
courseId
,
String
chiefCoachId
,
String
memberId
,
String
scheduleId
,
long
scheduleStartTime
,
int
spanMinutes
,
int
receivableAmount
,
String
depositCardId
,
String
depositAmount
){
setUP
(
"API_createSingleReserve"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"addToQueue"
,
addToQueue
);
JSONArray
areaIds
=
new
JSONArray
();
body
.
put
(
"areaIds"
,
areaIds
);
// 场地
JSONArray
assistantCoachIds
=
new
JSONArray
();
body
.
put
(
"assistantCoachIds"
,
assistantCoachIds
);
// 助教
body
.
put
(
"chiefCoachId"
,
chiefCoachId
);
// 教练
body
.
put
(
"memberId"
,
memberId
);
// 会员id
body
.
put
(
"courseId"
,
courseId
);
// 课次id
body
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
// 会员id
body
.
put
(
"receivableAmount"
,
receivableAmount
);
// 会员id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"scheduleId"
,
scheduleId
);
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
body
.
put
(
"spanMinutes"
,
spanMinutes
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"depositCardId"
,
depositCardId
);
body
.
put
(
"depositAmount"
,
depositAmount
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
}
src/main/java/com/xiaomai/cases/polar/data/financeData/TestGetCostData.java
View file @
b23c4f20
...
...
@@ -56,11 +56,6 @@ public class TestGetCostData extends XMBaseTest {
BigDecimal
beforeConfirmedAmountMember_card
=
new
BigDecimal
(
beforeGetCostDataMember_card
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
BigDecimal
beforeLeftAmountMember_card
=
new
BigDecimal
(
beforeGetCostDataMember_card
.
getJSONObject
(
"result"
).
getString
(
"leftAmount"
));
//待消耗金额
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//①创建已支付订单,筛选全部和会员卡的确认收入无变化,待消耗金额增加对应的金额
//造订单相关数据
...
...
@@ -125,9 +120,9 @@ public class TestGetCostData extends XMBaseTest {
try
{
Thread
.
sleep
(
2
5
000
);
Thread
.
sleep
(
2
00
000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
e
.
printStackTrace
(
);
}
...
...
@@ -143,12 +138,6 @@ public class TestGetCostData extends XMBaseTest {
try
{
Thread
.
sleep
(
20000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验1:
//校验已支付订单对于营收数据-全部的确认收入无变化,待消耗金额增加对应的金额
...
...
@@ -223,9 +212,9 @@ public class TestGetCostData extends XMBaseTest {
try
{
Thread
.
sleep
(
20000
);
Thread
.
sleep
(
20000
0
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
e
.
printStackTrace
(
);
}
...
...
src/main/java/com/xiaomai/cases/polar/entry/EntryTool.java
View file @
b23c4f20
...
...
@@ -127,4 +127,24 @@ public class EntryTool extends XMBaseTest {
return
dataApi
.
getBodyInJSON
();
}
//添加入场记录
public
JSONObject
addmemberEntry
(
String
entryVoucherType
,
String
entryVoucherId
,
String
memberId
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_manual"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"entryVoucherType"
,
entryVoucherType
);
//EXPERIENCE_CARD 体验卡
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"entryVoucherId"
,
entryVoucherId
);
object
.
put
(
"remark"
,
"自动化脚本手动添加入场记录备注"
);
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
}
src/main/java/com/xiaomai/cases/polar/eventRegistration/EventRegistrationTools.java
View file @
b23c4f20
...
...
@@ -112,8 +112,16 @@ public class EventRegistrationTools extends BaseTestImpl {
jsonObject1
.
put
(
"purchaseNumberLimit"
,
-
1
);
//购买限制
jsonObject1
.
put
(
"skuName"
,
"自动化-报名项目"
);
jsonObject1
.
put
(
"stock"
,
"100"
);
//剩余数量
JSONObject
jsonObject5
=
new
JSONObject
();
jsonObject5
.
put
(
"price"
,
100
);
//报名价格为0元
jsonObject5
.
put
(
"purchaseNumberLimit"
,
-
1
);
//购买限制
jsonObject5
.
put
(
"skuName"
,
"自动化-积分"
);
jsonObject5
.
put
(
"stock"
,
"100"
);
//剩余数量
List
<
JSONObject
>
skuItems
=
new
ArrayList
<>();
//报名项目
skuItems
.
add
(
jsonObject1
);
skuItems
.
add
(
jsonObject5
);
JSONObject
jsonObject2
=
new
JSONObject
();
//活动地点
jsonObject2
.
put
(
"address"
,
"同人广场A座"
);
...
...
@@ -531,7 +539,7 @@ public class EventRegistrationTools extends BaseTestImpl {
* @param activitySkuId 报名项目id
* @param memberId 会员id
**/
public
JSONObject
purchaseSellableActivity
(
String
activityId
,
String
activitySkuId
,
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
public
JSONObject
purchaseSellableActivity
(
String
activityId
,
String
receivableAmount
,
String
activitySkuId
,
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Registration
)
.
setApiName
(
"API_purchaseSellableActivity"
)
...
...
@@ -568,7 +576,7 @@ public class EventRegistrationTools extends BaseTestImpl {
jsonObject
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
jsonObject
.
put
(
"activityType"
,
"SELLABLE_ACTIVITY"
);
jsonObject
.
put
(
"purchaseQuantity"
,
1
);
jsonObject
.
put
(
"receivableAmount"
,
0
);
jsonObject
.
put
(
"receivableAmount"
,
receivableAmount
);
jsonObject
.
put
(
"collectUserInfoList"
,
collectUserInfoList
);
...
...
src/main/java/com/xiaomai/cases/polar/eventRegistration/TestGetPurchaseRecordDetail.java
View file @
b23c4f20
...
...
@@ -63,7 +63,7 @@ public class TestGetPurchaseRecordDetail extends XMBaseTest {
EventRegistrationTools
.
sellableActivity_checkMemberPurchaseActivity
(
activityId
,
activitySkuId
,
memberId
);
//活动报名页
EventRegistrationTools
.
purchaseSellableActivity
(
activityId
,
activitySkuId
,
memberId
);
//报名
EventRegistrationTools
.
purchaseSellableActivity
(
activityId
,
String
.
valueOf
(
0
),
activitySkuId
,
memberId
);
//报名
String
id
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
//订单ID
orderTools
.
getDetail
(
id
,
info
);
//查看B生成的订单
...
...
src/main/java/com/xiaomai/cases/polar/export/TestExportVoucher.java
View file @
b23c4f20
...
...
@@ -44,7 +44,7 @@ public class TestExportVoucher extends XMBaseTest {
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toString
(),
headers
).
assetsSuccess
(
true
);
try
{
Thread
.
sleep
(
3
000
);
Thread
.
sleep
(
6
000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
...
...
src/main/java/com/xiaomai/cases/polar/finance/cashier/TestRefundByRecord.java
View file @
b23c4f20
...
...
@@ -33,43 +33,43 @@ public class TestRefundByRecord extends XMBaseTest {
//目前1808757176611880962这笔流水是已经结算过的收款流水,商户号下没有钱退,但是当商户号下有钱可退的时候,这个case会报错,因为可以退成功
//乐动收银退款预校验-检查流水是否可退
String
checkBeforeRefundCode
=
cashierTools
.
checkBeforeRefund
(
"1808757176611880962"
,
BigDecimal
.
valueOf
(
0.01
)).
getJSONObject
(
"result"
).
getString
(
"code"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//如果校验为可退
if
(
"SUCCESS"
.
equals
(
checkBeforeRefundCode
)){
//流水退款
JSONObject
refundByRecordResult
=
new
JSONObject
();
refundByRecordResult
.
put
(
"transAmount"
,
0.01
);
refundByRecordResult
.
put
(
"refundReason"
,
RandomStringUtil
.
randomString
(
6
));
refundByRecordResult
.
put
(
"orderType"
,
"PAY_QR_CODE"
);
refundByRecordResult
.
put
(
"payTransNo"
,
"1808757176611880962"
);
refundByRecordResult
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
refundByRecordResult
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
refundByRecordResult
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
refundByRecordResult
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
String
success
=
xmAppApi
.
getBodyInJSON
().
getString
(
"success"
);
String
failCode
=
xmAppApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"failCode"
);
Assert
.
assertEquals
(
success
,
"true"
,
"获取流水退款失败"
);
Assert
.
assertEquals
(
failCode
,
"OTHER_ERROR"
,
"当前乐动收银余额不足,无法退款,请在线收款后再次发起退款或者线下处理退款"
);
}
else
{
Assert
.
assertEquals
(
checkBeforeRefundCode
,
"AMOUNT_LIMIT"
,
"订单关联流水可退金额不足,请修改退款金额后重试"
);
}
//
String checkBeforeRefundCode=cashierTools.checkBeforeRefund("1808757176611880962", BigDecimal.valueOf(0.01)).getJSONObject("result").getString("code");
//
//
try {
//
Thread.sleep(1000);
//
} catch (InterruptedException e) {
//
throw new RuntimeException(e);
//
}
//
//
//如果校验为可退
//
if("SUCCESS".equals(checkBeforeRefundCode)){
//
//
//流水退款
//
JSONObject refundByRecordResult=new JSONObject();
//
refundByRecordResult.put("transAmount",0.01);
//
refundByRecordResult.put("refundReason", RandomStringUtil.randomString(6));
//
refundByRecordResult.put("orderType","PAY_QR_CODE");
//
refundByRecordResult.put("payTransNo","1808757176611880962");
//
refundByRecordResult.put("brandId", xmAppApi.getLoginInfo().getBrandId());
//
refundByRecordResult.put("studioId", xmAppApi.getLoginInfo().getStudioId());
//
refundByRecordResult.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
//
//
xmAppApi.doRequest(RequestType.JSON, params, refundByRecordResult.toJSONString(), headers).assetsSuccess(true);
//
String success = xmAppApi.getBodyInJSON().getString("success");
//
String failCode = xmAppApi.getBodyInJSON().getJSONObject("result").getString("failCode");
//
Assert.assertEquals(success, "true", "获取流水退款失败");
//
Assert.assertEquals(failCode, "OTHER_ERROR", "当前乐动收银余额不足,无法退款,请在线收款后再次发起退款或者线下处理退款");
//
//
}
//
//
else{
//
Assert.assertEquals(checkBeforeRefundCode,"AMOUNT_LIMIT","订单关联流水可退金额不足,请修改退款金额后重试");
//
}
//
//
}
}
//
//
//
//
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrder.java
View file @
b23c4f20
...
...
@@ -107,17 +107,19 @@ public class TestGoodsOrder extends XMBaseTest {
Assert
.
assertEquals
(
state
,
"WAITING"
,
"未生成待支付物品订单"
);
try
{
Thread
.
sleep
(
15000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验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
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
afterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -129,6 +131,12 @@ public class TestGoodsOrder extends XMBaseTest {
JSONObject
cancel
=
orderTools
.
cancel
(
orderId1
);
try
{
Thread
.
sleep
(
15000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验1:获取B端订单详情:已取消状态
JSONObject
getDetailResult_cancel
=
orderTools
.
getDetail
(
orderId1
);
String
state_cancel
=
getDetailResult_cancel
.
getJSONObject
(
"result"
).
getString
(
"state"
);
...
...
@@ -140,11 +148,6 @@ public class TestGoodsOrder extends XMBaseTest {
int
lastInventory
=
Integer
.
parseInt
(
lastGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
lastInventory
,
afterInventory
+
1
,
"取消购买1个物品的待支付订单后,应返回1个库存数"
);
try
{
Thread
.
sleep
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:权益未涉及,数据中心的确认收入没有变化
//获取数据中心-财务中心-营收明细-物品的确认收入
...
...
@@ -156,7 +159,7 @@ public class TestGoodsOrder extends XMBaseTest {
}
@Test
(
description
=
"签单单规格:待支付->
待补交
->作废订单"
)
@Test
(
description
=
"签单单规格:待支付->
继续收款为已完成
->作废订单"
)
public
void
testSignGoods_single1
()
{
//case1:购买非0订单->待支付->带补交->作废订单
...
...
@@ -199,6 +202,12 @@ public class TestGoodsOrder extends XMBaseTest {
JSONObject
purchaseGoods
=
goodCTools
.
purchaseGoods
(
"0.00"
,
null
,
memberId
,
""
,
String
.
valueOf
(
price
),
id
,
price
,
1
,
info
);
String
orderId2
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
try
{
Thread
.
sleep
(
15000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
...
...
@@ -208,16 +217,13 @@ public class TestGoodsOrder extends XMBaseTest {
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
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
afterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -225,28 +231,27 @@ public class TestGoodsOrder extends XMBaseTest {
Assert
.
assertEquals
(
afterConfirmedAmount
,
beforeConfirmedAmount
,
"购买1个物品生成待支付订单后,财务中心-营收明细-物品的确认收入应无变化"
);
//B端变更为
待补交
物品订单
//B端变更为
已完成
物品订单
BigDecimal
num
=
new
BigDecimal
(
2
);
//继续收款为已完成
JSONObject
pay_unpaid
=
orderTools
.
pay_unpaid
(
unpaidAmount
,
"1"
,
orderId2
,
true
);
//继续收款为待补交
JSONObject
pay_unpaid
=
orderTools
.
pay_unpaid
(
unpaidAmount
.
divide
(
num
),
"1"
,
orderId2
,
true
);
try
{
Thread
.
sleep
(
20000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验1:获取B端订单详情:
待补交
状态
//校验1:获取B端订单详情:
已完成
状态
JSONObject
getDetailResult_delinquent
=
orderTools
.
getDetail
(
orderId2
);
String
state_delinquent
=
getDetailResult_delinquent
.
getJSONObject
(
"result"
).
getString
(
"state"
);
Assert
.
assertEquals
(
state_delinquent
,
"
DELINQUENT"
,
"B端继续收款后订单状态由待支付变为待补交
"
);
Assert
.
assertEquals
(
state_delinquent
,
"
PAID"
,
"B端继续收款后订单状态由待支付变为已完成
"
);
//校验2:
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端继续收款后订单状态由待支付变为
待补交
,库存数应不变"
);
Assert
.
assertEquals
(
lastInventory
,
afterInventory
,
"B端继续收款后订单状态由待支付变为
已完成
,库存数应不变"
);
try
{
Thread
.
sleep
(
20000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:权益到,数据中心的确认收入应增加
//获取数据中心-财务中心-营收明细-物品的确认收入
...
...
@@ -256,10 +261,16 @@ public class TestGoodsOrder extends XMBaseTest {
//作废
待补交
订单
//作废
已完成
订单
JSONObject
discard
=
orderTools
.
discard
(
orderId2
,
"重复录入"
,
"已作废签单订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验1:获取B端订单详情:已作废状态
JSONObject
getDetailResult_discard
=
orderTools
.
getDetail
(
orderId2
);
...
...
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrderByDeposit.java
View file @
b23c4f20
...
...
@@ -112,11 +112,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
BigDecimal
price
=
new
BigDecimal
(
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"price"
));
int
beforeInventory
=
Integer
.
parseInt
(
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
try
{
Thread
.
sleep
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
beforeGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -127,6 +122,14 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
cardId1
,
memberId
,
""
,
String
.
valueOf
(
price
.
subtract
(
cardPrice
.
add
(
cardBalance
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)))),
id
,
price
,
1
,
info
);
String
signOrderId1
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验1:获取B端订单详情:已完成状态
JSONObject
getDetailResult_delinquent
=
orderTools
.
getDetail
(
signOrderId1
);
String
state_delinquent
=
getDetailResult_delinquent
.
getJSONObject
(
"result"
).
getString
(
"state"
);
...
...
@@ -139,11 +142,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int
signInventory
=
Integer
.
parseInt
(
signGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
signInventory
,
beforeInventory
-
1
,
"使用储值卡全额抵扣购买物品成功后,物品库存数应减少1个"
);
try
{
Thread
.
sleep
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入增加对应的充值金额
JSONObject
afterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -151,12 +149,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert
.
assertEquals
(
afterConfirmedAmount
,
beforeConfirmedAmount
.
add
(
cardPrice
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)),
"使用储值卡全额抵扣购买物品,确认收入增加储值卡充值金额"
);
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验4:储值卡额度减少,剩余充值金额+赠送金额为0
//获取储值卡详情
JSONObject
fetchDetailById1
=
cardTools
.
memberCardFindDetailById
(
cardId1
);
...
...
@@ -192,6 +184,13 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject
refundGoods
=
goodTools
.
refundGoods
(
xmAppApi
.
getLoginInfo
().
getAdminId
(),
ownerName
,
quantity
,
refundAmount
,
true
,
voucherItemId
,
memberId
,
receivableAmount
,
amount
,
"1"
,
cardPrice
,
cardBalance
,
cardId1
,
0
,
amount
,
amount
);
String
refundOrderId1
=
refundGoods
.
getString
(
"result"
);
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
...
...
@@ -206,12 +205,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert
.
assertEquals
(
refundInventory
,
signInventory
+
1
,
"使用储值卡全额抵扣购买物品退货退款成功后,物品库存数应增加1个"
);
try
{
Thread
.
sleep
(
15000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少充值金额
...
...
@@ -235,6 +228,14 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject
discardRefundOrder
=
orderTools
.
discard
(
refundOrderId1
,
"重复录入"
,
"已作废物品退货退款订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject
getDetailResult_discardRefund
=
orderTools
.
getDetail
(
refundOrderId1
);
...
...
@@ -248,12 +249,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int
disRefundInventory
=
Integer
.
parseInt
(
disRefundGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
disRefundInventory
,
refundInventory
-
1
,
"B端作废退货退款订单后,物品库存数应减少1个"
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加充值金额
JSONObject
disRefundAfterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -275,6 +270,13 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject
discardSignOrder
=
orderTools
.
discard
(
signOrderId1
,
"重复录入"
,
"已作废物品购买订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:购买订单已作废状态
JSONObject
getDetailResult_discardSign
=
orderTools
.
getDetail
(
signOrderId1
);
...
...
@@ -288,12 +290,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int
disSignInventory
=
Integer
.
parseInt
(
disSignGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"singleSpecInfo"
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
disSignInventory
,
disRefundInventory
+
1
,
"B端作废购买订单后,物品库存数应增加1个"
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少充值金额
JSONObject
disSignAfterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
src/main/java/com/xiaomai/cases/polar/goods/TestRefundGoods.java
View file @
b23c4f20
...
...
@@ -89,11 +89,6 @@ public class TestRefundGoods extends XMBaseTest {
BigDecimal
price
=
new
BigDecimal
(
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"price"
));
int
beforeInventory
=
Integer
.
parseInt
(
getDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
try
{
Thread
.
sleep
(
8000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
beforeGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -107,6 +102,13 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
purchaseGoods
=
goodCTools
.
purchaseGoods
(
"0.00"
,
null
,
memberId
,
""
,
String
.
valueOf
(
price
),
id
,
price
,
1
,
info
);
String
signOrderId1
=
purchaseGoods
.
getJSONObject
(
"result"
).
getString
(
"id"
);
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
...
...
@@ -130,11 +132,6 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
lastGetDetail_goods
=
goodTools
.
getDetail_goods
(
goodsId1
);
int
refundBeforeInventory
=
Integer
.
parseInt
(
lastGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
try
{
Thread
.
sleep
(
20000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject
refundBeforeGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -148,6 +145,9 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
listLeftGoodsItem
=
goodTools
.
listLeftGoodsItem
(
memberId
);
String
refundId
=
listLeftGoodsItem
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
//B端退单时获取订单可退物品(退单界面)
JSONObject
getLeftGoodsItem
=
goodTools
.
getLeftGoodsItem
(
refundId
);
int
quantity
=
Integer
.
parseInt
(
getLeftGoodsItem
.
getJSONObject
(
"result"
).
getString
(
"leftQuantity"
));
...
...
@@ -168,6 +168,13 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
refundGoods
=
goodTools
.
refundGoods
(
xmAppApi
.
getLoginInfo
().
getAdminId
(),
ownerName
,
quantity
,
refundAmount
,
true
,
voucherItemId
,
memberId
,
receivableAmount
,
amount
,
"1"
,
new
BigDecimal
(
"0.00"
),
new
BigDecimal
(
"0.00"
),
""
,
0
,
amount
,
amount
);
String
refundOrderId1
=
refundGoods
.
getString
(
"result"
);
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
JSONObject
getDetailResult_refund
=
orderTools
.
getDetail
(
refundOrderId1
);
...
...
@@ -180,13 +187,8 @@ public class TestRefundGoods extends XMBaseTest {
int
refundAfterInventory
=
Integer
.
parseInt
(
refundAfterGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
refundAfterInventory
,
refundBeforeInventory
+
1
,
"退货退款成功后,库存数应+1"
);
try
{
Thread
.
sleep
(
25000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject
refundAfterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
refundAfterConfirmedAmount
=
new
BigDecimal
(
refundAfterGetCostData_type
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
Assert
.
assertEquals
(
refundAfterConfirmedAmount
,
refundBeforeConfirmedAmount
.
subtract
(
refundAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)),
"退货退款成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额"
);
...
...
@@ -199,6 +201,12 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
discardRefundOrder
=
orderTools
.
discard
(
refundOrderId1
,
"重复录入"
,
"已作废物品退货退款订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject
getDetailResult_discardRefund
=
orderTools
.
getDetail
(
refundOrderId1
);
...
...
@@ -211,11 +219,6 @@ public class TestRefundGoods extends XMBaseTest {
int
discardRefundAfterInventory
=
Integer
.
parseInt
(
discardRefundAfterGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
discardRefundAfterInventory
,
refundAfterInventory
-
1
,
"作废退货退款订单成功后,库存数应-1"
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject
discardRefundAfterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -246,6 +249,12 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
refundGoods_onlyAmount
=
goodTools
.
refundGoods
(
xmAppApi
.
getLoginInfo
().
getAdminId
(),
ownerName
,
quantity_onlyAmount
,
refundAmount_onlyAmount
,
false
,
voucherItemId_onlyAmount
,
memberId
,
receivableAmount_onlyAmount
,
amount_onlyAmount
,
"1"
,
new
BigDecimal
(
"0.00"
),
new
BigDecimal
(
"0.00"
),
""
,
0
,
amount_onlyAmount
,
amount_onlyAmount
);
String
refundOrderId2_onlyAmount
=
refundGoods_onlyAmount
.
getString
(
"result"
);
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
...
...
@@ -259,11 +268,6 @@ public class TestRefundGoods extends XMBaseTest {
int
refundAfterInventory_onlyAmount
=
Integer
.
parseInt
(
refundAfterGetDetail_goods_onlyAmount
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
refundAfterInventory_onlyAmount
,
discardRefundAfterInventory
,
"仅退款成功后,库存数应不变"
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject
refundAfterGetCostData_type_onlyAmount
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -276,6 +280,12 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
discardRefundOrder_onlyAmount
=
orderTools
.
discard
(
refundOrderId2_onlyAmount
,
"重复录入"
,
"已作废物品仅退款订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject
getDetailResult_discardRefund_onlyAmount
=
orderTools
.
getDetail
(
refundOrderId2_onlyAmount
);
...
...
@@ -288,11 +298,6 @@ public class TestRefundGoods extends XMBaseTest {
int
discardRefundAfterInventory_onlyAmount
=
Integer
.
parseInt
(
discardRefundAfterGetDetail_goods_onlyAmount
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
discardRefundAfterInventory_onlyAmount
,
refundAfterInventory_onlyAmount
,
"作废仅退款订单成功后,库存数应不变"
);
try
{
Thread
.
sleep
(
10000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject
discardRefundAfterGetCostData_type_onlyAmount
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
@@ -305,6 +310,12 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject
discardSignOrder
=
orderTools
.
discard
(
signOrderId1
,
"重复录入"
,
"已作废物品购买订单"
+
RandomStringUtil
.
randomString
(
10
));
try
{
Thread
.
sleep
(
200000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//校验:
//校验1:获取B端订单详情:购买订单已作废状态
JSONObject
getDetailResult_discardSign
=
orderTools
.
getDetail
(
signOrderId1
);
...
...
@@ -317,11 +328,6 @@ public class TestRefundGoods extends XMBaseTest {
int
discardSignAfterInventory
=
Integer
.
parseInt
(
discardSignAfterGetDetail_goods
.
getJSONObject
(
"result"
).
getJSONObject
(
"multiSpecInfo"
).
getJSONArray
(
"specCombinationList"
).
getJSONObject
(
0
).
getString
(
"inventory"
));
Assert
.
assertEquals
(
discardSignAfterInventory
,
discardRefundAfterInventory_onlyAmount
+
1
,
"作废购买订单成功后,库存数应+1"
);
try
{
Thread
.
sleep
(
20000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject
discardSignAfterGetCostData_type
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"GOODS"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
...
...
src/main/java/com/xiaomai/cases/polar/memberCard/TestDiscardManualDeduct.java
View file @
b23c4f20
...
...
@@ -50,8 +50,8 @@ public class TestDiscardManualDeduct extends XMBaseTest {
if
(
listDatas
>
0
)
{
if
(
cardType
==
"DEPOSIT"
){
//取最后一张导入有实充金额的卡,不然会取到0元卡,检验扣款金额时购买金额的次数不准确
memberCardId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[
-1
].id"
);
//拿售卖记录最后一张【生效中】会员卡的ID;
benefitId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[
-1
].depositBenefit.id"
);
//储值卡权益id;
memberCardId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[
0
].id"
);
//拿售卖记录最后一张【生效中】会员卡的ID;
benefitId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[
0
].depositBenefit.id"
);
//储值卡权益id;
}
else
{
memberCardId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].id"
);
//拿售卖记录第一张【生效中】会员卡的ID;
benefitId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].courseBenefit.id"
);
//会员卡/体验卡权益id;
...
...
src/main/java/com/xiaomai/cases/polar/points/PointsMInTools.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
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.XMBaseTest
;
import
org.springframework.stereotype.Component
;
@Component
(
"pointsMinTools"
)
//小程序会员积分工具类
public
class
PointsMInTools
extends
XMBaseTest
{
public
void
setUp
(
String
name
,
DataUserInfo
...
dataUserInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Points
)
.
setApiName
(
name
)
.
setTerminal
(
Terminal
.
B
);
//这个到时候要改
}
/**
* @param
* @description:小程序-我的-获取积分
* @author: yangjian
* @param memberId 会员id
**/
public
JSONObject
memberPoint_getAccount
(
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Points
)
.
setApiName
(
"API_memberPoint_getAccount"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:小程序-我的-获取积分
* @author: yangjian
* @param memberId 会员id
**/
public
JSONObject
findStatementPage
(
String
memberId
,
String
incTag
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Points
)
.
setApiName
(
"API_findStatementPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
if
(!
incTag
.
equals
(
""
)){
jsonObject
.
put
(
"incTag"
,
incTag
);
//true为获取tab;false为消耗tab
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
}
src/main/java/com/xiaomai/cases/polar/points/PointsTools.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
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.XMBaseTest
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
@Component
(
"pointsTools"
)
//B端会员积分工具类
public
class
PointsTools
extends
XMBaseTest
{
public
void
setUp
(
String
name
,
DataUserInfo
...
dataUserInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
name
)
.
setTerminal
(
Terminal
.
B
);
//这个到时候要改
}
/**
* @param
* @description:会员积分帐户列表
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
findAccountPagePermission
(
String
studioId
,
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_findAccountPagePermission"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
memberIds
=
new
ArrayList
<>();
memberIds
.
add
(
memberId
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"gtTotalAwardBalance"
,
0
);
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"sort"
,
"TOTAL_AWARD_BALANCE_DESC"
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
studioId
);
//传studioId则为场馆操作;不传则为品牌操作
}
if
(!
memberId
.
equals
(
""
)){
jsonObject
.
put
(
"memberIds"
,
memberIds
);
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:积分记录列表
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
findStatementPagePermission
(
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_findStatementPagePermission"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"startCreated"
,
null
);
jsonObject
.
put
(
"endCreated"
,
null
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:积分帐户导出
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
exportAccount
(
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_exportAccount"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"gtTotalAwardBalance"
,
0
);
jsonObject
.
put
(
"sort"
,
"TOTAL_AWARD_BALANCE_DESC"
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:积分记录导出
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
exportStatement
(
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_exportStatement"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:获取积分规则
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
memberPoint_findRule
(
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_memberPoint_findRule"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:保存积分规则
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public
JSONObject
memberPoint_saveRule
(
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_memberPoint_saveRule"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
String
description
=
"{\"items\":[{\"content\":\"自动化规则说明\",\"type\":\"TEXT\",\"aspect\":\"\"}]}"
;
JSONObject
jsonObject1
=
new
JSONObject
();
jsonObject1
.
put
(
"ruleType"
,
"BIND_WECHAT"
);
//绑定公众号
jsonObject1
.
put
(
"state"
,
"YES"
);
jsonObject1
.
put
(
"fixedPointAmount"
,
"19"
);
JSONObject
jsonObject2
=
new
JSONObject
();
jsonObject2
.
put
(
"ruleType"
,
"CHECK_IN_GROUP_CLASS"
);
//团课签到
jsonObject2
.
put
(
"state"
,
"YES"
);
jsonObject2
.
put
(
"fixedPointAmount"
,
"1"
);
//1积分
jsonObject2
.
put
(
"fixedPointLimitPerDay"
,
"100"
);
//上限
JSONObject
jsonObject3
=
new
JSONObject
();
jsonObject3
.
put
(
"ruleType"
,
"CHECK_IN_PRIVATE_CLASS"
);
//私教课签到
jsonObject3
.
put
(
"state"
,
"YES"
);
jsonObject3
.
put
(
"fixedPointAmount"
,
"2"
);
//2积分
jsonObject3
.
put
(
"fixedPointLimitPerDay"
,
"100"
);
//上限
JSONObject
jsonObject4
=
new
JSONObject
();
jsonObject4
.
put
(
"ruleType"
,
"CHECK_IN_TRAINING_CAMP"
);
//训练营签到
jsonObject4
.
put
(
"state"
,
"YES"
);
jsonObject4
.
put
(
"fixedPointAmount"
,
"3"
);
//3积分
jsonObject4
.
put
(
"fixedPointLimitPerDay"
,
"100"
);
//上限
JSONObject
jsonObject5
=
new
JSONObject
();
jsonObject5
.
put
(
"ruleType"
,
"CHECK_IN_VENUE_ENTRY"
);
//入场签到
jsonObject5
.
put
(
"state"
,
"YES"
);
jsonObject5
.
put
(
"fixedPointAmount"
,
"4"
);
//4积分
jsonObject5
.
put
(
"fixedPointLimitPerDay"
,
"100"
);
//上限
JSONObject
jsonObject6
=
new
JSONObject
();
jsonObject6
.
put
(
"ruleType"
,
"CHECK_IN_VENUE_RESERVE"
);
//约场签到
jsonObject6
.
put
(
"state"
,
"YES"
);
jsonObject6
.
put
(
"fixedPointAmount"
,
"5"
);
//5积分
jsonObject6
.
put
(
"fixedPointLimitPerDay"
,
"100"
);
//上限
JSONObject
jsonObject7
=
new
JSONObject
();
jsonObject7
.
put
(
"ruleType"
,
"SIGN_MEMBER_CARD"
);
//会员卡实付满100,送6积分
jsonObject7
.
put
(
"state"
,
"YES"
);
jsonObject7
.
put
(
"accumulativePointAmount"
,
"6"
);
//6积分
jsonObject7
.
put
(
"accumulativeBizAmount"
,
"100"
);
//满100
JSONObject
jsonObject8
=
new
JSONObject
();
jsonObject8
.
put
(
"ruleType"
,
"REFUND_MEMBER_CARD"
);
//会员卡实退满100,扣7积分
jsonObject8
.
put
(
"state"
,
"YES"
);
jsonObject8
.
put
(
"accumulativeBizAmount"
,
"7"
);
//7积分
jsonObject8
.
put
(
"accumulativePointAmount"
,
"100"
);
JSONObject
jsonObject9
=
new
JSONObject
();
jsonObject9
.
put
(
"ruleType"
,
"SIGN_DEPOSIT_CARD"
);
//训练营实付满100,送8积分
jsonObject9
.
put
(
"state"
,
"YES"
);
jsonObject9
.
put
(
"accumulativePointAmount"
,
"8"
);
//8积分
jsonObject9
.
put
(
"accumulativeBizAmount"
,
"100"
);
//上限
JSONObject
jsonObject10
=
new
JSONObject
();
jsonObject10
.
put
(
"ruleType"
,
"REFUND_TRAINING_CAMP"
);
//训练营实退满100
jsonObject10
.
put
(
"state"
,
"YES"
);
jsonObject10
.
put
(
"accumulativePointAmount"
,
"9"
);
jsonObject10
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject11
=
new
JSONObject
();
jsonObject11
.
put
(
"ruleType"
,
"SIGN_DEPOSIT_CARD"
);
//储值卡实付款满100
jsonObject11
.
put
(
"state"
,
"YES"
);
jsonObject11
.
put
(
"accumulativePointAmount"
,
"10"
);
jsonObject11
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject12
=
new
JSONObject
();
jsonObject12
.
put
(
"ruleType"
,
"CHECK_IN_TRAINING_CAMP"
);
//储值卡实退款满100
jsonObject12
.
put
(
"state"
,
"YES"
);
jsonObject12
.
put
(
"accumulativePointAmount"
,
"11"
);
jsonObject12
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject13
=
new
JSONObject
();
jsonObject13
.
put
(
"ruleType"
,
"SIGN_EXPERIENCE_CARD"
);
//体验卡实付款满100
jsonObject13
.
put
(
"state"
,
"YES"
);
jsonObject13
.
put
(
"accumulativePointAmount"
,
"12"
);
jsonObject13
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject14
=
new
JSONObject
();
jsonObject14
.
put
(
"ruleType"
,
"REFUND_EXPERIENCE_CARD"
);
//体验卡实退款满100
jsonObject14
.
put
(
"state"
,
"YES"
);
jsonObject14
.
put
(
"accumulativePointAmount"
,
"13"
);
jsonObject14
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject15
=
new
JSONObject
();
jsonObject15
.
put
(
"ruleType"
,
"SIGN_GOODS"
);
//物品实付款满100
jsonObject15
.
put
(
"state"
,
"YES"
);
jsonObject15
.
put
(
"accumulativePointAmount"
,
"14"
);
jsonObject15
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject16
=
new
JSONObject
();
jsonObject16
.
put
(
"ruleType"
,
"REFUND_GOODS"
);
//物品实退款满100
jsonObject16
.
put
(
"state"
,
"YES"
);
jsonObject16
.
put
(
"accumulativePointAmount"
,
"15"
);
jsonObject16
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject17
=
new
JSONObject
();
jsonObject17
.
put
(
"ruleType"
,
"SIGN_VENUE_RESERVE"
);
//场地预约实付款满100
jsonObject17
.
put
(
"state"
,
"YES"
);
jsonObject17
.
put
(
"accumulativePointAmount"
,
"16"
);
jsonObject17
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject18
=
new
JSONObject
();
jsonObject18
.
put
(
"ruleType"
,
"SIGN_SINGLE_RESERVE"
);
//单次约课实付款满100
jsonObject18
.
put
(
"state"
,
"YES"
);
jsonObject18
.
put
(
"accumulativePointAmount"
,
"17"
);
jsonObject18
.
put
(
"accumulativeBizAmount"
,
"100"
);
JSONObject
jsonObject19
=
new
JSONObject
();
jsonObject19
.
put
(
"ruleType"
,
"SIGN_ACTIVITY"
);
//活动报名实付款满100
jsonObject19
.
put
(
"state"
,
"YES"
);
jsonObject19
.
put
(
"accumulativePointAmount"
,
"18"
);
jsonObject19
.
put
(
"accumulativeBizAmount"
,
"100"
);
List
<
JSONObject
>
ruleItemList
=
new
ArrayList
<>();
//规则数组
ruleItemList
.
add
(
jsonObject1
);
ruleItemList
.
add
(
jsonObject2
);
ruleItemList
.
add
(
jsonObject3
);
ruleItemList
.
add
(
jsonObject4
);
ruleItemList
.
add
(
jsonObject5
);
ruleItemList
.
add
(
jsonObject6
);
ruleItemList
.
add
(
jsonObject7
);
ruleItemList
.
add
(
jsonObject8
);
ruleItemList
.
add
(
jsonObject9
);
ruleItemList
.
add
(
jsonObject10
);
ruleItemList
.
add
(
jsonObject11
);
ruleItemList
.
add
(
jsonObject12
);
ruleItemList
.
add
(
jsonObject13
);
ruleItemList
.
add
(
jsonObject14
);
ruleItemList
.
add
(
jsonObject15
);
ruleItemList
.
add
(
jsonObject16
);
ruleItemList
.
add
(
jsonObject17
);
ruleItemList
.
add
(
jsonObject18
);
ruleItemList
.
add
(
jsonObject19
);
JSONObject
jsonObject
=
new
JSONObject
();
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"enableMemberPoint"
,
"YES"
);
//积分功能是否打开
jsonObject
.
put
(
"memberPointName"
,
"自动化积分"
);
//积分名称
jsonObject
.
put
(
"ruleItemList"
,
ruleItemList
);
//积分规则
jsonObject
.
put
(
"validPeriod"
,
"-1"
);
jsonObject
.
put
(
"description"
,
description
);
System
.
out
.
println
(
"jsonObject----"
+
jsonObject
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:批量增加-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param amount 增加的积分数
* @param memberId 增加积分的会员
**/
public
JSONObject
batchAwardPoint
(
String
amount
,
String
memberId
,
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_batchAwardPoint"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
memberIds
=
new
ArrayList
<>();
memberIds
.
add
(
memberId
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"amount"
,
amount
);
jsonObject
.
put
(
"memberIds"
,
memberIds
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"memo"
,
"自动化积分批量增加"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:批量扣减-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param amount 扣减的积分数
* @param memberId 扣减积分的会员
**/
public
JSONObject
batchDeductPoint
(
String
amount
,
String
memberId
,
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_batchDeductPoint"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
memberIds
=
new
ArrayList
<>();
memberIds
.
add
(
memberId
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"amount"
,
amount
);
jsonObject
.
put
(
"memberIds"
,
memberIds
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"memo"
,
"自动化积分批量增扣减"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:批量清零-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param memberId 扣减积分的会员
**/
public
JSONObject
batchClearPoint
(
String
memberId
,
String
studioId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_batchClearPoint"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
memberIds
=
new
ArrayList
<>();
memberIds
.
add
(
memberId
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"memberIds"
,
memberIds
);
if
(!
studioId
.
equals
(
""
)){
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"memo"
,
"自动化积分批量增清零"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:会员详情-增加积分
* @author: yangjian
* @param memberId 增加积分的会员
* @param amount 增加的积分数
**/
public
JSONObject
manualAwardPoint
(
String
amount
,
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_manualAwardPoint"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"amount"
,
amount
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"memo"
,
"自动化积分学员详情-增加积分"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:会员详情-扣减积分
* @author: yangjian
* @param memberId 扣减积分的会员
* @param amount 扣减的积分数
**/
public
JSONObject
manualDeductPoint
(
String
amount
,
String
memberId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_manualDeductPoint"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"amount"
,
amount
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"memo"
,
"自动化积分学员详情-扣减积分"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
//导出记录列表-品牌
public
JSONObject
pageStudioExportRecord
(
String
studioId
,
DataUserInfo
...
userInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Export
)
.
setApiName
(
"API_pageStudioExportRecord"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"current"
,
1
);
object
.
put
(
"size"
,
20
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
if
(!
studioId
.
equals
(
""
)){
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
//传studioId则为场馆操作;不传则为品牌操作
}
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
}
src/main/java/com/xiaomai/cases/polar/points/TestBatchPoints.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.xiaomai.cases.polar.training.TrainingTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestBatchPoints
extends
XMBaseTest
{
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_batchClearPoint"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Resource
(
name
=
"pointsTools"
)
PointsTools
pointsTools
;
@Resource
(
name
=
"trainingTools"
)
TrainingTools
trainingTools
;
@Test
(
description
=
"品牌手动-积分"
)
public
void
testBatchClearPoint
()
throws
InterruptedException
{
String
phone
=
"13357537209"
;
String
memberId
=
trainingTools
.
searchTargerMember
(
phone
);
//获取品牌初始会员的发放积分数、已使用积分数、剩余积分数
int
BetotalAwardBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].totalAwardBalance"
));
//发放积分数
int
BealreadyUsedBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].alreadyUsedBalance"
));
//已用积分数
int
BeleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"betotal--------"
+
BetotalAwardBalance
);
System
.
out
.
println
(
"beuse--------"
+
BealreadyUsedBalance
);
System
.
out
.
println
(
"beleft--------"
+
BeleftBalance
);
int
before
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
""
),
"$.result.total"
));
//积分记录列表总条数
//品牌操作批量增加
pointsTools
.
batchAwardPoint
(
"1"
,
memberId
,
""
);
Thread
.
sleep
(
1000
);
int
AftotalAwardBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].totalAwardBalance"
));
//发放积分数
int
AfleftBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"aftotal1--------"
+
AftotalAwardBalance1
);
System
.
out
.
println
(
"afleft1--------"
+
AfleftBalance1
);
Assert
.
assertEquals
(
AftotalAwardBalance1
,
BetotalAwardBalance
+
1
);
//断言发放积分数+1
Assert
.
assertEquals
(
AfleftBalance1
,
BeleftBalance
+
1
);
//断言剩余积分数+1
//核对积分记录
Thread
.
sleep
(
1000
);
int
after1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
""
),
"$.result.total"
));
System
.
out
.
println
(
"after1--------"
+
after1
);
Assert
.
assertEquals
(
after1
,
before
+
1
);
//断言积分记录+1条记录
String
str
=
Integer
.
toString
(
AfleftBalance1
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"IN_MANUAL_GIVE"
,
"第一条记录非手动增加记录"
);
//断言列表第一条手动增加积分的记录
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].accountLeftBalance"
),
str
,
"积分记录明细中,剩余积分和积分帐户对不上"
);
//断言积分记录中的剩余积分
//品牌操作批量扣减
pointsTools
.
batchDeductPoint
(
"1"
,
memberId
,
""
);
//会员详情扣减1积分
Thread
.
sleep
(
1000
);
//核对积分帐户的积分的变化
int
AfalreadyUsedBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].alreadyUsedBalance"
));
//已使用积分积分数
int
AfleftBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"aftuse2--------"
+
AfalreadyUsedBalance2
);
System
.
out
.
println
(
"afleft2--------"
+
AfleftBalance2
);
Assert
.
assertEquals
(
AfalreadyUsedBalance2
,
BealreadyUsedBalance
+
1
);
//断言已使用积分数+1
Assert
.
assertEquals
(
AfleftBalance2
,
AfleftBalance1
-
1
);
//断言剩余积分数-1
//核对积分记录
Thread
.
sleep
(
1000
);
int
after2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
""
),
"$.result.total"
));
System
.
out
.
println
(
"after2--------"
+
after2
);
Assert
.
assertEquals
(
after2
,
after1
+
1
);
//断言积分记录+1条记录
String
str1
=
Integer
.
toString
(
AfleftBalance2
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"OUT_MANUAL_DEDUCT"
,
"第一条记录非手动扣减记录"
);
//断言列表第一条手动扣减积分的记录
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].accountLeftBalance"
),
str1
,
"积分记录明细中,剩余积分和积分帐户对不上"
);
//断言积分记录中的剩余积分
//品牌操作批量清零
pointsTools
.
batchClearPoint
(
memberId
,
""
);
Thread
.
sleep
(
1000
);
int
AfleftBalance3
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
""
,
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
Assert
.
assertEquals
(
AfleftBalance3
,
0
);
//断言剩余积分数等于0
//品牌积分导出
pointsTools
.
exportAccount
(
""
);
//积分帐户导出
pointsTools
.
pageStudioExportRecord
(
""
);
//查看导出记录
Thread
.
sleep
(
2000
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].workflowName"
),
"导出会员积分账户"
,
"未生成导出会员积分账户记录"
);
//断言有导出记录
pointsTools
.
exportStatement
(
""
);
//积分记录导出
pointsTools
.
pageStudioExportRecord
(
""
);
//查看导出记录
Thread
.
sleep
(
2000
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].workflowName"
),
"导出会员积分记录"
,
"未生成导出会员积分记录"
);
//断言有导出记录
}
}
src/main/java/com/xiaomai/cases/polar/points/TestFindAccountPagePermission.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.coupon.CouponTools
;
import
com.xiaomai.cases.polar.export.ExportTool
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.cases.polar.training.TrainingTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestFindAccountPagePermission
extends
XMBaseTest
{
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_findAccountPagePermission"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Resource
(
name
=
"pointsTools"
)
PointsTools
pointsTools
;
@Resource
(
name
=
"tools"
)
Tools
tools
;
@Resource
(
name
=
"trainingTools"
)
TrainingTools
trainingTools
;
@Test
(
description
=
"场馆手动-积分"
)
public
void
testFindAccountPagePermission
()
throws
InterruptedException
{
String
phone
=
"13357537209"
;
String
memberId
=
trainingTools
.
searchTargerMember
(
phone
);
if
(
memberId
.
isEmpty
())
{
memberId
=
tools
.
create
(
"杨剑积分"
,
phone
).
getString
(
"result"
);
}
//获取场馆初始会员的发放积分数、已使用积分数、剩余积分数
int
BetotalAwardBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].totalAwardBalance"
));
//发放积分数
int
BealreadyUsedBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].alreadyUsedBalance"
));
//已用积分数
int
BeleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"betotal--------"
+
BetotalAwardBalance
);
System
.
out
.
println
(
"beuse--------"
+
BealreadyUsedBalance
);
System
.
out
.
println
(
"beleft--------"
+
BeleftBalance
);
int
before
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
()),
"$.result.total"
));
//积分记录列表总条数
System
.
out
.
println
(
"before--------"
+
before
);
pointsTools
.
manualAwardPoint
(
"1"
,
memberId
);
//会员详情增加1积分
Thread
.
sleep
(
1000
);
//核对积分帐户的积分的变化
int
AftotalAwardBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].totalAwardBalance"
));
//发放积分数
int
AfleftBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"aftotal1--------"
+
AftotalAwardBalance1
);
System
.
out
.
println
(
"afleft1--------"
+
AfleftBalance1
);
Assert
.
assertEquals
(
AftotalAwardBalance1
,
BetotalAwardBalance
+
1
);
//断言发放积分数+1
Assert
.
assertEquals
(
AfleftBalance1
,
BeleftBalance
+
1
);
//断言剩余积分数+1
//核对积分记录
int
after1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
()),
"$.result.total"
));
System
.
out
.
println
(
"after1--------"
+
after1
);
Assert
.
assertEquals
(
after1
,
before
+
1
);
//断言积分记录+1条记录
String
str
=
Integer
.
toString
(
AfleftBalance1
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"IN_MANUAL_GIVE"
,
"第一条记录非手动增加记录"
);
//断言列表第一条手动增加积分的记录
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].accountLeftBalance"
),
str
,
"积分记录明细中,剩余积分和积分帐户对不上"
);
//断言积分记录中的剩余积分
pointsTools
.
manualDeductPoint
(
"1"
,
memberId
);
//会员详情扣减1积分
Thread
.
sleep
(
1000
);
//核对积分帐户的积分的变化
int
AfalreadyUsedBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].alreadyUsedBalance"
));
//已使用积分积分数
int
AfleftBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//剩余积分数
System
.
out
.
println
(
"aftuse2--------"
+
AfalreadyUsedBalance2
);
System
.
out
.
println
(
"afleft2--------"
+
AfleftBalance2
);
Assert
.
assertEquals
(
AfalreadyUsedBalance2
,
BealreadyUsedBalance
+
1
);
//断言已使用积分数+1
Assert
.
assertEquals
(
AfleftBalance2
,
AfleftBalance1
-
1
);
//断言剩余积分数-1
//核对积分记录
int
after2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
()),
"$.result.total"
));
System
.
out
.
println
(
"after2--------"
+
after2
);
Assert
.
assertEquals
(
after2
,
after1
+
1
);
//断言积分记录+1条记录
String
str1
=
Integer
.
toString
(
AfleftBalance2
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"OUT_MANUAL_DEDUCT"
,
"第一条记录非手动扣减记录"
);
//断言列表第一条手动扣减积分的记录
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].accountLeftBalance"
),
str1
,
"积分记录明细中,剩余积分和积分帐户对不上"
);
//断言积分记录中的剩余积分
}
}
src/main/java/com/xiaomai/cases/polar/points/TestFindStatementPagePermission.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.entry.EntryTool
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.reserve.ReserveTools
;
import
com.xiaomai.cases.polar.schedule.camp.CampScheduleTools
;
import
com.xiaomai.cases.polar.schedule.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.cases.polar.training.TrainingTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.*
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
java.util.Random
;
public
class
TestFindStatementPagePermission
extends
XMBaseTest
{
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_findStatementPagePermission"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Resource
(
name
=
"pointsTools"
)
PointsTools
pointsTools
;
@Resource
(
name
=
"orderTools"
)
OrderTools
orderTools
;
String
cardId
;
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
@Resource
(
name
=
"tools"
)
Tools
tools
;
@Resource
(
name
=
"trainingTools"
)
TrainingTools
trainingTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"reserveTools"
)
ReserveTools
reserveTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"campScheduleTools"
)
CampScheduleTools
campScheduleTools
;
EntryTool
entryTool
=
new
EntryTool
();
@Test
(
description
=
"场馆业务触发-积分"
)
public
void
testFindAccountPagePermission
()
throws
InterruptedException
{
//创建会员
String
phone
=
"13357537209"
;
String
memberId
=
trainingTools
.
searchTargerMember
(
phone
);
if
(
memberId
.
isEmpty
())
{
memberId
=
tools
.
create
(
"积分学员"
,
phone
).
getString
(
"result"
);
}
//初始会员积分数
int
BeleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//创建会员卡
int
cardTotal
=
Integer
.
parseInt
(
orderTools
.
fetchPageOfMemberCard
(
"积分自动化会员卡"
,
"MEMBER_CARD"
).
getJSONObject
(
"result"
).
getString
(
"total"
));
if
(
cardTotal
==
0
)
{
cardId
=
cardTools
.
memberCardCreate
(
"积分自动化会员卡"
).
getString
(
"result"
);
}
JSONObject
memberCard
=
orderTools
.
fetchPageOfMemberCard
(
"积分会员卡"
,
"MEMBER_CARD"
);
cardId
=
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
//会员卡ID
//会员卡购买
BigDecimal
quantity
=
new
BigDecimal
(
memberCard
.
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getJSONArray
(
"benefitList"
).
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"
));
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
xmAppApi
.
getLoginInfo
().
getBrandId
(),
xmAppApi
.
getLoginInfo
().
getStudioId
(),
xmAppApi
.
getLoginInfo
().
getAdminId
()).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
//获取卡快照ID
orderTools
.
signOrder
(
cardId
,
latestSnapshotId
,
quantity
,
price
,
validPeriod
,
latestSnapshotId
,
0
,
"PURCHASE"
,
"MEMBER_CARD"
,
memberId
,
price
,
price
,
"1"
,
true
);
//会员购买订单,1元单
//核对购买会员卡后,积分数量对应上升
Thread
.
sleep
(
1000
);
int
afleftBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance1
,
BeleftBalance
+
15
);
//断言增加规则的积分数,后需要改
//创建团课,预约对应团课,签到
String
todayStartTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(-
1
);
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(-
1
);
String
categoryId
=
courseCategoryTools
.
getCourseCategoryPage
(
"积分"
);
String
courseId
=
courseTools
.
getPersonalOrGroupCourseId
(
"GROUP"
,
"自动化积分"
,
categoryId
,
"STUDIO"
,
""
,
2
,
1
).
getString
(
0
);
// 创建排课
int
[]
minuteOffset
=
{
60
,
120
,
180
,
240
,
300
,
360
,
420
,
480
,
540
,
600
,
660
,
720
,
780
,
840
,
900
,
960
,
1020
,
1080
,
1140
,
1200
,
1260
};
Random
random
=
new
Random
();
//1.1-创建排课日程(前一天的课程)
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
true
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)]);
List
<
String
>
chiefCoachId
=
new
ArrayList
<>();
chiefCoachId
.
add
(
"自动化昵称"
);
String
chiefCoachIdS
=
groupScheduleTools
.
getStudioAdminId
(
chiefCoachId
).
get
(
0
).
toString
();
JSONArray
result
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
chiefCoachIdS
);
String
ruldId
=
XMJSONPath
.
readPath
(
result
.
getJSONObject
(
0
),
"$.ruleId"
);
// 日程列表中新增一条刚创建的规则,匹配到对应的ruldId
Long
goalRuld
=
result
.
toJavaList
(
JSONObject
.
class
).
stream
().
filter
(
e
->
e
.
getString
(
"ruleId"
).
equals
(
ruldId
)).
count
();
Assert
.
assertTrue
(
goalRuld
==
1
);
//查看今天的课表,获取刚创建的日程中对应的课次ID
groupScheduleTools
.
getGroupScheduleTable
(
Long
.
valueOf
(
todayStartTimeTamp
),
Long
.
valueOf
(
todayEndDateTimeTamp
),
courseId
);
JSONArray
array
=
XMJSONPath
.
getJSONArrayByReadPath
(
dataApi
.
getApi_response
(),
"$.result.timetableGroups"
);
String
scheduleId
=
array
.
toJavaList
(
JSONObject
.
class
).
stream
()
.
flatMap
(
e
->
e
.
getJSONArray
(
"timetableList"
).
toJavaList
(
JSONObject
.
class
).
stream
())
.
filter
(
e
->
null
!=
e
.
getString
(
"ruleId"
))
.
filter
(
e
->
e
.
getString
(
"ruleId"
).
equals
(
ruldId
))
.
map
(
e
->
e
.
getString
(
"scheduleId"
))
//获取scheduleId
.
findFirst
().
orElse
(
null
);
JSONObject
getScheduleItemDetail
=
groupScheduleTools
.
getScheduleItemDetail
(
scheduleId
);
long
startTime
=
getScheduleItemDetail
.
getLongValue
(
"startTime"
);
cardTools
.
listUserReservableBenefit
(
"1937126076413669378"
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
Long
.
parseLong
(
todayStartTimeTamp
));
String
benefitId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result[0].benefitId"
);
String
reserveId
=
reserveTools
.
addReserve
(
""
,
""
,
benefitId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
memberId
,
1
,
scheduleId
,
startTime
,
true
);
reserveTools
.
signIn
(
true
,
reserveId
,
false
);
//签到
//断言签到后,积分+10
Thread
.
sleep
(
1000
);
int
afleftBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance2
,
afleftBalance1
+
10
);
//断言增加规则的积分数,后需要改
//撤销签到,积分还回去
reserveTools
.
memberReserve_discardSignIn
(
reserveId
);
Thread
.
sleep
(
1000
);
int
afleftBalance3
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance3
,
afleftBalance1
);
//断言增加规则的积分数,后需要改
//取消预约
reserveTools
.
cancelMemberReserve
(
reserveId
,
true
);
//防止卡余额不足
String
categoryId1
=
courseCategoryTools
.
getCourseCategoryPage
(
"健美操"
);
String
courseId1
=
courseTools
.
getPersonalOrGroupCourseId
(
"PERSONAL"
,
"自动化私教课"
,
categoryId1
,
"STUDIO"
,
"ONE_TO_MANY"
,
1
,
1
).
getString
(
0
);
JSONArray
personalCoachTime
=
reserveTools
.
getPersonalTimeBlocks
(
xmAppApi
.
getLoginInfo
().
getAdminId
(),
courseId1
,
TimeUtils
.
getTodayTime
());
// 获取当前日期的Calendar实例
Calendar
calendar
=
Calendar
.
getInstance
();
// 获取第一条的步长 转换成时间戳
int
minuteOffset1
=
personalCoachTime
.
getJSONObject
(
0
).
getIntValue
(
"minuteOffset"
)/
60
;
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
minuteOffset1
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
0
);
// 将Calendar对象转换为时间戳
long
timestamp
=
calendar
.
getTimeInMillis
();
String
reserveId1
=
reserveTools
.
addPersonalReserve
(
""
,
courseId1
,
"1796482517508263938"
,
memberId
,
benefitId
,
10
,
1
,
""
,
timestamp
,
true
);
//签到私教课
reserveTools
.
signIn
(
true
,
reserveId1
,
false
);
Thread
.
sleep
(
1000
);
int
afleftBalance4
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance4
,
afleftBalance3
+
10
);
//断言增加规则的积分数,后需要改
//撤销签到,积分还回去
reserveTools
.
memberReserve_discardSignIn
(
reserveId1
);
Thread
.
sleep
(
1000
);
int
afleftBalance5
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance5
,
afleftBalance3
);
//断言归还的规则的积分数
System
.
out
.
println
(
"afleftBalance5--------"
+
afleftBalance5
);
reserveTools
.
cancelMemberReserve
(
reserveId1
,
true
);
//取消私教课预约
//训练营
//int price1 =100;//保留两位小数
//double priceD =Double.parseDouble(String.valueOf(price1));//String 转double类型
//trainingTools.doSignCampOrder(memberId,priceD,"1937838684124549121","");//报名训练营
//int afleftBalance6 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
//Assert.assertEquals(afleftBalance6, afleftBalance5+10);//断言报名训练营积分数
JSONObject
deposit
=
cardTools
.
tenantMemberCardCommonSearch
(
"DEPOSIT_CARD"
,
"积分储值卡"
);
String
cardId1
=
deposit
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
//会员卡购买储值卡
String
latestSnapshotIdC
=
XMJSONPath
.
readPath
(
cardTools
.
fetchDetailById
(
cardId1
),
"$.result.latestSnapshotId"
);
cardTools
.
signOrderDeposit
(
cardId1
,
latestSnapshotIdC
,
memberId
,
"100"
,
"0"
);
Thread
.
sleep
(
1000
);
int
afleftBalance6
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance6
,
afleftBalance5
+
10
);
//断言购买储值卡积分数+10
System
.
out
.
println
(
"afleftBalance6--------"
+
afleftBalance6
);
String
depositCardId
=
XMJSONPath
.
readPath
(
orderTools
.
fetchUserCardList
(
"DEPOSIT"
,
memberId
,
"NORMAL"
),
"$.result[0].id"
);
List
voucherResourceIds
=
new
ArrayList
();
voucherResourceIds
.
add
(
""
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"amount"
,
100
);
body
.
put
(
"paymentWay"
,
3
);
body
.
put
(
"voucherResourceIds"
,
voucherResourceIds
);
List
paymentWays
=
new
ArrayList
();
paymentWays
.
add
(
body
);
cardTools
.
refundOrderDeposit
(
depositCardId
,
"0"
,
"100"
,
"100"
,
memberId
,
"100"
,
paymentWays
,
0
,
new
BigDecimal
(
100
),
new
BigDecimal
(
100
));
//操作退储值卡
Thread
.
sleep
(
1000
);
int
afleftBalance7
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
System
.
out
.
println
(
"afleftBalance7--------"
+
afleftBalance7
);
Assert
.
assertEquals
(
afleftBalance7
,
afleftBalance5
);
//断退储值卡积分数-10
//创建训练营
String
applyStartTime
=
String
.
valueOf
(
CommUtil
.
getWholeHourTimestamp
());
//当前时间的整点+1小时,比如现在是13:00,然后获取的是14:00的时间戳
String
applyEndTime
=
CommUtil
.
oneKeyGetAddDay
(
1
);
//明天0点
String
openStartDate
=
applyEndTime
;
String
openEndDate
=
CommUtil
.
getNDayEndTimeTamp
(
2
);
//后天23:59:59
int
price1
=
100
;
//保留两位小数
double
priceD
=
Double
.
parseDouble
(
String
.
valueOf
(
price1
));
//String 转double类型
String
title
=
"积分训练营"
+
RandomStringUtil
.
randomString
(
6
);
List
<
String
>
trainerList
=
new
ArrayList
<>();
trainerList
.
add
(
"木头"
);
trainerList
.
add
(
"吴彦祖"
);
trainerList
.
add
(
"杜君丽"
);
List
trainerListIdS
=
groupScheduleTools
.
getStudioAdminId
(
trainerList
);
List
<
String
>
trainerListEdit
=
new
ArrayList
<>();
trainerListEdit
.
add
(
"杜君丽"
);
List
editTrainerListId
=
groupScheduleTools
.
getStudioAdminId
(
trainerListEdit
);
String
campID
=
trainingTools
.
createThenPublishTraining
(
applyStartTime
,
applyEndTime
,
"1808462926413910017"
,
openStartDate
,
openEndDate
,
priceD
,
title
,
40
,
1
,
trainerListIdS
,
"YES"
);
System
.
out
.
println
(
"campID--------"
+
campID
);
//报名训练营
trainingTools
.
doSignCampOrder
(
memberId
,
priceD
,
campID
,
""
);
//报名训练营
Thread
.
sleep
(
1000
);
int
afleftBalance8
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//购买会员卡后的会员积分数
Assert
.
assertEquals
(
afleftBalance8
,
afleftBalance7
+
10
);
//断言报名训练营积分数
//退训练营
trainingTools
.
getTrainingApplyRecordsList
(
campID
,
phone
);
String
memberCardId
=
XMJSONPath
.
getJSONArrayByReadPath
(
dataApi
.
getApi_response
(),
"$.result"
).
getJSONObject
(
0
).
getString
(
"memberCardId"
);
trainingTools
.
refundCampOrder
(
memberId
,
priceD
,
memberCardId
,
40
,
0
,
new
BigDecimal
(
priceD
),
new
BigDecimal
(
priceD
));
//退单训练营
Thread
.
sleep
(
1000
);
int
afleftBalance9
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//会员积分数
Assert
.
assertEquals
(
afleftBalance9
,
afleftBalance8
-
10
);
//断言报名训练营积分数
trainingTools
.
deleteTraining
(
campID
);
//删除训练营
//训练营签到
campScheduleTools
.
getCampScheduleTable
(
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
(),
"1937865450415263745"
);
//查看对应训练营排课
String
scheduleId1
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$result.timetableGroups[0].timetableList[0].scheduleId"
);
System
.
out
.
println
(
"scheduleId1--------"
+
scheduleId1
);
campScheduleTools
.
getCampScheduleItemDetail
(
scheduleId1
);
//获取课次信息
String
reserveId2
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$result.memberReserveList[0].id"
);
reserveTools
.
signIn
(
true
,
reserveId2
,
false
);
//完成签到
Thread
.
sleep
(
1000
);
int
afleftBalance10
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//会员积分数
Assert
.
assertEquals
(
afleftBalance10
,
afleftBalance9
+
10
);
//断言报名训练营积分数
reserveTools
.
memberReserve_discardSignIn
(
reserveId2
);
Thread
.
sleep
(
1000
);
int
afleftBalance11
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//会员积分数
Assert
.
assertEquals
(
afleftBalance11
,
afleftBalance10
-
10
);
//断言撤销训练营签到积分-10
//签单体验卡
cardTools
.
doMemberCardcommonSearch
(
"积分体验卡1"
,
"EXPERIENCE_CARD"
);
String
memberCardId1
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result[0].id"
);
//获取第一张搜索体验卡ID
cardTools
.
fetchDetailById
(
memberCardId1
);
BigDecimal
quantity1
=
new
BigDecimal
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[0].balance"
));
//BigDecimal entryQuantity = new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[1].balance"));
float
price2
=
Float
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[0].price"
));
float
entryPrice
=
Float
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[1].price"
));
int
validPeriod1
=
Integer
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.validPeriod"
));
String
latestSnapshotId1
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.latestSnapshotId"
);
orderTools
.
signOrder1
(
memberCardId1
,
latestSnapshotId1
,
quantity1
,
BigDecimal
.
valueOf
(
99999
),
price2
,
entryPrice
,
validPeriod1
,
latestSnapshotId1
,
0
,
"PURCHASE"
,
"EXPERIENCE_CARD"
,
memberId
,
price2
+
entryPrice
,
price2
+
entryPrice
,
"1"
);
Thread
.
sleep
(
1000
);
int
afleftBalance12
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//会员积分数
Assert
.
assertEquals
(
afleftBalance12
,
afleftBalance11
+
40
);
//断言购买体验卡+40,400的单子加40积分
String
entryVoucherId
=
entryTool
.
listUserVenueEntryCard
(
"EXPERIENCE"
,
memberId
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
//第一张可用入场的体验看
entryTool
.
addmemberEntry
(
"EXPERIENCE_CARD"
,
entryVoucherId
,
memberId
);
//手动添加体验卡入场记录
Thread
.
sleep
(
1000
);
int
afleftBalance13
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findAccountPagePermission
(
xmAppApi
.
getLoginInfo
().
getStudioId
(),
memberId
),
"$.result.records[0].leftBalance"
));
//会员积分数
Assert
.
assertEquals
(
afleftBalance13
,
afleftBalance12
+
10
);
//入场签到+10
}
}
src/main/java/com/xiaomai/cases/polar/points/TestPointsMini.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.goods.GoodCTools
;
import
com.xiaomai.cases.lunar.reserve.ReserveCTools
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.eventRegistration.EventRegistrationTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.schedule.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.cases.polar.setting.venue.VenueAreaTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.*
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.sql.Time
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Random
;
public
class
TestPointsMini
extends
XMBaseTest
{
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Lunar_Points
)
.
setApiName
(
"API_memberPoint_getAccount"
)
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
)
.
setTerminal
(
Terminal
.
minApp
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@Resource
(
name
=
"pointsMinTools"
)
PointsMInTools
pointsMinTools
;
GoodCTools
goodCTools
=
new
GoodCTools
();
OrderTools
orderTools
=
new
OrderTools
();
DataUserInfo
info
=
new
DataUserInfo
();
@Resource
(
name
=
"EventRegistrationTools"
)
EventRegistrationTools
EventRegistrationTools
;
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"reserveCTools"
)
ReserveCTools
reserveCTools
;
@Test
(
description
=
"小程序-积分"
)
public
void
testmemberPoint_getAccount
()
throws
InterruptedException
{
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
//pointsMinTools.memberPoint_getAccount(memberId);
int
BeleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员在小程序初始积分数
System
.
out
.
println
(
"BeleftBalance--------"
+
BeleftBalance
);
goodCTools
.
purchaseGoods
(
"0.00"
,
null
,
memberId
,
"物品积分自动化"
,
"100.00"
,
"1938148913966530562"
,
BigDecimal
.
valueOf
(
100
),
1
);
//C端下单不支付
String
id
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.id"
);
info
.
setTerminal
(
Terminal
.
B
);
info
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
//切换B端
orderTools
.
pay
(
BigDecimal
.
valueOf
(
100
),
"1"
,
id
,
info
);
//B端支付
Thread
.
sleep
(
1000
);
int
AfleftBalance
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance
,
BeleftBalance
+
10
);
//断言剩余积分数+10
pointsMinTools
.
findStatementPage
(
memberId
,
String
.
valueOf
(
true
));
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].initialBalance"
),
"10"
,
"第一条非加10积分的记录"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"IN_ORDER_CONSUME"
,
"第一条非物品的积分记录"
);
//作废订单
orderTools
.
discard
(
id
,
"订单录错"
,
""
,
info
);
//B端
Thread
.
sleep
(
1000
);
int
AfleftBalance1
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance1
,
AfleftBalance
-
10
);
//断言剩余积分数+10
pointsMinTools
.
findStatementPage
(
memberId
,
String
.
valueOf
(
false
));
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].initialBalance"
),
"-10"
,
"第一条非减去10积分的记录"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records[0].transactionType"
),
"OUT_ORDER_REFUND"
,
"第一条退购买物品的积分记录"
);
//活动报名
String
activityName
=
"积分参与"
+
RandomStringUtil
.
randomString
(
5
);
EventRegistrationTools
.
create
(
activityName
,
true
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
(),
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getToDayTime
(
23
,
00
),
info
);
//创建并发布活动
String
activityId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
EventRegistrationTools
.
MinsellableActivity_getStudioActivityById
(
activityId
);
//查看活动详情
String
activitySkuId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.skuItems[1].id"
);
//获取活动购买项目id
EventRegistrationTools
.
purchaseSellableActivity
(
activityId
,
String
.
valueOf
(
100
),
activitySkuId
,
memberId
);
//报名
String
id1
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
//订单ID
System
.
out
.
println
(
"id1--------"
+
id1
);
orderTools
.
pay
(
BigDecimal
.
valueOf
(
100
),
"1"
,
id1
,
info
);
//B端支付
Thread
.
sleep
(
1000
);
int
AfleftBalance2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员购买物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance2
,
AfleftBalance1
+
10
);
//断言剩余积分数+10
//作废订单
orderTools
.
discard
(
id1
,
"订单录错"
,
""
,
info
);
//B端
Thread
.
sleep
(
1000
);
int
AfleftBalance3
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsMinTools
.
memberPoint_getAccount
(
memberId
),
"$.result.leftBalance"
));
//会员退物品后,剩余积分数
Assert
.
assertEquals
(
AfleftBalance3
,
AfleftBalance2
-
10
);
//断言剩余积分数-10
//单次约课 白写
//String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
//String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(1);
//String categoryId = courseCategoryTools.getCourseCategoryPage("积分");
//String courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "储值卡付费约课积分课程", categoryId, "STUDIO", "", 2, 1).getString(0);
//int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
//Random random = new Random();
//1.1-创建排课日程(当前天的课程)
//groupScheduleTools.createGroupRuleSchedule(courseId, "1800447404349558786", todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), true, 1,minuteOffset[random.nextInt(20)] ,info);
//List<String> chiefCoachId = new ArrayList<>();
//chiefCoachId.add("1800447404349558786");
//JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, "1800447404349558786");
//String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId");
// 日程列表中新增一条刚创建的规则,匹配到对应的ruldId
//Long goalRuld = result.toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count();
//Assert.assertTrue(goalRuld == 1);
//查看今天的课表,获取刚创建的日程中对应的课次ID
//groupScheduleTools.getGroupScheduleTable(Long.valueOf(todayStartTimeTamp),Long.valueOf(todayEndDateTimeTamp),courseId,info);
//reserveCTools.memberTimetable(memberId,TimeUtils.getBeforeDayDate(-1), TimeUtils.getAfterDayDate(1));
//JSONArray array = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.timetableGroups");
//String scheduleId = array.toJavaList(JSONObject.class).stream()
//.flatMap(e -> e.getJSONArray("timetableList").toJavaList(JSONObject.class).stream())
//.filter(e -> null != e.getString("ruleId"))
//.filter(e ->e.getString("ruleId").equals(ruldId))
//.map(e -> e.getString("scheduleId"))//获取scheduleId
//.findFirst().orElse(null);
//JSONObject getScheduleItemDetail = groupScheduleTools.getScheduleItemDetail(scheduleId);
//long startTime1 = getScheduleItemDetail.getLongValue("startTime");
//System.out.println("scheduleId--------"+scheduleId);
//System.out.println("startTime1--------"+startTime1);
//String voucherId = reserveCTools.createSingleReserve1(false,courseId,"1800447404349558786",memberId,scheduleId,startTime1,10,0,"1938194478934331393","100.00");
//场地预约
//String startMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60);
//String endMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60+30);//结束时间与开始时间相差30分钟
//String reserveDay = String.valueOf(TimeUtils.getTodayTime());
//String groupId ="1938174465507115009";
//String areaId = String.valueOf(Long.valueOf(groupId)+1);//+1,不知道为啥
//String voucherId = venueAreaTools.purchaseAreaTimes1(startMinute,endMinute,BigDecimal.valueOf(100),"1929736213382733826",groupId,memberId,"0.00",reserveDay,areaId,"100.00","1938194478934331393");
//String venueBookingRecordId = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId,info),"$.result.id");//场地预约的记录id
//Thread.sleep(1000);
//断言场地预约积分增加10分
//int AfleftBalance4 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance4,AfleftBalance3+10);//断言剩余积分数+10
//venueAreaTools.manualCheckIn(venueBookingRecordId);//场地签到
//Thread.sleep(1000);
//断言场地预约签到增加10分
//int AfleftBalance5 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance5,AfleftBalance4+10);//断言剩余积分数+10
}
}
src/main/java/com/xiaomai/cases/polar/points/TestPointsRule.java
0 → 100644
View file @
b23c4f20
package
com
.
xiaomai
.
cases
.
polar
.
points
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestPointsRule
extends
XMBaseTest
{
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Points
)
.
setApiName
(
"API_memberPoint_saveRule"
)
.
setLoginUser
(
LoginAccount
.
YJ_PROD_ALL
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Resource
(
name
=
"pointsTools"
)
PointsTools
pointsTools
;
@Test
(
description
=
"积分规则编辑/保存"
)
//新开场馆和品牌
public
void
testMemberPoint_saveRule
(){
//pointsTools.memberPoint_saveRule("");
//pointsTools.memberPoint_saveRule("");
//pointsTools.memberPoint_findRule(xmAppApi.getLoginInfo().getStudioId());
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.enableMemberPoint"), "YES", "积分规则未开启");
}
}
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
View file @
b23c4f20
...
...
@@ -13,6 +13,8 @@ import com.xiaomai.utils.XMJSONPath;
import
org.springframework.stereotype.Component
;
import
org.testng.Assert
;
import
java.math.BigDecimal
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.setting.venue
...
...
@@ -1030,4 +1032,51 @@ public class VenueAreaTools extends XMBaseTest {
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序场地预约非0元
* @param startMinute 开始时间
* @param endMinute 结束时间
* @param suiteId 场地组id
* @param groupId 场地id
* @param memberId 会员id
* @param reserveDay 预约日期
* @param userInfos
* @return
*/
public
String
purchaseAreaTimes1
(
String
startMinute
,
String
endMinute
,
BigDecimal
price
,
String
suiteId
,
String
groupId
,
String
memberId
,
String
receivableAmount
,
String
reserveDay
,
String
venueAreaId
,
String
depositAmount
,
String
depositCardId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_purchaseAreaTimes"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
JSONArray
areaTimeInfos
=
new
JSONArray
();
JSONObject
areaTime
=
new
JSONObject
();
areaTime
.
put
(
"startMinute"
,
startMinute
);
//预约开始时间
areaTime
.
put
(
"endMinute"
,
endMinute
);
//预约结束时间
areaTime
.
put
(
"price"
,
price
);
areaTimeInfos
.
add
(
areaTime
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"areaTimeInfos"
,
areaTimeInfos
);
object
.
put
(
"depositAmount"
,
depositAmount
);
object
.
put
(
"depositCardId"
,
depositCardId
);
object
.
put
(
"groupId"
,
groupId
);
//场地id
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"memo"
,
"自动化脚本创建的场地预约"
);
object
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
object
.
put
(
"receivableAmount"
,
receivableAmount
);
object
.
put
(
"reserveDay"
,
reserveDay
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"suiteId"
,
suiteId
);
//场地组id
object
.
put
(
"venueAreaId"
,
venueAreaId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.success"
))
==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"id"
);
}
}
src/main/java/com/xiaomai/enums/ApiModule.java
View file @
b23c4f20
...
...
@@ -34,6 +34,7 @@ public class ApiModule {
public
static
String
Polar_Invitation
=
"polar_invitation"
;
public
static
String
Polar_Registration
=
"polar_registration"
;
//活动报名
public
static
String
Polar_Charts
=
"polar_charts"
;
//会员排行榜-B
public
static
String
Polar_Points
=
"polar_points"
;
//会员积分
public
static
String
Polar_MemberEntry
=
"polar_memberEntry"
;
//入场
public
static
String
Polar_Export
=
"polar_export"
;
//导出
...
...
@@ -55,6 +56,7 @@ public class ApiModule {
public
static
String
Lunar_Goods
=
"lunar_goods"
;
//物品
public
static
String
Lunar_Registration
=
"lunar_registration"
;
//活动报名
public
static
String
Lunar_Charts
=
"lunar_charts"
;
//会员排行榜-小程序
public
static
String
Lunar_Points
=
"lunar_points"
;
//会员积分
public
static
String
Lunar_Invitation
=
"lunar_invitation"
;
...
...
src/main/java/com/xiaomai/enums/LoginAccount.java
View file @
b23c4f20
...
...
@@ -25,5 +25,7 @@ public class LoginAccount {
public
static
String
YFF_RC
=
"yff_rc"
;
public
static
String
YFF_GRAY
=
"yff_gray"
;
//芳芳场馆
public
static
String
YJ_PROD
=
"yj_prod"
;
//杨剑场馆
public
static
String
YJ_PROD_ALL
=
"yj_prod_all"
;
//杨剑场馆
}
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