Commit 3a12df92 by DuJunLi

增加训练营排课相关case

parent 4bf7e3ea
package com.xiaomai.cases.polar.schedule.camp;
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.CommUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 训练营排课相关工具类
* @author adu
* data 2024/7/9 10:19
*/
@Component("campScheduleTools")
public class CampScheduleTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Polar_Schedule)
.setApiName(apiName)
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
}
/**
* 创建训练营排课
* @param campId 训练营活动ID
* @param assistCoachIds 助教ID
* @param chiefCoachId 教练ID
* @param courseId 课程ID 这个值直接从选择的训练营活动中获取
* @param minMemberNum 开课人数 这个值直接从选择的训练营活动中获取
* @param maxMemberNum 人数上线 这个值直接从选择的训练营活动中获取
* @param minuteOffset 上课开始时间 整点*60 获取这个值 24小时制
* @param startDate 开课开始时间,这个值要大于等于训练营的开营时间
* @param endDate 开课结束时间,这个值要小于等于训练营的结束时间
* @param force 排课是否冲突,有冲突时true,无冲突时传false
* @param venueAreaIds 场地ID
* @param maxLoop 上课次数,按次数时要传这个值;如果设置按日期 则传"";
* @param userInfo
*/
public void createCampRuleSchedule(String campId, List<String> assistCoachIds,String chiefCoachId,String courseId,
int minMemberNum,int maxMemberNum,String minuteOffset,String startDate,String endDate,
Boolean force,List<String> venueAreaIds,String maxLoop,DataUserInfo... userInfo){
setUP("API_createCampRuleSchedule", userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
if(null!=maxLoop||!maxLoop.isEmpty()){
body.put("maxLoop", maxLoop);
}
body.put("campId", campId);
body.put("courseId", courseId);
body.put("chiefCoachId", chiefCoachId);
body.put("minMemberNum", minMemberNum); // 开课人数
body.put("maxMemberNum", maxMemberNum); //人数上限
body.put("minuteOffset", minuteOffset); //上课开始时间
body.put("startDate", startDate); //排课开始日期
body.put("endDate", endDate); //排课结束日期
String[] weekDaysArray = {"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"};
List<String> weekdaysList = Arrays.asList(weekDaysArray);
body.put("weekdays", weekdaysList); //设置上课星期,目前是每天都会选择
body.put("venueAreaIds", venueAreaIds); //场地,可设置为空 new ArrayList<>();
body.put("assistCoachIds", assistCoachIds); //设置助教,可设置为空 new ArrayList<>();
body.put("force", force); //是否有冲突 true,false
body.put("enableCustomerReserve", "NO"); //能否用户自己约课,不能
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* 快速创建排课,周二,周四,周六,周日
* @param campId
* @param chiefCoachId
* @param courseId
* @param minMemberNum
* @param maxMemberNum
* @param minuteOffset
* @param endDate
* @param force
* @param maxLoop
*/
public void oneKeyCreateCampRuleSchedule(String campId,String chiefCoachId,String courseId,
int minMemberNum,int maxMemberNum,String minuteOffset,String endDate,
Boolean force,String maxLoop){
setUP("API_createCampRuleSchedule");
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
if(null!=maxLoop||!maxLoop.isEmpty()){
body.put("maxLoop", maxLoop);
}
body.put("campId", campId);
body.put("courseId", courseId);
body.put("chiefCoachId", chiefCoachId);
body.put("minMemberNum", minMemberNum); // 开课人数
body.put("maxMemberNum", maxMemberNum); //人数上限
body.put("minuteOffset", minuteOffset); //上课开始时间
body.put("startDate", CommUtil.oneKeyGetAddDay(3));//大后天,晚于开营时间1天
body.put("endDate", endDate); //排课结束日期,取训练营结束日期
String[] weekDaysArray = { "TUESDAY", "THURSDAY", "SATURDAY", "SUNDAY"};
List<String> weekdaysList = Arrays.asList(weekDaysArray);
body.put("weekdays", weekdaysList); //设置上课星期,目前是每天都会选择
body.put("venueAreaIds", new ArrayList<>()); //场地,可设置为空 new ArrayList<>();
body.put("assistCoachIds", new ArrayList<>()); //设置助教,可设置为空 new ArrayList<>();
body.put("force", force); //是否有冲突 true,false
body.put("enableCustomerReserve", "NO"); //能否用户自己约课,不能
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* 查看训练营排课日程
* @param campId 根据训练营活动查询 ,传值时有筛选条件,""时不传该值,看了前端传值一般没筛选条件时不传,只要有一个筛选条件,其他筛选条件要传null
* @param courseId 根据课程查询
* @param coachId 根据教练查询
* @param userInfo
*/
public void getCampRuleScheduleList(String campId,String courseId,String coachId,DataUserInfo... userInfo){
setUP("API_getCampRuleScheduleList", 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("coachId", coachId);
body.put("courseId", courseId);
body.put("campId", campId);
/* if(null!= campId && !campId.isEmpty()){
body.put("campId", campId);
}
if(null!=courseId||!courseId.isEmpty()){
body.put("courseId", courseId);
}
if(null!=coachId||!coachId.isEmpty()){
body.put("coachId", coachId);
}*/
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* 删除训练营排课日程
* @param ruleId 日程对应的规则ID
*/
public void delCampRuleSchedule(String ruleId){
setUP("API_delCampRuleSchedule");
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", true);//删除学员约课记录
body.put("ruleId", ruleId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* 查看训练营排课课表
* @param startDate 开始日期,如果查看的是日课表,传当前的开始日期00;如果是周课表,传的是指定周的周一开始日期
* @param endDate 结束日期 ,如果查看的是日课表,传当前的结束日期23:59:59;如果是周课表,传的是指定周的周日结束日期
* @return
*/
public JSONArray getCampScheduleTable(String startDate, String endDate) {
setUP("API_getCampScheduleTable");
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("startDate", startDate);
body.put("endDate", endDate);
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
if (Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.totalCount")) > 0) {
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("timetableGroups").getJSONObject(0).getJSONArray("timetableList");
}
else {
return null;
}
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.training.BaseCreateTrainingData;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author adu
* data 2024/7/9 16:35
*/
public class SelectTargetTrainingCampAndGetInfo extends BaseCreateTrainingData {
//训练营活动ID
public String id = "";
public String title = "三墩小学足球2期训练营" + RandomStringUtil.randomString(6);
public String openEndDate= CommUtil.getNDayEndTimeTamp(42);// 23:59:59,从开始到结束一共40天
public List<JSONObject> campInfo = new ArrayList<>();
@BeforeClass
public void beforeTest() {
super.beforeTest();
//创建训练营活动
id =this.getTrainingTools().createThenPublishTraining(this.getApplyStartTime(),this.getApplyEndTime(),this.getCourseId(),this.getOpenStartDate(),
openEndDate,3200.00,title,40,1,this.getTrainerListIdS(),"YES");
//根据训练营名称查询训练营信息
List<String> status = new ArrayList<>(); //训练营排课时选择以下4种状态的活动
status.add("APPLY_NOT_START");//报名未开始
status.add("APPLYING");//报名中
status.add("TO_BE_OPEN");//待开营
status.add("OPENING");//进行中
this.getTrainingTools().searchTrainingList("", title, status);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size() == 1, "精确查询训练营名称,没查到数据");
campInfo = JSON.parseObject(dataApi.getApi_response()).getJSONObject("result").getJSONArray("records").stream()
.map(obj -> {
JSONObject group = (JSONObject) obj;
return new JSONObject()
.fluentPut("id", group.getString("id"))
.fluentPut("courseId", group.getString("courseId"))
.fluentPut("openStartDate", group.getString("openStartDate"))
.fluentPut("openEndDate", group.getString("openEndDate"))
.fluentPut("traineeLowerLimit", group.getIntValue("traineeLowerLimit"))
.fluentPut("traineeUpperLimit", group.getIntValue("traineeUpperLimit"))
.fluentPut("totalClassHour", group.getIntValue("totalClassHour"))
.fluentPut("trainerList", group.getJSONArray("trainerList").toJavaList(JSONObject.class).stream()
.map(trainers -> {
return new JSONObject()
.fluentPut("id", trainers.getString("id"))
.fluentPut("nickName", trainers.getString("nickName"));
}).collect(Collectors.toList())
);
})
.collect(Collectors.toList());
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* 创建训练营排课
*
* @author adu
* data 2024/7/9 14:49
*/
public class TestCreateCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo {
@Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
String ruldId="";
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Schedule, "API_createCampRuleSchedule", LoginAccount.ADU_PROD, Terminal.B, "adu");
super.beforeTest();
}
@Test(description = "创建训练营排课日程")
public void testCreateCampRuleSchedule() {
System.out.println("*********************" + campInfo);
//从训练营活动中获取教练信息
String chiefCoachId = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return "杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).findFirst().orElse(null);
System.out.println(id);
//从训练营活动中获取助教信息
List<String> assistCoachIds = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return !"杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).collect(Collectors.toList());
//获取存量场地
List<String> venueAreaIds = groupScheduleTools.getStockArea("流星花园秘密基地");
String campId=campInfo.get(0).getString("id");
//创建训练营排课
campScheduleTools.createCampRuleSchedule(campId, assistCoachIds, chiefCoachId, campInfo.get(0).getString("courseId"),
campInfo.get(0).getIntValue("traineeLowerLimit"), campInfo.get(0).getIntValue("traineeUpperLimit"),
"1020", campInfo.get(0).getString("openStartDate"), campInfo.get(0).getString("openEndDate"), true,
venueAreaIds, "");
//查询排课日程:根据训练营和教练(其中一个助教)查询
campScheduleTools.getCampRuleScheduleList(campId,null,assistCoachIds.get(0).toString());
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size()==1,"排课创建成功后,日程中没查询到对应数据");
ruldId=XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").getJSONObject(0).getString("ruleId");
}
@AfterClass(description = "删除此case创建的训练营排课日程")
public void delData() {
if (null!=ruldId||!ruldId.isEmpty()) {
campScheduleTools.delCampRuleSchedule(ruldId);
}
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
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;
import java.util.stream.Collectors;
/**
* 编辑训练营排课规则
*
* @author adu
* data 2024/7/10 17:46
*/
public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo {
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools;
String campId = "";
String chiefCoachId = "";
String ruldId = "";
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Schedule, "API_editCampRuleSchedule", LoginAccount.ADU_PROD, Terminal.B, "adu");
super.beforeTest();
}
@Test(description = "编辑训练营排课规则")
public void testEditCampRuleSchedule() {
//获取选择的训练营ID
campId = campInfo.get(0).getString("id");
//获取训练营活动的指定教练ID
chiefCoachId = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return "杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).findFirst().orElse(null);
//从训练营活动中获取助教信息
List<String> assistCoachIds = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return !"杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).collect(Collectors.toList());
//创建训练营排课:按日期
campScheduleTools.oneKeyCreateCampRuleSchedule(campId, chiefCoachId, campInfo.get(0).getString("courseId"),
campInfo.get(0).getIntValue("traineeLowerLimit"), campInfo.get(0).getIntValue("traineeUpperLimit"),
"1140", campInfo.get(0).getString("openEndDate"), true,
"");
//查询排课日程:根据训练营和教练查询
campScheduleTools.getCampRuleScheduleList(campId, "", chiefCoachId);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size() == 1, "排课创建成功后,日程中没查询到对应数据");
ruldId = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("ruleId");
//编辑训练营排课日程
JSONObject body = new JSONObject();
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
chiefCoachId=assistCoachIds.get(0).toString();
body.put("chiefCoachId",chiefCoachId );//修改教练换人
body.put("minMemberNum", campInfo.get(0).getIntValue("traineeLowerLimit"));
body.put("maxMemberNum", campInfo.get(0).getIntValue("traineeUpperLimit"));
body.put("minuteOffset", "1320");
List<String> venueAreaIds = groupScheduleTools.getStockArea("流星花园秘密基地");
body.put("venueAreaIds", venueAreaIds); //有空改为有数据
List<String> assistTrainer=new ArrayList<>();
assistTrainer.add(assistCoachIds.get(1).toString());
body.put("assistCoachIds", assistTrainer); //空改成有数据
body.put("ruleId", ruldId);
body.put("spanMinutes", 50);
body.put("endDate", CommUtil.getNDayEndTimeTamp(22)); //结束日期缩短了20天,
body.put("force", true);
body.put("retainBooking", true);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//查询训练营日程详情,check修改项是否被同步修改todo
//校验总课时数是否同步变更todo
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
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.AfterClass;
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.List;
import java.util.stream.Collectors;
/**
* 测试获取训练营排课课表
*
* @author adu
* data 2024/7/10 10:11
*/
public class TestGetCampScheduleTable extends SelectTargetTrainingCampAndGetInfo {
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools;
List<String> venueAreaIds;
String venueAreaId = "";
String campId = "";
String chiefCoachId = "";
String ruldId="";
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Schedule, "API_getCampScheduleTable", LoginAccount.ADU_PROD, Terminal.B, "adu");
super.beforeTest();
venueAreaIds = groupScheduleTools.getStockArea("流星花园秘密基地");
venueAreaId = venueAreaIds.get(0).toString();
campId = campInfo.get(0).getString("id");
chiefCoachId = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return "杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).findFirst().orElse(null);
//从训练营活动中获取助教信息
List<String> assistCoachIds = campInfo.get(0).getJSONArray("trainerList").toJavaList(JSONObject.class).stream().filter(e -> {
return !"杜君丽".equals(e.getString("nickName"));
}).map(e -> e.getString("id")).collect(Collectors.toList());
//创建训练营排课:按次数
campScheduleTools.createCampRuleSchedule(campId, assistCoachIds, chiefCoachId, campInfo.get(0).getString("courseId"),
campInfo.get(0).getIntValue("traineeLowerLimit"), campInfo.get(0).getIntValue("traineeUpperLimit"),
"1020", campInfo.get(0).getString("openStartDate"), campInfo.get(0).getString("openEndDate"), true,
venueAreaIds, "20");
//查询排课日程:根据训练营和教练,关联课程查询
campScheduleTools.getCampRuleScheduleList(campId,campInfo.get(0).getString("courseId"),chiefCoachId);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size()==1,"排课创建成功后,日程中没查询到对应数据");
ruldId=XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").getJSONObject(0).getString("ruleId");
}
@DataProvider(name = "filterCampScheduleTableDateByCondition")
public Object[][] dataProvider() {
//组装已上课课次状态
List<String> doneStatus = new ArrayList<>();
doneStatus.add("IN_PROGRESS");
doneStatus.add("DONE");
//组装待上课课次状态
List<String> todoStatus = new ArrayList<>();
todoStatus.add("TODO");
return new Object[][]{
{"", "", new ArrayList<>(), "", 1},//无筛选条件
{campId, "", new ArrayList<>(), "", 1},//根据训练营搜索
{campId, chiefCoachId, new ArrayList<>(), "", 1},//根据训练营和主教练
{campId, chiefCoachId, todoStatus, "", 1},//根据训练营,教练,待上课
{campId, chiefCoachId, todoStatus, venueAreaId, 1},//根据训练营,教练,待上课,场地
{campId, chiefCoachId, doneStatus, "", 0},//根据训练营,教练,已上课
{"", "", todoStatus, "", 1},//根据课次状态:待上课
{"", "", doneStatus, "", 0},//根据课次状态已上课["IN_PROGRESS", "DONE"]
{campId, "", todoStatus, "", 1},//根据训练营名称和课次待上课
{campId, "", doneStatus, "", 0},//根据训练营名称和课次已上课
{"", chiefCoachId, new ArrayList<>(), "", 1},//根据主教练
{"", chiefCoachId, todoStatus, "", 1},//教练和上课状态待上课
{"", chiefCoachId, doneStatus, "", 0},//教练和上课状态已上课
{"", "", new ArrayList<>(), venueAreaId, 1},// 场地
{campId, "", new ArrayList<>(), venueAreaId, 1},// 场地和训练营名称
{"", chiefCoachId, new ArrayList<>(), venueAreaId, 1},// 场地和教练
{"", "", todoStatus, venueAreaId, 1},// 场地和待上课课次
{"", "", doneStatus, venueAreaId, 0},// 场地和已上课课次
{campId, chiefCoachId, new ArrayList<>(), venueAreaId, 1},// 场地,训练营,教练
};
}
@Test(description = "查看训练营课表", dataProvider = "filterCampScheduleTableDateByCondition")
public void testGetCampScheduleTable(String campId, String coachId, List<String> statusSet, String venueAreaId, int total) {
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
//下周课表
body.put("startDate", CommUtil.oneKeyGetNextWeekStartDay());
body.put("endDate", CommUtil.oneKeyGetNextWeekEndDay());
body.put("campId", campId);
body.put("coachId", coachId);
body.put("statusSet", statusSet);
body.put("venueAreaId", venueAreaId);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
int resultCount = Integer.parseInt(XMJSONPath.readPath(xmAppApi.getApi_response(), "$.result.totalCount"));
Assert.assertTrue(resultCount >= total, "查询到的课表数据和预期不一致");
}
@AfterClass(description = "删除此case创建的训练营排课日程")
public void delData() {
if (null!=ruldId||!ruldId.isEmpty()) {
campScheduleTools.delCampRuleSchedule(ruldId);
}
}
}
\ No newline at end of file
......@@ -70,9 +70,9 @@ public class TestEditGroupRuleSchedule extends BaseTestImpl {
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("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("chiefCoachId", chiefCoachIdS);
body.put("minMemberNum", 5);//改变了有2->5
body.put("maxMemberNum", 20);//改变了999->20
......
......@@ -6,6 +6,7 @@ import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.XMJSONPath;
import lombok.Getter;
import org.testng.annotations.BeforeClass;
import javax.annotation.Resource;
......@@ -17,6 +18,7 @@ import java.util.List;
* data 2024/7/3 19:44
*/
@Getter
public class BaseCreateTrainingData extends BaseTestImpl {
@Resource(name = "trainingTools")
TrainingTools trainingTools;
......
......@@ -86,12 +86,12 @@ public class TestEditTraining extends BaseCreateTrainingData {
@Test(description = "编辑已发布训练营活动")
public void editPublishTraining() {
//1.查询关联对应课程的活动数据
trainingTools.searchTrainingList(courseId, new ArrayList<>());
trainingTools.searchTrainingList(courseId, "",new ArrayList<>());
int listCountBefore = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
//2.创建已发布的训练营活动
oneKeytTrainingId = trainingTools.oneKeyCreateTraining(courseId, trainerListIdS);
//3.列表搜索数据check
trainingTools.searchTrainingList(courseId, new ArrayList<>());
trainingTools.searchTrainingList(courseId,"", new ArrayList<>());
int listCountAfter = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
Assert.assertEquals(listCountAfter, (listCountBefore + 1), "训练营活动创建成功列表数据没增加");
JSONObject goalObject = XMJSONPath.getJSONObjectByReadPath(dataApi.getApi_response(), "$.result.records[0]");
......
......@@ -57,7 +57,7 @@ public class TestSearchTrainingList extends BaseCreateTrainingData {
return new Object[][]{
{ "", "", new ArrayList<>()},//无筛选条件
{ courseId, "", new ArrayList<>()},//根据关联课程搜索
{ "", "杭州自动化测试训练营", statu8},//根据训练营名称搜索
{ "", "杭州自动化测试训练营A", statu8},//根据训练营名称搜索
{ "", "", statu1},//根据训练营状态(未发布)搜索
{ "", "", statu2},//根据训练营状态(报名未开始)搜索
{ "", "", statu3},//根据训练营状态(报名中)搜索
......@@ -89,9 +89,6 @@ public class TestSearchTrainingList extends BaseCreateTrainingData {
//有存量数据,理论上每个查询都会至少有1条数据
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(),"$.result.records").size()>=1,"没有搜索到相关数据");
}
}
......@@ -24,8 +24,8 @@ import java.util.List;
public class TrainingTools extends XMBaseTest {
String applyStartTime1 = String.valueOf(CommUtil.getWholeHourTimestamp()); //当前时间的整点
String applyEndTime1 = CommUtil.oneKeyGetAddDay(1);//明天0点
String openStartDate1 = applyEndTime1;
String openEndDate1 = CommUtil.getNDayEndTimeTamp(2);//后天23:59:59
String openStartDate0 = applyEndTime1;
String openEndDate0 = CommUtil.getNDayEndTimeTamp(2);//后天23:59:59
long currentTimestamp = System.currentTimeMillis();
// 在当前时间的基础上,加上5秒(5000毫秒)
......@@ -115,8 +115,8 @@ public class TrainingTools extends XMBaseTest {
body.put("applyStartTime", futureTimestampS);//报名开始时间,晚于当前时间5秒
body.put("courseId", courseId); //关联课程ID
body.put("creatorId", dataApi.getLoginInfo().getAdminId()); // 创建人即操作者
body.put("openEndDate", openEndDate1); //开营结束时间
body.put("openStartDate", openStartDate1); //开营开始时间
body.put("openEndDate", openEndDate0); //开营结束时间
body.put("openStartDate", openStartDate0); //开营开始时间
body.put("price", 0); //售卖价格
body.put("surfaceUrl", "https://xiaomai-res.oss-cn-hangzhou.aliyuncs.com/xmfit/course_cover/training_camp_0.png"); // 默认活动封面图
body.put("title", trainingTitle);
......@@ -151,8 +151,8 @@ public class TrainingTools extends XMBaseTest {
body.put("applyStartTime", applyStartTime1);//报名开始时间
body.put("courseId", courseId); //关联课程ID
body.put("creatorId", dataApi.getLoginInfo().getAdminId()); // 创建人即操作者
body.put("openEndDate", openEndDate1); //开营开始时间
body.put("openStartDate", openStartDate1); //开营结束时间
body.put("openEndDate", openEndDate0); //开营开始时间
body.put("openStartDate", openStartDate0); //开营结束时间
body.put("price", 0.01); //售卖价格
body.put("surfaceUrl", "https://xiaomai-res.oss-cn-hangzhou.aliyuncs.com/xmfit/course_cover/training_camp_0.png"); // 默认活动封面图
body.put("title", title); // 训练营活动名称:"杭州自动化测试训练营-未发布"
......@@ -215,7 +215,7 @@ public class TrainingTools extends XMBaseTest {
* 已结束:CLOSED
* 已取消:CANCEL
*/
public void searchTrainingList(String courseId, List<String> stateList) {
public void searchTrainingList(String courseId, String trainingName, List<String> stateList) {
setUP("API_searchTrainingList");
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
......@@ -225,6 +225,10 @@ public class TrainingTools extends XMBaseTest {
body.put("size", 20);
body.put("courseId", courseId);
body.put("stateList", stateList);
if (!trainingName.isEmpty()) {
body.put("title", trainingName);
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
......@@ -264,4 +268,3 @@ public class TrainingTools extends XMBaseTest {
}
\ No newline at end of file
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