Commit a15f098e by xuyamei

课程管理

parent 7ea5f7bf
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.polar.course
* @Author: xuyamei
* @CreateTime: 2024-04-29 20:21
* @Description: 课程工具类
* @Version: 1.0
*/
@Component("courseTools")
public class CourseTools extends XMBaseTest {
/**
* @description:创建课程
* @author: xuyamei
* @date: 2024/5/6 10:53
* @param courseName:课程名称
* @param categoryId:课程分类id
* @param sourceType:课程来源类型 1:品牌BRAND 2:场馆STUDIO
* @param sizeType:课程大小类型 1:1对1 ONE_TO_ONE 2:1v2 ONE_TO_MANY
* @param capacity:课次容量
* @param minCapacity:开课人数
* @return: 课程id
**/
public String createPersonalCourse(String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_personalCreate")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("courseName", courseName);
body.put("duration", 60); // 时长
body.put("difficulty", 3); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("sourceId", dataApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", sourceType);
body.put("brandId", dataApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("sizeType", sizeType); // 私教模式
body.put("allArea", false); // 场地
JSONArray coachIds = new JSONArray(); // 教练
coachIds.add(dataApi.getLoginInfo().getAdminId());
body.put("coachIds", coachIds);
if (sizeType.equals("ONE_TO_MANY")){ // 一对多需要传课次容量及开课人数
body.put("capacity", capacity); // 课容量
body.put("minCapacity", minCapacity); // 开课人数
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* @description:创建团课
* @author: xuyamei
* @date: 2024/5/7 10:18
* @param courseName :课程名称
* @param categoryId :课程类型
* @param sourceType:课程来源类型 1:品牌BRAND 2:场馆STUDIO
* @return: java.lang.String
**/
public String createGroupCourse(String courseName,String categoryId,String sourceType){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_createGroupCourse")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String introduction = "{\"items\":[{\"content\":\"花花世界的\",\"aspect\":\"\",\"type\":\"TEXT\"}]}";
JSONObject body= new JSONObject();
body.put("courseName", courseName);
body.put("duration", 60); // 时长
body.put("difficulty", 2); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId);
body.put("introduction", introduction);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("sourceId", dataApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", sourceType);
body.put("brandId", dataApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", dataApi.getLoginInfo().getStudioId()); // 场馆
body.put("calorie", 0); // 卡路里 传0对于后端是未设置
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* @description:获取存量的课程id,没有则新建
* @author: xuyamei
* @date: 2024/5/7 10:11
* @param courseType :课程类型 PERSONAL私教;GROUP团课
* @param courseName:课程名称
* @param categoryId: 课程分类id
* @param sourceType:课程来源类型 1:品牌BRAND 2:场馆STUDIO
* @param sizeType:课程大小类型 1:1对1 ONE_TO_ONE 2:1v2 ONE_TO_MANY (团课无需传)
* @param capacity: 课次容量(团课无需传)
* @param minCapacity:开课人数(团课无需传)
* @return: 返回课程id和姓名数组
**/
public JSONArray getPersonalOrGroupCourseId(String courseType,String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity) {
JSONObject result = new JSONObject();
JSONArray getNameAndId = new JSONArray();
// 查询存量的课程
if (courseType.equals("GROUP")) { // 查询的是团课
result = getGroupClassPage("", 0, courseName, "");
String total = result.getString("total");
if (Integer.parseInt(total) > 0) {
result = getGroupClassPage("", 0, courseName, "").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(courseName);
}
} else if (courseType.equals("PERSONAL")) { // 查询的是私教课
result = getPersonalPage("", 0, courseName, "", "", "");
String total = result.getString("total");
if (Integer.parseInt(total) > 0) {
result = getPersonalPage("", 0, courseName, "", sizeType, "").getJSONArray("records").getJSONObject(0);
String courseId = result.getString("brandCourseId");
getNameAndId.add(courseId);
getNameAndId.add(result.getString("courseName"));
} else {
getNameAndId.add(createPersonalCourse(courseName, categoryId, sourceType, sizeType, capacity, minCapacity));
getNameAndId.add(courseName);
}
}
return getNameAndId;
}
/**
* @description: 编辑课程状态
* @author: xuyamei
* @date: 2024/5/6 15:24
* @param courseId:课程id
* @param courseState:课程状态 启用ON, 停用OFF, 删除DELETE
* @param checkOnly:是否只校验:true只做校验操作,false做修改操作
* @return: 返回code,如果success 则允许删除
**/
public String modifyCourseStatus(String courseId,String courseState,boolean checkOnly){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_modifyCourseStatus")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("brandCourseId", courseId);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId()); // 场馆
body.put("courseState",courseState);
body.put("checkOnly",checkOnly); // 是否只校验
body.put("brandId", dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getString("resultCode");
}
/**
* @description:获取课次详情
* @author: xuyamei
* @date: 2024/5/6 16:19
* @param courseId:课程id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getCourseDetail(String courseId){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_getCourseDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("brandCourseId", courseId);
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(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:团课列表
* @author: xuyamei
* @date: 2024/5/6 16:41
* @param courseState :课程状态 ON启用;OFF停用
* @param current:页码
* @param courseNameLike:课程名称
* @param categoryId:课程分类id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getGroupClassPage(String courseState,int current,String courseNameLike,String categoryId){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_getGroupClassPage")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("current", current);
body.put("size", 20);
if (!courseState.equals("")){
body.put("courseState",courseState); // 状态
}
body.put("courseNameLike",courseNameLike);
if (!categoryId.equals("")){
JSONArray categoryIds = new JSONArray();
categoryIds.add(categoryId);
body.put("categoryIds",categoryIds);
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:获取私教课列表
* @author: xuyamei
* @date: 2024/5/6 16:59
* @param courseState:课程状态
* @param current:页码 第一页从0开始
* @param courseNameLike:课程名称
* @param categoryId:课程分类id
* @param sizeType:私教模式 {"1对1":ONE_TO_ONE;"1对多":ONE_TO_MANY;}
* @param coachId:教练id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getPersonalPage(String courseState,int current,String courseNameLike,String categoryId,String sizeType,String coachId){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_getPersonalPage")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("current", current);
body.put("size", 20);
if (!courseState.equals("")){
body.put("courseState",courseState); // 状态
}
body.put("courseNameLike",courseNameLike);
if (!categoryId.equals("")){
JSONArray categoryIds = new JSONArray();
categoryIds.add(categoryId);
body.put("categoryIds",categoryIds);
}
if (!sizeType.equals("")){
body.put("sizeType",sizeType);
}
if(!coachId.equals("")){
body.put("coachId",coachId);
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:校验场馆课程名称是否重复
* @author: xuyamei
* @date: 2024/5/6 18:17
* @param courseName :课程名称
* @return: boolean:返回false表示没有重复
**/
public boolean checkCourseNameDup(String courseName){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_checkCourseNameDup")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("courseName",courseName);
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getBoolean("result");
}
}
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-05-06 18:19
* @Description: 校验课程名称重复
* @Version: 1.0
*/
public class TestCheckCourseNameDup extends BaseTestImpl {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Course,"API_checkCourseNameDup", LoginAccount.GYM_PROD, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider()
public Object[][] data(){
return new Object[][]{
{"1对多名称是否重复校验哈哈哈哈哈哈哈",false,"校验名称重复不存在但返回了true"},
{"课程",true,"校验名称重复存在但返回了false"}
};
}
@Test(dataProvider = "data")
public void testCheckCourseNameDup(String name,boolean isDup,String msg) {
// 为了校验存在的课程名称返回的是否正确
if(isDup){
// 获取课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
JSONArray arr = courseTools.getPersonalOrGroupCourseId("GROUP",name,categoryId,"STUDIO","",2,1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
name = arr.getString(1);
}
Assert.assertEquals(courseTools.checkCourseNameDup(name),isDup,msg);
}
}
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-05-07 17:06
* @Description: 创建团课
* @Version: 1.0
*/
public class TestCreateGroupCourse extends BaseTestImpl {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
private String courseId;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Course, "API_createGroupCourse", LoginAccount.GYM_PROD, Terminal.B, "xym");
super.beforeTest();
}
@Test
public void testCreateGroupCourse() {
// 查询存量的课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
String courseName = "瑜伽团课" + TimeUtils.getCurrentTime();
Random random = new Random();
int duration = random.nextInt(60)+10; // 时长
int difficulty = random.nextInt(5)+1; // 难度
int calorie = random.nextInt(100)+100;
String introduction = "{\"items\":[{\"content\":\"花花世界的\",\"aspect\":\"\",\"type\":\"TEXT\"}]}";
JSONObject body= new JSONObject();
body.put("courseName", courseName);
body.put("duration", duration); // 时长
body.put("difficulty", difficulty); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId);
body.put("introduction", introduction);
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("sourceId", xmAppApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", "STUDIO");
body.put("brandId", xmAppApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", xmAppApi.getLoginInfo().getStudioId()); // 场馆
body.put("calorie", calorie);
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
// 获取课程id
courseId = xmAppApi.getBodyInJSON().getString("result");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// check 1:列表是否有该团课数据
JSONObject coursePage = courseTools.getGroupClassPage("ON",0,courseName,categoryId);
String total = coursePage.getString("total");
Assert.assertEquals(total,"1","新建之后团课列表没有找到相关数据");
// check 2:团课详情内容是否与新建一致
String[] keys = {"courseName","duration","difficulty","color","coverId","timeUnit","categoryId","sourceId","sourceType","brandId","calorie"};
String[] values = {courseName,String.valueOf(duration),String.valueOf(difficulty),"#AACF53","1772108160765263873","MINUTE",categoryId,xmAppApi.getLoginInfo().getStudioId(),"STUDIO",xmAppApi.getLoginInfo().getBrandId(),String.valueOf(calorie)};
JSONObject courseDetail = courseTools.getCourseDetail(courseId);
for (int i = 0; i < keys.length; i++) {
String result = values[i];
Assert.assertEquals(courseDetail.getString(keys[i]),result,"新建之后课程详情与新建内容不一致");
}
}
@Test(description = "清除增量数据",priority = 1)
public void del(){
// 删除课程数据
courseTools.modifyCourseStatus(courseId,"DELETE",false);
}
}
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-04-23 14:15
* @Description: 创建私教课程
* @Version: 1.0
*/
public class TestCreatePersonalCourse extends BaseTestImpl {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
private JSONArray courseIds = new JSONArray();
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Course, "API_personalCreate", LoginAccount.GYM_PROD, Terminal.B, "xym");
super.beforeTest();
}
@DataProvider()
public Object[][] data(){
return new Object[][]{
{"1对多","ONE_TO_MANY"}, // 1对多
{"1对1","ONE_TO_ONE"}, // 1对1
};
}
@Test(dataProvider = "data")
public void testCreatePersonalCourse(String name,String sizeType) {
// 获取课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("私教课分类"+ TimeUtils.getCurrentTime());
// 新建课程参数
JSONObject body = new JSONObject();
String courseName = name + "私教课程"+ TimeUtils.getCurrentTime();
body.put("courseName", courseName);
body.put("duration", 60); // 时长
body.put("difficulty", 3); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId); // 课程分类id
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("sourceId", xmAppApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", "STUDIO"); // 来源类型:场馆、品牌
body.put("brandId", xmAppApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("sizeType", sizeType); // 私教模式
body.put("allArea", false); // 场地
JSONArray coachIds = new JSONArray();
coachIds.add(xmAppApi.getLoginInfo().getAdminId());
body.put("coachIds", coachIds);
if (sizeType.equals("ONE_TO_MANY")){
body.put("capacity", 2); // 课容量
body.put("minCapacity", 1); // 开课人数
}
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
String courseId = xmAppApi.getBodyInJSON().getString("result");
courseIds.add(courseId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// check 1:查询私教课程列表
String total = courseTools.getPersonalPage("ON",0,courseName,categoryId,sizeType,"").getString("total");
Assert.assertEquals(total,"1","新建之后私教列表没有找到相关数据");
// check 2: 查看课程详情是否与新建内容一致
JSONObject courseDetail = courseTools.getCourseDetail(courseId);
String[] keys = {"courseName","duration","difficulty","color","coverId","timeUnit","categoryId","sourceId","sourceType","brandId","sizeType","allArea","capacity","minCapacity"};
String[] values = {courseName,"60","3","#AACF53","1772108160765263873","MINUTE",categoryId,xmAppApi.getLoginInfo().getStudioId(),"STUDIO",xmAppApi.getLoginInfo().getBrandId(),sizeType,"false","2","1"};
for (int i = 0; i < keys.length; i++) {
String result = values[i];
// 1对1的容量为1
if (sizeType.equals("ONE_TO_ONE") && keys[i].equals("capacity")){
result = "1";
}
Assert.assertEquals(courseDetail.getString(keys[i]),result,"新建之后课程详情与新建内容不一致");
}
}
@Test(description = "清除增量数据",priority = 1)
public void del(){
// 删除课程数据
for (int i = 0; i < courseIds.size(); i++){
courseTools.modifyCourseStatus(courseIds.getString(i),"DELETE",false);
}
}
}
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
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;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-04-25 11:43
* @Description: 创建特定日期可约
* @Version: 1.0
*/
public class TestCreateSpecialDate extends BaseTestImpl {
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin, "API_createSpecialDate", LoginAccount.GYM_PROD, Terminal.B, "xym");
super.beforeTest();
}
@Test
public void testCreateSpecialDate() {
JSONObject body = new JSONObject();
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("coachId", "1762382404818898946");
// 特定时间
JSONObject specialTimeInfoRequest = new JSONObject();
specialTimeInfoRequest.put("dutyType", "OFF_DUTY");
JSONArray specialTimeInfoRequestArray = new JSONArray();
specialTimeInfoRequestArray.add(TimeUtils.getBeforeDayDate(3));
specialTimeInfoRequest.put("selectedDates", specialTimeInfoRequestArray);
body.put("specialTimeInfoRequest", specialTimeInfoRequest);
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-05-07 17:36
* @Description: 编辑团课
* @Version: 1.0
*/
public class TestEditGroupCourse extends BaseTestImpl {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Course, "API_editGroupCourse", LoginAccount.GYM_PROD, Terminal.B, "xym");
super.beforeTest();
}
@Test
public void testEditGroupCourse() {
String categoryId = courseCategoryTools.getCourseCategoryPage("");
String courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "存量瑜伽团课课程", categoryId, "STUDIO", "", 2, 1).getString(0);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
Random random = new Random();
int duration = random.nextInt(60) + 10;
int difficulty = random.nextInt(5) + 1;
int calorie = random.nextInt(100) + 100;
String introduction = "{\"items\":[{\"content\":\"花花世界的\",\"aspect\":\"\",\"type\":\"TEXT\"}]}";
String courseName = "存量瑜伽团课课程" + TimeUtils.getCurrentTime();
JSONObject body = new JSONObject();
body.put("courseName", courseName);
body.put("duration", duration); // 时长
body.put("difficulty", difficulty); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId);
body.put("introduction", introduction);
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("sourceId", xmAppApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", "STUDIO");
body.put("studioId", xmAppApi.getLoginInfo().getStudioId()); // 场馆
body.put("calorie", calorie); // 卡路里
body.put("brandCourseId", courseId);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
String[] keys = {"courseName", "duration", "difficulty", "color", "coverId", "timeUnit", "categoryId", "sourceId", "sourceType", "brandId", "calorie"};
String[] values = {courseName, String.valueOf(duration), String.valueOf(difficulty), "#AACF53", "1772108160765263873", "MINUTE", categoryId, xmAppApi.getLoginInfo().getStudioId(), "STUDIO", xmAppApi.getLoginInfo().getBrandId(), String.valueOf(calorie)};
// 校验内容与编辑的是否一致
JSONObject courseDetail = courseTools.getCourseDetail(courseId);
for (int i = 0; i < keys.length; i++) {
String result = values[i];
Assert.assertEquals(courseDetail.getString(keys[i]), result, "编辑之后课程详情与编辑内容不一致");
}
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.course;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.course
* @Author: xuyamei
* @CreateTime: 2024-05-07 14:36
* @Description: 编辑私教课
* @Version: 1.0
*/
public class TestEditPersonalCourse extends BaseTestImpl {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Course, "API_editPersonalCourse", LoginAccount.GYM_PROD, Terminal.B, "xym");
super.beforeTest();
}
@Test
public void testEditPersonalCourse() {
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
// 查询存量的课程用于编辑
JSONArray courseIdArray = courseTools.getPersonalOrGroupCourseId("PERSONAL", "存量瑜伽课程", categoryId, "STUDIO", "ONE_TO_MANY", 2, 1);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
String courseId = courseIdArray.getString(0);
Random random = new Random();
JSONObject courseDetail = courseTools.getCourseDetail(courseId);
int duration = random.nextInt(60)+10;
int difficulty = random.nextInt(5)+1;
int capacity = random.nextInt(10)+1;
String courseName = "存量瑜伽课程"+ TimeUtils.getCurrentTime();
JSONObject body = new JSONObject();
body.put("categoryId", courseDetail.getString("categoryId"));
body.put("courseName", courseName);
body.put("duration", duration); // 时长
body.put("difficulty", difficulty); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("sourceId", xmAppApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", "STUDIO"); // 来源类型:场馆、品牌
body.put("brandId", xmAppApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("sizeType", "ONE_TO_MANY"); // 私教模式
body.put("allArea", false); // 场地
JSONArray coachIds = new JSONArray();
coachIds.add(xmAppApi.getLoginInfo().getAdminId());
body.put("coachIds", coachIds);
body.put("capacity", capacity); // 课容量
body.put("minCapacity", 1); // 开课人数
body.put("brandCourseId", courseId);
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
String[] keys = {"courseName","duration","difficulty","color","coverId","timeUnit","categoryId","sourceId","sourceType","brandId","sizeType","allArea","capacity","minCapacity"};
String[] values = {courseName,String.valueOf(duration),String.valueOf(difficulty),"#AACF53","1772108160765263873","MINUTE",categoryId,xmAppApi.getLoginInfo().getStudioId(),"STUDIO",xmAppApi.getLoginInfo().getBrandId(),"ONE_TO_MANY","false",String.valueOf(capacity),"1"};
// 校验内容与编辑的是否一致
courseDetail = courseTools.getCourseDetail(courseId);
for (int i = 0; i < keys.length; i++) {
String result = values[i];
Assert.assertEquals(courseDetail.getString(keys[i]),result,"编辑之后课程详情与编辑内容不一致");
}
}
}
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