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
5ed547b2
Commit
5ed547b2
authored
Jun 30, 2025
by
yangfangfang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
3090b82e
8a961a2f
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
681 additions
and
6 deletions
+681
-6
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
+42
-0
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/points/PointsTools.java
+2
-1
src/main/java/com/xiaomai/cases/polar/points/TestBatchPoints.java
+1
-1
src/main/java/com/xiaomai/cases/polar/points/TestFindAccountPagePermission.java
+3
-1
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/LoginAccount.java
+2
-0
No files found.
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
View file @
5ed547b2
...
...
@@ -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/entry/EntryTool.java
View file @
5ed547b2
...
...
@@ -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 @
5ed547b2
...
...
@@ -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 @
5ed547b2
...
...
@@ -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/points/PointsTools.java
View file @
5ed547b2
...
...
@@ -330,9 +330,10 @@ public class PointsTools extends XMBaseTest {
jsonObject
.
put
(
"enableMemberPoint"
,
"YES"
);
//积分功能是否打开
jsonObject
.
put
(
"memberPointName"
,
"自动化积分"
);
//积分名称
jsonObject
.
put
(
"ruleItemList"
,
ruleItemList
);
//积分规则
jsonObject
.
put
(
"validPeriod"
,
"1"
);
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
();
...
...
src/main/java/com/xiaomai/cases/polar/points/TestBatchPoints.java
View file @
5ed547b2
...
...
@@ -77,7 +77,7 @@ public class TestBatchPoints extends XMBaseTest {
Assert
.
assertEquals
(
AfleftBalance2
,
AfleftBalance1
-
1
);
//断言剩余积分数-1
//核对积分记录
//
Thread.sleep(1000);
Thread
.
sleep
(
1000
);
int
after2
=
Integer
.
parseInt
(
XMJSONPath
.
readPath
(
pointsTools
.
findStatementPagePermission
(
""
),
"$.result.total"
));
System
.
out
.
println
(
"after2--------"
+
after2
);
Assert
.
assertEquals
(
after2
,
after1
+
1
);
//断言积分记录+1条记录
...
...
src/main/java/com/xiaomai/cases/polar/points/TestFindAccountPagePermission.java
View file @
5ed547b2
...
...
@@ -39,7 +39,7 @@ public class TestFindAccountPagePermission extends XMBaseTest {
@Test
(
description
=
"场馆手动-积分"
)
public
void
testFindAccountPagePermission
(){
public
void
testFindAccountPagePermission
()
throws
InterruptedException
{
String
phone
=
"13357537209"
;
String
memberId
=
trainingTools
.
searchTargerMember
(
phone
);
if
(
memberId
.
isEmpty
())
{
...
...
@@ -59,6 +59,7 @@ public class TestFindAccountPagePermission extends XMBaseTest {
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"
));
//剩余积分数
...
...
@@ -76,6 +77,7 @@ public class TestFindAccountPagePermission extends XMBaseTest {
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"
));
//剩余积分数
...
...
src/main/java/com/xiaomai/cases/polar/points/TestFindStatementPagePermission.java
0 → 100644
View file @
5ed547b2
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
(
"积分体验卡"
,
"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 @
5ed547b2
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 @
5ed547b2
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
)
.
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
(
xmAppApi
.
getLoginInfo
().
getStudioId
());
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 @
5ed547b2
...
...
@@ -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/LoginAccount.java
View file @
5ed547b2
...
...
@@ -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