Commit d0ff59be by xuyamei

1、增加配置

2、更换账号
parent f3d2da9f
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="约课case"> <!-- 起一个好听且唯一的名字-->
<test name="约课模块测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.lunar.reserve.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener class-name="com.xiaomai.client.RetryListener" />
<listener class-name="com.xiaomai.client.TestListener" />
<listener class-name="com.xiaomai.client.ExtentTestNGIReporterListener"/>
</listeners>
</suite>
\ No newline at end of file
package com.xiaomai.cases.lunar.reserve;
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.XMBaseTest;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 16:15
* @Description: 预约接口
* @Version: 1.0
*/
@Component("reserveCTools")
public class ReserveCTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_Reserve)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @description:查询课表
* @author: xuyamei
* @date: 2024/6/25 16:34
* @param memberId
* @param scheduleStartTime
* @param scheduleEndTime
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONArray memberTimetable(String memberId,Long scheduleStartTime,Long scheduleEndTime){
setUP("API_memberTimetable");
JSONObject body = new JSONObject();
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("startDate", scheduleStartTime);
body.put("endDate",scheduleEndTime);
body.put("courseChooseEnum","ALL");
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("timetableGroups").getJSONObject(0).getJSONArray("timetableList");
}
public String memberReserveAdd(String areaId,String chiefCoachId,String benefitId,String assistantCoachId,String memberId,int reserveMemberNum,String scheduleId,long scheduleStartTime,boolean success,DataUserInfo...dataUserInfos){
setUP("API_memberReserve_add",dataUserInfos);
JSONObject body = new JSONObject();
JSONArray areaIds = new JSONArray(); // 场地,私教约课会用到
if (!areaId.equals("")){
areaIds.add(areaId);
}
body.put("areaIds",areaIds);
JSONArray coachIds = new JSONArray(); // 助教Ids
if (!assistantCoachId.equals("")){
coachIds.add(assistantCoachId);
}
body.put("assistantCoachIds",coachIds);
body.put("benefitId",benefitId); //会员卡权益Id
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("chiefCoachId", chiefCoachId); // 主教id
body.put("memberId", memberId); // 会员id
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("planCheckBalance", 1); // 计划扣除额度
body.put("reserveMemberNum", reserveMemberNum); // 预约人数
body.put("scheduleId", scheduleId); // 课次id
body.put("scheduleStartTime", scheduleStartTime); // 课次id
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
if (success){
return dataApi.getBodyInJSON().getJSONObject("result").getString("reserveId");
}
return dataApi.getBodyInJSON().toString();
}
/**
* @description:查询会员可用于约课的会员卡
* @author: xuyamei
* @date: 2024/6/23 12:38
* @param courseId:课程id
* @param courseType:课程类型 GROUP_CLASS
* @param accountType:账户类型 MEMBER
* @param memberId 会员id
* @param reserveDate:约课时间
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray listUserReservableBenefit(String courseId,String courseType,String accountType,String memberId,long reserveDate){
setUP("API_listUserReservableBenefit");
JSONObject jsonObject = new JSONObject();
jsonObject.put("courseId", courseId);
jsonObject.put("courseType", courseType);
jsonObject.put("accountType", accountType);
jsonObject.put("memberId", memberId);
jsonObject.put("reserveDate", reserveDate);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONArray("result");
}
/**
* @description:小程序查询课次详情
* @author: xuyamei
* @date: 2024/6/25 18:23
* @param scheduleId
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getMemberScheduleItemDetail(String scheduleId,String memberId){
setUP("API_getMemberScheduleItemDetail");
JSONObject jsonObject = new JSONObject();
jsonObject.put("scheduleId", scheduleId);
jsonObject.put("memberId", memberId);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:小程序查询预约记录列表
* @author: xuyamei
* @date: 2024/6/25 18:29
* @param signInStateSet :预约状态 UN_SIGNED:已预约未签到 、QUEUE_PROCESS:排队中 、 "SIGNED":签到、 "LEAVE":请假 、取消预约 "QUEUE_CANCEL":排队取消、RESERVE_CANCEL:预约取消
* @param signState:签到状态
* @param scheduleStartDate :课次开始时间
* @param scheduleEndDate:课次结束时间
* @param memberId :会员id
* @param courseType :课程类型 GROUP_CLASS:团课、PERSONAL:私教、TRAINING_CAMP:训练营
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray getPageByMember(String signInStateSet,String signState,Long scheduleStartDate,Long scheduleEndDate,String memberId,String courseType){
setUP("API_getPageByMember");
JSONObject body = new JSONObject();
body.put("current",0);
body.put("size",20);
// 这里根据预约状态,则signInStateSet传值(SIGNED、LEAVE、UN_SIGNED),否则传reserveStateSet
if (!signInStateSet.equals("") && signInStateSet.equals("SIGNED") || signInStateSet.equals("LEAVE") || signInStateSet.equals("UN_SIGNED")){
JSONArray signInStateSetArr = new JSONArray();
signInStateSetArr.add(signInStateSet);
body.put("signInStateSet",signInStateSetArr);
}else {
JSONArray reserveStateSet = new JSONArray();
reserveStateSet.add(signInStateSet);
body.put("reserveStateSet",reserveStateSet);
}
if (!signState.equals("")){
body.put("signInState",signState);
}
if (scheduleStartDate != null){
body.put("scheduleStartDate",scheduleStartDate);
body.put("scheduleEndDate",scheduleEndDate);
}
body.put("memberId",memberId);
body.put("courseType",courseType);
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("records");
}
/**
* @description:小程序根据id获取预约记录详情
* @author: xuyamei
* @date: 2024/6/25 19:25
* @param reserveId 预约记录id
* @param dataUserInfos
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getDetailById(String reserveId,DataUserInfo...dataUserInfos) {
setUP("API_getDetailById");
JSONObject body = new JSONObject();
body.put("reserveId",reserveId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:小程序取消约课、排队
* @author: xuyamei
* @date: 2024/6/26 10:32
* @param reserveId 预约id
* @param memberId 会员id
* @param success 正常传true
* @return: void
**/
public void cancelMemberReserve(String reserveId,String memberId,boolean success) {
setUP("API_cancelMemberReserve");
JSONArray reserveIds = new JSONArray();
reserveIds.add(reserveId);
JSONObject body = new JSONObject();
body.put("reserveIds",reserveIds);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
}
/**
* @description:小程序排队
* @author: xuyamei
* @date: 2024/6/26 11:20
* @param areaId :场地
* @param chiefCoachId 教练id
* @param memberId 会员id
* @param benefitId 权益id
* @param assistantCoachId 助教id
* @param reserveMemberNum 预约人数
* @param scheduleId 课次id
* @param scheduleStartTime 上课开始时间
* @param success 正常传true
* @return: java.lang.String
**/
public String addToQueue(String areaId,String chiefCoachId,String memberId,String benefitId,String assistantCoachId,int reserveMemberNum,String scheduleId,long scheduleStartTime,boolean success){
setUP("API_addToQueue");
JSONObject body = new JSONObject();
JSONArray areaIds = new JSONArray(); // 场地,私教约课会用到
if (!areaId.equals("")){
areaIds.add(areaId);
}
body.put("areaIds",areaIds);
JSONArray coachIds = new JSONArray(); // 助教Ids
if (!assistantCoachId.equals("")){
coachIds.add(assistantCoachId);
}
body.put("assistantCoachIds",coachIds);
body.put("benefitId",benefitId); //会员卡权益Id
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("chiefCoachId", chiefCoachId); // 主教id
body.put("memberId", memberId); // 会员id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("planCheckBalance", 1); // 计划扣除额度
body.put("reserveMemberNum", reserveMemberNum); // 预约人数
body.put("scheduleId", scheduleId); // 课次id
body.put("scheduleStartTime", scheduleStartTime); // 课次id
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
if (success){
return dataApi.getBodyInJSON().getJSONObject("result").getString("reserveId");
}
return dataApi.getBodyInJSON().toString();
}
}
package com.xiaomai.cases.lunar.reserve;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.cases.polar.reserve.ReserveTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.cases.polar.setting.rules.RuleTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
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.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 16:57
* @Description: 预约
* @Version: 1.0
*/
public class TestAddMemberReserve extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "reserveCTools")
ReserveCTools reserveCTools;
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "reserveTools")
ReserveTools reserveTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "ruleTools")
RuleTools ruleTools;
OrderTools orderTools = new OrderTools();
CardTools cardTools = new CardTools();
String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
//获取今天结束日期的时间戳
String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(1);
Long scheduleEndTime = TimeUtils.getTodayEndTime(1);
private String ruldId;
private JSONArray memberInfo = new JSONArray();
private String scheduleId;
private Long startTime;
private String courseId;
private String memberId;
private String chiefCoachId;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Reserve,"API_memberTimetable", LoginAccount.XYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test(description = "小程序预约")
public void testAddMemberReserve() {
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 预约规则开启允许排队
JSONObject getRules = ruleTools.getGroupBookingRules(); // 获取场馆团课预约规则
String id = getRules.getString("id"); // 获取规则id
Random random = new Random();
int bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,false,random.nextInt(100)+10,random.nextInt(5)+1,false,random.nextInt(100)+10,"minutes",false,random.nextInt(100)+10,"minutes");
memberId = userTools.getMemberInfo().getString("memberId");
// 创建团课课次
createGroupSchedule();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 获取会员权益
memberInfo = getMemberBenefit(memberId);
// 课次详情获取上课老师和
JSONObject memberScheduleItemDetail = reserveCTools.getMemberScheduleItemDetail(scheduleId, memberId);
startTime = memberScheduleItemDetail.getLongValue("startTime");
chiefCoachId = memberScheduleItemDetail.getString("chiefCoachId");
String reserveId = reserveCTools.memberReserveAdd("",chiefCoachId,memberInfo.getString(1),"",memberInfo.getString(0),1,scheduleId,startTime,true);
memberInfo.add(reserveId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult("SUCCESS","UN_SIGNED","约课");
}
@Test(priority = 1,description = "学员已经在课次中,无需重复添加")
public void testAddMemberReserve2(){
reserveCTools.memberReserveAdd("",chiefCoachId,memberInfo.getString(1),"",memberInfo.getString(0),1,scheduleId,startTime,false);
String message = dataApi.getBodyInJSON().getString("message");
Assert.assertEquals(message,"预约失败,无需重复添加");
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{true,"操作成功"},
{false,"已取消预约,无需重复取消"}
};
}
@Test(dataProvider = "dataProvider",priority = 2)
public void testCancelMemberReserve(boolean cancel,String message){
reserveCTools.cancelMemberReserve(memberInfo.getString(2),memberInfo.getString(0),cancel);
Assert.assertEquals(dataApi.getBodyInJSON().getString("message").contains(message),true);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (cancel){
checkResult("RESERVE_CANCEL","RESERVE_CANCEL","取消约课");
}
}
@Test(priority = 3)
public void del(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 删除排课数据
groupScheduleTools.delGroupRuleSchedule(ruldId,true,dataUserInfo);
// 删除课次
groupScheduleTools.delGroupScheduleItem(scheduleId,dataUserInfo);
}
// 创建团课课次
public void createGroupSchedule(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 查询存量的约课课程
// 查询存量的课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "C端约课瑜伽团课课程", categoryId, "STUDIO", "", 2, 1,dataUserInfo).getString(0);
// 创建排课
int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
Random random = new Random();
//1.1-创建排课日程
groupScheduleTools.createGroupRuleSchedule(courseId, dataApi.getLoginInfo().getAdminId(), todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), false, 1,minuteOffset[random.nextInt(20)],dataUserInfo);
//1.2-查询排课日程
JSONArray getGroupRuleScheduleList = groupScheduleTools.getGroupRuleScheduleList(courseId, dataApi.getLoginInfo().getAdminId(),dataUserInfo);
//统计查询到的目标日程数量
ruldId = XMJSONPath.readPath(getGroupRuleScheduleList.getJSONObject(0), "$.ruleId");
Long scheduleEndTime = TimeUtils.getTodayEndTime(1);
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 查询课次id
JSONArray memberTimetable = reserveCTools.memberTimetable(memberId,Long.valueOf(todayStartTimeTamp), scheduleEndTime);
for (int i = 0; i < memberTimetable.size(); i++){
if (memberTimetable.getJSONObject(i).getString("ruleId").equals(ruldId)){
scheduleId = memberTimetable.getJSONObject(i).getString("scheduleId");
break;
}
}
}
/**
* @description:买卡
* @author: xuyamei
* @date: 2024/6/24 19:42
* @param courseId 课程id
* @param memberId 会员id
* @return: void
**/
public void signOrder(String courseId,String memberId){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 查询存量的卡
JSONObject fetchPageOfMemberCard = cardTools.fetchPageOfMemberCard(courseId,dataUserInfo);
int total = Integer.parseInt(fetchPageOfMemberCard.getString("total"));
String cardId = "";
int quantity = 0;
float price = 0;
int validPeriod = 0;
if (total == 0) {
cardId = cardTools.memberCardCreate("约课使用会员卡"+ TimeUtils.getCurrentTime(),dataUserInfo).getString("result");
}
cardId = fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("id");
quantity = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("balance"));
price = Float.parseFloat(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("price"));
validPeriod = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("validPeriod"));
//获取签单要用的卡快照id
String latestSnapshotId = orderTools.fetchDetailById(cardId,dataApi.getLoginInfo().getBrandId(),dataApi.getLoginInfo().getStudioId(),dataApi.getLoginInfo().getAdminId(),dataUserInfo).getJSONObject("result").getString("latestSnapshotId");
//检查会员对该卡是否超出购买上限
boolean limitResult= orderTools.checkAllowPurchase("MEMBER_CARD",cardId,cardId,"1",dataApi.getLoginInfo().getBrandId(),dataApi.getLoginInfo().getStudioId(),dataApi.getLoginInfo().getAdminId(),dataUserInfo).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if( limitResult == true){
//创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1",dataUserInfo);
}
}
/**
* @description:查询会员是否购买会员卡,如果已购买则查看权益,如果没有则进行购买
* @author: xuyamei
* @date: 2024/6/24 19:43
* @param memberId:会员id
* @return:
**/
public JSONArray getMemberBenefit(String memberId){
// 查询是否有可用的会员卡,没有则购买
JSONArray listUserReservableBenefit = reserveCTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, Long.parseLong(todayStartTimeTamp));
if (listUserReservableBenefit.size() == 0) {
// 购买适用的会员卡
signOrder(courseId, memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
listUserReservableBenefit = reserveCTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, Long.parseLong(todayStartTimeTamp));
}
// 查询权益
String benefitId = listUserReservableBenefit.getJSONObject(0).getString("benefitId");
JSONArray members = new JSONArray();
members.add(memberId);
members.add(benefitId);
return members;
}
public void checkResult(String reserveState,String signInState,String mes){
// check 1:查询小程序课次详情,学员是预约状态
JSONObject memberScheduleItemDetail = reserveCTools.getMemberScheduleItemDetail(scheduleId,memberId);
String[] result = new String[] {"memberId","scheduleId","reserveId","reserveState","benefitId","courseType"};
String[] resultData = new String[] {memberInfo.getString(0),scheduleId,memberInfo.getString(2),reserveState,memberInfo.getString(1),"GROUP_CLASS"};
if (reserveState.equals("SUCCESS")){
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString("memberOperation"),"TO_CANCEL_RESERVE",mes+"产生的数据与实际数据不符合");
for(int j = 0;j<4;j++){
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString(result[j]),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
}else if (reserveState.equals("RESERVE_CANCEL")){
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString("memberOperation"),"TO_RESERVE",mes+"产生的数据与实际数据不符合");
}
// check 2:查询小程序预约记录
JSONArray getPageByMember = reserveCTools.getPageByMember(signInState,"",startTime,scheduleEndTime,memberId,"GROUP_CLASS");
boolean success = false;
for(int i =0;i<getPageByMember.size();i++){
if (getPageByMember.getJSONObject(i).getString("id").equals(memberInfo.getString(2))){
success = true;
for(int j = 0;j<result.length;j++){
String resultString = result[j].equals("reserveId")?"id":result[j];
Assert.assertEquals(getPageByMember.getJSONObject(i).getString(resultString),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
Assert.assertEquals(getPageByMember.getJSONObject(i).getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
}
}
Assert.assertTrue(success,mes+"预约记录没有查询到相关信息");
// check 3:查询小程序预约详情
JSONObject getDetailById = reserveCTools.getDetailById(memberInfo.getString(2));
for(int j = 0;j<result.length;j++){
String resultString = result[j].equals("reserveId")?"id":result[j];
Assert.assertEquals(getDetailById.getString(resultString),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
Assert.assertEquals(getDetailById.getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
// check 4:查询B端预约详情
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
result = new String[] {"id","benefitId","reserveMemberNum","courseId","courseType","scheduleStartTime","reserveState","scheduleId"};
resultData = new String[] {memberInfo.getString(2),memberInfo.getString(1),"1",courseId,"GROUP_CLASS",startTime+"",reserveState,scheduleId};
getDetailById = reserveTools.getDetailById(memberInfo.getString(2),dataUserInfo);
for(int j = 0;j<result.length;j++){
Assert.assertEquals(getDetailById.getString(result[j]),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
Assert.assertEquals(getDetailById.getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
}
}
package com.xiaomai.cases.lunar.reserve;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.cases.polar.reserve.ReserveTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.cases.polar.setting.rules.RuleTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
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.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-26 11:16
* @Description: 小程序排队
* @Version: 1.0
*/
public class TestAddToQueue extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "reserveCTools")
ReserveCTools reserveCTools;
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "reserveTools")
ReserveTools reserveTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "ruleTools")
RuleTools ruleTools;
OrderTools orderTools = new OrderTools();
CardTools cardTools = new CardTools();
Tools tools = new Tools();
String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
//获取今天结束日期的时间戳
String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(1);
Long scheduleEndTime = TimeUtils.getTodayEndTime(1);
private String ruldId;
private JSONArray memberInfo = new JSONArray();
private JSONArray memberReserveInfo = new JSONArray(); // 约课学员
private String scheduleId;
private Long startTime;
private String courseId;
private String memberId;
private String chiefCoachId;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Reserve,"API_addToQueue", LoginAccount.XYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test
public void testAddToQueue() {
memberId = userTools.getMemberInfo().getString("memberId");
// 创建团课课次
createGroupSchedule();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 获取会员权益
memberInfo = getMemberBenefit(memberId,"");
// 获取约课学员A
memberReserveInfo = getMemberBenefit("","约课学员朱莉");
// 课次详情获取上课老师和上课时间
JSONObject memberScheduleItemDetail = reserveCTools.getMemberScheduleItemDetail(scheduleId, memberId);
startTime = memberScheduleItemDetail.getLongValue("startTime");
chiefCoachId = memberScheduleItemDetail.getString("chiefCoachId");
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// B端代预约
String reserveId = reserveTools.addReserve("","",memberReserveInfo.getString(1),chiefCoachId,memberReserveInfo.getString(0),1,scheduleId,startTime,true,dataUserInfo);
memberReserveInfo.add(reserveId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 修改课次容量
groupScheduleTools.editGroupSchedule(scheduleId,startTime,dataApi.getLoginInfo().getAdminId(),1,1,dataUserInfo);
// 预约规则开启允许排队
JSONObject getRules = ruleTools.getGroupBookingRules(); // 获取场馆团课预约规则
String id = getRules.getString("id"); // 获取规则id
Random random = new Random();
int bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,false,random.nextInt(100)+10,random.nextInt(5)+1,false,random.nextInt(100)+10,"minutes",false,random.nextInt(100)+10,"minutes");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
reserveId = reserveCTools.addToQueue("",chiefCoachId,memberInfo.getString(0),memberInfo.getString(1),"",1,scheduleId,startTime,true);
memberInfo.add(reserveId);
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult("QUEUE_PROCESS", "QUEUE_PROCESS","排队");
}
@DataProvider
public Object[][] data(){
return new Object[][]{
{"reserve","FULL_CAPACITY"},// 已经排队再次预约
{"queue","排队失败,无需重复添加"}, // 已排队再次排队
{"cancel","排队取消成功"},
{"notQueue","排队失败,课次未开放预约"},
{"queuing","排队成功"}
};
}
@Test(priority = 2,dataProvider = "data")
public void testAddToQueue2(String type,String msg) {
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
switch(type) {
case "reserve":
reserveCTools.memberReserveAdd("",chiefCoachId,memberInfo.getString(1),"",memberInfo.getString(0),1,scheduleId,startTime,true);
Assert.assertEquals(dataApi.getBodyInJSON().getJSONObject("result").getString("resultCode"),msg,"排队异常提示信息不符合");
break;
case "queue":
reserveCTools.addToQueue("",chiefCoachId,memberInfo.getString(0),memberInfo.getString(1),"",1,scheduleId,startTime,false);
Assert.assertEquals(dataApi.getBodyInJSON().getString("message"),msg,"排队异常提示信息不符合");
break;
case "cancel":
// 取消排队
reserveCTools.cancelMemberReserve(memberInfo.getString(2),memberInfo.getString(0),true);
// 取消验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult("QUEUE_CANCEL", "QUEUE_CANCEL","取消排队");
break;
case "notQueue":
// 预约规则开启允许排队
JSONObject getRules = ruleTools.getGroupBookingRules(); // 获取场馆团课预约规则
String id = getRules.getString("id"); // 获取规则id
Random random = new Random();
int bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,true,random.nextInt(100)+10,1,false,random.nextInt(100)+10,"minutes",false,random.nextInt(100)+10,"minutes");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
reserveCTools.addToQueue("",chiefCoachId,memberInfo.getString(0),memberInfo.getString(1),"",1,scheduleId,startTime,false);
Assert.assertEquals(dataApi.getBodyInJSON().getString("message"),msg,"排队异常提示信息不符合");
break;
case "queuing":
// 预约规则开启允许排队
getRules = ruleTools.getGroupBookingRules(); // 获取场馆团课预约规则
id = getRules.getString("id"); // 获取规则id
random = new Random();
bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,false,random.nextInt(100)+10,random.nextInt(5)+1,false,random.nextInt(100)+10,"minutes",false,random.nextInt(100)+10,"minutes");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
String reserveId = reserveCTools.addToQueue("",chiefCoachId,memberInfo.getString(0),memberInfo.getString(1),"",1,scheduleId,startTime,true);
memberInfo.set(2,reserveId); //将原来的id替换成新的id
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 扩大课次人数上限容量
groupScheduleTools.editGroupSchedule(scheduleId,startTime,chiefCoachId,1,2,dataUserInfo);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// check 扩容后学员进入到课次
// 验证课次详情、预约记录、预约详情、B端预约详情内容
checkResult("SUCCESS","UN_SIGNED","排队进入课次");
}
}
@Test(priority = 3)
public void del(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 删除排课数据
groupScheduleTools.delGroupRuleSchedule(ruldId,true,dataUserInfo);
// 删除课次
groupScheduleTools.delGroupScheduleItem(scheduleId,dataUserInfo);
}
// 创建团课课次
public void createGroupSchedule(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 查询存量的约课课程
// 查询存量的课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "C端约课瑜伽团课课程", categoryId, "STUDIO", "", 2, 1,dataUserInfo).getString(0);
// 创建排课
int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
Random random = new Random();
//1.1-创建排课日程
groupScheduleTools.createGroupRuleSchedule(courseId, dataApi.getLoginInfo().getAdminId(), todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), false, 1,minuteOffset[random.nextInt(20)],dataUserInfo);
//1.2-查询排课日程
JSONArray getGroupRuleScheduleList = groupScheduleTools.getGroupRuleScheduleList(courseId, dataApi.getLoginInfo().getAdminId(),dataUserInfo);
//统计查询到的目标日程数量
ruldId = XMJSONPath.readPath(getGroupRuleScheduleList.getJSONObject(0), "$.ruleId");
Long scheduleEndTime = TimeUtils.getTodayEndTime(1);
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 查询课次id
JSONArray memberTimetable = reserveCTools.memberTimetable(memberId,Long.valueOf(todayStartTimeTamp), scheduleEndTime);
for (int i = 0; i < memberTimetable.size(); i++){
if (memberTimetable.getJSONObject(i).getString("ruleId").equals(ruldId)){
scheduleId = memberTimetable.getJSONObject(i).getString("scheduleId");
break;
}
}
}
/**
* @description:买卡
* @author: xuyamei
* @date: 2024/6/24 19:42
* @param courseId 课程id
* @param memberId 会员id
* @return: void
**/
public void signOrder(String courseId,String memberId){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
// 查询存量的卡
JSONObject fetchPageOfMemberCard = cardTools.fetchPageOfMemberCard(courseId,dataUserInfo);
int total = Integer.parseInt(fetchPageOfMemberCard.getString("total"));
String cardId = "";
int quantity = 0;
float price = 0;
int validPeriod = 0;
if (total == 0) {
cardId = cardTools.memberCardCreate("约课使用会员卡"+ TimeUtils.getCurrentTime(),dataUserInfo).getString("result");
}
cardId = fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("id");
quantity = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("balance"));
price = Float.parseFloat(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("price"));
validPeriod = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("validPeriod"));
//获取签单要用的卡快照id
String latestSnapshotId = orderTools.fetchDetailById(cardId,dataApi.getLoginInfo().getBrandId(),dataApi.getLoginInfo().getStudioId(),dataApi.getLoginInfo().getAdminId(),dataUserInfo).getJSONObject("result").getString("latestSnapshotId");
//检查会员对该卡是否超出购买上限
boolean limitResult= orderTools.checkAllowPurchase("MEMBER_CARD",cardId,cardId,"1",dataApi.getLoginInfo().getBrandId(),dataApi.getLoginInfo().getStudioId(),dataApi.getLoginInfo().getAdminId(),dataUserInfo).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if( limitResult == true){
//创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1",dataUserInfo);
}
}
/**
* @description:查询会员是否购买会员卡,如果已购买则查看权益,如果没有则进行购买
* @author: xuyamei
* @date: 2024/6/24 19:43
* @param memberId:会员id
* @return:
**/
public JSONArray getMemberBenefit(String memberId,String memberName){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
if (memberId.equals("")){
// 查询存量的学员没有则创建学员,// todo 先手动新建
if (tools.commonSearch(memberName,"NORMAL",dataUserInfo).getJSONArray("result").size()>0){
memberId = tools.commonSearch(memberName,"NORMAL",dataUserInfo).getJSONArray("result").getJSONObject(0).getString("id");
}else if (tools.commonSearch(memberName,"HISTORY",dataUserInfo).getJSONArray("result").size()>0){
memberId = tools.commonSearch(memberName,"HISTORY",dataUserInfo).getJSONArray("result").getJSONObject(0).getString("id");
}else{
memberId = tools.commonSearch(memberName,"POTENTIAL",dataUserInfo).getJSONArray("result").getJSONObject(0).getString("id");
}
}
// 查询是否有可用的会员卡,没有则购买
JSONArray listUserReservableBenefit = reserveCTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, Long.parseLong(todayStartTimeTamp));
if (listUserReservableBenefit.size() == 0) {
// 购买适用的会员卡
signOrder(courseId, memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
listUserReservableBenefit = reserveCTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, Long.parseLong(todayStartTimeTamp));
}
// 查询权益
String benefitId = listUserReservableBenefit.getJSONObject(0).getString("benefitId");
JSONArray members = new JSONArray();
members.add(memberId);
members.add(benefitId);
return members;
}
public void checkResult(String reserveState,String signInState,String mes){
// check 1:查询小程序课次详情,学员是预约状态
JSONObject memberScheduleItemDetail = reserveCTools.getMemberScheduleItemDetail(scheduleId,memberId);
String[] result = new String[] {"memberId","scheduleId","reserveId","reserveState","benefitId","courseType"};
String[] resultData = new String[] {memberInfo.getString(0),scheduleId,memberInfo.getString(2),reserveState,memberInfo.getString(1),"GROUP_CLASS"};
if (reserveState.equals("QUEUE_PROCESS") || reserveState.equals("RESERVE_CANCEL") ){
// 校验预约排队之后约课课次详情按钮展示
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString("memberOperation"),reserveState.equals("QUEUE_PROCESS")?"TO_CANCEL_QUEUING":"TO_CANCEL_RESERVE",mes+"产生的数据与实际数据不符合");
for(int j = 0;j<4;j++){
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString(result[j]),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
}else if (reserveState.equals("QUEUE_CANCEL")){
Assert.assertEquals(memberScheduleItemDetail.getJSONObject("memberScheduleInfoVO").getString("memberOperation"),"TO_QUEUING",mes+"产生的数据与实际数据不符合");
}
// check 2:查询小程序预约记录
JSONArray getPageByMember = reserveCTools.getPageByMember(signInState,"",startTime,scheduleEndTime,memberId,"GROUP_CLASS");
boolean success = false;
for(int i =0;i<getPageByMember.size();i++){
if (getPageByMember.getJSONObject(i).getString("id").equals(memberInfo.getString(2))){
success = true;
for(int j = 0;j<result.length;j++){
String resultString = result[j].equals("reserveId")?"id":result[j];
Assert.assertEquals(getPageByMember.getJSONObject(i).getString(resultString),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
Assert.assertEquals(getPageByMember.getJSONObject(i).getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
}
}
Assert.assertTrue(success,mes+"预约记录没有查询到相关信息");
// check 3:查询小程序预约详情
JSONObject getDetailById = reserveCTools.getDetailById(memberInfo.getString(2));
for(int j = 0;j<result.length;j++){
String resultString = result[j].equals("reserveId")?"id":result[j];
Assert.assertEquals(getDetailById.getString(resultString),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
if(reserveState.equals("QUEUE_PROCESS")){
// 除去正常的检查,看一下排在第几位
Assert.assertEquals(getDetailById.getString("queueSort"),"1","排队后排队名次应该是第一位");
}
Assert.assertEquals(getDetailById.getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
// check 4:查询B端预约详情
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
result = new String[] {"id","benefitId","reserveMemberNum","courseId","courseType","scheduleStartTime","reserveState","scheduleId"};
resultData = new String[] {memberInfo.getString(2),memberInfo.getString(1),"1",courseId,"GROUP_CLASS",startTime+"",reserveState,scheduleId};
getDetailById = reserveTools.getDetailById(memberInfo.getString(2),dataUserInfo);
for(int j = 0;j<result.length;j++){
Assert.assertEquals(getDetailById.getString(result[j]),resultData[j],mes+"产生的数据与实际数据不符合"+result[j]+":"+resultData[j]);
}
if(reserveState.equals("QUEUE_PROCESS")){
// 除去正常的检查,看一下排在第几位
Assert.assertEquals(getDetailById.getString("queueSort"),"1","排队后排队名次应该是第一位");
}
Assert.assertEquals(getDetailById.getString("memberId"),memberInfo.getString(0),"查询的"+mes+"数据不是同一个会员");
}
}
package com.xiaomai.cases.lunar.reserve;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.user.UserTools;
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;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 11:55
* @Description:
* @Version: 1.0
*/
public class TestMemberTimetable extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Reserve,"API_memberTimetable", LoginAccount.XYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test
public void testMemberTimetable() {
String memberId = userTools.getMemberInfo().getString("memberId");
JSONObject body = new JSONObject();
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("startDate", TimeUtils.getTodayTime());
body.put("endDate",TimeUtils.getTodayEndTime());
body.put("courseChooseEnum","ALL");
body.put("memberId",memberId);
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.lunar.user;
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.XMBaseTest;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve.user
* @Author: xuyamei
* @CreateTime: 2024-06-25 13:42
* @Description: TODO
* @Version: 1.0
*/
@Component("userTools")
public class UserTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_User)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @description: 获取会员信息
* @author: xuyamei
* @date: 2024/6/25 13:50
* @param userInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getMemberInfo(DataUserInfo... userInfo) {
setUP("API_getMemberInfo", userInfo);
JSONObject body = new JSONObject();
body.put("userId",dataApi.getLoginInfo().getUser());
body.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
}
......@@ -2,6 +2,7 @@ package com.xiaomai.cases.polar.course;
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;
......@@ -31,11 +32,11 @@ public class CourseTools extends XMBaseTest {
* @param minCapacity:开课人数
* @return: 课程id
**/
public String createPersonalCourse(String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity){
public String createPersonalCourse(String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_personalCreate")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(dataUserInfo);
JSONObject body= new JSONObject();
body.put("courseName", courseName);
......@@ -61,7 +62,7 @@ public class CourseTools extends XMBaseTest {
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
......@@ -73,11 +74,11 @@ public class CourseTools extends XMBaseTest {
* @param sourceType:课程来源类型 1:品牌BRAND 2:场馆STUDIO
* @return: java.lang.String
**/
public String createGroupCourse(String courseName,String categoryId,String sourceType){
public String createGroupCourse(String courseName,String categoryId,String sourceType,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_createGroupCourse")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(dataUserInfo);
String introduction = "{\"items\":[{\"content\":\"花花世界的\",\"aspect\":\"\",\"type\":\"TEXT\"}]}";
JSONObject body= new JSONObject();
body.put("courseName", courseName);
......@@ -95,7 +96,7 @@ public class CourseTools extends XMBaseTest {
body.put("studioId", dataApi.getLoginInfo().getStudioId()); // 场馆
body.put("calorie", 0); // 卡路里 传0对于后端是未设置
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
......@@ -112,25 +113,25 @@ public class CourseTools extends XMBaseTest {
* @param minCapacity:开课人数(团课无需传)
* @return: 返回课程id和姓名数组
**/
public JSONArray getPersonalOrGroupCourseId(String courseType,String courseName,String categoryId,String sourceType,String sizeType,int capacity,int minCapacity) {
public JSONArray getPersonalOrGroupCourseId(String courseType, String courseName, String categoryId, String sourceType, String sizeType, int capacity, int minCapacity, DataUserInfo...dataUserInfo) {
JSONObject result = new JSONObject();
JSONArray getNameAndId = new JSONArray();
// 查询存量的课程
if (courseType.equals("GROUP")) { // 查询的是团课
result = getGroupClassPage("", 0, courseName, "");
result = getGroupClassPage("", 0, courseName, "",dataUserInfo);
String total = result.getString("total");
if (Integer.parseInt(total) > 0) {
result = getGroupClassPage("", 0, courseName, "").getJSONArray("records").getJSONObject(0);
result = getGroupClassPage("", 0, courseName, "", dataUserInfo).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(createGroupCourse(courseName, categoryId, sourceType,dataUserInfo));
getNameAndId.add(courseName);
}
} else if (courseType.equals("PERSONAL")) { // 查询的是私教课
result = getPersonalPage("", 0, courseName, "", "", "");
result = getPersonalPage("", 0, courseName, "", "", "",dataUserInfo);
String total = result.getString("total");
if (Integer.parseInt(total) > 0) {
result = getPersonalPage("", 0, courseName, "", sizeType, "").getJSONArray("records").getJSONObject(0);
......@@ -138,7 +139,7 @@ public class CourseTools extends XMBaseTest {
getNameAndId.add(courseId);
getNameAndId.add(result.getString("courseName"));
} else {
getNameAndId.add(createPersonalCourse(courseName, categoryId, sourceType, sizeType, capacity, minCapacity));
getNameAndId.add(createPersonalCourse(courseName, categoryId, sourceType, sizeType, capacity, minCapacity,dataUserInfo));
getNameAndId.add(courseName);
}
}
......@@ -168,7 +169,7 @@ public class CourseTools extends XMBaseTest {
body.put("courseState",courseState);
body.put("checkOnly",checkOnly); // 是否只校验
body.put("brandId", dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getString("resultCode");
}
......@@ -191,7 +192,7 @@ public class CourseTools extends XMBaseTest {
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);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
......@@ -205,11 +206,11 @@ public class CourseTools extends XMBaseTest {
* @param categoryId:课程分类id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getGroupClassPage(String courseState,int current,String courseNameLike,String categoryId){
public JSONObject getGroupClassPage(String courseState,int current,String courseNameLike,String categoryId,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_getGroupClassPage")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(dataUserInfo);
JSONObject body= new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
......@@ -226,7 +227,7 @@ public class CourseTools extends XMBaseTest {
categoryIds.add(categoryId);
body.put("categoryIds",categoryIds);
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
......@@ -242,11 +243,11 @@ public class CourseTools extends XMBaseTest {
* @param coachId:教练id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getPersonalPage(String courseState,int current,String courseNameLike,String categoryId,String sizeType,String coachId){
public JSONObject getPersonalPage(String courseState,int current,String courseNameLike,String categoryId,String sizeType,String coachId,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_getPersonalPage")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(dataUserInfo);
JSONObject body= new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
......@@ -269,7 +270,7 @@ public class CourseTools extends XMBaseTest {
if(!coachId.equals("")){
body.put("coachId",coachId);
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
......@@ -292,7 +293,7 @@ public class CourseTools extends XMBaseTest {
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);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getBoolean("result");
}
......
......@@ -336,7 +336,7 @@ public class OrderTools extends XMBaseTest {
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("salesmanId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("salesmanId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
JSONObject card=new JSONObject();
......@@ -355,10 +355,10 @@ public class OrderTools extends XMBaseTest {
jsonObject.put("objectId", RandomStringUtil.randomString(20));
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",receivableAmount);
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
JSONArray paymentWays=new JSONArray();
......@@ -371,7 +371,7 @@ public class OrderTools extends XMBaseTest {
paymentWays.add(object);
jsonObject.put("paymentWays",paymentWays);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
......
......@@ -63,7 +63,7 @@ public class ReserveTools extends XMBaseTest {
body.put("reserveMemberNum", reserveMemberNum); // 预约人数
body.put("scheduleId", scheduleId); // 课次id
body.put("scheduleStartTime", scheduleStartTime); // 课次id
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(success);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
if (success){
return dataApi.getBodyInJSON().getJSONObject("result").getString("reserveId");
}
......@@ -122,7 +122,7 @@ public class ReserveTools extends XMBaseTest {
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("records");
}
......@@ -175,7 +175,7 @@ public class ReserveTools extends XMBaseTest {
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("records");
}
......@@ -199,7 +199,7 @@ public class ReserveTools extends XMBaseTest {
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
......@@ -225,7 +225,7 @@ public class ReserveTools extends XMBaseTest {
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(success);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
}
......@@ -271,7 +271,7 @@ public class ReserveTools extends XMBaseTest {
body.put("reserveMemberNum", reserveMemberNum); // 预约人数
body.put("scheduleId", scheduleId); // 课次id
body.put("scheduleStartTime", scheduleStartTime); // 课次id
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(success);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
if (success){
return dataApi.getBodyInJSON().getJSONObject("result").getString("reserveId");
}
......@@ -299,7 +299,7 @@ public class ReserveTools extends XMBaseTest {
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("leave",leave);
body.put("reserveId",reserveId);
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(success);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
}
......
......@@ -105,7 +105,7 @@ public class TestAddToQueue extends BaseTestImpl {
String id = getRules.getString("id"); // 获取规则id
Random random = new Random();
int bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,true,random.nextInt(100)+10,random.nextInt(5)+1,true,random.nextInt(100)+10,"minutes",true,random.nextInt(100)+10,"minutes");
ruleTools.saveGroupBookingRules(id,true,bookingSeatCount,true,true,random.nextInt(30)+10,true,random.nextInt(100)+10,random.nextInt(5)+1,false,random.nextInt(100)+10,"minutes",false,random.nextInt(100)+10,"minutes");
try {
Thread.sleep(1000);
......
......@@ -49,8 +49,8 @@ public class GroupScheduleTools extends XMBaseTest {
* @param force 是否冲突
* @param endType 排课结束方式:1 按日期,2 按次数
*/
public void createGroupRuleSchedule(String courseId, String chiefCoachId, String startDate, String endDate, List<String> venueAreaIds, List<String> assistCoachIds, Boolean force, int endType,int minuteOffset) {
setUP("API_createGroupRuleSchedule");
public void createGroupRuleSchedule(String courseId, String chiefCoachId, String startDate, String endDate, List<String> venueAreaIds, List<String> assistCoachIds, Boolean force, int endType,int minuteOffset,DataUserInfo... userInfo) {
setUP("API_createGroupRuleSchedule", userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId()); // 场馆
......@@ -73,7 +73,7 @@ public class GroupScheduleTools extends XMBaseTest {
body.put("endDate", CommUtil.getNDayEndTimeTamp(60)); //排课结束日期,这里就设置自动延顺60天,结束日期会覆盖你传的endDate
}
dataApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
}
......@@ -84,8 +84,8 @@ public class GroupScheduleTools extends XMBaseTest {
* @return
*/
public JSONArray getGroupRuleScheduleList(String courseId, String coachId){
setUP("API_getGroupRuleScheduleList");
public JSONArray getGroupRuleScheduleList(String courseId, String coachId,DataUserInfo... userInfo){
setUP("API_getGroupRuleScheduleList",userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
......@@ -96,7 +96,7 @@ public class GroupScheduleTools extends XMBaseTest {
if(coachId!=null&&coachId.length()!=0){
body.put("coachId", coachId);
}
dataApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result");
}
......@@ -119,7 +119,7 @@ public class GroupScheduleTools extends XMBaseTest {
body.put("current", 0);
body.put("size", 50);
body.put("courseNameLike", courseName);
dataApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
if(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records").length()==0){
return "";
}
......@@ -133,15 +133,15 @@ public class GroupScheduleTools extends XMBaseTest {
* 删除团课排课日程
* @param ruleId
*/
public void delGroupRuleSchedule(String ruleId, Boolean force){
setUP("API_delGroupRuleSchedule");
public void delGroupRuleSchedule(String ruleId, Boolean force, DataUserInfo... userInfo){
setUP("API_delGroupRuleSchedule",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("force", force);
body.put("ruleId", ruleId);
dataApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
}
......@@ -163,7 +163,7 @@ public class GroupScheduleTools extends XMBaseTest {
body.put("size", 50);
body.put("state", "DUTY");
body.put("teachingType", "LEAGUE_CLASS");
dataApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
int count=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.total"));
List<String> adminIds = new ArrayList<>();
......@@ -223,7 +223,7 @@ public class GroupScheduleTools extends XMBaseTest {
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);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
}
......@@ -268,7 +268,7 @@ public class GroupScheduleTools extends XMBaseTest {
}
/**
* @description:TODO
* @description:编辑课次
* @author: xuyamei
* @date: 2024/6/23 20:45
* @param scheduleId:课次id
......
......@@ -39,7 +39,7 @@ public class CourseCategoryTools extends XMBaseTest {
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
......@@ -83,7 +83,7 @@ public class CourseCategoryTools extends XMBaseTest {
if (oldCategoryId.equals("")){
body.put("oldCategoryId",oldCategoryId);
}
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs);
return dataApi.getBodyInJSON().getBoolean("result");
}
......@@ -108,7 +108,7 @@ public class CourseCategoryTools extends XMBaseTest {
body.put("categoryName",categoryName);
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs);
return dataApi.getBodyInJSON().getJSONObject("result").getString("id");
}
......@@ -131,7 +131,7 @@ public class CourseCategoryTools extends XMBaseTest {
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("categoryId",categoryId);
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
}
/**
......@@ -153,7 +153,7 @@ public class CourseCategoryTools extends XMBaseTest {
body.put("categoryId",categoryId);
body.put("del",del);
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs);
return dataApi.getBodyInJSON().getBoolean("result");
}
......
......@@ -151,13 +151,19 @@ public class ApiTest extends AbstractTestNGSpringContextTests {
executionApi.getHeadrs().put("brandId", loginInfo.getBrandId());
executionApi.getHeadrs().put("studioId", loginInfo.getStudioId());
executionApi.getHeadrs().put("usertype", "B");
executionApi.getHeadrs().put("domain", "FITNESS_ADMIN");
}else if ("minApp".equals(executionApi.getTerminal())) {
executionApi.getHeadrs().put("domain", "FITNESS_MEMBER");
executionApi.getHeadrs().put("appId", loginInfo.getWechatAppId());
executionApi.getHeadrs().put("user", loginInfo.getUser());
executionApi.getHeadrs().put("xmToken", loginInfo.getToken());
}
executionApi.getHeadrs().put("xm_request_source", "TestGetAdmin");
executionApi.getHeadrs().put("User-Agent", "XMSport/1.0 (com.jiejing.sport; build:1; iOS 15.8.1) Alamofire/5.8.0");
executionApi.getHeadrs().put("Accept", "*/*");
executionApi.getHeadrs().put("Connection", "Keep-Alive");
executionApi.getHeadrs().put("domain", "FITNESS_ADMIN");
// 接口未设置请求头,则默认为 application/json
if (api.containsKey("apiContentType") || StringUtils.isEmpty(api.getString("apiContentType"))) {
executionApi.getHeadrs().put("Content-type", "application/json;charset=utf-8");
......
......@@ -174,13 +174,18 @@ public class BaseTest extends AbstractTestNGSpringContextTests {
executionHeaders.put("brandId", loginInfo.getBrandId());
executionHeaders.put("studioId", loginInfo.getStudioId());
executionHeaders.put("usertype", "B");
executionHeaders.put("domain", "FITNESS_ADMIN");
}else if ("minApp".equals(executionApi.getTerminal())) {
executionHeaders.put("domain", "FITNESS_MEMBER");
executionHeaders.put("appId", loginInfo.getWechatAppId());
executionHeaders.put("user", loginInfo.getUser());
executionHeaders.put("token", loginInfo.getToken());
}
executionHeaders.put("xm_request_source", "TestGetAdmin");
executionHeaders.put("User-Agent", "XMSport/1.0 (com.jiejing.sport; build:1; iOS 15.8.1) Alamofire/5.8.0");
executionHeaders.put("Accept", "*/*");
executionHeaders.put("domain", "FITNESS_ADMIN");
executionHeaders.put("Connection", "Keep-Alive");
// 接口未设置请求头,则默认为 application/json
/* if (api.containsKey("apiContentType") || StringUtils.isEmpty(api.getString("apiContentType"))) {
......
......@@ -18,6 +18,8 @@ public class ApiModule {
public static String Polar_Schedule="polar_schedule";//课程排期
public static String Polar_Reserve="polar_reserve";//预约
public static String Lunar_Reserve="lunar_reserve";//预约
public static String Lunar_User="lunar_user";//预约
......
......@@ -13,6 +13,7 @@ public class LoginAccount {
public static String ADU_PROD = "gym_prod_du";
public static String GYM_PROD = "gym_prod";
public static String XYM_PROD = "xym_prod";
public static String XYM_MINIAPPC = "xym_miniAppC";
}
......@@ -87,6 +87,26 @@ public class CommonLogin {
.setStudioId(studioId);
loginInfoMap.add(loginUser,loginInfo);
} else if (Terminal.minApp.equals(loginTerminal)) {
String appId = userInfo.getApp_id();
String openId = userInfo.getOpen_id();
String brandId = userInfo.getBrandId();
String studioId = userInfo.getStudioId();
String token = userInfo.getXm_token();
String user = userInfo.getUser();
CommonRequestParameters loginIofo = new CommonRequestParameters()
.setUser(user)
.setDomain("FITNESS_MEMBER")
.setToken(token)
.setAccountNo(accountNo)
.setOpenId(openId)
.setToken(token)
.setWechatAppId(appId)
.setBrandId(brandId)
.setStudioId(studioId);
loginInfoMap.add(loginUser, loginIofo);
} else {
logger.warn(env + "环境" + loginTerminal + "端:" + loginUser + "登陆失败:" + body.getString("message"));
}
......
......@@ -20,10 +20,16 @@ public class CommonRequestParameters {
private String accountNo;
private String domain;
private String wechatAppId;
private String openId;
public String getCommonParam(String userType) {
if ("B".equals(userType)) {
return "?build=1&user="+user+"&tenant="+tenant+"&adminId="+adminId+"&domain="+domain+"&sft=20.0&sfr=0.0&token="+token+"&brandId="+brandId+"&studioId="+studioId+"&sfb=0.0&version=1.0&sfl=0.0&platform=iOS";
}else if (Terminal.minApp.equals(userType)) {
return "?domain="+domain + "&appId=" + wechatAppId + "&token=" + token + "&openId=" + openId +"&brandId="+brandId+"&studioId="+studioId;
} else {
return "?";
}
......@@ -109,4 +115,19 @@ public class CommonRequestParameters {
this.domain = domain;
return this;
}
public String getWechatAppId() {
return wechatAppId;
}
public CommonRequestParameters setWechatAppId(String wechatAppId) {
this.wechatAppId = wechatAppId;
return this;
}
public String getOpenId() {
return openId;
}
public CommonRequestParameters setOpenId(String openId) {
this.openId = openId;
return this;
}
}
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