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
590b2972
Commit
590b2972
authored
Nov 05, 2024
by
DuJunLi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
ssh://xmgit.ixm5.cn:10022/xiamai-test/xm-sportstest
parents
f0594f5d
7a0ee768
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1708 additions
and
48 deletions
+1708
-48
src/main/java/com/xiaomai/cases/polar/finance/revenueAndExpenditure/RevenueAndExpenditureTools.java
+3
-16
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/MemberCardTimeSaleTools.java
+256
-0
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/TestPublish.java
+63
-0
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/Testflashsaleedit.java
+121
-0
src/main/java/com/xiaomai/cases/polar/setting/venue/TestPurchaseAreaTimes.java
+180
-0
src/main/java/com/xiaomai/cases/polar/setting/venue/TestSaveVenueAreaBookingRules.java
+98
-0
src/main/java/com/xiaomai/cases/polar/setting/venue/TestScanCheckIn.java
+153
-0
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
+773
-10
src/main/java/com/xiaomai/enums/ApiModule.java
+15
-22
src/main/java/com/xiaomai/utils/TimeUtils.java
+46
-0
No files found.
src/main/java/com/xiaomai/cases/polar/finance/revenueAndExpenditure/RevenueAndExpenditureTools.java
View file @
590b2972
...
...
@@ -7,11 +7,6 @@ import com.xiaomai.enums.ApiModule;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
public
class
RevenueAndExpenditureTools
extends
XMBaseTest
{
...
...
@@ -35,7 +30,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
JSONArray
jsonArray
=
new
JSONArray
();
jsonArray
.
add
(
paymentWays
);
jsonObject
.
put
(
"paymentWays"
,
jsonArray
);
...
...
@@ -69,7 +63,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
JSONArray
jsonArray
=
new
JSONArray
();
jsonArray
.
add
(
paymentWays
);
jsonObject
.
put
(
"paymentWays"
,
jsonArray
);
...
...
@@ -90,9 +83,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
* @param
* @description:分页作废收支列表
* @param supplierId:卖家ID 场馆ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public
JSONObject
pageDiscardIncomeExpense
(
String
paymentWays
,
String
type
,
String
item
,
String
supplierId
,
DataUserInfo
...
dataUserInfos
){
...
...
@@ -106,7 +96,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
JSONArray
jsonArray
=
new
JSONArray
();
jsonArray
.
add
(
paymentWays
);
jsonObject
.
put
(
"paymentWays"
,
jsonArray
);
...
...
@@ -152,22 +141,20 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
* @param
* @description:上传图片资源
* @param bizCode:VOUCHER_INFO
* @param tenantType:BRAND
* @param filePath:图片地址
* @author: yangfangfang
**/
public
JSONObject
mobileResource
(
String
bizCode
,
String
tenantType
,
String
filePath
,
DataUserInfo
...
dataUserInfos
)
throws
IOException
{
public
JSONObject
mobileResource
(
String
bizCode
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Finance
)
.
setApiName
(
"API_mobileResource"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataU
serInfos
);
super
.
beforeDataRequest
(
u
serInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"tenantId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"resourceName"
,
"imgFile/test1.jpg"
);
jsonObject
.
put
(
"bizCode"
,
bizCode
);
jsonObject
.
put
(
"tenantType"
,
tenantType
);
jsonObject
.
put
(
"tenantType"
,
"BRAND"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
...
...
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/MemberCardTimeSaleTools.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
memberCard
.
MemberCardTimeSale
;
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.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
@Component
(
"memberCardTimeSaleTools"
)
public
class
MemberCardTimeSaleTools
extends
XMBaseTest
{
/**
* @param
* @description:B端查看秒杀活动列表
* @author: yangjian
* @param stat 活动状态
**/
public
JSONObject
getStudioActivityPage
(
String
stat
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_getStudioActivityPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
status
=
new
ArrayList
<>();
status
.
add
(
stat
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"states"
,
status
);
//UNPUBLISHED未发布;WAITING未开始;PROCESSING进行中;ENDED已结束;ABNORMAL已失效
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:B端创建限时秒杀活动
* @author: yangjian
* @param membercardId 关联的会员卡ID
* @param activityName 秒杀活动名称
**/
public
JSONObject
create
(
String
membercardId
,
String
activityName
,
Boolean
publish
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_createfalshsale"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
List
<
String
>
applyMemberStates
=
new
ArrayList
<>();
applyMemberStates
.
add
(
"POTENTIAL"
);
applyMemberStates
.
add
(
"NORMAL"
);
applyMemberStates
.
add
(
"HISTORY"
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityName"
,
activityName
);
jsonObject
.
put
(
"activityType"
,
"SECKILL"
);
//活动类型为秒杀
jsonObject
.
put
(
"endTime"
,
TimeUtils
.
getTodayEndTime
());
//活动结束时间为今天24点
jsonObject
.
put
(
"startTime"
,
TimeUtils
.
getTodayTime
());
//活动开始时间为今天0点
jsonObject
.
put
(
"applyMemberStates"
,
applyMemberStates
);
//活动可参与用户
jsonObject
.
put
(
"autoCancelMinutes"
,
"5"
);
//自动取消订单时间
jsonObject
.
put
(
"commodityId"
,
membercardId
);
//活动的会员卡商品
jsonObject
.
put
(
"commodityType"
,
"MEMBER_CARD"
);
//商品类型,目前仅有会员卡
jsonObject
.
put
(
"initSalesVolumeShow"
,
"10"
);
//初始秒杀数量显示
jsonObject
.
put
(
"purchaseNumberLimit"
,
-
1
);
//购买数量限制:不限制
jsonObject
.
put
(
"reserveReminder"
,
true
);
//秒杀数量是否展示
jsonObject
.
put
(
"specialPrice"
,
"0"
);
//秒杀价格0元
jsonObject
.
put
(
"publish"
,
publish
);
//是否发布
jsonObject
.
put
(
"stock"
,
"10"
);
//活动库存数
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
/**
* @param
* @description:B端搜索秒杀活动列表
* @author: yangjian
* @param activityNameLike 搜索内容
**/
public
JSONObject
getStudioActivityPage1
(
String
activityNameLike
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_getStudioActivityPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityNameLike"
,
activityNameLike
);
jsonObject
.
put
(
"size"
,
10
);
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
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 activityId 活动ID
**/
public
JSONObject
getStudioActivityById
(
String
activityId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_getStudioActivityById"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityId"
,
activityId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
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 activityId 活动ID
**/
public
JSONObject
studioSeckillInvalid
(
String
activityId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_studioSeckill_invalid"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityId"
,
activityId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
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 activityId 活动ID
**/
public
JSONObject
studioSeckillDeleteById
(
String
activityId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_studioSeckill_deleteById"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityId"
,
activityId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
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 activityId 活动ID
**/
public
JSONObject
getStatisticsData
(
String
activityId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_getStatisticsData"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityId"
,
activityId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
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 activityId 活动ID
* @param supplierId
**/
public
JSONObject
pageVoucher
(
String
activityId
,
String
supplierId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
.
setApiName
(
"API_pageVoucher"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
//List<String> states = new ArrayList<>();
//states.add(state);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"current"
,
0
);
jsonObject
.
put
(
"size"
,
20
);
jsonObject
.
put
(
"supplierId"
,
supplierId
);
//取活动详情的sourceId
//jsonObject.put("states", states);//WAITING"待支付, "ARREARS"部分支付, "CANCEL"、"TIMEOUT"已取消 ,"PAID"已完成 "DISCARD"已作废
jsonObject
.
put
(
"activityId"
,
activityId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
}
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/TestPublish.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
memberCard
.
MemberCardTimeSale
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
public
class
TestPublish
extends
BaseTestImpl
{
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
@Resource
(
name
=
"memberCardTimeSaleTools"
)
MemberCardTimeSaleTools
MemberCardTimeSaleTools
;
@BeforeClass
@Override
public
void
beforeTest
()
{
setTestInfo
(
ApiModule
.
Polar_Card
,
"API_studioSeckill_publish"
,
LoginAccount
.
ADU_PROD
,
Terminal
.
B
,
"yangjian"
);
super
.
beforeTest
();
}
@Test
(
description
=
"发布秒杀活动动"
)
public
void
testStudioSeckill_publish
()
throws
InterruptedException
{
Thread
.
sleep
(
2000
);
String
cardId
=
cardTools
.
memberCardCreate
(
"用于秒杀活动的会员卡"
+
TimeUtils
.
getCurrentTime
()).
getString
(
"result"
);
//创建一张用于秒杀活动的会员卡
String
title
=
"未发布的秒杀活动"
+
TimeUtils
.
getCurrentTime
();
JSONObject
result1
=
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"UNPUBLISHED"
);
//未发布条数;
int
before
=
Integer
.
parseInt
(
result1
.
getJSONObject
(
"result"
).
getString
(
"total"
));
String
activeid
=
MemberCardTimeSaleTools
.
create
(
cardId
,
title
,
false
).
getString
(
"result"
);
//创建一个未发布的秒杀活动
JSONObject
result2
=
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"UNPUBLISHED"
);
//未发布条数;
int
after
=
Integer
.
parseInt
(
result2
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
after
,
before
+
1
);
//未发布活动+1
MemberCardTimeSaleTools
.
getStudioActivityById
(
activeid
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.state"
),
"UNPUBLISHED"
,
"目标活动非未发布状态"
);
//断言目标活动非发布状态
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activityId"
,
activeid
);
jsonObject
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
jsonObject
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
JSONObject
result3
=
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"UNPUBLISHED"
);
//未发布条数;
int
after2
=
Integer
.
parseInt
(
result3
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
after2
,
after
-
1
);
//未发布活动-1
MemberCardTimeSaleTools
.
getStudioActivityById
(
activeid
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.state"
),
"PROCESSING"
,
"目标活动非进行中状态"
);
//断言目标活动进行中状态
MemberCardTimeSaleTools
.
studioSeckillDeleteById
(
activeid
);
//删除秒杀活动
}
}
src/main/java/com/xiaomai/cases/polar/memberCard/MemberCardTimeSale/Testflashsaleedit.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
memberCard
.
MemberCardTimeSale
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.studioConfig.MerchantTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
Testflashsaleedit
extends
BaseTestImpl
{
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
@Resource
(
name
=
"memberCardTimeSaleTools"
)
MemberCardTimeSaleTools
MemberCardTimeSaleTools
;
@BeforeClass
@Override
public
void
beforeTest
()
{
setTestInfo
(
ApiModule
.
Polar_Card
,
"API_flashsaleedit"
,
LoginAccount
.
ADU_PROD
,
Terminal
.
B
,
"yangjian"
);
super
.
beforeTest
();
}
@Test
(
description
=
"编辑秒杀活动动"
)
public
void
testFlashsaleedit
()
throws
InterruptedException
{
Thread
.
sleep
(
2000
);
String
cardId
=
cardTools
.
memberCardCreate
(
"用于秒杀活动的会员卡"
+
TimeUtils
.
getCurrentTime
()).
getString
(
"result"
);
//创建一张用于秒杀活动的会员卡
JSONObject
result
=
MemberCardTimeSaleTools
.
getStudioActivityPage1
(
""
);
//所有活动条数;
int
beforecount
=
Integer
.
parseInt
(
result
.
getJSONObject
(
"result"
).
getString
(
"total"
));
String
title
=
"秒杀活动"
+
TimeUtils
.
getCurrentTime
();
String
activeid
=
MemberCardTimeSaleTools
.
create
(
cardId
,
title
,
true
).
getString
(
"result"
);
//创建并发布一个秒杀活动
JSONObject
result1
=
MemberCardTimeSaleTools
.
getStudioActivityPage1
(
""
);
//所有活动条数;
int
aftercount1
=
Integer
.
parseInt
(
result1
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
aftercount1
,
beforecount
+
1
);
//创建秒杀活动后,秒杀活动列表+1
Assert
.
assertTrue
(
XMJSONPath
.
readPath
(
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"PROCESSING"
),
"$.result.records[0].activityId"
).
equals
(
activeid
),
"活动列表非创建活动"
);
//创建活动后断言,列表第一条进行中数据为新建活动
Assert
.
assertTrue
(
XMJSONPath
.
readPath
(
MemberCardTimeSaleTools
.
getStudioActivityPage1
(
title
),
"$.result.records[0].activityName"
).
equals
(
title
),
"搜索结果非新建活动"
);
//创建活动后断言,列表能正常搜索道
JSONObject
jsonObject
=
new
JSONObject
();
//修改活动名称+修改活动剩余库存数量
List
<
String
>
applyMemberStates
=
new
ArrayList
<>();
applyMemberStates
.
add
(
"POTENTIAL"
);
applyMemberStates
.
add
(
"NORMAL"
);
applyMemberStates
.
add
(
"HISTORY"
);
jsonObject
.
put
(
"activityName"
,
"编辑后的秒杀活动"
);
jsonObject
.
put
(
"activityType"
,
"SECKILL"
);
//活动类型为秒杀
jsonObject
.
put
(
"endTime"
,
TimeUtils
.
getTodayEndTime
());
//活动结束时间为今天24点
jsonObject
.
put
(
"startTime"
,
TimeUtils
.
getTodayTime
());
//活动开始时间为今天0点
jsonObject
.
put
(
"applyMemberStates"
,
applyMemberStates
);
//活动可参与用户
jsonObject
.
put
(
"autoCancelMinutes"
,
"5"
);
//自动取消订单时间
jsonObject
.
put
(
"commodityId"
,
cardId
);
//活动的会员卡商品
jsonObject
.
put
(
"commodityType"
,
"MEMBER_CARD"
);
//商品类型,目前仅有会员卡
jsonObject
.
put
(
"initSalesVolumeShow"
,
"10"
);
//初始秒杀数量显示
jsonObject
.
put
(
"purchaseNumberLimit"
,
-
1
);
//购买数量限制:不限制
jsonObject
.
put
(
"reserveReminder"
,
true
);
//秒杀数量是否展示
jsonObject
.
put
(
"specialPrice"
,
"0"
);
//秒杀价格0元
jsonObject
.
put
(
"publish"
,
"true"
);
//是否发布
jsonObject
.
put
(
"stock"
,
"11"
);
//库存数
jsonObject
.
put
(
"activityId"
,
activeid
);
jsonObject
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
jsonObject
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
MemberCardTimeSaleTools
.
getStudioActivityById
(
activeid
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.activityName"
),
"编辑后的秒杀活动"
,
"目标活动没有修改成功"
);
//断言目标活动名字变更
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.stock"
),
"11"
,
"目标活动库存数没有修改成功"
);
//断言目标活动库存数量变更
MemberCardTimeSaleTools
.
getStatisticsData
(
activeid
);
//查看活动数据
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.totalStock"
),
"11"
,
"目标活动库存数没有修改成功"
);
//断言目标活动库存数量变更
MemberCardTimeSaleTools
.
getStudioActivityById
(
activeid
);
String
supplierId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.sourceId"
);
//获取supplierId
MemberCardTimeSaleTools
.
pageVoucher
(
activeid
,
supplierId
);
//查看活动详情-订单数据
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$success"
),
"true"
,
"活动详情订单数据没有访问成功"
);
JSONObject
result2
=
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"ABNORMAL"
);
//所有活动条数;
int
count1
=
Integer
.
parseInt
(
result2
.
getJSONObject
(
"result"
).
getString
(
"total"
));
MemberCardTimeSaleTools
.
studioSeckillInvalid
(
activeid
);
//失效活动
JSONObject
result3
=
MemberCardTimeSaleTools
.
getStudioActivityPage
(
"ABNORMAL"
);
//活动后活动条数
int
count2
=
Integer
.
parseInt
(
result3
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
count2
,
count1
+
1
);
//失效活动+1
MemberCardTimeSaleTools
.
getStudioActivityById
(
activeid
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.state"
),
"ABNORMAL"
,
"目标活动没有失效状态"
);
//断言目标活动变成失效状态
MemberCardTimeSaleTools
.
studioSeckillDeleteById
(
activeid
);
//删除秒杀活动
JSONObject
result4
=
MemberCardTimeSaleTools
.
getStudioActivityPage1
(
""
);
//删除活动后活动条数
int
aftercount2
=
Integer
.
parseInt
(
result4
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
aftercount2
,
aftercount1
-
1
);
//删除秒杀活动后,秒杀活动列表-1
}
}
src/main/java/com/xiaomai/cases/polar/setting/venue/TestPurchaseAreaTimes.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
setting
.
venue
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.minMemberCard.MinCardTools
;
import
com.xiaomai.cases.lunar.order.OrderCTools
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
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
TestPurchaseAreaTimes
extends
XMBaseTest
{
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@Resource
(
name
=
"minCardTools"
)
MinCardTools
minCardTools
;
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
@Resource
(
name
=
"orderCTools"
)
OrderCTools
orderCTools
;
@Resource
(
name
=
"orderTools"
)
OrderTools
orderTools
;
DataUserInfo
info
=
new
DataUserInfo
();
String
depositCardId
;
String
price
=
"1.99"
;
//设置场地全场价格
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_purchaseAreaTimes"
)
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
)
.
setTerminal
(
Terminal
.
minApp
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"小程序使用储值卡购买场地预约"
)
public
void
testPurchaseAreaTimesByDeposit
()
throws
InterruptedException
{
//获取小程序可预约的场地数
int
enableReserveSuiteNum
=
venueAreaTools
.
getEnableReserveVenueAreaSuiteList
().
getJSONArray
(
"result"
).
size
();
int
suiteNum
=
venueAreaTools
.
getVenueAreaSuitePage
().
getJSONArray
(
"result"
).
size
();
//切换B端校验
info
.
setTerminal
(
Terminal
.
B
);
info
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
//1.创建场地
String
groupId
=
venueAreaTools
.
saveVenueArea
(
info
);
//2.创建场地组
String
suiteName
=
"西湖场地组"
+
RandomStringUtil
.
randomString
(
5
);
String
suiteId
=
venueAreaTools
.
createOrEditVenueAreaSuite
(
null
,
suiteName
,
info
);
//3.场地组绑定场地
venueAreaTools
.
bindVenueAreas
(
suiteId
,
groupId
,
info
);
//获取全场的areaId,一般全场的areaId为groupId+1以此类推;
String
areaId
=
String
.
valueOf
(
Long
.
valueOf
(
groupId
)+
1
);
//获取场地组的时间区间,并检验是否有返回值
Assert
.
assertTrue
(
venueAreaTools
.
getSuiteVenueAreaTimeList
(
suiteId
,
info
).
getJSONArray
(
"result"
).
size
()>
0
);
//有返回值就可以批量创建可预约时间
venueAreaTools
.
createBatchNormalDate
(
suiteId
,
groupId
,
price
,
info
);
//检验c端的场地组数量+1
Assert
.
assertTrue
(
venueAreaTools
.
getEnableReserveVenueAreaSuiteList
().
getJSONArray
(
"result"
).
size
()==
enableReserveSuiteNum
+
1
);
Assert
.
assertTrue
(
venueAreaTools
.
getVenueAreaSuitePage
().
getJSONArray
(
"result"
).
size
()==
suiteNum
+
1
);
//检验该场地组时间块有数值
Assert
.
assertTrue
(
venueAreaTools
.
getSuiteReserveTimeBlock
(
suiteId
).
getJSONObject
(
"result"
).
getJSONArray
(
"venueReserveTimeBlockVOS"
).
size
()>
0
);
//检验c端的场地详情为启用中
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
getVenueAreaSuiteDetail
(
suiteId
),
"$.result.state"
),
"ON"
);
//获取用户
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
//获取当天的0点
String
reserveDay
=
String
.
valueOf
(
TimeUtils
.
getTodayTime
());
//查询是否有可使用的储值卡,如果没有创建1张
int
num
=
XMJSONPath
.
getJSONArrayByReadPath
(
minCardTools
.
listUserUsableDepositCard
(
memberId
,
"ORDER_VENUE"
),
"$.result.applicableList"
).
size
();
if
(
num
>
1
)
{
for
(
int
i
=
0
;
i
<
num
-
1
;
i
++)
{
String
leftBalance
=
XMJSONPath
.
readPath
(
minCardTools
.
listUserUsableDepositCard
(
memberId
,
"ORDER_VENUE"
),
"$.result.applicableList["
+
i
+
"].depositBenefit.leftBalance"
);
//遍历储值卡的可用余额是否大于等于会员卡的价格
if
(
Double
.
parseDouble
(
leftBalance
)
>=
Double
.
parseDouble
(
price
))
{
depositCardId
=
XMJSONPath
.
readPath
(
minCardTools
.
listUserUsableDepositCard
(
memberId
,
"ORDER_VENUE"
),
"$.result.applicableList["
+
i
+
"].id"
);
break
;
}
else
{
//查询启用中的储值卡,获取储值卡id
String
cardId
=
XMJSONPath
.
readPath
(
cardTools
.
fetchPageOfMemberCard
(
"DEPOSIT_CARD"
,
info
),
"$.result.records[0].id"
);
String
latestSnapshotId
=
XMJSONPath
.
readPath
(
cardTools
.
fetchDetailById
(
cardId
,
info
),
"$.result.latestSnapshotId"
);
//b端购买1张储值卡
cardTools
.
signOrderDeposit
(
cardId
,
latestSnapshotId
,
memberId
,
"0.00"
,
"1000.00"
,
info
);
//获取C端第1张可使用的储值卡
depositCardId
=
XMJSONPath
.
readPath
(
minCardTools
.
listUserUsableDepositCard
(
memberId
,
"ORDER_VENUE"
),
"$.result.applicableList[0].id"
);
}
}
//查询要使用的储值卡消耗记录条数
String
depositBenefitId
=
XMJSONPath
.
readPath
(
minCardTools
.
findMemberCardDetailById
(
depositCardId
),
"$.result.depositBenefit.id"
);
int
total
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
minCardTools
.
fetchPageOfConsumeRecord
(
depositCardId
,
depositBenefitId
),
"$.result.total"
));
//场地预约列表的已预约数据
int
bookingNum
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
venueAreaTools
.
pageMemberVenueBooking
(
"RESERVED"
,
memberId
),
"$.result.total"
));
//检验场地预约前该场地规则
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
venueAreaBookingRulesGet
(),
"$.result.brandId"
),
xmAppApi
.
getLoginInfo
().
getBrandId
());
//4.小程序预约场地
JSONArray
areaTimeInfos
=
new
JSONArray
();
JSONObject
areaTime
=
new
JSONObject
();
areaTime
.
put
(
"startMinute"
,
"1410"
);
//预约开始时间23:30
areaTime
.
put
(
"endMinute"
,
"1440"
);
//预约结束时间24:00
areaTime
.
put
(
"price"
,
price
);
//该场地组全场的单价
areaTimeInfos
.
add
(
areaTime
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"depositAmount"
,
price
);
object
.
put
(
"depositCardId"
,
depositCardId
);
object
.
put
(
"areaTimeInfos"
,
areaTimeInfos
);
object
.
put
(
"groupId"
,
groupId
);
//场地id
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"memo"
,
"自动化脚本创建的场地预约"
);
object
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
object
.
put
(
"receivableAmount"
,
"0.00"
);
object
.
put
(
"reserveDay"
,
reserveDay
);
//预约当天
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"suiteId"
,
suiteId
);
//场地组id
object
.
put
(
"venueAreaId"
,
areaId
);
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toString
(),
headers
).
assetsSuccess
(
true
);
String
voucherId
=
xmAppApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"id"
);
//订单ID
Thread
.
sleep
(
3000
);
//校验c端订单详情
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
orderCTools
.
getDetail
(
voucherId
),
"$.result.state"
),
"PAID"
,
"创建签单订单成功,但订单状态不是已完成"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
orderCTools
.
getDetail
(
voucherId
),
"$.result.source"
),
"ONLINE_MALL"
,
"C端创建的签单订单,订单来源非会员创建"
);
//检验c端我的预约场地数据+1
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
venueAreaTools
.
pageMemberVenueBooking
(
"RESERVED"
,
memberId
),
"$.result.total"
))==
bookingNum
+
1
);
//检验c端预约详情状态为已预约
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
getByVoucher
(
voucherId
),
"$.result.state"
),
"RESERVED"
);
//预约类型:已预约
//检验储值卡的消耗记录新增1条
JSONObject
body
=
minCardTools
.
fetchPageOfConsumeRecord
(
depositCardId
,
depositBenefitId
);
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
body
,
"$.result.total"
))
==
total
+
1
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
body
,
"$.result.records[0].consumeType"
),
"DEPOSIT_SIGN_ORDER"
);
//消耗类型:签单
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
body
,
"$.result.records[0].changeOfGiveBalance"
),
"-"
+
price
);
//消耗赠送金额
//操作c端取消预约并且预约详情为已取消
String
venueBookingRecordId
=
XMJSONPath
.
readPath
(
venueAreaTools
.
getByVoucher
(
voucherId
),
"$.result.id"
);
venueAreaTools
.
getCheckInIdentifier
(
venueBookingRecordId
);
//检验入场码生效
venueAreaTools
.
cancelVenueBookingRecord
(
venueBookingRecordId
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
getByVoucher
(
voucherId
),
"$.result.state"
),
"CANCELLED"
);
//预约类型:已取消
//检验c端储值卡金额退回
JSONObject
jsBody
=
minCardTools
.
fetchPageOfConsumeRecord
(
depositCardId
,
depositBenefitId
);
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
jsBody
,
"$.result.total"
))
==
total
+
2
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
jsBody
,
"$.result.records[0].consumeType"
),
"DEPOSIT_DISCARD_SIGN_ORDER"
);
//消耗类型:作废签单
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
jsBody
,
"$.result.records[0].changeOfGiveBalance"
),
price
);
//退回赠送金额
//检验b端订单变成已作废
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
orderTools
.
getDetail
(
voucherId
,
info
),
"$.result.state"
),
"DISCARD"
);
//清理数据
//b端场地组移除场地
venueAreaTools
.
unbindVenueAreas
(
suiteId
,
groupId
,
info
);
//b端删除场地组
venueAreaTools
.
saveVenueAreaSuite
(
suiteId
,
"DELETE"
,
info
);
//b端删除场地
venueAreaTools
.
deleteVenueArea
(
groupId
,
info
);
}
}
}
src/main/java/com/xiaomai/cases/polar/setting/venue/TestSaveVenueAreaBookingRules.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
setting
.
venue
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
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
TestSaveVenueAreaBookingRules
extends
XMBaseTest
{
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
public
String
ruleId
;
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_saveVenueAreaBookingRules"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
ruleId
=
venueAreaTools
.
getVenueAreaBookingRules
();
}
@Test
(
description
=
"场地预约规则全部开关开启"
)
public
void
testSaveVenueAreaBookingRules_on
(){
JSONObject
bookingStartRuleRequest
=
new
JSONObject
();
bookingStartRuleRequest
.
put
(
"bookingStartComingDays"
,
"7"
);
bookingStartRuleRequest
.
put
(
"limit"
,
true
);
JSONObject
bookingEndRuleRequest
=
new
JSONObject
();
bookingEndRuleRequest
.
put
(
"bookingEndBeforeMinutes"
,
"60"
);
bookingEndRuleRequest
.
put
(
"bookingEndBeforeUnit"
,
"hour"
);
bookingEndRuleRequest
.
put
(
"limit"
,
true
);
JSONObject
cancelBookingRuleRequest
=
new
JSONObject
();
cancelBookingRuleRequest
.
put
(
"cancelBookingBeforeMinutes"
,
"60"
);
cancelBookingRuleRequest
.
put
(
"cancelBookingBeforeUnit"
,
"hour"
);
cancelBookingRuleRequest
.
put
(
"limit"
,
true
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"scanSignIn"
,
true
);
object
.
put
(
"signInBeforeMinutes"
,
"999"
);
object
.
put
(
"expireAutoSignIn"
,
true
);
object
.
put
(
"bookingStartRuleRequest"
,
bookingStartRuleRequest
);
object
.
put
(
"bookingEndRuleRequest"
,
bookingEndRuleRequest
);
object
.
put
(
"cancelBookingRuleRequest"
,
cancelBookingRuleRequest
);
object
.
put
(
"id"
,
ruleId
);
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
JSONObject
response
=
xmAppApi
.
getBodyInJSON
();
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
response
,
"$.message"
),
"操作成功!"
);
}
@Test
(
description
=
"场地预约规则全部开关关闭"
,
priority
=
1
)
public
void
testSaveVenueAreaBookingRules_off
(){
JSONObject
bookingStartRuleRequest
=
new
JSONObject
();
bookingStartRuleRequest
.
put
(
"limit"
,
false
);
JSONObject
bookingEndRuleRequest
=
new
JSONObject
();
bookingEndRuleRequest
.
put
(
"limit"
,
false
);
JSONObject
cancelBookingRuleRequest
=
new
JSONObject
();
cancelBookingRuleRequest
.
put
(
"limit"
,
false
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"scanSignIn"
,
false
);
object
.
put
(
"signInBeforeMinutes"
,
"999"
);
object
.
put
(
"expireAutoSignIn"
,
false
);
object
.
put
(
"bookingStartRuleRequest"
,
bookingStartRuleRequest
);
object
.
put
(
"bookingEndRuleRequest"
,
bookingEndRuleRequest
);
object
.
put
(
"cancelBookingRuleRequest"
,
cancelBookingRuleRequest
);
object
.
put
(
"id"
,
ruleId
);
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
JSONObject
response
=
xmAppApi
.
getBodyInJSON
();
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
response
,
"$.message"
),
"操作成功!"
);
}
}
src/main/java/com/xiaomai/cases/polar/setting/venue/TestScanCheckIn.java
0 → 100644
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
setting
.
venue
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
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
TestScanCheckIn
extends
XMBaseTest
{
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
DataUserInfo
info
=
new
DataUserInfo
();
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_scanCheckIn"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"xyy"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"b端场地预约扫入场码"
)
public
void
testScanCheckIn
()
{
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"identifier"
,
"11"
);
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toJSONString
(),
headers
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.message"
),
"订场记录不存在"
);
}
@Test
(
description
=
"小程序预约0元子场地1和子场地2-->b端手动签到-->b端扫码签到"
)
public
void
testScanCheckIn_2
()
throws
InterruptedException
{
//获取当前场地组数量
int
suiteNum
=
venueAreaTools
.
getVenueAreaSuiteList
().
getJSONArray
(
"result"
).
size
();
//1.创建场地
String
groupId
=
venueAreaTools
.
saveVenueArea
();
//检验可预约场地数大于0
Assert
.
assertTrue
(
venueAreaTools
.
getEnableVenueAreas
().
getJSONArray
(
"result"
).
size
()>
0
);
//2.创建场地组名
String
suiteName
=
"西湖场地组"
+
RandomStringUtil
.
randomString
(
5
);
//检验该场地组名称是否重名,未重名则创建场地组
boolean
flag
=
venueAreaTools
.
checkExistsName
(
suiteName
);
if
(
flag
==
false
){
String
suiteId
=
venueAreaTools
.
createOrEditVenueAreaSuite
(
null
,
suiteName
);
//场地组创建成功后,检验场地组列表数量+1
Assert
.
assertTrue
(
venueAreaTools
.
getVenueAreaSuiteList
().
getJSONArray
(
"result"
).
size
()==
suiteNum
+
1
);
//检验场地组详情为启用中
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
getVenueAreaSuiteById
(
suiteId
),
"$.result.state"
),
"ON"
);
//场地组绑定场地数量
int
timeList
=
venueAreaTools
.
getSuiteVenueAreaTimeList
(
suiteId
).
getJSONArray
(
"result"
).
size
();
//4.场地组绑定场地
venueAreaTools
.
bindVenueAreas
(
suiteId
,
groupId
);
Assert
.
assertTrue
(
venueAreaTools
.
getSuiteVenueAreaTimeList
(
suiteId
).
getJSONArray
(
"result"
).
size
()==
timeList
+
1
);
//获取子场地-1的areaId,一般子场的areaId为groupId+2;
String
areaId
=
String
.
valueOf
(
Long
.
valueOf
(
groupId
)+
2
);
//获取子场地-2的areaId,一般子场的areaId为groupId+3;
String
areaId2
=
String
.
valueOf
(
Long
.
valueOf
(
groupId
)+
3
);
//获取场地预约规则设置-常规则预约规则数量
int
groupTime
=
venueAreaTools
.
getVenueAreaGroupTime
(
groupId
).
getJSONObject
(
"result"
).
getJSONArray
(
"normalTimeVOS"
).
size
();
//并且检验该场地组有可预约的时间
Assert
.
assertTrue
(
venueAreaTools
.
getVenueAreaSuiteTimePeriods
(
suiteId
).
getJSONArray
(
"result"
).
size
()>
0
);
//5.批量创建可预约时间
venueAreaTools
.
createBatchNormalDate
(
suiteId
,
groupId
,
"0.00"
);
//全场价格设置为0元
Thread
.
sleep
(
3000
);
//常规预约规则数+1
Assert
.
assertTrue
(
venueAreaTools
.
getVenueAreaGroupTime
(
groupId
).
getJSONObject
(
"result"
).
getJSONArray
(
"normalTimeVOS"
).
size
()==
groupTime
+
1
);
//获取当天的0点
String
reserveDay
=
String
.
valueOf
(
TimeUtils
.
getTodayTime
());
//获取当前场地预约记录列表的数量
int
bookingNum
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
venueAreaTools
.
pageVenueBooking
(),
"$.result.total"
));
//切换C端
info
.
setTerminal
(
Terminal
.
minApp
);
info
.
setLoginUser
(
LoginAccount
.
GYM_MINIAPPC
);
//获取用户
String
memberId
=
userTools
.
getMemberInfo
(
info
).
getString
(
"memberId"
);
//获取当前时间小时数值往后+1
String
startMinute
=
String
.
valueOf
((
TimeUtils
.
hourOfDay
()+
1
)*
60
);
String
endMinute
=
String
.
valueOf
((
TimeUtils
.
hourOfDay
()+
1
)*
60
+
30
);
//结束时间与开始时间相差30分钟
//首次预约子场地-1,场地不冲突
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
checkMemberVenueBookingConflict
(
startMinute
,
endMinute
,
"0.00"
,
groupId
,
memberId
,
reserveDay
,
areaId
,
info
),
"$.result.conflict"
),
"false"
);
//预约子场地-1
String
voucherId
=
venueAreaTools
.
purchaseAreaTimes
(
startMinute
,
endMinute
,
suiteId
,
groupId
,
memberId
,
reserveDay
,
areaId
,
info
);
//场地预约的订单id
Thread
.
sleep
(
3000
);
String
venueBookingRecordId
=
XMJSONPath
.
readPath
(
venueAreaTools
.
getByVoucher
(
voucherId
,
info
),
"$.result.id"
);
//场地预约的记录id
venueAreaTools
.
getCheckInIdentifier
(
venueBookingRecordId
,
info
);
//检验入场码生效
//预约详情的状态为已预约
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
getVenueBookingRecordDetail
(
venueBookingRecordId
,
info
),
"$.result.state"
),
"RESERVED"
);
Thread
.
sleep
(
3000
);
//检验该场地冲突
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
checkMemberVenueBookingConflict
(
startMinute
,
endMinute
,
"0.00"
,
groupId
,
memberId
,
reserveDay
,
areaId2
,
info
),
"$.result.conflict"
),
"true"
);
//允许场地冲突并且预约场地
Assert
.
assertEquals
((
venueAreaTools
.
checkAllowVenueBooking
(
startMinute
,
endMinute
,
"0.00"
,
groupId
,
memberId
,
reserveDay
,
suiteId
,
areaId2
,
info
)),
"true"
);
//预约子场地-2
String
voucherId2
=
venueAreaTools
.
purchaseAreaTimes
(
startMinute
,
endMinute
,
suiteId
,
groupId
,
memberId
,
reserveDay
,
areaId2
,
info
);
//场地预约的订单id
Thread
.
sleep
(
3000
);
String
venueBookingRecordId2
=
XMJSONPath
.
readPath
(
venueAreaTools
.
getByVoucher
(
voucherId2
,
info
),
"$.result.id"
);
//场地预约的记录id
venueAreaTools
.
getCheckInIdentifier
(
venueBookingRecordId2
,
info
);
//检验入场码生效
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"identifier"
,
venueBookingRecordId
);
object
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
//调用请求
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
object
.
toJSONString
(),
headers
).
assetsSuccess
(
true
);
//检验b端预约详情变成已签到
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
venueBookingRecordGetDetail
(
venueBookingRecordId
),
"$.result.state"
),
"RESERVED"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
venueBookingRecordGetDetail
(
venueBookingRecordId
),
"$.result.checkIn"
),
"true"
);
//人工签到同一个码,提示已签到
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
manualCheckIn
(
venueBookingRecordId
),
"$.message"
),
"签到失败,无需重复操作"
);
//人工签到子场地-2成功
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
manualCheckIn
(
venueBookingRecordId2
),
"$.message"
),
"操作成功!"
);
//扫码签到子场地-2,提示已签到
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
scanCheckIn
(
venueBookingRecordId2
),
"$.result.message"
),
"预约场次已签到,无需重复签到"
);
//预约记录+2
Assert
.
assertTrue
(
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
venueAreaTools
.
pageVenueBooking
(),
"$.result.total"
))==
bookingNum
+
2
);
//检验预约失败记录=0
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
venueAreaTools
.
countVenueBookingRefundFail
(),
"$.result"
),
"0"
);
//清理数据
//b端场地组移除场地
venueAreaTools
.
unbindVenueAreas
(
suiteId
,
groupId
);
//b端删除场地组
venueAreaTools
.
saveVenueAreaSuite
(
suiteId
,
"DELETE"
);
//b端删除场地
venueAreaTools
.
deleteVenueArea
(
groupId
);
}
}
}
src/main/java/com/xiaomai/cases/polar/setting/venue/VenueAreaTools.java
View file @
590b2972
package
com
.
xiaomai
.
cases
.
polar
.
setting
.
venue
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.springframework.stereotype.Component
;
import
org.testng.Assert
;
/**
* @BelongsProject: xm-sportstest
...
...
@@ -17,34 +23,73 @@ import org.springframework.stereotype.Component;
*/
@Component
(
"venueAreaTools"
)
public
class
VenueAreaTools
extends
XMBaseTest
{
/**
* @description:创建场地
* @description:创建
不带子场地的
场地
* @author: xuyamei
* @date: 2024/5/8 13:55
* @param
area
Name:场地名称
* @param
group
Name:场地名称
* @return: java.lang.String
**/
public
String
createVenueArea
(
String
areaName
)
{
public
String
createVenueArea
(
String
groupName
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_createVenueArea"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"groupName"
,
areaName
);
body
.
put
(
"groupName"
,
groupName
);
body
.
put
(
"areaList"
,
new
JSONArray
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
public
void
deleteVenueArea
(
String
groupId
)
{
/**
* 创建带子场地的场地
* @return
*/
public
String
saveVenueArea
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_createVenueArea"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建子场地信息
JSONArray
areaList
=
new
JSONArray
();
JSONObject
oneArea
=
new
JSONObject
();
oneArea
.
put
(
"areaName"
,
"子场地-1"
);
oneArea
.
put
(
"usageRatio"
,
0
);
JSONObject
twoArea
=
new
JSONObject
();
twoArea
.
put
(
"areaName"
,
"子场地-2"
);
twoArea
.
put
(
"usageRatio"
,
0
);
areaList
.
add
(
oneArea
);
areaList
.
add
(
twoArea
);
//构建请求
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"groupName"
,
"西湖场地"
+
RandomStringUtil
.
randomString
(
5
));
body
.
put
(
"areaList"
,
areaList
);
//调用参数
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
* 删除场地
* @param groupId
* @param userInfos
*/
public
void
deleteVenueArea
(
String
groupId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_deleteVenueArea"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
userInfos
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"groupId"
,
groupId
);
...
...
@@ -53,6 +98,7 @@ public class VenueAreaTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
))
==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
}
/**
...
...
@@ -78,7 +124,27 @@ public class VenueAreaTools extends XMBaseTest {
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
/**
* 获取场地组列表
* @return
*/
public
JSONObject
getVenueAreaSuiteList
()
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getVenueAreaSuiteList"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
String
[]
stateEnumList
=
{
"ON"
,
"OFF"
};
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"stateEnumList"
,
stateEnumList
);
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* @description:编辑场地
* @author: xuyamei
...
...
@@ -96,14 +162,13 @@ public class VenueAreaTools extends XMBaseTest {
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"groupName"
,
groupName
);
body
.
put
(
"groupId"
,
groupId
);
body
.
put
(
"areaList"
,
new
JSONArray
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
}
/**
* @description:根据课程id获取场地详情
* @author: xuyamei
...
...
@@ -127,5 +192,703 @@ public class VenueAreaTools extends XMBaseTest {
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
/**
* 通用设置-预约规则-获取场地预约规则
* @return
*/
public
String
getVenueAreaBookingRules
()
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getVenueAreaBookingRules"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.id"
);
}
/**
* 创建/编辑场地组
* @return
*/
public
String
createOrEditVenueAreaSuite
(
String
venueId
,
String
suiteName
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_saveVenueAreaSuite"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONArray
propagandaPictureList
=
new
JSONArray
();
propagandaPictureList
.
add
(
"1851146496925679617"
);
//场地组平面图固定
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"name"
,
suiteName
);
object
.
put
(
"propagandaPictureList"
,
propagandaPictureList
);
object
.
put
(
"spanMinutes"
,
"30"
);
object
.
put
(
"lowestPrice"
,
"0"
);
object
.
put
(
"startMinute"
,
"0"
);
object
.
put
(
"endMinute"
,
"1440"
);
//00:00~24:00
object
.
put
(
"lowerLimitTimes"
,
"-1"
);
//下限
object
.
put
(
"upperLimitTimes"
,
"-1"
);
//上限
object
.
put
(
"noticeContent"
,
"{\"way\":\"auto\"}"
);
object
.
put
(
"needNotice"
,
false
);
object
.
put
(
"introduction"
,
"{\"items\":[{\"type\":\"TEXT\",\"content\":\"自动化脚本创建场地组介绍\",\"aspect\":\"\"}]}"
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"id"
,
venueId
);
//id不为空,则编辑场地组
if
(
null
!=
venueId
)
{
object
.
put
(
"planePictureList"
,
new
JSONArray
());
}
else
{
object
.
put
(
"state"
,
"ON"
);
object
.
put
(
"tags"
,
new
JSONArray
());
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
);
}
/**
* 启用/停用/删除场地组
* @param suiteId
* @param state:"ON","OFF","DELETE"
* @return
*/
public
void
saveVenueAreaSuite
(
String
suiteId
,
String
state
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_saveVenueAreaSuite"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
suiteId
);
object
.
put
(
"state"
,
state
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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"
));
}
/**
* 获取场地组详情
* @param suiteId
* @return
*/
public
JSONObject
getVenueAreaSuiteById
(
String
suiteId
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getVenueAreaSuiteById"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
suiteId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 场地组可预约时间
* @param suiteId
* @return
*/
public
JSONObject
getSuiteVenueAreaTimeList
(
String
suiteId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getSuiteVenueAreaTimeList"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
suiteId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 场地组下面可添加的场地
* @return
*/
public
JSONObject
getEnableVenueAreas
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getEnableVenueAreas"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 场地组绑定场地
* @param suiteId
* @param groupId
* @param userInfos
* @return
*/
public
JSONObject
bindVenueAreas
(
String
suiteId
,
String
groupId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_bindVenueAreas"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONArray
venueGroupIds
=
new
JSONArray
();
venueGroupIds
.
add
(
groupId
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"suiteId"
,
suiteId
);
object
.
put
(
"venueGroupIds"
,
venueGroupIds
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 场地组移除场地
* @param suiteId
* @param groupId
* @param userInfos
*/
public
void
unbindVenueAreas
(
String
suiteId
,
String
groupId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_unbindVenueAreas"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONArray
venueGroupIds
=
new
JSONArray
();
venueGroupIds
.
add
(
groupId
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"suiteId"
,
suiteId
);
object
.
put
(
"venueGroupIds"
,
venueGroupIds
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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"
));
}
/**
* 场地组预约时间设置
* @param venueGroupId
* @param userInfos
* @return
*/
public
JSONObject
getVenueAreaGroupTime
(
String
venueGroupId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getVenueAreaGroupTime"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"venueGroupId"
,
venueGroupId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 获取场地组时间区间
* @param suiteId
* @param userInfos
* @return
*/
public
JSONObject
getVenueAreaSuiteTimePeriods
(
String
suiteId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_getVenueAreaSuiteTimePeriods"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
suiteId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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
();
}
/**
* 批量创建可预约时间
* @param suiteId
* @param groupId
*/
public
void
createBatchNormalDate
(
String
suiteId
,
String
groupId
,
String
fullPrice
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_createBatchNormalDate"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
String
[]
weekdays
=
{
"MONDAY"
,
"TUESDAY"
,
"WEDNESDAY"
,
"THURSDAY"
,
"FRIDAY"
,
"SATURDAY"
,
"SUNDAY"
};
//构建配置时间
JSONArray
timePeriodConfigInfos
=
new
JSONArray
();
JSONObject
timePeriod
=
new
JSONObject
();
timePeriod
.
put
(
"minuteOffset"
,
"0"
);
timePeriod
.
put
(
"spanMinutes"
,
"1440"
);
timePeriod
.
put
(
"fullPrice"
,
fullPrice
);
//全场价格
timePeriod
.
put
(
"subPrice"
,
"0.00"
);
//子场地价格0元
timePeriodConfigInfos
.
add
(
timePeriod
);
//构建可约时间段
JSONArray
normalTimeInfoRequests
=
new
JSONArray
();
JSONObject
normalTimeInfo
=
new
JSONObject
();
normalTimeInfo
.
put
(
"timePeriodConfigInfos"
,
timePeriodConfigInfos
);
normalTimeInfo
.
put
(
"weekdays"
,
weekdays
);
normalTimeInfoRequests
.
add
(
normalTimeInfo
);
//构建场地组
JSONArray
venueGroupIds
=
new
JSONArray
();
venueGroupIds
.
add
(
groupId
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"normalTimeInfoRequests"
,
normalTimeInfoRequests
);
object
.
put
(
"suiteId"
,
suiteId
);
object
.
put
(
"venueGroupIds"
,
venueGroupIds
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
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"
));
}
/**
* 检验场地组名是否重名
*/
public
Boolean
checkExistsName
(
String
suiteName
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_checkExistsName"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"name"
,
suiteName
);
object
.
put
(
"id"
,
""
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getBoolean
(
"result"
);
}
/**
* 场地预约记录列表
* @return
*/
public
JSONObject
pageVenueBooking
()
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_pageVenueBooking"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"venueArea"
,
null
);
object
.
put
(
"venueAreaId"
,
null
);
object
.
put
(
"state"
,
null
);
object
.
put
(
"checkIn"
,
null
);
object
.
put
(
"suiteId"
,
null
);
object
.
put
(
"reserveDayStart"
,
null
);
object
.
put
(
"reserveDayEnd"
,
null
);
object
.
put
(
"current"
,
0
);
object
.
put
(
"size"
,
20
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 场地预约记录详情
*/
public
JSONObject
countVenueBookingRefundFail
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_countVenueBookingRefundFail"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 场地预约人工签到
*/
public
JSONObject
manualCheckIn
(
String
venueBookingRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_manualCheckIn"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
venueBookingRecordId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 场地预约扫码签到
*/
public
JSONObject
scanCheckIn
(
String
venueBookingRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_scanCheckIn"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"identifier"
,
venueBookingRecordId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 场地预约记录详情
*/
public
JSONObject
venueBookingRecordGetDetail
(
String
venueBookingRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Setting
)
.
setApiName
(
"API_venueBookingRecordGetDetail"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
venueBookingRecordId
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序我的可预约的场地
*/
public
JSONObject
getEnableReserveVenueAreaSuiteList
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getEnableReserveVenueAreaSuiteList"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"selectedDate"
,
TimeUtils
.
getTodayTime
());
//当天的0点
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序推荐场地列表
*/
public
JSONObject
getVenueAreaSuitePage
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getVenueAreaSuitePage"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
String
[]
stateEnumList
=
{
"ON"
};
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"suiteIds"
,
new
JSONArray
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"stateEnumList"
,
stateEnumList
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序查看场地组详情
*/
public
JSONObject
getVenueAreaSuiteDetail
(
String
suiteId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getVenueAreaSuiteDetail"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
suiteId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 获取场地组预约时间块
* @param suiteId
* @param userInfos
* @return
*/
public
JSONObject
getSuiteReserveTimeBlock
(
String
suiteId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getSuiteReserveTimeBlock"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"suiteId"
,
suiteId
);
object
.
put
(
"selectedDate"
,
TimeUtils
.
getTodayTime
());
//当天的0点
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序场地预约时获取场地规则
* @param userInfos
* @return
*/
public
JSONObject
venueAreaBookingRulesGet
(
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_venueAreaBookingRulesGet"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序场地预约
* @param startMinute 开始时间
* @param endMinute 结束时间
* @param suiteId 场地组id
* @param groupId 场地id
* @param memberId 会员id
* @param reserveDay 预约日期
* @param areaId 子场地id
* @param userInfos
* @return
*/
public
String
purchaseAreaTimes
(
String
startMinute
,
String
endMinute
,
String
suiteId
,
String
groupId
,
String
memberId
,
String
reserveDay
,
String
areaId
,
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"
,
"0.00"
);
//不需要支付金额
areaTimeInfos
.
add
(
areaTime
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"areaTimeInfos"
,
areaTimeInfos
);
object
.
put
(
"groupId"
,
groupId
);
//场地id
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"memo"
,
"自动化脚本创建的场地预约"
);
object
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
16
));
object
.
put
(
"receivableAmount"
,
"0.00"
);
object
.
put
(
"reserveDay"
,
reserveDay
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"suiteId"
,
suiteId
);
//场地组id
object
.
put
(
"venueAreaId"
,
areaId
);
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"
);
}
/**
* 小程序场地预约冲突提示
*/
public
JSONObject
checkMemberVenueBookingConflict
(
String
startMinute
,
String
endMinute
,
String
price
,
String
groupId
,
String
memberId
,
String
reserveDay
,
String
areaId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_checkMemberVenueBookingConflict"
)
.
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
(
"groupId"
,
groupId
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"reserveDay"
,
reserveDay
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"venueAreaId"
,
areaId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序允许场地预约
*/
public
String
checkAllowVenueBooking
(
String
startMinute
,
String
endMinute
,
String
price
,
String
groupId
,
String
memberId
,
String
reserveDay
,
String
suiteId
,
String
areaId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_checkAllowVenueBooking"
)
.
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
(
"groupId"
,
groupId
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"reserveDay"
,
reserveDay
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"suiteId"
,
suiteId
);
object
.
put
(
"venueAreaId"
,
areaId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
* 小程序场地预约的订单详情
*/
public
JSONObject
getByVoucher
(
String
voucherId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getByVoucher"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
voucherId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序我的预约场地列表
*/
public
JSONObject
pageMemberVenueBooking
(
String
state
,
String
memberId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_pageMemberVenueBooking"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"current"
,
0
);
object
.
put
(
"state"
,
state
);
object
.
put
(
"size"
,
20
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"reserveDayStart"
,
TimeUtils
.
getStartYear
());
object
.
put
(
"reserveDayEnd"
,
TimeUtils
.
getEndYear
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
/**
* 小程序我的-我的预约-场地-预约详情
*/
public
JSONObject
getVenueBookingRecordDetail
(
String
venueBookingRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getVenueBookingRecordDetail"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
venueBookingRecordId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
public
void
getCheckInIdentifier
(
String
venueBookingRecordId
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_getCheckInIdentifier"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfos
);
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
venueBookingRecordId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.result"
),
"SUCCESS"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.identifier"
),
venueBookingRecordId
);
}
/**
* 小程序取消场地预约
*/
public
void
cancelVenueBookingRecord
(
String
venueBookingRecordId
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_VenueArea
)
.
setApiName
(
"API_cancelVenueBookingRecord"
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
();
//构建请求参数
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
venueBookingRecordId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
Assert
.
assertTrue
(
Boolean
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result"
))
==
true
,
"调用接口返回结果:"
+
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.message"
));
}
}
src/main/java/com/xiaomai/enums/ApiModule.java
View file @
590b2972
...
...
@@ -24,29 +24,21 @@ public class ApiModule {
public
static
String
Polar_Card
=
"polar_card"
;
//会员卡
public
static
String
Polar_Training
=
"polar_training"
;
//训练营活动
public
static
String
Polar_EleContract
=
"polar_eleContract"
;
//训练营活动
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_Membercluster
=
"polar_membercluster"
;
//会员分群
public
static
String
Polar_LuckyDraw
=
"polar_luckyDraw"
;
//幸运抽奖
public
static
String
Lunar_LuckyDraw
=
"lunar_luckyDraw"
;
//小程序幸运抽奖
public
static
String
Lunar_Coupon
=
"lunar_coupon"
;
//小程序优惠券
public
static
String
Polar_Reserve
=
"polar_reserve"
;
//预约
public
static
String
Lunar_Reserve
=
"lunar_reserve"
;
//小程序预约
public
static
String
Lunar_User
=
"lunar_user"
;
//预约
public
static
String
Lunar_Card
=
"lunar_card"
;
//小程序会员卡
public
static
String
Polar_Data
=
"polar_data"
;
//数据中心
public
static
String
Lunar_Order
=
"lunar_order"
;
//C端订单
public
static
String
Lunar_Training
=
"lunar_training"
;
//C端订单
public
static
String
Lunar_Share
=
"lunar_share"
;
//C端分享
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_LuckyDraw
=
"polar_luckyDraw"
;
//幸运抽奖
public
static
String
Polar_Membercluster
=
"polar_membercluster"
;
//小程序模块
public
static
String
Lunar_LuckyDraw
=
"lunar_luckyDraw"
;
//幸运抽奖
public
static
String
Lunar_Coupon
=
"lunar_coupon"
;
//优惠券
public
static
String
Lunar_Reserve
=
"lunar_reserve"
;
//预约
public
static
String
Lunar_User
=
"lunar_user"
;
//会员信息
public
static
String
Lunar_Card
=
"lunar_card"
;
//会员卡
public
static
String
Lunar_Order
=
"lunar_order"
;
//订单
public
static
String
Lunar_Training
=
"lunar_training"
;
//训练
public
static
String
Lunar_Share
=
"lunar_share"
;
//分享
public
static
String
Lunar_VenueArea
=
"lunar_venueArea"
;
//场地
}
\ No newline at end of file
src/main/java/com/xiaomai/utils/TimeUtils.java
View file @
590b2972
...
...
@@ -135,6 +135,52 @@ public class TimeUtils {
long
today_date
=
calendar
.
getTime
().
getTime
();
return
today_date
;
}
/**
* @return 当前时间的小时数
*/
public
static
int
hourOfDay
(){
Calendar
calendar
=
Calendar
.
getInstance
();
// 获取当前时间戳
int
hourOfDay
=
calendar
.
get
(
Calendar
.
HOUR_OF_DAY
);
//24小时制
return
hourOfDay
;
}
/**
* @return 今年的1月1日0点
*/
public
static
long
getStartYear
(){
//获取当前日期
Calendar
calendar
=
Calendar
.
getInstance
();
//将当前日期设置为1月1日
calendar
.
set
(
Calendar
.
MONTH
,
Calendar
.
JANUARY
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
//将时间设置为0点
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
0
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
0
);
long
getStartYear
=
calendar
.
getTimeInMillis
();
return
getStartYear
;
}
/**
* @return 今年的12月31日23点59分59秒
*/
public
static
long
getEndYear
(){
//获取当前日期
Calendar
calendar
=
Calendar
.
getInstance
();
//清除所有字段
calendar
.
clear
();
calendar
.
set
(
Calendar
.
YEAR
,
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
));
// 设置当前年份
calendar
.
set
(
Calendar
.
MONTH
,
Calendar
.
DECEMBER
);
// 设置为12月
calendar
.
set
(
Calendar
.
DATE
,
31
);
// 设置为31号
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
// 设置为23点
calendar
.
set
(
Calendar
.
MINUTE
,
59
);
// 设置为59分
calendar
.
set
(
Calendar
.
SECOND
,
59
);
// 设置为59秒
calendar
.
set
(
Calendar
.
MILLISECOND
,
59
);
long
getEndYear
=
calendar
.
getTimeInMillis
();
return
getEndYear
;
}
/**
* @return 获取当前时间戳
...
...
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