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
ed51d5f4
Commit
ed51d5f4
authored
Jun 13, 2024
by
DuJunLi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加查看排课日程详情和编辑日程的case
parent
82feeba0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
165 additions
and
38 deletions
+165
-38
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
+48
-3
src/main/java/com/xiaomai/cases/polar/schedule/group/TestCreateGroupRuleSchedule.java
+4
-34
src/main/java/com/xiaomai/cases/polar/schedule/group/TestEditGroupRuleSchedule.java
+112
-0
src/main/java/com/xiaomai/utils/CommUtil.java
+1
-1
No files found.
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
View file @
ed51d5f4
...
@@ -2,6 +2,7 @@ package com.xiaomai.cases.polar.schedule.group;
...
@@ -2,6 +2,7 @@ package com.xiaomai.cases.polar.schedule.group;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.setting.venue.VenueAreaTools
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.client.DataUserInfo
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.RequestType
;
...
@@ -12,6 +13,7 @@ import com.xiaomai.utils.XMJSONPath;
...
@@ -12,6 +13,7 @@ import com.xiaomai.utils.XMJSONPath;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
...
@@ -24,6 +26,9 @@ import java.util.stream.Collectors;
...
@@ -24,6 +26,9 @@ import java.util.stream.Collectors;
@Component
(
"groupScheduleTools"
)
@Component
(
"groupScheduleTools"
)
public
class
GroupScheduleTools
extends
XMBaseTest
{
public
class
GroupScheduleTools
extends
XMBaseTest
{
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
public
void
setUP
(
String
apiName
,
DataUserInfo
...
userInfo
)
{
public
void
setUP
(
String
apiName
,
DataUserInfo
...
userInfo
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Schedule
)
dataApi
.
setApiModule
(
ApiModule
.
Polar_Schedule
)
...
@@ -175,15 +180,55 @@ public class GroupScheduleTools extends XMBaseTest {
...
@@ -175,15 +180,55 @@ public class GroupScheduleTools extends XMBaseTest {
}
}
return
null
;
return
null
;
}
/**
* 获取存量场地
*
* @param areaName 根据指定场地名称,匹配出对应的场地ID,如果无匹配的则新建,如果场地列表无数据,则新建个
* @return
*/
public
List
<
String
>
getStockArea
(
String
areaName
)
{
JSONObject
result
=
venueAreaTools
.
getVenueAreaPage
();
int
count
=
XMJSONPath
.
getJSONArrayByReadPath
(
result
,
"$.records"
).
size
();
List
<
String
>
areaIds
=
new
ArrayList
<>();
if
(
count
>
0
)
{
areaIds
=
result
.
getJSONArray
(
"records"
).
toJavaList
(
JSONObject
.
class
).
stream
().
filter
(
obj
->
(
areaName
).
equals
(
obj
.
getString
(
"groupName"
)))
.
map
(
obj
->
{
JSONObject
areaIdInfo
=
(
JSONObject
)
obj
;
return
areaIdInfo
.
getJSONArray
(
"areaList"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
).
collect
(
Collectors
.
toList
());
if
(
areaIds
.
isEmpty
())
{
//如果无匹配的则新建一个匹配的场地
String
areaId
=
venueAreaTools
.
createVenueArea
(
areaName
);
areaIds
.
add
(
areaId
);
return
areaIds
;
}
return
areaIds
;
//如果匹配到了,取匹配到的场地ID
}
else
{
//如果场地列表为空,则新建一个
String
areaId
=
venueAreaTools
.
createVenueArea
(
areaName
);
areaIds
.
add
(
areaId
);
return
areaIds
;
}
}
/**
* 查看团课排课日程详情
* @param ruldId
*/
public
void
getGroupRuleScheduleDetail
(
String
ruldId
){
setUP
(
"API_getGroupRuleScheduleDetail"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"id"
,
ruldId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
}
}
...
...
src/main/java/com/xiaomai/cases/polar/schedule/group/TestCreateGroupRuleSchedule.java
View file @
ed51d5f4
...
@@ -44,17 +44,15 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
...
@@ -44,17 +44,15 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
//获取今天结束日期的时间戳
//获取今天结束日期的时间戳
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
0
);
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
0
);
//前天的时间戳,开始时间
String
theDayBeforeYesterdayTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(-
2
);
String
courseName
=
"阿杜自动化团课课程"
;
String
courseName
=
"阿杜自动化团课课程"
;
@BeforeClass
@BeforeClass
public
void
beforeTest
()
{
public
void
beforeTest
()
{
setTestInfo
(
ApiModule
.
Polar_Schedule
,
"API_createGroupRuleSchedule"
,
LoginAccount
.
GYM
_PROD
,
Terminal
.
B
,
"adu"
);
setTestInfo
(
ApiModule
.
Polar_Schedule
,
"API_createGroupRuleSchedule"
,
LoginAccount
.
ADU
_PROD
,
Terminal
.
B
,
"adu"
);
super
.
beforeTest
();
super
.
beforeTest
();
}
}
@Test
@Test
(
description
=
"测试新建团课排课"
)
public
void
testCreateGroupRuleSchedule
()
{
public
void
testCreateGroupRuleSchedule
()
{
//获取存量课程ID
//获取存量课程ID
...
@@ -65,7 +63,7 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
...
@@ -65,7 +63,7 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
courseId
=
courseTools
.
createGroupCourse
(
courseName
,
categoryId
,
"STUDIO"
);
courseId
=
courseTools
.
createGroupCourse
(
courseName
,
categoryId
,
"STUDIO"
);
}
}
//获取存量场地
//获取存量场地
List
<
String
>
venueAreaIds
=
getStockArea
(
"流星花园秘密基地"
);
List
<
String
>
venueAreaIds
=
g
roupScheduleTools
.
g
etStockArea
(
"流星花园秘密基地"
);
//获取存量教练
//获取存量教练
List
<
String
>
chiefCoachId
=
new
ArrayList
<>();
List
<
String
>
chiefCoachId
=
new
ArrayList
<>();
chiefCoachId
.
add
(
"杜君丽"
);
chiefCoachId
.
add
(
"杜君丽"
);
...
@@ -91,35 +89,7 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
...
@@ -91,35 +89,7 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
}
}
/**
* 获取存量场地
*
* @param areaName 根据指定场地名称,匹配出对应的场地ID,如果无匹配的则新建,如果场地列表无数据,则新建个
* @return
*/
public
List
<
String
>
getStockArea
(
String
areaName
)
{
JSONObject
result
=
venueAreaTools
.
getVenueAreaPage
();
int
count
=
XMJSONPath
.
getJSONArrayByReadPath
(
result
,
"$.records"
).
size
();
List
<
String
>
areaIds
=
new
ArrayList
<>();
if
(
count
>
0
)
{
areaIds
=
result
.
getJSONArray
(
"records"
).
toJavaList
(
JSONObject
.
class
).
stream
().
filter
(
obj
->
(
areaName
).
equals
(
obj
.
getString
(
"groupName"
)))
.
map
(
obj
->
{
JSONObject
areaIdInfo
=
(
JSONObject
)
obj
;
return
areaIdInfo
.
getJSONArray
(
"areaList"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
).
collect
(
Collectors
.
toList
());
if
(
areaIds
.
isEmpty
())
{
//如果无匹配的则新建一个匹配的场地
String
areaId
=
venueAreaTools
.
createVenueArea
(
areaName
);
areaIds
.
add
(
areaId
);
return
areaIds
;
}
return
areaIds
;
//如果匹配到了,取匹配到的场地ID
}
else
{
//如果场地列表为空,则新建一个
String
areaId
=
venueAreaTools
.
createVenueArea
(
areaName
);
areaIds
.
add
(
areaId
);
return
areaIds
;
}
}
}
}
...
...
src/main/java/com/xiaomai/cases/polar/schedule/group/TestEditGroupRuleSchedule.java
0 → 100644
View file @
ed51d5f4
package
com
.
xiaomai
.
cases
.
polar
.
schedule
.
group
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.setting.venue.VenueAreaTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author adu
* data 2024/6/13 14:31
*/
public
class
TestEditGroupRuleSchedule
extends
BaseTestImpl
{
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
@Resource
(
name
=
"venueAreaTools"
)
VenueAreaTools
venueAreaTools
;
//前天的时间戳,开始时间
String
theDayBeforeYesterdayTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(-
2
);
//获取今天+12天后日期的时间戳(结束时间)
String
endDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
12
);
String
todayEndDateTimeTamp
=
CommUtil
.
getNDayEndTimeTamp
(
0
);
String
courseName
=
"阿杜自动化团课课程"
;
@BeforeClass
public
void
beforeTest
()
{
setTestInfo
(
ApiModule
.
Polar_Schedule
,
"API_editGroupRuleSchedule"
,
LoginAccount
.
ADU_PROD
,
Terminal
.
B
,
"adu"
);
super
.
beforeTest
();
}
@Test
(
description
=
"测试编辑团课规则"
)
public
void
testEditGroupRuleSchedule
()
{
//先创建排课规则
//获取存量课程ID
String
courseId
=
groupScheduleTools
.
getStockGroupCourseId
(
courseName
);
//获取存量教练
List
<
String
>
chiefCoachId
=
new
ArrayList
<>();
chiefCoachId
.
add
(
"杜君丽"
);
String
chiefCoachIdS
=
groupScheduleTools
.
getStudioAdminId
(
chiefCoachId
).
get
(
0
).
toString
();
//获取存量助教
List
<
String
>
assistCoachIds
=
new
ArrayList
<>();
assistCoachIds
.
add
(
"木头"
);
assistCoachIds
.
add
(
"吴彦祖"
);
List
<
String
>
assistCoachIdS
=
groupScheduleTools
.
getStudioAdminId
(
chiefCoachId
);
//1-创建排课日程
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
chiefCoachIdS
,
theDayBeforeYesterdayTimeTamp
,
endDateTimeTamp
,
new
ArrayList
<>(),
assistCoachIdS
,
false
,
1
);
//2-查询排课日程
JSONArray
result
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
chiefCoachIdS
);
Assert
.
assertTrue
(
result
.
size
()
>=
1
);
String
ruldId
=
XMJSONPath
.
readPath
(
result
.
getJSONObject
(
0
),
"$.ruleId"
);
//3-编辑排课日程
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"chiefCoachId"
,
chiefCoachIdS
);
body
.
put
(
"minMemberNum"
,
5
);
//改变了有2->5
body
.
put
(
"maxMemberNum"
,
20
);
//改变了999->20
body
.
put
(
"minuteOffset"
,
"1320"
);
List
<
String
>
venueAreaIds
=
groupScheduleTools
.
getStockArea
(
"流星花园秘密基地"
);
body
.
put
(
"venueAreaIds"
,
venueAreaIds
);
//有空改为有数据
body
.
put
(
"assistCoachIds"
,
new
ArrayList
<>());
//有数据AB改成空
body
.
put
(
"ruleId"
,
ruldId
);
body
.
put
(
"spanMinutes"
,
50
);
body
.
put
(
"endDate"
,
todayEndDateTimeTamp
);
//结束日期缩短了,改成当天结束
body
.
put
(
"force"
,
false
);
body
.
put
(
"retainBooking"
,
true
);
xmAppApi
.
doRequest
(
RequestType
.
JSON
,
params
,
body
.
toString
(),
headers
).
assetsSuccess
(
true
);
//4-查看日程详情,check修改内容是否同步变更
groupScheduleTools
.
getGroupRuleScheduleDetail
(
ruldId
);
String
detailResult
=
dataApi
.
getApi_response
();
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
detailResult
,
"$.result.chiefCoachId"
),
chiefCoachIdS
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
detailResult
,
"$.result.minMemberNum"
),
"5"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
detailResult
,
"$.result.maxMemberNum"
),
"20"
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
detailResult
,
"$.result.minuteOffset"
),
"1320"
);
Assert
.
assertEquals
((
XMJSONPath
.
readPath
(
detailResult
,
"$.result.endDate"
).
substring
(
0
,
9
)),
todayEndDateTimeTamp
.
substring
(
0
,
9
));
Assert
.
assertTrue
(
XMJSONPath
.
getJSONArrayByReadPath
(
detailResult
,
"$.result.assistCoachIds"
).
isEmpty
(),
"助教设置为空后没生效"
);
Assert
.
assertTrue
(
XMJSONPath
.
getJSONArrayByReadPath
(
detailResult
,
"$.result.venueAreaIds"
).
containsAll
(
venueAreaIds
),
"设置有空改为有数据后没生效"
);
//5-删除日程
groupScheduleTools
.
delGroupRuleSchedule
(
ruldId
);
}
}
\ No newline at end of file
src/main/java/com/xiaomai/utils/CommUtil.java
View file @
ed51d5f4
...
@@ -168,7 +168,7 @@ public class CommUtil {
...
@@ -168,7 +168,7 @@ public class CommUtil {
public
static
Date
getEndOfDay
(
Date
date
)
{
public
static
Date
getEndOfDay
(
Date
date
)
{
assert
date
!=
null
;
assert
date
!=
null
;
return
new
DateTime
(
date
).
withTime
(
23
,
59
,
59
,
0
).
toDate
();
return
new
DateTime
(
date
).
withTime
(
23
,
59
,
59
,
999
).
toDate
();
}
}
/**
/**
...
...
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