Commit ed51d5f4 by DuJunLi

添加查看排课日程详情和编辑日程的case

parent 82feeba0
...@@ -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);
}
}
......
...@@ -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 = groupScheduleTools.getStockArea("流星花园秘密基地");
//获取存量教练 //获取存量教练
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;
}
}
} }
......
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
...@@ -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();
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment