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
d0ff59be
Commit
d0ff59be
authored
Jun 26, 2024
by
xuyamei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、增加配置
2、更换账号
parent
f3d2da9f
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1262 additions
and
53 deletions
+1262
-53
module/lunar/C端约课.xml
+17
-0
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
+267
-0
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddMemberReserve.java
+336
-0
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddToQueue.java
+436
-0
src/main/java/com/xiaomai/cases/lunar/reserve/TestMemberTimetable.java
+52
-0
src/main/java/com/xiaomai/cases/lunar/user/UserTools.java
+45
-0
src/main/java/com/xiaomai/cases/polar/course/CourseTools.java
+22
-21
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
+4
-4
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
+7
-7
src/main/java/com/xiaomai/cases/polar/reserve/TestAddToQueue.java
+1
-1
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
+13
-13
src/main/java/com/xiaomai/cases/polar/setting/courseCategory/CourseCategoryTools.java
+5
-5
src/main/java/com/xiaomai/client/ApiTest.java
+7
-1
src/main/java/com/xiaomai/client/BaseTest.java
+6
-1
src/main/java/com/xiaomai/enums/ApiModule.java
+2
-0
src/main/java/com/xiaomai/enums/LoginAccount.java
+1
-0
src/main/java/com/xiaomai/utils/CommonLogin.java
+20
-0
src/main/java/com/xiaomai/utils/CommonRequestParameters.java
+21
-0
No files found.
module/lunar/C端约课.xml
0 → 100644
View file @
d0ff59be
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite
name=
"约课case"
>
<!-- 起一个好听且唯一的名字-->
<test
name=
"约课模块测试"
preserve-order=
"true"
verbose=
"3"
>
<!-- 再起一个听且唯一的名字 -->
<packages>
<package
name=
"com.xiaomai.cases.lunar.reserve.*"
></package>
<!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener
class-name=
"com.xiaomai.client.RetryListener"
/>
<listener
class-name=
"com.xiaomai.client.TestListener"
/>
<listener
class-name=
"com.xiaomai.client.ExtentTestNGIReporterListener"
/>
</listeners>
</suite>
\ No newline at end of file
src/main/java/com/xiaomai/cases/lunar/reserve/ReserveCTools.java
0 → 100644
View file @
d0ff59be
package
com
.
xiaomai
.
cases
.
lunar
.
reserve
;
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.XMBaseTest
;
import
org.springframework.stereotype.Component
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 16:15
* @Description: 预约接口
* @Version: 1.0
*/
@Component
(
"reserveCTools"
)
public
class
ReserveCTools
extends
XMBaseTest
{
public
void
setUP
(
String
apiName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_Reserve
)
.
setApiName
(
apiName
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfo
);
}
/**
* @description:查询课表
* @author: xuyamei
* @date: 2024/6/25 16:34
* @param memberId
* @param scheduleStartTime
* @param scheduleEndTime
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONArray
memberTimetable
(
String
memberId
,
Long
scheduleStartTime
,
Long
scheduleEndTime
){
setUP
(
"API_memberTimetable"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"startDate"
,
scheduleStartTime
);
body
.
put
(
"endDate"
,
scheduleEndTime
);
body
.
put
(
"courseChooseEnum"
,
"ALL"
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getJSONArray
(
"timetableGroups"
).
getJSONObject
(
0
).
getJSONArray
(
"timetableList"
);
}
public
String
memberReserveAdd
(
String
areaId
,
String
chiefCoachId
,
String
benefitId
,
String
assistantCoachId
,
String
memberId
,
int
reserveMemberNum
,
String
scheduleId
,
long
scheduleStartTime
,
boolean
success
,
DataUserInfo
...
dataUserInfos
){
setUP
(
"API_memberReserve_add"
,
dataUserInfos
);
JSONObject
body
=
new
JSONObject
();
JSONArray
areaIds
=
new
JSONArray
();
// 场地,私教约课会用到
if
(!
areaId
.
equals
(
""
)){
areaIds
.
add
(
areaId
);
}
body
.
put
(
"areaIds"
,
areaIds
);
JSONArray
coachIds
=
new
JSONArray
();
// 助教Ids
if
(!
assistantCoachId
.
equals
(
""
)){
coachIds
.
add
(
assistantCoachId
);
}
body
.
put
(
"assistantCoachIds"
,
coachIds
);
body
.
put
(
"benefitId"
,
benefitId
);
//会员卡权益Id
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"chiefCoachId"
,
chiefCoachId
);
// 主教id
body
.
put
(
"memberId"
,
memberId
);
// 会员id
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"planCheckBalance"
,
1
);
// 计划扣除额度
body
.
put
(
"reserveMemberNum"
,
reserveMemberNum
);
// 预约人数
body
.
put
(
"scheduleId"
,
scheduleId
);
// 课次id
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
// 课次id
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
success
);
if
(
success
){
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"reserveId"
);
}
return
dataApi
.
getBodyInJSON
().
toString
();
}
/**
* @description:查询会员可用于约课的会员卡
* @author: xuyamei
* @date: 2024/6/23 12:38
* @param courseId:课程id
* @param courseType:课程类型 GROUP_CLASS
* @param accountType:账户类型 MEMBER
* @param memberId 会员id
* @param reserveDate:约课时间
* @return: com.alibaba.fastjson.JSONArray
**/
public
JSONArray
listUserReservableBenefit
(
String
courseId
,
String
courseType
,
String
accountType
,
String
memberId
,
long
reserveDate
){
setUP
(
"API_listUserReservableBenefit"
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"courseId"
,
courseId
);
jsonObject
.
put
(
"courseType"
,
courseType
);
jsonObject
.
put
(
"accountType"
,
accountType
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"reserveDate"
,
reserveDate
);
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONArray
(
"result"
);
}
/**
* @description:小程序查询课次详情
* @author: xuyamei
* @date: 2024/6/25 18:23
* @param scheduleId
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONObject
getMemberScheduleItemDetail
(
String
scheduleId
,
String
memberId
){
setUP
(
"API_getMemberScheduleItemDetail"
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"scheduleId"
,
scheduleId
);
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
/**
* @description:小程序查询预约记录列表
* @author: xuyamei
* @date: 2024/6/25 18:29
* @param signInStateSet :预约状态 UN_SIGNED:已预约未签到 、QUEUE_PROCESS:排队中 、 "SIGNED":签到、 "LEAVE":请假 、取消预约 "QUEUE_CANCEL":排队取消、RESERVE_CANCEL:预约取消
* @param signState:签到状态
* @param scheduleStartDate :课次开始时间
* @param scheduleEndDate:课次结束时间
* @param memberId :会员id
* @param courseType :课程类型 GROUP_CLASS:团课、PERSONAL:私教、TRAINING_CAMP:训练营
* @return: com.alibaba.fastjson.JSONArray
**/
public
JSONArray
getPageByMember
(
String
signInStateSet
,
String
signState
,
Long
scheduleStartDate
,
Long
scheduleEndDate
,
String
memberId
,
String
courseType
){
setUP
(
"API_getPageByMember"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
20
);
// 这里根据预约状态,则signInStateSet传值(SIGNED、LEAVE、UN_SIGNED),否则传reserveStateSet
if
(!
signInStateSet
.
equals
(
""
)
&&
signInStateSet
.
equals
(
"SIGNED"
)
||
signInStateSet
.
equals
(
"LEAVE"
)
||
signInStateSet
.
equals
(
"UN_SIGNED"
)){
JSONArray
signInStateSetArr
=
new
JSONArray
();
signInStateSetArr
.
add
(
signInStateSet
);
body
.
put
(
"signInStateSet"
,
signInStateSetArr
);
}
else
{
JSONArray
reserveStateSet
=
new
JSONArray
();
reserveStateSet
.
add
(
signInStateSet
);
body
.
put
(
"reserveStateSet"
,
reserveStateSet
);
}
if
(!
signState
.
equals
(
""
)){
body
.
put
(
"signInState"
,
signState
);
}
if
(
scheduleStartDate
!=
null
){
body
.
put
(
"scheduleStartDate"
,
scheduleStartDate
);
body
.
put
(
"scheduleEndDate"
,
scheduleEndDate
);
}
body
.
put
(
"memberId"
,
memberId
);
body
.
put
(
"courseType"
,
courseType
);
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
}
/**
* @description:小程序根据id获取预约记录详情
* @author: xuyamei
* @date: 2024/6/25 19:25
* @param reserveId 预约记录id
* @param dataUserInfos
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONObject
getDetailById
(
String
reserveId
,
DataUserInfo
...
dataUserInfos
)
{
setUP
(
"API_getDetailById"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"reserveId"
,
reserveId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
/**
* @description:小程序取消约课、排队
* @author: xuyamei
* @date: 2024/6/26 10:32
* @param reserveId 预约id
* @param memberId 会员id
* @param success 正常传true
* @return: void
**/
public
void
cancelMemberReserve
(
String
reserveId
,
String
memberId
,
boolean
success
)
{
setUP
(
"API_cancelMemberReserve"
);
JSONArray
reserveIds
=
new
JSONArray
();
reserveIds
.
add
(
reserveId
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"reserveIds"
,
reserveIds
);
body
.
put
(
"memberId"
,
memberId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
success
);
}
/**
* @description:小程序排队
* @author: xuyamei
* @date: 2024/6/26 11:20
* @param areaId :场地
* @param chiefCoachId 教练id
* @param memberId 会员id
* @param benefitId 权益id
* @param assistantCoachId 助教id
* @param reserveMemberNum 预约人数
* @param scheduleId 课次id
* @param scheduleStartTime 上课开始时间
* @param success 正常传true
* @return: java.lang.String
**/
public
String
addToQueue
(
String
areaId
,
String
chiefCoachId
,
String
memberId
,
String
benefitId
,
String
assistantCoachId
,
int
reserveMemberNum
,
String
scheduleId
,
long
scheduleStartTime
,
boolean
success
){
setUP
(
"API_addToQueue"
);
JSONObject
body
=
new
JSONObject
();
JSONArray
areaIds
=
new
JSONArray
();
// 场地,私教约课会用到
if
(!
areaId
.
equals
(
""
)){
areaIds
.
add
(
areaId
);
}
body
.
put
(
"areaIds"
,
areaIds
);
JSONArray
coachIds
=
new
JSONArray
();
// 助教Ids
if
(!
assistantCoachId
.
equals
(
""
)){
coachIds
.
add
(
assistantCoachId
);
}
body
.
put
(
"assistantCoachIds"
,
coachIds
);
body
.
put
(
"benefitId"
,
benefitId
);
//会员卡权益Id
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"chiefCoachId"
,
chiefCoachId
);
// 主教id
body
.
put
(
"memberId"
,
memberId
);
// 会员id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"planCheckBalance"
,
1
);
// 计划扣除额度
body
.
put
(
"reserveMemberNum"
,
reserveMemberNum
);
// 预约人数
body
.
put
(
"scheduleId"
,
scheduleId
);
// 课次id
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
// 课次id
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
success
);
if
(
success
){
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"reserveId"
);
}
return
dataApi
.
getBodyInJSON
().
toString
();
}
}
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddMemberReserve.java
0 → 100644
View file @
d0ff59be
package
com
.
xiaomai
.
cases
.
lunar
.
reserve
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.reserve.ReserveTools
;
import
com.xiaomai.cases.polar.schedule.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.cases.polar.setting.rules.RuleTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Random
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 16:57
* @Description: 预约
* @Version: 1.0
*/
public
class
TestAddMemberReserve
extends
BaseTestImpl
{
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@Resource
(
name
=
"reserveCTools"
)
ReserveCTools
reserveCTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"reserveTools"
)
ReserveTools
reserveTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"ruleTools"
)
RuleTools
ruleTools
;
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
String
todayStartTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(
1
);
//获取今天结束日期的时间戳
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
1
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
private
String
ruldId
;
private
JSONArray
memberInfo
=
new
JSONArray
();
private
String
scheduleId
;
private
Long
startTime
;
private
String
courseId
;
private
String
memberId
;
private
String
chiefCoachId
;
@BeforeClass
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Lunar_Reserve
,
"API_memberTimetable"
,
LoginAccount
.
XYM_MINIAPPC
,
Terminal
.
minApp
,
"xym"
);
super
.
beforeTest
();
}
@Test
(
description
=
"小程序预约"
)
public
void
testAddMemberReserve
()
{
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 预约规则开启允许排队
JSONObject
getRules
=
ruleTools
.
getGroupBookingRules
();
// 获取场馆团课预约规则
String
id
=
getRules
.
getString
(
"id"
);
// 获取规则id
Random
random
=
new
Random
();
int
bookingSeatCount
=
random
.
nextInt
(
10
)+
1
;
// 席位
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
false
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
// 创建团课课次
createGroupSchedule
();
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 获取会员权益
memberInfo
=
getMemberBenefit
(
memberId
);
// 课次详情获取上课老师和
JSONObject
memberScheduleItemDetail
=
reserveCTools
.
getMemberScheduleItemDetail
(
scheduleId
,
memberId
);
startTime
=
memberScheduleItemDetail
.
getLongValue
(
"startTime"
);
chiefCoachId
=
memberScheduleItemDetail
.
getString
(
"chiefCoachId"
);
String
reserveId
=
reserveCTools
.
memberReserveAdd
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
1
),
""
,
memberInfo
.
getString
(
0
),
1
,
scheduleId
,
startTime
,
true
);
memberInfo
.
add
(
reserveId
);
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult
(
"SUCCESS"
,
"UN_SIGNED"
,
"约课"
);
}
@Test
(
priority
=
1
,
description
=
"学员已经在课次中,无需重复添加"
)
public
void
testAddMemberReserve2
(){
reserveCTools
.
memberReserveAdd
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
1
),
""
,
memberInfo
.
getString
(
0
),
1
,
scheduleId
,
startTime
,
false
);
String
message
=
dataApi
.
getBodyInJSON
().
getString
(
"message"
);
Assert
.
assertEquals
(
message
,
"预约失败,无需重复添加"
);
}
@DataProvider
public
Object
[][]
dataProvider
(){
return
new
Object
[][]{
{
true
,
"操作成功"
},
{
false
,
"已取消预约,无需重复取消"
}
};
}
@Test
(
dataProvider
=
"dataProvider"
,
priority
=
2
)
public
void
testCancelMemberReserve
(
boolean
cancel
,
String
message
){
reserveCTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
0
),
cancel
);
Assert
.
assertEquals
(
dataApi
.
getBodyInJSON
().
getString
(
"message"
).
contains
(
message
),
true
);
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
cancel
){
checkResult
(
"RESERVE_CANCEL"
,
"RESERVE_CANCEL"
,
"取消约课"
);
}
}
@Test
(
priority
=
3
)
public
void
del
(){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 删除排课数据
groupScheduleTools
.
delGroupRuleSchedule
(
ruldId
,
true
,
dataUserInfo
);
// 删除课次
groupScheduleTools
.
delGroupScheduleItem
(
scheduleId
,
dataUserInfo
);
}
// 创建团课课次
public
void
createGroupSchedule
(){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 查询存量的约课课程
// 查询存量的课程分类
String
categoryId
=
courseCategoryTools
.
getCourseCategoryPage
(
"瑜伽"
);
courseId
=
courseTools
.
getPersonalOrGroupCourseId
(
"GROUP"
,
"C端约课瑜伽团课课程"
,
categoryId
,
"STUDIO"
,
""
,
2
,
1
,
dataUserInfo
).
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
,
dataApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
false
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)],
dataUserInfo
);
//1.2-查询排课日程
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
);
//统计查询到的目标日程数量
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
try
{
Thread
.
sleep
(
2500
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 查询课次id
JSONArray
memberTimetable
=
reserveCTools
.
memberTimetable
(
memberId
,
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
);
for
(
int
i
=
0
;
i
<
memberTimetable
.
size
();
i
++){
if
(
memberTimetable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
scheduleId
=
memberTimetable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
break
;
}
}
}
/**
* @description:买卡
* @author: xuyamei
* @date: 2024/6/24 19:42
* @param courseId 课程id
* @param memberId 会员id
* @return: void
**/
public
void
signOrder
(
String
courseId
,
String
memberId
){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 查询存量的卡
JSONObject
fetchPageOfMemberCard
=
cardTools
.
fetchPageOfMemberCard
(
courseId
,
dataUserInfo
);
int
total
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getString
(
"total"
));
String
cardId
=
""
;
int
quantity
=
0
;
float
price
=
0
;
int
validPeriod
=
0
;
if
(
total
==
0
)
{
cardId
=
cardTools
.
memberCardCreate
(
"约课使用会员卡"
+
TimeUtils
.
getCurrentTime
(),
dataUserInfo
).
getString
(
"result"
);
}
cardId
=
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
quantity
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"balance"
));
price
=
Float
.
parseFloat
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
validPeriod
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"validPeriod"
));
//获取签单要用的卡快照id
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
dataApi
.
getLoginInfo
().
getBrandId
(),
dataApi
.
getLoginInfo
().
getStudioId
(),
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
//检查会员对该卡是否超出购买上限
boolean
limitResult
=
orderTools
.
checkAllowPurchase
(
"MEMBER_CARD"
,
cardId
,
cardId
,
"1"
,
dataApi
.
getLoginInfo
().
getBrandId
(),
dataApi
.
getLoginInfo
().
getStudioId
(),
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
).
getBoolean
(
"success"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
limitResult
==
true
){
//创建订单
JSONObject
orderResult
=
orderTools
.
signOrder
(
cardId
,
latestSnapshotId
,
quantity
,
price
,
validPeriod
,
latestSnapshotId
,
"PURCHASE"
,
memberId
,
price
,
price
,
"1"
,
dataUserInfo
);
}
}
/**
* @description:查询会员是否购买会员卡,如果已购买则查看权益,如果没有则进行购买
* @author: xuyamei
* @date: 2024/6/24 19:43
* @param memberId:会员id
* @return:
**/
public
JSONArray
getMemberBenefit
(
String
memberId
){
// 查询是否有可用的会员卡,没有则购买
JSONArray
listUserReservableBenefit
=
reserveCTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
Long
.
parseLong
(
todayStartTimeTamp
));
if
(
listUserReservableBenefit
.
size
()
==
0
)
{
// 购买适用的会员卡
signOrder
(
courseId
,
memberId
);
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
listUserReservableBenefit
=
reserveCTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
Long
.
parseLong
(
todayStartTimeTamp
));
}
// 查询权益
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
JSONArray
members
=
new
JSONArray
();
members
.
add
(
memberId
);
members
.
add
(
benefitId
);
return
members
;
}
public
void
checkResult
(
String
reserveState
,
String
signInState
,
String
mes
){
// check 1:查询小程序课次详情,学员是预约状态
JSONObject
memberScheduleItemDetail
=
reserveCTools
.
getMemberScheduleItemDetail
(
scheduleId
,
memberId
);
String
[]
result
=
new
String
[]
{
"memberId"
,
"scheduleId"
,
"reserveId"
,
"reserveState"
,
"benefitId"
,
"courseType"
};
String
[]
resultData
=
new
String
[]
{
memberInfo
.
getString
(
0
),
scheduleId
,
memberInfo
.
getString
(
2
),
reserveState
,
memberInfo
.
getString
(
1
),
"GROUP_CLASS"
};
if
(
reserveState
.
equals
(
"SUCCESS"
)){
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
"memberOperation"
),
"TO_CANCEL_RESERVE"
,
mes
+
"产生的数据与实际数据不符合"
);
for
(
int
j
=
0
;
j
<
4
;
j
++){
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
result
[
j
]),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
}
else
if
(
reserveState
.
equals
(
"RESERVE_CANCEL"
)){
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
"memberOperation"
),
"TO_RESERVE"
,
mes
+
"产生的数据与实际数据不符合"
);
}
// check 2:查询小程序预约记录
JSONArray
getPageByMember
=
reserveCTools
.
getPageByMember
(
signInState
,
""
,
startTime
,
scheduleEndTime
,
memberId
,
"GROUP_CLASS"
);
boolean
success
=
false
;
for
(
int
i
=
0
;
i
<
getPageByMember
.
size
();
i
++){
if
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
"id"
).
equals
(
memberInfo
.
getString
(
2
))){
success
=
true
;
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
String
resultString
=
result
[
j
].
equals
(
"reserveId"
)?
"id"
:
result
[
j
];
Assert
.
assertEquals
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
resultString
),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
Assert
.
assertEquals
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
}
}
Assert
.
assertTrue
(
success
,
mes
+
"预约记录没有查询到相关信息"
);
// check 3:查询小程序预约详情
JSONObject
getDetailById
=
reserveCTools
.
getDetailById
(
memberInfo
.
getString
(
2
));
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
String
resultString
=
result
[
j
].
equals
(
"reserveId"
)?
"id"
:
result
[
j
];
Assert
.
assertEquals
(
getDetailById
.
getString
(
resultString
),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
// check 4:查询B端预约详情
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
result
=
new
String
[]
{
"id"
,
"benefitId"
,
"reserveMemberNum"
,
"courseId"
,
"courseType"
,
"scheduleStartTime"
,
"reserveState"
,
"scheduleId"
};
resultData
=
new
String
[]
{
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
1
),
"1"
,
courseId
,
"GROUP_CLASS"
,
startTime
+
""
,
reserveState
,
scheduleId
};
getDetailById
=
reserveTools
.
getDetailById
(
memberInfo
.
getString
(
2
),
dataUserInfo
);
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
Assert
.
assertEquals
(
getDetailById
.
getString
(
result
[
j
]),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
}
}
src/main/java/com/xiaomai/cases/lunar/reserve/TestAddToQueue.java
0 → 100644
View file @
d0ff59be
package
com
.
xiaomai
.
cases
.
lunar
.
reserve
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.lunar.user.UserTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
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.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.cases.polar.setting.rules.RuleTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Random
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-26 11:16
* @Description: 小程序排队
* @Version: 1.0
*/
public
class
TestAddToQueue
extends
BaseTestImpl
{
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@Resource
(
name
=
"reserveCTools"
)
ReserveCTools
reserveCTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"reserveTools"
)
ReserveTools
reserveTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"ruleTools"
)
RuleTools
ruleTools
;
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
Tools
tools
=
new
Tools
();
String
todayStartTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(
1
);
//获取今天结束日期的时间戳
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
1
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
private
String
ruldId
;
private
JSONArray
memberInfo
=
new
JSONArray
();
private
JSONArray
memberReserveInfo
=
new
JSONArray
();
// 约课学员
private
String
scheduleId
;
private
Long
startTime
;
private
String
courseId
;
private
String
memberId
;
private
String
chiefCoachId
;
@BeforeClass
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Lunar_Reserve
,
"API_addToQueue"
,
LoginAccount
.
XYM_MINIAPPC
,
Terminal
.
minApp
,
"xym"
);
super
.
beforeTest
();
}
@Test
public
void
testAddToQueue
()
{
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
// 创建团课课次
createGroupSchedule
();
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 获取会员权益
memberInfo
=
getMemberBenefit
(
memberId
,
""
);
// 获取约课学员A
memberReserveInfo
=
getMemberBenefit
(
""
,
"约课学员朱莉"
);
// 课次详情获取上课老师和上课时间
JSONObject
memberScheduleItemDetail
=
reserveCTools
.
getMemberScheduleItemDetail
(
scheduleId
,
memberId
);
startTime
=
memberScheduleItemDetail
.
getLongValue
(
"startTime"
);
chiefCoachId
=
memberScheduleItemDetail
.
getString
(
"chiefCoachId"
);
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// B端代预约
String
reserveId
=
reserveTools
.
addReserve
(
""
,
""
,
memberReserveInfo
.
getString
(
1
),
chiefCoachId
,
memberReserveInfo
.
getString
(
0
),
1
,
scheduleId
,
startTime
,
true
,
dataUserInfo
);
memberReserveInfo
.
add
(
reserveId
);
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 修改课次容量
groupScheduleTools
.
editGroupSchedule
(
scheduleId
,
startTime
,
dataApi
.
getLoginInfo
().
getAdminId
(),
1
,
1
,
dataUserInfo
);
// 预约规则开启允许排队
JSONObject
getRules
=
ruleTools
.
getGroupBookingRules
();
// 获取场馆团课预约规则
String
id
=
getRules
.
getString
(
"id"
);
// 获取规则id
Random
random
=
new
Random
();
int
bookingSeatCount
=
random
.
nextInt
(
10
)+
1
;
// 席位
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
false
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
reserveId
=
reserveCTools
.
addToQueue
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
0
),
memberInfo
.
getString
(
1
),
""
,
1
,
scheduleId
,
startTime
,
true
);
memberInfo
.
add
(
reserveId
);
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult
(
"QUEUE_PROCESS"
,
"QUEUE_PROCESS"
,
"排队"
);
}
@DataProvider
public
Object
[][]
data
(){
return
new
Object
[][]{
{
"reserve"
,
"FULL_CAPACITY"
},
// 已经排队再次预约
{
"queue"
,
"排队失败,无需重复添加"
},
// 已排队再次排队
{
"cancel"
,
"排队取消成功"
},
{
"notQueue"
,
"排队失败,课次未开放预约"
},
{
"queuing"
,
"排队成功"
}
};
}
@Test
(
priority
=
2
,
dataProvider
=
"data"
)
public
void
testAddToQueue2
(
String
type
,
String
msg
)
{
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
switch
(
type
)
{
case
"reserve"
:
reserveCTools
.
memberReserveAdd
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
1
),
""
,
memberInfo
.
getString
(
0
),
1
,
scheduleId
,
startTime
,
true
);
Assert
.
assertEquals
(
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"resultCode"
),
msg
,
"排队异常提示信息不符合"
);
break
;
case
"queue"
:
reserveCTools
.
addToQueue
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
0
),
memberInfo
.
getString
(
1
),
""
,
1
,
scheduleId
,
startTime
,
false
);
Assert
.
assertEquals
(
dataApi
.
getBodyInJSON
().
getString
(
"message"
),
msg
,
"排队异常提示信息不符合"
);
break
;
case
"cancel"
:
// 取消排队
reserveCTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
0
),
true
);
// 取消验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult
(
"QUEUE_CANCEL"
,
"QUEUE_CANCEL"
,
"取消排队"
);
break
;
case
"notQueue"
:
// 预约规则开启允许排队
JSONObject
getRules
=
ruleTools
.
getGroupBookingRules
();
// 获取场馆团课预约规则
String
id
=
getRules
.
getString
(
"id"
);
// 获取规则id
Random
random
=
new
Random
();
int
bookingSeatCount
=
random
.
nextInt
(
10
)+
1
;
// 席位
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
true
,
random
.
nextInt
(
100
)+
10
,
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
reserveCTools
.
addToQueue
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
0
),
memberInfo
.
getString
(
1
),
""
,
1
,
scheduleId
,
startTime
,
false
);
Assert
.
assertEquals
(
dataApi
.
getBodyInJSON
().
getString
(
"message"
),
msg
,
"排队异常提示信息不符合"
);
break
;
case
"queuing"
:
// 预约规则开启允许排队
getRules
=
ruleTools
.
getGroupBookingRules
();
// 获取场馆团课预约规则
id
=
getRules
.
getString
(
"id"
);
// 获取规则id
random
=
new
Random
();
bookingSeatCount
=
random
.
nextInt
(
10
)+
1
;
// 席位
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
false
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
String
reserveId
=
reserveCTools
.
addToQueue
(
""
,
chiefCoachId
,
memberInfo
.
getString
(
0
),
memberInfo
.
getString
(
1
),
""
,
1
,
scheduleId
,
startTime
,
true
);
memberInfo
.
set
(
2
,
reserveId
);
//将原来的id替换成新的id
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 扩大课次人数上限容量
groupScheduleTools
.
editGroupSchedule
(
scheduleId
,
startTime
,
chiefCoachId
,
1
,
2
,
dataUserInfo
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// check 扩容后学员进入到课次
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult
(
"SUCCESS"
,
"UN_SIGNED"
,
"排队进入课次"
);
}
}
@Test
(
priority
=
3
)
public
void
del
(){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 删除排课数据
groupScheduleTools
.
delGroupRuleSchedule
(
ruldId
,
true
,
dataUserInfo
);
// 删除课次
groupScheduleTools
.
delGroupScheduleItem
(
scheduleId
,
dataUserInfo
);
}
// 创建团课课次
public
void
createGroupSchedule
(){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 查询存量的约课课程
// 查询存量的课程分类
String
categoryId
=
courseCategoryTools
.
getCourseCategoryPage
(
"瑜伽"
);
courseId
=
courseTools
.
getPersonalOrGroupCourseId
(
"GROUP"
,
"C端约课瑜伽团课课程"
,
categoryId
,
"STUDIO"
,
""
,
2
,
1
,
dataUserInfo
).
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
,
dataApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
false
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)],
dataUserInfo
);
//1.2-查询排课日程
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
);
//统计查询到的目标日程数量
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(
1
);
try
{
Thread
.
sleep
(
2500
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
// 查询课次id
JSONArray
memberTimetable
=
reserveCTools
.
memberTimetable
(
memberId
,
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
);
for
(
int
i
=
0
;
i
<
memberTimetable
.
size
();
i
++){
if
(
memberTimetable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
scheduleId
=
memberTimetable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
break
;
}
}
}
/**
* @description:买卡
* @author: xuyamei
* @date: 2024/6/24 19:42
* @param courseId 课程id
* @param memberId 会员id
* @return: void
**/
public
void
signOrder
(
String
courseId
,
String
memberId
){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
// 查询存量的卡
JSONObject
fetchPageOfMemberCard
=
cardTools
.
fetchPageOfMemberCard
(
courseId
,
dataUserInfo
);
int
total
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getString
(
"total"
));
String
cardId
=
""
;
int
quantity
=
0
;
float
price
=
0
;
int
validPeriod
=
0
;
if
(
total
==
0
)
{
cardId
=
cardTools
.
memberCardCreate
(
"约课使用会员卡"
+
TimeUtils
.
getCurrentTime
(),
dataUserInfo
).
getString
(
"result"
);
}
cardId
=
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
quantity
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"balance"
));
price
=
Float
.
parseFloat
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"price"
));
validPeriod
=
Integer
.
parseInt
(
fetchPageOfMemberCard
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"validPeriod"
));
//获取签单要用的卡快照id
String
latestSnapshotId
=
orderTools
.
fetchDetailById
(
cardId
,
dataApi
.
getLoginInfo
().
getBrandId
(),
dataApi
.
getLoginInfo
().
getStudioId
(),
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
).
getJSONObject
(
"result"
).
getString
(
"latestSnapshotId"
);
//检查会员对该卡是否超出购买上限
boolean
limitResult
=
orderTools
.
checkAllowPurchase
(
"MEMBER_CARD"
,
cardId
,
cardId
,
"1"
,
dataApi
.
getLoginInfo
().
getBrandId
(),
dataApi
.
getLoginInfo
().
getStudioId
(),
dataApi
.
getLoginInfo
().
getAdminId
(),
dataUserInfo
).
getBoolean
(
"success"
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
limitResult
==
true
){
//创建订单
JSONObject
orderResult
=
orderTools
.
signOrder
(
cardId
,
latestSnapshotId
,
quantity
,
price
,
validPeriod
,
latestSnapshotId
,
"PURCHASE"
,
memberId
,
price
,
price
,
"1"
,
dataUserInfo
);
}
}
/**
* @description:查询会员是否购买会员卡,如果已购买则查看权益,如果没有则进行购买
* @author: xuyamei
* @date: 2024/6/24 19:43
* @param memberId:会员id
* @return:
**/
public
JSONArray
getMemberBenefit
(
String
memberId
,
String
memberName
){
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
if
(
memberId
.
equals
(
""
)){
// 查询存量的学员没有则创建学员,// todo 先手动新建
if
(
tools
.
commonSearch
(
memberName
,
"NORMAL"
,
dataUserInfo
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"NORMAL"
,
dataUserInfo
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
memberName
,
"HISTORY"
,
dataUserInfo
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"HISTORY"
,
dataUserInfo
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId
=
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
,
dataUserInfo
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
}
// 查询是否有可用的会员卡,没有则购买
JSONArray
listUserReservableBenefit
=
reserveCTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
Long
.
parseLong
(
todayStartTimeTamp
));
if
(
listUserReservableBenefit
.
size
()
==
0
)
{
// 购买适用的会员卡
signOrder
(
courseId
,
memberId
);
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
listUserReservableBenefit
=
reserveCTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
Long
.
parseLong
(
todayStartTimeTamp
));
}
// 查询权益
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
JSONArray
members
=
new
JSONArray
();
members
.
add
(
memberId
);
members
.
add
(
benefitId
);
return
members
;
}
public
void
checkResult
(
String
reserveState
,
String
signInState
,
String
mes
){
// check 1:查询小程序课次详情,学员是预约状态
JSONObject
memberScheduleItemDetail
=
reserveCTools
.
getMemberScheduleItemDetail
(
scheduleId
,
memberId
);
String
[]
result
=
new
String
[]
{
"memberId"
,
"scheduleId"
,
"reserveId"
,
"reserveState"
,
"benefitId"
,
"courseType"
};
String
[]
resultData
=
new
String
[]
{
memberInfo
.
getString
(
0
),
scheduleId
,
memberInfo
.
getString
(
2
),
reserveState
,
memberInfo
.
getString
(
1
),
"GROUP_CLASS"
};
if
(
reserveState
.
equals
(
"QUEUE_PROCESS"
)
||
reserveState
.
equals
(
"RESERVE_CANCEL"
)
){
// 校验预约排队之后约课课次详情按钮展示
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
"memberOperation"
),
reserveState
.
equals
(
"QUEUE_PROCESS"
)?
"TO_CANCEL_QUEUING"
:
"TO_CANCEL_RESERVE"
,
mes
+
"产生的数据与实际数据不符合"
);
for
(
int
j
=
0
;
j
<
4
;
j
++){
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
result
[
j
]),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
}
else
if
(
reserveState
.
equals
(
"QUEUE_CANCEL"
)){
Assert
.
assertEquals
(
memberScheduleItemDetail
.
getJSONObject
(
"memberScheduleInfoVO"
).
getString
(
"memberOperation"
),
"TO_QUEUING"
,
mes
+
"产生的数据与实际数据不符合"
);
}
// check 2:查询小程序预约记录
JSONArray
getPageByMember
=
reserveCTools
.
getPageByMember
(
signInState
,
""
,
startTime
,
scheduleEndTime
,
memberId
,
"GROUP_CLASS"
);
boolean
success
=
false
;
for
(
int
i
=
0
;
i
<
getPageByMember
.
size
();
i
++){
if
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
"id"
).
equals
(
memberInfo
.
getString
(
2
))){
success
=
true
;
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
String
resultString
=
result
[
j
].
equals
(
"reserveId"
)?
"id"
:
result
[
j
];
Assert
.
assertEquals
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
resultString
),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
Assert
.
assertEquals
(
getPageByMember
.
getJSONObject
(
i
).
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
}
}
Assert
.
assertTrue
(
success
,
mes
+
"预约记录没有查询到相关信息"
);
// check 3:查询小程序预约详情
JSONObject
getDetailById
=
reserveCTools
.
getDetailById
(
memberInfo
.
getString
(
2
));
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
String
resultString
=
result
[
j
].
equals
(
"reserveId"
)?
"id"
:
result
[
j
];
Assert
.
assertEquals
(
getDetailById
.
getString
(
resultString
),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
if
(
reserveState
.
equals
(
"QUEUE_PROCESS"
)){
// 除去正常的检查,看一下排在第几位
Assert
.
assertEquals
(
getDetailById
.
getString
(
"queueSort"
),
"1"
,
"排队后排队名次应该是第一位"
);
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
// check 4:查询B端预约详情
DataUserInfo
dataUserInfo
=
new
DataUserInfo
();
dataUserInfo
.
setTerminal
(
Terminal
.
B
);
dataUserInfo
.
setLoginUser
(
LoginAccount
.
GYM_PROD
);
result
=
new
String
[]
{
"id"
,
"benefitId"
,
"reserveMemberNum"
,
"courseId"
,
"courseType"
,
"scheduleStartTime"
,
"reserveState"
,
"scheduleId"
};
resultData
=
new
String
[]
{
memberInfo
.
getString
(
2
),
memberInfo
.
getString
(
1
),
"1"
,
courseId
,
"GROUP_CLASS"
,
startTime
+
""
,
reserveState
,
scheduleId
};
getDetailById
=
reserveTools
.
getDetailById
(
memberInfo
.
getString
(
2
),
dataUserInfo
);
for
(
int
j
=
0
;
j
<
result
.
length
;
j
++){
Assert
.
assertEquals
(
getDetailById
.
getString
(
result
[
j
]),
resultData
[
j
],
mes
+
"产生的数据与实际数据不符合"
+
result
[
j
]+
":"
+
resultData
[
j
]);
}
if
(
reserveState
.
equals
(
"QUEUE_PROCESS"
)){
// 除去正常的检查,看一下排在第几位
Assert
.
assertEquals
(
getDetailById
.
getString
(
"queueSort"
),
"1"
,
"排队后排队名次应该是第一位"
);
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的"
+
mes
+
"数据不是同一个会员"
);
}
}
src/main/java/com/xiaomai/cases/lunar/reserve/TestMemberTimetable.java
0 → 100644
View file @
d0ff59be
package
com
.
xiaomai
.
cases
.
lunar
.
reserve
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.lunar.user.UserTools
;
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
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 11:55
* @Description:
* @Version: 1.0
*/
public
class
TestMemberTimetable
extends
BaseTestImpl
{
@Resource
(
name
=
"userTools"
)
UserTools
userTools
;
@BeforeClass
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Lunar_Reserve
,
"API_memberTimetable"
,
LoginAccount
.
XYM_MINIAPPC
,
Terminal
.
minApp
,
"xym"
);
super
.
beforeTest
();
}
@Test
public
void
testMemberTimetable
()
{
String
memberId
=
userTools
.
getMemberInfo
().
getString
(
"memberId"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"startDate"
,
TimeUtils
.
getTodayTime
());
body
.
put
(
"endDate"
,
TimeUtils
.
getTodayEndTime
());
body
.
put
(
"courseChooseEnum"
,
"ALL"
);
body
.
put
(
"memberId"
,
memberId
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
}
}
src/main/java/com/xiaomai/cases/lunar/user/UserTools.java
0 → 100644
View file @
d0ff59be
package
com
.
xiaomai
.
cases
.
lunar
.
user
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
org.springframework.stereotype.Component
;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve.user
* @Author: xuyamei
* @CreateTime: 2024-06-25 13:42
* @Description: TODO
* @Version: 1.0
*/
@Component
(
"userTools"
)
public
class
UserTools
extends
XMBaseTest
{
public
void
setUP
(
String
apiName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Lunar_User
)
.
setApiName
(
apiName
)
.
setTerminal
(
Terminal
.
minApp
);
super
.
beforeDataRequest
(
userInfo
);
}
/**
* @description: 获取会员信息
* @author: xuyamei
* @date: 2024/6/25 13:50
* @param userInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONObject
getMemberInfo
(
DataUserInfo
...
userInfo
)
{
setUP
(
"API_getMemberInfo"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"userId"
,
dataApi
.
getLoginInfo
().
getUser
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
}
src/main/java/com/xiaomai/cases/polar/course/CourseTools.java
View file @
d0ff59be
...
...
@@ -2,6 +2,7 @@ package com.xiaomai.cases.polar.course;
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
;
...
...
@@ -31,11 +32,11 @@ public class CourseTools extends XMBaseTest {
* @param minCapacity:开课人数
* @return: 课程id
**/
public
String
createPersonalCourse
(
String
courseName
,
String
categoryId
,
String
sourceType
,
String
sizeType
,
int
capacity
,
int
minCapacity
){
public
String
createPersonalCourse
(
String
courseName
,
String
categoryId
,
String
sourceType
,
String
sizeType
,
int
capacity
,
int
minCapacity
,
DataUserInfo
...
dataUserInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Course
)
.
setApiName
(
"API_personalCreate"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
dataUserInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"courseName"
,
courseName
);
...
...
@@ -61,7 +62,7 @@ public class CourseTools extends XMBaseTest {
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
/**
...
...
@@ -73,11 +74,11 @@ public class CourseTools extends XMBaseTest {
* @param sourceType:课程来源类型 1:品牌BRAND 2:场馆STUDIO
* @return: java.lang.String
**/
public
String
createGroupCourse
(
String
courseName
,
String
categoryId
,
String
sourceType
){
public
String
createGroupCourse
(
String
courseName
,
String
categoryId
,
String
sourceType
,
DataUserInfo
...
dataUserInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Course
)
.
setApiName
(
"API_createGroupCourse"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
dataUserInfo
);
String
introduction
=
"{\"items\":[{\"content\":\"花花世界的\",\"aspect\":\"\",\"type\":\"TEXT\"}]}"
;
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"courseName"
,
courseName
);
...
...
@@ -95,7 +96,7 @@ public class CourseTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
// 场馆
body
.
put
(
"calorie"
,
0
);
// 卡路里 传0对于后端是未设置
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getString
(
"result"
);
}
...
...
@@ -112,25 +113,25 @@ public class CourseTools extends XMBaseTest {
* @param minCapacity:开课人数(团课无需传)
* @return: 返回课程id和姓名数组
**/
public
JSONArray
getPersonalOrGroupCourseId
(
String
courseType
,
String
courseName
,
String
categoryId
,
String
sourceType
,
String
sizeType
,
int
capacity
,
int
minCapacity
)
{
public
JSONArray
getPersonalOrGroupCourseId
(
String
courseType
,
String
courseName
,
String
categoryId
,
String
sourceType
,
String
sizeType
,
int
capacity
,
int
minCapacity
,
DataUserInfo
...
dataUserInfo
)
{
JSONObject
result
=
new
JSONObject
();
JSONArray
getNameAndId
=
new
JSONArray
();
// 查询存量的课程
if
(
courseType
.
equals
(
"GROUP"
))
{
// 查询的是团课
result
=
getGroupClassPage
(
""
,
0
,
courseName
,
""
);
result
=
getGroupClassPage
(
""
,
0
,
courseName
,
""
,
dataUserInfo
);
String
total
=
result
.
getString
(
"total"
);
if
(
Integer
.
parseInt
(
total
)
>
0
)
{
result
=
getGroupClassPage
(
""
,
0
,
courseName
,
""
).
getJSONArray
(
"records"
).
getJSONObject
(
0
);
result
=
getGroupClassPage
(
""
,
0
,
courseName
,
""
,
dataUserInfo
).
getJSONArray
(
"records"
).
getJSONObject
(
0
);
String
courseId
=
result
.
getString
(
"brandCourseId"
);
getNameAndId
.
add
(
courseId
);
getNameAndId
.
add
(
result
.
getString
(
"courseName"
));
}
else
{
getNameAndId
.
add
(
createGroupCourse
(
courseName
,
categoryId
,
sourceType
));
getNameAndId
.
add
(
createGroupCourse
(
courseName
,
categoryId
,
sourceType
,
dataUserInfo
));
getNameAndId
.
add
(
courseName
);
}
}
else
if
(
courseType
.
equals
(
"PERSONAL"
))
{
// 查询的是私教课
result
=
getPersonalPage
(
""
,
0
,
courseName
,
""
,
""
,
""
);
result
=
getPersonalPage
(
""
,
0
,
courseName
,
""
,
""
,
""
,
dataUserInfo
);
String
total
=
result
.
getString
(
"total"
);
if
(
Integer
.
parseInt
(
total
)
>
0
)
{
result
=
getPersonalPage
(
""
,
0
,
courseName
,
""
,
sizeType
,
""
).
getJSONArray
(
"records"
).
getJSONObject
(
0
);
...
...
@@ -138,7 +139,7 @@ public class CourseTools extends XMBaseTest {
getNameAndId
.
add
(
courseId
);
getNameAndId
.
add
(
result
.
getString
(
"courseName"
));
}
else
{
getNameAndId
.
add
(
createPersonalCourse
(
courseName
,
categoryId
,
sourceType
,
sizeType
,
capacity
,
minCapacity
));
getNameAndId
.
add
(
createPersonalCourse
(
courseName
,
categoryId
,
sourceType
,
sizeType
,
capacity
,
minCapacity
,
dataUserInfo
));
getNameAndId
.
add
(
courseName
);
}
}
...
...
@@ -168,7 +169,7 @@ public class CourseTools extends XMBaseTest {
body
.
put
(
"courseState"
,
courseState
);
body
.
put
(
"checkOnly"
,
checkOnly
);
// 是否只校验
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"resultCode"
);
}
...
...
@@ -191,7 +192,7 @@ public class CourseTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
...
...
@@ -205,11 +206,11 @@ public class CourseTools extends XMBaseTest {
* @param categoryId:课程分类id
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONObject
getGroupClassPage
(
String
courseState
,
int
current
,
String
courseNameLike
,
String
categoryId
){
public
JSONObject
getGroupClassPage
(
String
courseState
,
int
current
,
String
courseNameLike
,
String
categoryId
,
DataUserInfo
...
dataUserInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Course
)
.
setApiName
(
"API_getGroupClassPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
dataUserInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
...
...
@@ -226,7 +227,7 @@ public class CourseTools extends XMBaseTest {
categoryIds
.
add
(
categoryId
);
body
.
put
(
"categoryIds"
,
categoryIds
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
...
...
@@ -242,11 +243,11 @@ public class CourseTools extends XMBaseTest {
* @param coachId:教练id
* @return: com.alibaba.fastjson.JSONObject
**/
public
JSONObject
getPersonalPage
(
String
courseState
,
int
current
,
String
courseNameLike
,
String
categoryId
,
String
sizeType
,
String
coachId
){
public
JSONObject
getPersonalPage
(
String
courseState
,
int
current
,
String
courseNameLike
,
String
categoryId
,
String
sizeType
,
String
coachId
,
DataUserInfo
...
dataUserInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Course
)
.
setApiName
(
"API_getPersonalPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
super
.
beforeDataRequest
(
dataUserInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
...
...
@@ -269,7 +270,7 @@ public class CourseTools extends XMBaseTest {
if
(!
coachId
.
equals
(
""
)){
body
.
put
(
"coachId"
,
coachId
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
...
...
@@ -292,7 +293,7 @@ public class CourseTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"courseName"
,
courseName
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getBoolean
(
"result"
);
}
...
...
src/main/java/com/xiaomai/cases/polar/finance/order/OrderTools.java
View file @
d0ff59be
...
...
@@ -336,7 +336,7 @@ public class OrderTools extends XMBaseTest {
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"salesmanId"
,
xmApp
Api
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"salesmanId"
,
data
Api
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"operationTime"
,
TimeUtils
.
getCurrentTime
());
JSONObject
card
=
new
JSONObject
();
...
...
@@ -355,10 +355,10 @@ public class OrderTools extends XMBaseTest {
jsonObject
.
put
(
"objectId"
,
RandomStringUtil
.
randomString
(
20
));
jsonObject
.
put
(
"studioId"
,
xmApp
Api
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"studioId"
,
data
Api
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"memberId"
,
memberId
);
jsonObject
.
put
(
"receivableAmount"
,
receivableAmount
);
jsonObject
.
put
(
"operatorId"
,
xmApp
Api
.
getLoginInfo
().
getAdminId
());
jsonObject
.
put
(
"operatorId"
,
data
Api
.
getLoginInfo
().
getAdminId
());
JSONArray
paymentWays
=
new
JSONArray
();
...
...
@@ -371,7 +371,7 @@ public class OrderTools extends XMBaseTest {
paymentWays
.
add
(
object
);
jsonObject
.
put
(
"paymentWays"
,
paymentWays
);
jsonObject
.
put
(
"brandId"
,
xmApp
Api
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"brandId"
,
data
Api
.
getLoginInfo
().
getBrandId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
...
...
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
View file @
d0ff59be
...
...
@@ -63,7 +63,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"reserveMemberNum"
,
reserveMemberNum
);
// 预约人数
body
.
put
(
"scheduleId"
,
scheduleId
);
// 课次id
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
// 课次id
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
success
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
success
);
if
(
success
){
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"reserveId"
);
}
...
...
@@ -122,7 +122,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
}
...
...
@@ -175,7 +175,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
}
...
...
@@ -199,7 +199,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
);
}
...
...
@@ -225,7 +225,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
success
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
success
);
}
...
...
@@ -271,7 +271,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"reserveMemberNum"
,
reserveMemberNum
);
// 预约人数
body
.
put
(
"scheduleId"
,
scheduleId
);
// 课次id
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
// 课次id
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
success
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
success
);
if
(
success
){
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"reserveId"
);
}
...
...
@@ -299,7 +299,7 @@ public class ReserveTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"leave"
,
leave
);
body
.
put
(
"reserveId"
,
reserveId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
success
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
success
);
}
...
...
src/main/java/com/xiaomai/cases/polar/reserve/TestAddToQueue.java
View file @
d0ff59be
...
...
@@ -105,7 +105,7 @@ public class TestAddToQueue extends BaseTestImpl {
String
id
=
getRules
.
getString
(
"id"
);
// 获取规则id
Random
random
=
new
Random
();
int
bookingSeatCount
=
random
.
nextInt
(
10
)+
1
;
// 席位
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
true
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
true
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
tru
e
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
ruleTools
.
saveGroupBookingRules
(
id
,
true
,
bookingSeatCount
,
true
,
true
,
random
.
nextInt
(
30
)+
10
,
true
,
random
.
nextInt
(
100
)+
10
,
random
.
nextInt
(
5
)+
1
,
false
,
random
.
nextInt
(
100
)+
10
,
"minutes"
,
fals
e
,
random
.
nextInt
(
100
)+
10
,
"minutes"
);
try
{
Thread
.
sleep
(
1000
);
...
...
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
View file @
d0ff59be
...
...
@@ -49,8 +49,8 @@ public class GroupScheduleTools extends XMBaseTest {
* @param force 是否冲突
* @param endType 排课结束方式:1 按日期,2 按次数
*/
public
void
createGroupRuleSchedule
(
String
courseId
,
String
chiefCoachId
,
String
startDate
,
String
endDate
,
List
<
String
>
venueAreaIds
,
List
<
String
>
assistCoachIds
,
Boolean
force
,
int
endType
,
int
minuteOffset
)
{
setUP
(
"API_createGroupRuleSchedule"
);
public
void
createGroupRuleSchedule
(
String
courseId
,
String
chiefCoachId
,
String
startDate
,
String
endDate
,
List
<
String
>
venueAreaIds
,
List
<
String
>
assistCoachIds
,
Boolean
force
,
int
endType
,
int
minuteOffset
,
DataUserInfo
...
userInfo
)
{
setUP
(
"API_createGroupRuleSchedule"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
// 场馆
...
...
@@ -73,7 +73,7 @@ public class GroupScheduleTools extends XMBaseTest {
body
.
put
(
"endDate"
,
CommUtil
.
getNDayEndTimeTamp
(
60
));
//排课结束日期,这里就设置自动延顺60天,结束日期会覆盖你传的endDate
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
}
...
...
@@ -84,8 +84,8 @@ public class GroupScheduleTools extends XMBaseTest {
* @return
*/
public
JSONArray
getGroupRuleScheduleList
(
String
courseId
,
String
coachId
){
setUP
(
"API_getGroupRuleScheduleList"
);
public
JSONArray
getGroupRuleScheduleList
(
String
courseId
,
String
coachId
,
DataUserInfo
...
userInfo
){
setUP
(
"API_getGroupRuleScheduleList"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
...
...
@@ -96,7 +96,7 @@ public class GroupScheduleTools extends XMBaseTest {
if
(
coachId
!=
null
&&
coachId
.
length
()!=
0
){
body
.
put
(
"coachId"
,
coachId
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
XMJSONPath
.
getJSONArrayByReadPath
(
dataApi
.
getApi_response
(),
"$.result"
);
}
...
...
@@ -119,7 +119,7 @@ public class GroupScheduleTools extends XMBaseTest {
body
.
put
(
"current"
,
0
);
body
.
put
(
"size"
,
50
);
body
.
put
(
"courseNameLike"
,
courseName
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
if
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.records"
).
length
()==
0
){
return
""
;
}
...
...
@@ -133,15 +133,15 @@ public class GroupScheduleTools extends XMBaseTest {
* 删除团课排课日程
* @param ruleId
*/
public
void
delGroupRuleSchedule
(
String
ruleId
,
Boolean
force
){
setUP
(
"API_delGroupRuleSchedule"
);
public
void
delGroupRuleSchedule
(
String
ruleId
,
Boolean
force
,
DataUserInfo
...
userInfo
){
setUP
(
"API_delGroupRuleSchedule"
,
userInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"force"
,
force
);
body
.
put
(
"ruleId"
,
ruleId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
}
...
...
@@ -163,7 +163,7 @@ public class GroupScheduleTools extends XMBaseTest {
body
.
put
(
"size"
,
50
);
body
.
put
(
"state"
,
"DUTY"
);
body
.
put
(
"teachingType"
,
"LEAGUE_CLASS"
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
int
count
=
Integer
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.total"
));
List
<
String
>
adminIds
=
new
ArrayList
<>();
...
...
@@ -223,7 +223,7 @@ public class GroupScheduleTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"id"
,
ruldId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
}
...
...
@@ -268,7 +268,7 @@ public class GroupScheduleTools extends XMBaseTest {
}
/**
* @description:
TODO
* @description:
编辑课次
* @author: xuyamei
* @date: 2024/6/23 20:45
* @param scheduleId:课次id
...
...
src/main/java/com/xiaomai/cases/polar/setting/courseCategory/CourseCategoryTools.java
View file @
d0ff59be
...
...
@@ -39,7 +39,7 @@ public class CourseCategoryTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
...
...
@@ -83,7 +83,7 @@ public class CourseCategoryTools extends XMBaseTest {
if
(
oldCategoryId
.
equals
(
""
)){
body
.
put
(
"oldCategoryId"
,
oldCategoryId
);
}
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
);
return
dataApi
.
getBodyInJSON
().
getBoolean
(
"result"
);
}
...
...
@@ -108,7 +108,7 @@ public class CourseCategoryTools extends XMBaseTest {
body
.
put
(
"categoryName"
,
categoryName
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
);
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"id"
);
}
...
...
@@ -131,7 +131,7 @@ public class CourseCategoryTools extends XMBaseTest {
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"categoryId"
,
categoryId
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
).
assetsSuccess
(
true
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
).
assetsSuccess
(
true
);
}
/**
...
...
@@ -153,7 +153,7 @@ public class CourseCategoryTools extends XMBaseTest {
body
.
put
(
"categoryId"
,
categoryId
);
body
.
put
(
"del"
,
del
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
heade
rs
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
datahead
rs
);
return
dataApi
.
getBodyInJSON
().
getBoolean
(
"result"
);
}
...
...
src/main/java/com/xiaomai/client/ApiTest.java
View file @
d0ff59be
...
...
@@ -151,13 +151,19 @@ public class ApiTest extends AbstractTestNGSpringContextTests {
executionApi
.
getHeadrs
().
put
(
"brandId"
,
loginInfo
.
getBrandId
());
executionApi
.
getHeadrs
().
put
(
"studioId"
,
loginInfo
.
getStudioId
());
executionApi
.
getHeadrs
().
put
(
"usertype"
,
"B"
);
executionApi
.
getHeadrs
().
put
(
"domain"
,
"FITNESS_ADMIN"
);
}
else
if
(
"minApp"
.
equals
(
executionApi
.
getTerminal
()))
{
executionApi
.
getHeadrs
().
put
(
"domain"
,
"FITNESS_MEMBER"
);
executionApi
.
getHeadrs
().
put
(
"appId"
,
loginInfo
.
getWechatAppId
());
executionApi
.
getHeadrs
().
put
(
"user"
,
loginInfo
.
getUser
());
executionApi
.
getHeadrs
().
put
(
"xmToken"
,
loginInfo
.
getToken
());
}
executionApi
.
getHeadrs
().
put
(
"xm_request_source"
,
"TestGetAdmin"
);
executionApi
.
getHeadrs
().
put
(
"User-Agent"
,
"XMSport/1.0 (com.jiejing.sport; build:1; iOS 15.8.1) Alamofire/5.8.0"
);
executionApi
.
getHeadrs
().
put
(
"Accept"
,
"*/*"
);
executionApi
.
getHeadrs
().
put
(
"Connection"
,
"Keep-Alive"
);
executionApi
.
getHeadrs
().
put
(
"domain"
,
"FITNESS_ADMIN"
);
// 接口未设置请求头,则默认为 application/json
if
(
api
.
containsKey
(
"apiContentType"
)
||
StringUtils
.
isEmpty
(
api
.
getString
(
"apiContentType"
)))
{
executionApi
.
getHeadrs
().
put
(
"Content-type"
,
"application/json;charset=utf-8"
);
...
...
src/main/java/com/xiaomai/client/BaseTest.java
View file @
d0ff59be
...
...
@@ -174,13 +174,18 @@ public class BaseTest extends AbstractTestNGSpringContextTests {
executionHeaders
.
put
(
"brandId"
,
loginInfo
.
getBrandId
());
executionHeaders
.
put
(
"studioId"
,
loginInfo
.
getStudioId
());
executionHeaders
.
put
(
"usertype"
,
"B"
);
executionHeaders
.
put
(
"domain"
,
"FITNESS_ADMIN"
);
}
else
if
(
"minApp"
.
equals
(
executionApi
.
getTerminal
()))
{
executionHeaders
.
put
(
"domain"
,
"FITNESS_MEMBER"
);
executionHeaders
.
put
(
"appId"
,
loginInfo
.
getWechatAppId
());
executionHeaders
.
put
(
"user"
,
loginInfo
.
getUser
());
executionHeaders
.
put
(
"token"
,
loginInfo
.
getToken
());
}
executionHeaders
.
put
(
"xm_request_source"
,
"TestGetAdmin"
);
executionHeaders
.
put
(
"User-Agent"
,
"XMSport/1.0 (com.jiejing.sport; build:1; iOS 15.8.1) Alamofire/5.8.0"
);
executionHeaders
.
put
(
"Accept"
,
"*/*"
);
executionHeaders
.
put
(
"domain"
,
"FITNESS_ADMIN"
);
executionHeaders
.
put
(
"Connection"
,
"Keep-Alive"
);
// 接口未设置请求头,则默认为 application/json
/* if (api.containsKey("apiContentType") || StringUtils.isEmpty(api.getString("apiContentType"))) {
...
...
src/main/java/com/xiaomai/enums/ApiModule.java
View file @
d0ff59be
...
...
@@ -18,6 +18,8 @@ public class ApiModule {
public
static
String
Polar_Schedule
=
"polar_schedule"
;
//课程排期
public
static
String
Polar_Reserve
=
"polar_reserve"
;
//预约
public
static
String
Lunar_Reserve
=
"lunar_reserve"
;
//预约
public
static
String
Lunar_User
=
"lunar_user"
;
//预约
...
...
src/main/java/com/xiaomai/enums/LoginAccount.java
View file @
d0ff59be
...
...
@@ -13,6 +13,7 @@ public class LoginAccount {
public
static
String
ADU_PROD
=
"gym_prod_du"
;
public
static
String
GYM_PROD
=
"gym_prod"
;
public
static
String
XYM_PROD
=
"xym_prod"
;
public
static
String
XYM_MINIAPPC
=
"xym_miniAppC"
;
}
src/main/java/com/xiaomai/utils/CommonLogin.java
View file @
d0ff59be
...
...
@@ -87,6 +87,26 @@ public class CommonLogin {
.
setStudioId
(
studioId
);
loginInfoMap
.
add
(
loginUser
,
loginInfo
);
}
else
if
(
Terminal
.
minApp
.
equals
(
loginTerminal
))
{
String
appId
=
userInfo
.
getApp_id
();
String
openId
=
userInfo
.
getOpen_id
();
String
brandId
=
userInfo
.
getBrandId
();
String
studioId
=
userInfo
.
getStudioId
();
String
token
=
userInfo
.
getXm_token
();
String
user
=
userInfo
.
getUser
();
CommonRequestParameters
loginIofo
=
new
CommonRequestParameters
()
.
setUser
(
user
)
.
setDomain
(
"FITNESS_MEMBER"
)
.
setToken
(
token
)
.
setAccountNo
(
accountNo
)
.
setOpenId
(
openId
)
.
setToken
(
token
)
.
setWechatAppId
(
appId
)
.
setBrandId
(
brandId
)
.
setStudioId
(
studioId
);
loginInfoMap
.
add
(
loginUser
,
loginIofo
);
}
else
{
logger
.
warn
(
env
+
"环境"
+
loginTerminal
+
"端:"
+
loginUser
+
"登陆失败:"
+
body
.
getString
(
"message"
));
}
...
...
src/main/java/com/xiaomai/utils/CommonRequestParameters.java
View file @
d0ff59be
...
...
@@ -20,10 +20,16 @@ public class CommonRequestParameters {
private
String
accountNo
;
private
String
domain
;
private
String
wechatAppId
;
private
String
openId
;
public
String
getCommonParam
(
String
userType
)
{
if
(
"B"
.
equals
(
userType
))
{
return
"?build=1&user="
+
user
+
"&tenant="
+
tenant
+
"&adminId="
+
adminId
+
"&domain="
+
domain
+
"&sft=20.0&sfr=0.0&token="
+
token
+
"&brandId="
+
brandId
+
"&studioId="
+
studioId
+
"&sfb=0.0&version=1.0&sfl=0.0&platform=iOS"
;
}
else
if
(
Terminal
.
minApp
.
equals
(
userType
))
{
return
"?domain="
+
domain
+
"&appId="
+
wechatAppId
+
"&token="
+
token
+
"&openId="
+
openId
+
"&brandId="
+
brandId
+
"&studioId="
+
studioId
;
}
else
{
return
"?"
;
}
...
...
@@ -109,4 +115,19 @@ public class CommonRequestParameters {
this
.
domain
=
domain
;
return
this
;
}
public
String
getWechatAppId
()
{
return
wechatAppId
;
}
public
CommonRequestParameters
setWechatAppId
(
String
wechatAppId
)
{
this
.
wechatAppId
=
wechatAppId
;
return
this
;
}
public
String
getOpenId
()
{
return
openId
;
}
public
CommonRequestParameters
setOpenId
(
String
openId
)
{
this
.
openId
=
openId
;
return
this
;
}
}
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