Commit f0594f5d by DuJunLi

优化代码,新增批量代预约私教课业务相关case

parent 8b5028a4
...@@ -35,7 +35,7 @@ public class CourseTools extends XMBaseTest { ...@@ -35,7 +35,7 @@ public class CourseTools extends XMBaseTest {
* @param minCapacity:开课人数 * @param minCapacity:开课人数
* @return: 课程id * @return: 课程id
**/ **/
public String createPersonalCourse(String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity,DataUserInfo...dataUserInfo){ public String createPersonalCourse(String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity,JSONArray coachIds,JSONArray areaIds, DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course) dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_personalCreate") .setApiName("API_personalCreate")
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
...@@ -58,9 +58,16 @@ public class CourseTools extends XMBaseTest { ...@@ -58,9 +58,16 @@ public class CourseTools extends XMBaseTest {
body.put("allArea", false); // 场地 body.put("allArea", false); // 场地
body.put("singleReserve", true); body.put("singleReserve", true);
body.put("reservePrice", 0); body.put("reservePrice", 0);
JSONArray coachIds = new JSONArray(); // 教练
coachIds.add(dataApi.getLoginInfo().getAdminId());
body.put("coachIds", coachIds); body.put("coachIds", coachIds);
if(coachIds.size()==0){
JSONArray coachIdList = new JSONArray(); // 教练
coachIdList.add(dataApi.getLoginInfo().getAdminId());
body.put("coachIds", coachIdList);
}
if(areaIds.size()!=0){
body.put("areaIds", areaIds);
}
if (sizeType.equals("ONE_TO_MANY")){ // 一对多需要传课次容量及开课人数 if (sizeType.equals("ONE_TO_MANY")){ // 一对多需要传课次容量及开课人数
body.put("capacity", capacity); // 课容量 body.put("capacity", capacity); // 课容量
body.put("minCapacity", minCapacity); // 开课人数 body.put("minCapacity", minCapacity); // 开课人数
...@@ -146,7 +153,7 @@ public class CourseTools extends XMBaseTest { ...@@ -146,7 +153,7 @@ public class CourseTools extends XMBaseTest {
getNameAndId.add(courseId); getNameAndId.add(courseId);
getNameAndId.add(result.getString("courseName")); getNameAndId.add(result.getString("courseName"));
} else { } else {
getNameAndId.add(createPersonalCourse(courseName, categoryId, sourceType, sizeType, capacity, minCapacity,dataUserInfo)); getNameAndId.add(createPersonalCourse(courseName, categoryId, sourceType, sizeType, capacity, minCapacity,new JSONArray(),new JSONArray(),dataUserInfo));
getNameAndId.add(courseName); getNameAndId.add(courseName);
} }
} }
......
...@@ -57,7 +57,7 @@ public class CardTools extends XMBaseTest { ...@@ -57,7 +57,7 @@ public class CardTools extends XMBaseTest {
jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片 jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark", "自动化标签"); jsonObject.put("surfaceCornerMark", "自动化标签");
jsonObject.put("title", title);//会员卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3) jsonObject.put("title", title);//会员卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3)
jsonObject.put("validPeriod", "10");//有效期-10天 jsonObject.put("validPeriod", "888");//有效期-10天
jsonObject.put("activatePatternList", activatePatternList);//三种生效方式 jsonObject.put("activatePatternList", activatePatternList);//三种生效方式
jsonObject.put("sharePeopleLimit", "2");//共享人数 jsonObject.put("sharePeopleLimit", "2");//共享人数
jsonObject.put("benefitList", benefitList);//使用权益 jsonObject.put("benefitList", benefitList);//使用权益
......
...@@ -9,9 +9,11 @@ import com.xiaomai.enums.Terminal; ...@@ -9,9 +9,11 @@ import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils; import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest; import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath; import com.xiaomai.utils.XMJSONPath;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @BelongsProject: xm-sportstest * @BelongsProject: xm-sportstest
...@@ -173,7 +175,7 @@ public class ReserveTools extends XMBaseTest { ...@@ -173,7 +175,7 @@ public class ReserveTools extends XMBaseTest {
body.put("coachId",coachId); body.put("coachId",coachId);
} }
if (scheduleStartTime != null){ if (scheduleStartTime != null){
body.put("scheduleStartTime",scheduleStartTime); body.put("scheduleStartDate",scheduleStartTime);
body.put("scheduleEndDate",scheduleEndDate); body.put("scheduleEndDate",scheduleEndDate);
} }
if(!memberId.equals("")){ if(!memberId.equals("")){
...@@ -283,7 +285,7 @@ public class ReserveTools extends XMBaseTest { ...@@ -283,7 +285,7 @@ public class ReserveTools extends XMBaseTest {
body.put("coachId",coachId); body.put("coachId",coachId);
} }
if (scheduleStartTime != null){ if (scheduleStartTime != null){
body.put("scheduleStartTime",scheduleStartTime); body.put("scheduleStartDate",scheduleStartTime);
body.put("scheduleEndDate",scheduleEndDate); body.put("scheduleEndDate",scheduleEndDate);
} }
if(!memberId.equals("")){ if(!memberId.equals("")){
...@@ -806,11 +808,14 @@ public class ReserveTools extends XMBaseTest { ...@@ -806,11 +808,14 @@ public class ReserveTools extends XMBaseTest {
jsonObject1.put("benefitId",benefitId1); jsonObject1.put("benefitId",benefitId1);
memberInfoList.add(jsonObject1); memberInfoList.add(jsonObject1);
JSONObject jsonObject2=new JSONObject(); if(!StringUtils.isEmpty(memberId2)&&!StringUtils.isEmpty(benefitId2) && null!=Integer.valueOf(planCheckTotalBalance2)){
jsonObject2.put("planCheckTotalBalance",planCheckTotalBalance2); JSONObject jsonObject2=new JSONObject();
jsonObject2.put("memberId",memberId2); jsonObject2.put("planCheckTotalBalance",planCheckTotalBalance2);
jsonObject2.put("benefitId",benefitId2); jsonObject2.put("memberId",memberId2);
memberInfoList.add(jsonObject2); jsonObject2.put("benefitId",benefitId2);
memberInfoList.add(jsonObject2);
}
jsonObject.put("memberInfoList",memberInfoList); jsonObject.put("memberInfoList",memberInfoList);
...@@ -823,5 +828,89 @@ public class ReserveTools extends XMBaseTest { ...@@ -823,5 +828,89 @@ public class ReserveTools extends XMBaseTest {
return response; return response;
} }
/**
* 获取批量代预约的上课日期
* @param courseId 课程ID
* @param coachId 教练ID
* @param startDate 日期范围的开始日期
* @param endDate 日期范围的结束日期
* @param leftCapacity 剩余可约人数,1V1 默认为1,不能操作修改
* @param minuteOffset 上课开始时间 小时为单位 ,比如19:30上课,那么minuteOffset=19.5*60=1170
* @param spanMinutes 课程的上课时长60
* @param weekdays 上课星期
*/
public void getPersonalBatchReserveTimeBlockList(String courseId, String coachId, String startDate,
String endDate,int leftCapacity,int minuteOffset,int spanMinutes, List<Integer> weekdays,String areaId){
dataApi.setApiModule(ApiModule.Polar_Reserve)
.setApiName("API_getPersonalBatchReserveTimeBlockList")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body=new JSONObject();
body.put("weekdays",weekdays);
body.put("courseId",courseId);
body.put("coachId",coachId);
body.put("startDate",startDate);
body.put("endDate",endDate);
body.put("leftCapacity",leftCapacity);
body.put("minuteOffset",minuteOffset);
body.put("spanMinutes",spanMinutes);
body.put("pageSize",12);
if(!StringUtils.isEmpty(areaId)){
body.put("areaId",areaId);
}
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs);
//check 断言在业务中check
}
/**
* 批量代预约私教课
* @param planCheckBalance
* @param memberId
* @param benefitId
* @param courseId
* @param coachId
* @param minuteOffset
* @param reserveDayInfoList
* @param reserveMemberNum
* @param spanMinutes
*/
public void batchReservePersonal(int planCheckBalance,String memberId,String benefitId,
String courseId,String coachId,int minuteOffset,List<JSONObject> reserveDayInfoList
,int reserveMemberNum,int spanMinutes,String areaId){
dataApi.setApiModule(ApiModule.Polar_Reserve)
.setApiName("API_batchReservePersonal")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body=new JSONObject();
body.put("planCheckBalance",planCheckBalance);
body.put("courseId",courseId);
body.put("coachId",coachId);
body.put("memberId",memberId);
body.put("benefitId",benefitId);
body.put("reserveDayInfoList",reserveDayInfoList);
body.put("minuteOffset",minuteOffset);
body.put("spanMinutes",spanMinutes);
body.put("reserveMemberNum",reserveMemberNum);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
if(!StringUtils.isEmpty(areaId)){
body.put("areaId",areaId);
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs);
//check 断言在业务中check
}
} }
...@@ -92,7 +92,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -92,7 +92,7 @@ public class TestReservePerson extends BaseTestImpl {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 第二步:查询存量的学员,如果没有则新建 // 第二步:查询存量的学员,如果没有则新建
createMember("私教约课学员佳佳"); createMember("私教约课学员佳佳",courseId);
// 第三步:查询存量的私教教练,并将教练添加到课程中 // 第三步:查询存量的私教教练,并将教练添加到课程中
// 获取到员工 // 获取到员工
...@@ -247,7 +247,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -247,7 +247,7 @@ public class TestReservePerson extends BaseTestImpl {
// check 2:会员详情 - 预约记录已取消 // check 2:会员详情 - 预约记录已取消
JSONArray getPageByMember = reserveTools.getPageByMember(courseId,"RESERVE_CANCEL","","", timestamp,TimeUtils.getTodayEndTime(),memberId,"GROUP_CLASS"); JSONArray getPageByMember = reserveTools.getPageByMember(courseId,"RESERVE_CANCEL","","", timestamp,TimeUtils.getTodayEndTime(),memberId,"PERSONAL");
for(int i =0;i<getPageByMember.size();i++){ for(int i =0;i<getPageByMember.size();i++){
if (getPageByMember.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByMember.getJSONObject(i).getString("id").equals(reserveId)){
Assert.assertEquals(getPageByMember.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消"); Assert.assertEquals(getPageByMember.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消");
...@@ -255,7 +255,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -255,7 +255,7 @@ public class TestReservePerson extends BaseTestImpl {
} }
// check 3:预约记录列表中已取消 // check 3:预约记录列表中已取消
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",timestamp,TimeUtils.getTodayEndTime(),memberId,"GROUP_CLASS","");; JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",timestamp,TimeUtils.getTodayEndTime(),memberId,"PERSONAL","");;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){
Assert.assertEquals(getPageByStudio.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消"); Assert.assertEquals(getPageByStudio.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消");
...@@ -287,7 +287,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -287,7 +287,7 @@ public class TestReservePerson extends BaseTestImpl {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 第二步:查询存量的学员,如果没有则新建 // 第二步:查询存量的学员,如果没有则新建
member1 = createMember("1V3私教约课学员李萌"); member1 = createMember("1V3私教约课学员李萌",courseId);
// 第三步:查询存量的私教教练,并将教练添加到课程中 // 第三步:查询存量的私教教练,并将教练添加到课程中
// 获取到员工 // 获取到员工
...@@ -370,7 +370,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -370,7 +370,7 @@ public class TestReservePerson extends BaseTestImpl {
Assert.assertTrue(success,"约课后课次详情学员不在课次中"); Assert.assertTrue(success,"约课后课次详情学员不在课次中");
// 学员2进行预约 // 学员2进行预约
member2 = createMember("1V3私教约课学员2程晨"); member2 = createMember("1V3私教约课学员2程晨",courseId);
reserveId = reserveTools.addPersonalReserve("",courseId,coachedId,member2.getString(0),member2.getString(1),10,1,scheduleId,timestamp,true); reserveId = reserveTools.addPersonalReserve("",courseId,coachedId,member2.getString(0),member2.getString(1),10,1,scheduleId,timestamp,true);
member2.add(reserveId); member2.add(reserveId);
...@@ -473,7 +473,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -473,7 +473,7 @@ public class TestReservePerson extends BaseTestImpl {
// check 2:会员详情 - 预约记录已取消 // check 2:会员详情 - 预约记录已取消
JSONArray getPageByMember = reserveTools.getPageByMember(courseId,"RESERVE_CANCEL","","", timestamp,TimeUtils.getTodayEndTime(),member2.getString(0),"GROUP_CLASS"); JSONArray getPageByMember = reserveTools.getPageByMember(courseId,"RESERVE_CANCEL","","", timestamp,TimeUtils.getTodayEndTime(),member2.getString(0),"PERSONAL");
for(int i =0;i<getPageByMember.size();i++){ for(int i =0;i<getPageByMember.size();i++){
if (getPageByMember.getJSONObject(i).getString("id").equals(member2.getString(3))){ if (getPageByMember.getJSONObject(i).getString("id").equals(member2.getString(3))){
Assert.assertEquals(getPageByMember.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消"); Assert.assertEquals(getPageByMember.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消");
...@@ -481,7 +481,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -481,7 +481,7 @@ public class TestReservePerson extends BaseTestImpl {
} }
// check 3:预约记录列表中已取消 // check 3:预约记录列表中已取消
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",timestamp,TimeUtils.getTodayEndTime(),member2.getString(0),"GROUP_CLASS","");; JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",timestamp,TimeUtils.getTodayEndTime(),member2.getString(0),"PERSONAL","");;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(member2.getString(3))){ if (getPageByStudio.getJSONObject(i).getString("id").equals(member2.getString(3))){
Assert.assertEquals(getPageByStudio.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消"); Assert.assertEquals(getPageByStudio.getJSONObject(i).getString("reserveState"),"RESERVE_CANCEL","取消约课状态不是已取消");
...@@ -512,7 +512,7 @@ public class TestReservePerson extends BaseTestImpl { ...@@ -512,7 +512,7 @@ public class TestReservePerson extends BaseTestImpl {
* @param memberName * @param memberName
* @return: com.alibaba.fastjson.JSONArray * @return: com.alibaba.fastjson.JSONArray
**/ **/
public JSONArray createMember(String memberName){ public JSONArray createMember(String memberName,String courseId){
// 查询存量的学员没有则创建学员, // 查询存量的学员没有则创建学员,
if (tools.commonSearch(memberName,"NORMAL").getJSONArray("result").size()>0){ if (tools.commonSearch(memberName,"NORMAL").getJSONArray("result").size()>0){
memberId = tools.commonSearch(memberName,"NORMAL").getJSONArray("result").getJSONObject(0).getString("id"); memberId = tools.commonSearch(memberName,"NORMAL").getJSONArray("result").getJSONObject(0).getString("id");
......
...@@ -142,7 +142,7 @@ public class TestEditCurrentAndSubsequentCampSchedule extends SelectTargetTraini ...@@ -142,7 +142,7 @@ public class TestEditCurrentAndSubsequentCampSchedule extends SelectTargetTraini
} }
//后续检查点check //后续检查点check
Thread.sleep(1000); Thread.sleep(3000);
//1.查询排课日程:根据训练营查询,应该对应训练营可以查到2条数据,原日程和修改后生成的日程 //1.查询排课日程:根据训练营查询,应该对应训练营可以查到2条数据,原日程和修改后生成的日程
campScheduleTools.getCampRuleScheduleList(super.campId, super.courseId, ""); campScheduleTools.getCampRuleScheduleList(super.campId, super.courseId, "");
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size() == 2, "编辑当前及后续课次成功后,日程中没查询到2条对应数据"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size() == 2, "编辑当前及后续课次成功后,日程中没查询到2条对应数据");
...@@ -210,6 +210,7 @@ public class TestEditCurrentAndSubsequentCampSchedule extends SelectTargetTraini ...@@ -210,6 +210,7 @@ public class TestEditCurrentAndSubsequentCampSchedule extends SelectTargetTraini
//删除数据 //删除数据
this.getTrainingTools().deleteTraining(campId); this.getTrainingTools().deleteTraining(campId);
//训练营被删除后,对应的排课日程会被自动删除check //训练营被删除后,对应的排课日程会被自动删除check
Thread.sleep(2000);
campScheduleTools.getCampRuleScheduleList(campId, "", ""); campScheduleTools.getCampRuleScheduleList(campId, "", "");
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count()==0, "训练营被删除后,对应的排课日程会被自动删除,目前还有相关数据ruldId请检查"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count()==0, "训练营被删除后,对应的排课日程会被自动删除,目前还有相关数据ruldId请检查");
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(newRuldId)).count()==0, "训练营被删除后,对应的排课日程会被自动删除,目前还有相关数据newRuldId请检查"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(newRuldId)).count()==0, "训练营被删除后,对应的排课日程会被自动删除,目前还有相关数据newRuldId请检查");
......
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