Commit bbb29233 by xyy

新增场地预约case

parent 8b5028a4
......@@ -7,11 +7,6 @@ import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class RevenueAndExpenditureTools extends XMBaseTest {
......@@ -35,7 +30,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
......@@ -69,7 +63,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
......@@ -90,9 +83,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
* @param
* @description:分页作废收支列表
* @param supplierId:卖家ID 场馆ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject pageDiscardIncomeExpense(String paymentWays, String type, String item, String supplierId, DataUserInfo...dataUserInfos){
......@@ -106,7 +96,6 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
......@@ -152,22 +141,20 @@ public class RevenueAndExpenditureTools extends XMBaseTest {
* @param
* @description:上传图片资源
* @param bizCode:VOUCHER_INFO
* @param tenantType:BRAND
* @param filePath:图片地址
* @author: yangfangfang
**/
public JSONObject mobileResource( String bizCode, String tenantType, String filePath, DataUserInfo...dataUserInfos) throws IOException {
public JSONObject mobileResource( String bizCode,DataUserInfo...userInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_mobileResource")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
super.beforeDataRequest(userInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("tenantId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("resourceName","imgFile/test1.jpg");
jsonObject.put("bizCode",bizCode);
jsonObject.put("tenantType",tenantType);
jsonObject.put("tenantType","BRAND");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
......
package com.xiaomai.cases.polar.setting.venue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.order.OrderCTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestPurchaseAreaTimes extends XMBaseTest {
@Resource(name = "venueAreaTools")
VenueAreaTools venueAreaTools;
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "minCardTools")
MinCardTools minCardTools;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderCTools")
OrderCTools orderCTools;
@Resource(name = "orderTools")
OrderTools orderTools;
DataUserInfo info = new DataUserInfo();
String depositCardId;
String price = "1.99";//设置场地全场价格
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_purchaseAreaTimes")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "小程序使用储值卡购买场地预约")
public void testPurchaseAreaTimesByDeposit() throws InterruptedException {
//获取小程序可预约的场地数
int enableReserveSuiteNum = venueAreaTools.getEnableReserveVenueAreaSuiteList().getJSONArray("result").size();
int suiteNum = venueAreaTools.getVenueAreaSuitePage().getJSONArray("result").size();
//切换B端校验
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//1.创建场地
String groupId = venueAreaTools.saveVenueArea(info);
//2.创建场地组
String suiteName = "西湖场地组" + RandomStringUtil.randomString(5);
String suiteId = venueAreaTools.createOrEditVenueAreaSuite(null,suiteName,info);
//3.场地组绑定场地
venueAreaTools.bindVenueAreas(suiteId, groupId, info);
//获取全场的areaId,一般全场的areaId为groupId+1以此类推;
String areaId = String.valueOf(Long.valueOf(groupId)+1);
//获取场地组的时间区间,并检验是否有返回值
Assert.assertTrue(venueAreaTools.getSuiteVenueAreaTimeList(suiteId,info).getJSONArray("result").size()>0);
//有返回值就可以批量创建可预约时间
venueAreaTools.createBatchNormalDate(suiteId, groupId,price,info);
//检验c端的场地组数量+1
Assert.assertTrue(venueAreaTools.getEnableReserveVenueAreaSuiteList().getJSONArray("result").size()==enableReserveSuiteNum+1);
Assert.assertTrue(venueAreaTools.getVenueAreaSuitePage().getJSONArray("result").size()==suiteNum+1);
//检验该场地组时间块有数值
Assert.assertTrue(venueAreaTools.getSuiteReserveTimeBlock(suiteId).getJSONObject("result").getJSONArray("venueReserveTimeBlockVOS").size()>0);
//检验c端的场地详情为启用中
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.getVenueAreaSuiteDetail(suiteId),"$.result.state"),"ON");
//获取用户
String memberId = userTools.getMemberInfo().getString("memberId");
//获取当天的0点
String reserveDay = String.valueOf(TimeUtils.getTodayTime());
//查询是否有可使用的储值卡,如果没有创建1张
int num = XMJSONPath.getJSONArrayByReadPath(minCardTools.listUserUsableDepositCard(memberId, "ORDER_VENUE"), "$.result.applicableList").size();
if (num > 1) {
for (int i = 0; i < num - 1; i++) {
String leftBalance = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, "ORDER_VENUE"), "$.result.applicableList[" + i + "].depositBenefit.leftBalance");
//遍历储值卡的可用余额是否大于等于会员卡的价格
if (Double.parseDouble(leftBalance) >= Double.parseDouble(price)) {
depositCardId = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, "ORDER_VENUE"), "$.result.applicableList[" + i + "].id");
break;
} else {
//查询启用中的储值卡,获取储值卡id
String cardId = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("DEPOSIT_CARD", info), "$.result.records[0].id");
String latestSnapshotId = XMJSONPath.readPath(cardTools.fetchDetailById(cardId, info), "$.result.latestSnapshotId");
//b端购买1张储值卡
cardTools.signOrderDeposit(cardId, latestSnapshotId, memberId, "0.00", "1000.00", info);
//获取C端第1张可使用的储值卡
depositCardId = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, "ORDER_VENUE"), "$.result.applicableList[0].id");
}
}
//查询要使用的储值卡消耗记录条数
String depositBenefitId = XMJSONPath.readPath(minCardTools.findMemberCardDetailById(depositCardId),"$.result.depositBenefit.id");
int total = Integer.parseInt(XMJSONPath.readPath(minCardTools.fetchPageOfConsumeRecord(depositCardId,depositBenefitId),"$.result.total"));
//场地预约列表的已预约数据
int bookingNum = Integer.parseInt(XMJSONPath.readPath(venueAreaTools.pageMemberVenueBooking("RESERVED",memberId),"$.result.total"));
//检验场地预约前该场地规则
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.venueAreaBookingRulesGet(),"$.result.brandId"),xmAppApi.getLoginInfo().getBrandId());
//4.小程序预约场地
JSONArray areaTimeInfos = new JSONArray();
JSONObject areaTime = new JSONObject();
areaTime.put("startMinute", "1410");//预约开始时间23:30
areaTime.put("endMinute", "1440");//预约结束时间24:00
areaTime.put("price",price);//该场地组全场的单价
areaTimeInfos.add(areaTime);
//构建请求参数
JSONObject object = new JSONObject();
object.put("depositAmount",price);
object.put("depositCardId", depositCardId);
object.put("areaTimeInfos", areaTimeInfos);
object.put("groupId", groupId);//场地id
object.put("memberId", memberId);
object.put("memo", "自动化脚本创建的场地预约");
object.put("objectId", RandomStringUtil.randomString(16));
object.put("receivableAmount", "0.00");
object.put("reserveDay", reserveDay);//预约当天
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("suiteId", suiteId);//场地组id
object.put("venueAreaId", areaId);
//调用请求
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
String voucherId = xmAppApi.getBodyInJSON().getJSONObject("result").getString("id");//订单ID
Thread.sleep(3000);
//校验c端订单详情
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId), "$.result.state"), "PAID", "创建签单订单成功,但订单状态不是已完成");
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId), "$.result.source"), "ONLINE_MALL", "C端创建的签单订单,订单来源非会员创建");
//检验c端我的预约场地数据+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(venueAreaTools.pageMemberVenueBooking("RESERVED",memberId),"$.result.total"))==bookingNum+1);
//检验c端预约详情状态为已预约
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId), "$.result.state"),"RESERVED");//预约类型:已预约
//检验储值卡的消耗记录新增1条
JSONObject body = minCardTools.fetchPageOfConsumeRecord(depositCardId, depositBenefitId);
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(body, "$.result.total")) == total + 1);
Assert.assertEquals(XMJSONPath.readPath(body, "$.result.records[0].consumeType"), "DEPOSIT_SIGN_ORDER");//消耗类型:签单
Assert.assertEquals(XMJSONPath.readPath(body, "$.result.records[0].changeOfGiveBalance"), "-"+price);//消耗赠送金额
//操作c端取消预约并且预约详情为已取消
String venueBookingRecordId = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId), "$.result.id");
venueAreaTools.getCheckInIdentifier(venueBookingRecordId);//检验入场码生效
venueAreaTools.cancelVenueBookingRecord(venueBookingRecordId);
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId), "$.result.state"),"CANCELLED");//预约类型:已取消
//检验c端储值卡金额退回
JSONObject jsBody = minCardTools.fetchPageOfConsumeRecord(depositCardId, depositBenefitId);
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(jsBody, "$.result.total")) == total + 2);
Assert.assertEquals(XMJSONPath.readPath(jsBody, "$.result.records[0].consumeType"), "DEPOSIT_DISCARD_SIGN_ORDER");//消耗类型:作废签单
Assert.assertEquals(XMJSONPath.readPath(jsBody, "$.result.records[0].changeOfGiveBalance"), price);//退回赠送金额
//检验b端订单变成已作废
Assert.assertEquals(XMJSONPath.readPath(orderTools.getDetail(voucherId,info), "$.result.state"), "DISCARD");
//清理数据
//b端删除场地组
venueAreaTools.saveVenueAreaSuite(suiteId,"DELETE",info);
//b端删除场地
venueAreaTools.deleteVenueArea(groupId,info);
}
}
}
package com.xiaomai.cases.polar.setting.venue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestSaveVenueAreaBookingRules extends XMBaseTest {
@Resource(name = "venueAreaTools")
VenueAreaTools venueAreaTools;
public String ruleId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_saveVenueAreaBookingRules")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
ruleId = venueAreaTools.getVenueAreaBookingRules();
}
@Test(description = "场地预约规则全部开关开启")
public void testSaveVenueAreaBookingRules_on(){
JSONObject bookingStartRuleRequest = new JSONObject();
bookingStartRuleRequest.put("bookingStartComingDays","7");
bookingStartRuleRequest.put("limit",true);
JSONObject bookingEndRuleRequest = new JSONObject();
bookingEndRuleRequest.put("bookingEndBeforeMinutes","60");
bookingEndRuleRequest.put("bookingEndBeforeUnit","hour");
bookingEndRuleRequest.put("limit",true);
JSONObject cancelBookingRuleRequest = new JSONObject();
cancelBookingRuleRequest.put("cancelBookingBeforeMinutes","60");
cancelBookingRuleRequest.put("cancelBookingBeforeUnit","hour");
cancelBookingRuleRequest.put("limit",true);
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("scanSignIn",true);
object.put("signInBeforeMinutes","999");
object.put("expireAutoSignIn",true);
object.put("bookingStartRuleRequest",bookingStartRuleRequest);
object.put("bookingEndRuleRequest",bookingEndRuleRequest);
object.put("cancelBookingRuleRequest",cancelBookingRuleRequest);
object.put("id",ruleId);
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
Assert.assertEquals(XMJSONPath.readPath(response,"$.message"),"操作成功!");
}
@Test(description = "场地预约规则全部开关关闭",priority = 1)
public void testSaveVenueAreaBookingRules_off(){
JSONObject bookingStartRuleRequest = new JSONObject();
bookingStartRuleRequest.put("limit",false);
JSONObject bookingEndRuleRequest = new JSONObject();
bookingEndRuleRequest.put("limit",false);
JSONObject cancelBookingRuleRequest = new JSONObject();
cancelBookingRuleRequest.put("limit",false);
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("scanSignIn",false);
object.put("signInBeforeMinutes","999");
object.put("expireAutoSignIn",false);
object.put("bookingStartRuleRequest",bookingStartRuleRequest);
object.put("bookingEndRuleRequest",bookingEndRuleRequest);
object.put("cancelBookingRuleRequest",cancelBookingRuleRequest);
object.put("id",ruleId);
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
Assert.assertEquals(XMJSONPath.readPath(response,"$.message"),"操作成功!");
}
}
package com.xiaomai.cases.polar.setting.venue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestScanCheckIn extends XMBaseTest {
@Resource(name = "venueAreaTools")
VenueAreaTools venueAreaTools;
@Resource(name = "userTools")
UserTools userTools;
DataUserInfo info = new DataUserInfo();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_scanCheckIn")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "b端场地预约扫入场码")
public void testScanCheckIn() {
JSONObject object = new JSONObject();
object.put("identifier","11");
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"订场记录不存在");
}
@Test(description = "小程序预约0元子场地1和子场地2-->b端手动签到-->b端扫码签到")
public void testScanCheckIn_2() throws InterruptedException{
//获取当前场地组数量
int suiteNum = venueAreaTools.getVenueAreaSuiteList().getJSONArray("result").size();
//1.创建场地
String groupId = venueAreaTools.saveVenueArea();
//检验可预约场地数大于0
Assert.assertTrue(venueAreaTools.getEnableVenueAreas().getJSONArray("result").size()>0);
//2.创建场地组名
String suiteName = "西湖场地组" + RandomStringUtil.randomString(5);
//检验该场地组名称是否重名,未重名则创建场地组
boolean flag = venueAreaTools.checkExistsName(suiteName);
if(flag==false){
String suiteId = venueAreaTools.createOrEditVenueAreaSuite(null,suiteName);
//场地组创建成功后,检验场地组列表数量+1
Assert.assertTrue(venueAreaTools.getVenueAreaSuiteList().getJSONArray("result").size()==suiteNum+1);
//检验场地组详情为启用中
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.getVenueAreaSuiteById(suiteId),"$.result.state"),"ON");
//场地组绑定场地数量
int timeList = venueAreaTools.getSuiteVenueAreaTimeList(suiteId).getJSONArray("result").size();
//4.场地组绑定场地
venueAreaTools.bindVenueAreas(suiteId, groupId);
Assert.assertTrue(venueAreaTools.getSuiteVenueAreaTimeList(suiteId).getJSONArray("result").size()==timeList+1);
//获取子场地-1的areaId,一般子场的areaId为groupId+2;
String areaId = String.valueOf(Long.valueOf(groupId)+2);
//获取子场地-2的areaId,一般子场的areaId为groupId+3;
String areaId2 = String.valueOf(Long.valueOf(groupId)+3);
//获取场地预约规则设置-常规则预约规则数量
int groupTime = venueAreaTools.getVenueAreaGroupTime(groupId).getJSONObject("result").getJSONArray("normalTimeVOS").size();
//并且检验该场地组有可预约的时间
Assert.assertTrue(venueAreaTools.getVenueAreaSuiteTimePeriods(suiteId).getJSONArray("result").size()>0);
//5.批量创建可预约时间
venueAreaTools.createBatchNormalDate(suiteId,groupId,"0.00");//全场价格设置为0元
Thread.sleep(3000);
//常规预约规则数+1
Assert.assertTrue(venueAreaTools.getVenueAreaGroupTime(groupId).getJSONObject("result").getJSONArray("normalTimeVOS").size()==groupTime+1);
//获取当天的0点
String reserveDay = String.valueOf(TimeUtils.getTodayTime());
//获取当前场地预约记录列表的数量
int bookingNum = Integer.parseInt(XMJSONPath.readPath(venueAreaTools.pageVenueBooking(),"$.result.total"));
//切换C端
info.setTerminal(Terminal.minApp);
info.setLoginUser(LoginAccount.GYM_MINIAPPC);
//获取用户
String memberId = userTools.getMemberInfo(info).getString("memberId");
//获取当前时间小时数值往后+1
String startMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60);
String endMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60+30);//结束时间与开始时间相差30分钟
//首次预约子场地-1,场地不冲突
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.checkMemberVenueBookingConflict(startMinute,endMinute,"0.00",groupId,memberId,reserveDay,areaId,info),"$.result.conflict"),"false");
//预约子场地-1
String voucherId = venueAreaTools.purchaseAreaTimes(startMinute,endMinute,suiteId,groupId,memberId,reserveDay,areaId,info);//场地预约的订单id
Thread.sleep(3000);
String venueBookingRecordId = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId,info),"$.result.id");//场地预约的记录id
venueAreaTools.getCheckInIdentifier(venueBookingRecordId,info);//检验入场码生效
//预约详情的状态为已预约
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.getVenueBookingRecordDetail(venueBookingRecordId,info),"$.result.state"),"RESERVED");
Thread.sleep(3000);
//检验该场地冲突
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.checkMemberVenueBookingConflict(startMinute,endMinute,"0.00",groupId,memberId,reserveDay,areaId2,info),"$.result.conflict"),"true");
//允许场地冲突并且预约场地
Assert.assertEquals((venueAreaTools.checkAllowVenueBooking(startMinute,endMinute,"0.00",groupId,memberId,reserveDay,suiteId,areaId2,info)),"true");
//预约子场地-2
String voucherId2 = venueAreaTools.purchaseAreaTimes(startMinute,endMinute,suiteId,groupId,memberId,reserveDay,areaId2,info);//场地预约的订单id
Thread.sleep(3000);
String venueBookingRecordId2 = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId2,info),"$.result.id");//场地预约的记录id
venueAreaTools.getCheckInIdentifier(venueBookingRecordId2,info);//检验入场码生效
JSONObject object = new JSONObject();
object.put("identifier",venueBookingRecordId);
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers).assetsSuccess(true);
//检验b端预约详情变成已签到
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.venueBookingRecordGetDetail(venueBookingRecordId),"$.result.state"),"RESERVED");
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.venueBookingRecordGetDetail(venueBookingRecordId),"$.result.checkIn"),"true");
//人工签到同一个码,提示已签到
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.manualCheckIn(venueBookingRecordId),"$.message"),"签到失败,无需重复操作");
//人工签到子场地-2成功
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.manualCheckIn(venueBookingRecordId2),"$.message"),"操作成功!");
//扫码签到子场地-2,提示已签到
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.scanCheckIn(venueBookingRecordId2),"$.result.message"),"预约场次已签到,无需重复签到");
//预约记录+2
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(venueAreaTools.pageVenueBooking(),"$.result.total"))==bookingNum+2);
//检验预约失败记录=0
Assert.assertEquals(XMJSONPath.readPath(venueAreaTools.countVenueBookingRefundFail(),"$.result"),"0");
//清理数据
//b端删除场地组
venueAreaTools.saveVenueAreaSuite(suiteId,"DELETE");
//b端删除场地
venueAreaTools.deleteVenueArea(groupId);
}
}
}
package com.xiaomai.cases.polar.setting.venue;
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.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.springframework.stereotype.Component;
import org.testng.Assert;
/**
* @BelongsProject: xm-sportstest
......@@ -17,34 +23,73 @@ import org.springframework.stereotype.Component;
*/
@Component("venueAreaTools")
public class VenueAreaTools extends XMBaseTest {
/**
* @description:创建场地
* @description:创建不带子场地的场地
* @author: xuyamei
* @date: 2024/5/8 13:55
* @param areaName:场地名称
* @param groupName:场地名称
* @return: java.lang.String
**/
public String createVenueArea(String areaName) {
public String createVenueArea(String groupName,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_createVenueArea")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
body.put("groupName",groupName);
body.put("areaList",new JSONArray());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* 创建带子场地的场地
* @return
*/
public String saveVenueArea(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_createVenueArea")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建子场地信息
JSONArray areaList = new JSONArray();
JSONObject oneArea = new JSONObject();
oneArea.put("areaName","子场地-1");
oneArea.put("usageRatio",0);
JSONObject twoArea = new JSONObject();
twoArea.put("areaName","子场地-2");
twoArea.put("usageRatio",0);
areaList.add(oneArea);
areaList.add(twoArea);
//构建请求
JSONObject body = new JSONObject();
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
body.put("groupName",areaName);
body.put("groupName","西湖场地"+RandomStringUtil.randomString(5));
body.put("areaList",areaList);
//调用参数
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
public void deleteVenueArea(String groupId) {
/**
* 删除场地
* @param groupId
* @param userInfos
*/
public void deleteVenueArea(String groupId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_deleteVenueArea")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(userInfos);
JSONObject body= new JSONObject();
body.put("groupId",groupId);
......@@ -53,6 +98,7 @@ public class VenueAreaTools extends XMBaseTest {
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
}
/**
......@@ -78,7 +124,27 @@ public class VenueAreaTools extends XMBaseTest {
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* 获取场地组列表
* @return
*/
public JSONObject getVenueAreaSuiteList() {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getVenueAreaSuiteList")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String[] stateEnumList = {"ON", "OFF"};
JSONObject body= new JSONObject();
body.put("stateEnumList",stateEnumList);
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:编辑场地
* @author: xuyamei
......@@ -96,14 +162,13 @@ public class VenueAreaTools extends XMBaseTest {
JSONObject body= new JSONObject();
body.put("groupName",groupName);
body.put("groupId",groupId);
body.put("areaList",new JSONArray());
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
}
/**
* @description:根据课程id获取场地详情
* @author: xuyamei
......@@ -127,5 +192,677 @@ public class VenueAreaTools extends XMBaseTest {
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* 通用设置-预约规则-获取场地预约规则
* @return
*/
public String getVenueAreaBookingRules() {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getVenueAreaBookingRules")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject object = new JSONObject();
object.put("brandId",dataApi.getLoginInfo().getBrandId());
object.put("studioId",dataApi.getLoginInfo().getStudioId());
object.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return XMJSONPath.readPath(dataApi.getApi_response(), "$.result.id");
}
/**
* 创建/编辑场地组
* @return
*/
public String createOrEditVenueAreaSuite(String venueId,String suiteName,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_saveVenueAreaSuite")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONArray propagandaPictureList = new JSONArray();
propagandaPictureList.add("1851146496925679617");//场地组平面图固定
JSONObject object = new JSONObject();
object.put("name",suiteName);
object.put("propagandaPictureList",propagandaPictureList);
object.put("spanMinutes","30");
object.put("lowestPrice","0");
object.put("startMinute","0");
object.put("endMinute","1440");//00:00~24:00
object.put("lowerLimitTimes","-1");//下限
object.put("upperLimitTimes","-1");//上限
object.put("noticeContent","{\"way\":\"auto\"}");
object.put("needNotice",false);
object.put("introduction","{\"items\":[{\"type\":\"TEXT\",\"content\":\"自动化脚本创建场地组介绍\",\"aspect\":\"\"}]}");
object.put("brandId",dataApi.getLoginInfo().getBrandId());
object.put("studioId",dataApi.getLoginInfo().getStudioId());
object.put("operatorId",dataApi.getLoginInfo().getAdminId());
object.put("id",venueId);
//id不为空,则编辑场地组
if (null != venueId) {
object.put("planePictureList",new JSONArray());
}else {
object.put("state","ON");
object.put("tags",new JSONArray());
}
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
}
/**
* 启用/停用/删除场地组
* @param suiteId
* @param state:"ON","OFF","DELETE"
* @return
*/
public void saveVenueAreaSuite(String suiteId,String state,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_saveVenueAreaSuite")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("id",suiteId);
object.put("state",state);
object.put("brandId",dataApi.getLoginInfo().getBrandId());
object.put("studioId",dataApi.getLoginInfo().getStudioId());
object.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
}
/**
* 获取场地组详情
* @param suiteId
* @return
*/
public JSONObject getVenueAreaSuiteById(String suiteId) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getVenueAreaSuiteById")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject object = new JSONObject();
object.put("id", suiteId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 场地组可预约时间
* @param suiteId
* @return
*/
public JSONObject getSuiteVenueAreaTimeList(String suiteId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getSuiteVenueAreaTimeList")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("id", suiteId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 场地组下面可添加的场地
* @return
*/
public JSONObject getEnableVenueAreas(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getEnableVenueAreas")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 场地组绑定场地
* @param suiteId
* @param groupId
* @param userInfos
* @return
*/
public JSONObject bindVenueAreas(String suiteId,String groupId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_bindVenueAreas")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONArray venueGroupIds = new JSONArray();
venueGroupIds.add(groupId);
JSONObject object = new JSONObject();
object.put("suiteId", suiteId);
object.put("venueGroupIds", venueGroupIds);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 场地组预约时间设置
* @param venueGroupId
* @param userInfos
* @return
*/
public JSONObject getVenueAreaGroupTime(String venueGroupId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getVenueAreaGroupTime")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("venueGroupId", venueGroupId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 获取场地组时间区间
* @param suiteId
* @param userInfos
* @return
*/
public JSONObject getVenueAreaSuiteTimePeriods(String suiteId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getVenueAreaSuiteTimePeriods")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("id", suiteId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON();
}
/**
* 批量创建可预约时间
* @param suiteId
* @param groupId
*/
public void createBatchNormalDate(String suiteId,String groupId,String fullPrice,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_createBatchNormalDate")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
String[] weekdays= {"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"};
//构建配置时间
JSONArray timePeriodConfigInfos = new JSONArray();
JSONObject timePeriod = new JSONObject();
timePeriod.put("minuteOffset","0");
timePeriod.put("spanMinutes","1440");
timePeriod.put("fullPrice",fullPrice);//全场价格
timePeriod.put("subPrice","0.00");//子场地价格0元
timePeriodConfigInfos.add(timePeriod);
//构建可约时间段
JSONArray normalTimeInfoRequests = new JSONArray();
JSONObject normalTimeInfo = new JSONObject();
normalTimeInfo.put("timePeriodConfigInfos",timePeriodConfigInfos);
normalTimeInfo.put("weekdays",weekdays);
normalTimeInfoRequests.add(normalTimeInfo);
//构建场地组
JSONArray venueGroupIds = new JSONArray();
venueGroupIds.add(groupId);
//构建请求参数
JSONObject object = new JSONObject();
object.put("normalTimeInfoRequests", normalTimeInfoRequests);
object.put("suiteId", suiteId);
object.put("venueGroupIds", venueGroupIds);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
}
/**
* 检验场地组名是否重名
*/
public Boolean checkExistsName(String suiteName, DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_checkExistsName")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("name", suiteName);
object.put("id", "");
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getBoolean("result");
}
/**
* 场地预约记录列表
* @return
*/
public JSONObject pageVenueBooking() {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_pageVenueBooking")
.setTerminal(Terminal.B);
super.beforeDataRequest();
//构建请求参数
JSONObject object = new JSONObject();
object.put("venueArea", null);
object.put("venueAreaId", null);
object.put("state", null);
object.put("checkIn", null);
object.put("suiteId", null);
object.put("reserveDayStart", null);
object.put("reserveDayEnd", null);
object.put("current", 0);
object.put("size", 20);
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
object.put("brandId", dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 场地预约记录详情
*/
public JSONObject countVenueBookingRefundFail(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_countVenueBookingRefundFail")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 场地预约人工签到
*/
public JSONObject manualCheckIn(String venueBookingRecordId, DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_manualCheckIn")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", venueBookingRecordId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
return dataApi.getBodyInJSON();
}
/**
* 场地预约扫码签到
*/
public JSONObject scanCheckIn(String venueBookingRecordId, DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_scanCheckIn")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("identifier", venueBookingRecordId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 场地预约记录详情
*/
public JSONObject venueBookingRecordGetDetail(String venueBookingRecordId, DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_venueBookingRecordGetDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", venueBookingRecordId);
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序我的可预约的场地
*/
public JSONObject getEnableReserveVenueAreaSuiteList(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getEnableReserveVenueAreaSuiteList")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId",dataApi.getLoginInfo().getStudioId());
object.put("selectedDate",TimeUtils.getTodayTime());//当天的0点
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序推荐场地列表
*/
public JSONObject getVenueAreaSuitePage(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getVenueAreaSuitePage")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
String[] stateEnumList = {"ON"};
//构建请求参数
JSONObject object = new JSONObject();
object.put("suiteIds",new JSONArray());
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId",dataApi.getLoginInfo().getStudioId());
object.put("stateEnumList",stateEnumList);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序查看场地组详情
*/
public JSONObject getVenueAreaSuiteDetail(String suiteId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getVenueAreaSuiteDetail")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", suiteId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 获取场地组预约时间块
* @param suiteId
* @param userInfos
* @return
*/
public JSONObject getSuiteReserveTimeBlock(String suiteId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getSuiteReserveTimeBlock")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("suiteId", suiteId);
object.put("selectedDate", TimeUtils.getTodayTime());//当天的0点
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序场地预约时获取场地规则
* @param userInfos
* @return
*/
public JSONObject venueAreaBookingRulesGet(DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_venueAreaBookingRulesGet")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("brandId", dataApi.getLoginInfo().getBrandId());
object.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序场地预约
* @param startMinute 开始时间
* @param endMinute 结束时间
* @param suiteId 场地组id
* @param groupId 场地id
* @param memberId 会员id
* @param reserveDay 预约日期
* @param areaId 子场地id
* @param userInfos
* @return
*/
public String purchaseAreaTimes(String startMinute, String endMinute,String suiteId, String groupId,
String memberId,String reserveDay,String areaId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_purchaseAreaTimes")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
JSONArray areaTimeInfos = new JSONArray();
JSONObject areaTime = new JSONObject();
areaTime.put("startMinute",startMinute);//预约开始时间
areaTime.put("endMinute",endMinute);//预约结束时间
areaTime.put("price","0.00");//不需要支付金额
areaTimeInfos.add(areaTime);
//构建请求参数
JSONObject object = new JSONObject();
object.put("areaTimeInfos", areaTimeInfos);
object.put("groupId", groupId);//场地id
object.put("memberId", memberId);
object.put("memo", "自动化脚本创建的场地预约");
object.put("objectId", RandomStringUtil.randomString(16));
object.put("receivableAmount", "0.00");
object.put("reserveDay", reserveDay);
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("suiteId", suiteId);//场地组id
object.put("venueAreaId", areaId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.success")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
return dataApi.getBodyInJSON().getJSONObject("result").getString("id");
}
/**
* 小程序场地预约冲突提示
*/
public JSONObject checkMemberVenueBookingConflict(String startMinute,String endMinute,String price,String groupId,
String memberId,String reserveDay,String areaId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_checkMemberVenueBookingConflict")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
JSONArray areaTimeInfos = new JSONArray();
JSONObject areaTime = new JSONObject();
areaTime.put("startMinute",startMinute);//预约开始时间
areaTime.put("endMinute",endMinute);//预约结束时间
areaTime.put("price",price);//场地单价
areaTimeInfos.add(areaTime);
//构建请求参数
JSONObject object = new JSONObject();
object.put("areaTimeInfos", areaTimeInfos);
object.put("groupId", groupId);
object.put("memberId", memberId);
object.put("reserveDay", reserveDay);
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("venueAreaId", areaId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序允许场地预约
*/
public String checkAllowVenueBooking(String startMinute,String endMinute,String price,String groupId,
String memberId,String reserveDay,String suiteId,String areaId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_checkAllowVenueBooking")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
JSONArray areaTimeInfos = new JSONArray();
JSONObject areaTime = new JSONObject();
areaTime.put("startMinute",startMinute);//预约开始时间
areaTime.put("endMinute",endMinute);//预约结束时间
areaTime.put("price",price);//场地单价
areaTimeInfos.add(areaTime);
//构建请求参数
JSONObject object = new JSONObject();
object.put("areaTimeInfos", areaTimeInfos);
object.put("groupId", groupId);
object.put("memberId", memberId);
object.put("reserveDay", reserveDay);
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("suiteId", suiteId);
object.put("venueAreaId", areaId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* 小程序场地预约的订单详情
*/
public JSONObject getByVoucher(String voucherId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getByVoucher")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", voucherId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序我的预约场地列表
*/
public JSONObject pageMemberVenueBooking(String state,String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_pageMemberVenueBooking")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("current", 0);
object.put("state", state);
object.put("size", 20);
object.put("memberId", memberId);
object.put("reserveDayStart", TimeUtils.getStartYear());
object.put("reserveDayEnd", TimeUtils.getEndYear());
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序我的-我的预约-场地-预约详情
*/
public JSONObject getVenueBookingRecordDetail(String venueBookingRecordId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getVenueBookingRecordDetail")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", venueBookingRecordId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
public void getCheckInIdentifier(String venueBookingRecordId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_getCheckInIdentifier")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfos);
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", venueBookingRecordId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.result"),"SUCCESS");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.identifier"),venueBookingRecordId);
}
/**
* 小程序取消场地预约
*/
public void cancelVenueBookingRecord(String venueBookingRecordId) {
dataApi.setApiModule(ApiModule.Lunar_VenueArea)
.setApiName("API_cancelVenueBookingRecord")
.setTerminal(Terminal.minApp);
super.beforeDataRequest();
//构建请求参数
JSONObject object = new JSONObject();
object.put("id", venueBookingRecordId);
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result")) == true, "调用接口返回结果:" + XMJSONPath.readPath(dataApi.getApi_response(), "$.message"));
}
}
......@@ -24,29 +24,21 @@ public class ApiModule {
public static String Polar_Card="polar_card";//会员卡
public static String Polar_Training="polar_training";//训练营活动
public static String Polar_EleContract="polar_eleContract";//训练营活动
public static String Polar_Coupon="polar_coupon";//优惠券
public static String Polar_Membercluster="polar_membercluster";//会员分群
public static String Polar_LuckyDraw ="polar_luckyDraw";//幸运抽奖
public static String Lunar_LuckyDraw ="lunar_luckyDraw";//小程序幸运抽奖
public static String Lunar_Coupon="lunar_coupon";//小程序优惠券
public static String Polar_Reserve="polar_reserve";//预约
public static String Lunar_Reserve="lunar_reserve";//小程序预约
public static String Lunar_User="lunar_user";//预约
public static String Lunar_Card ="lunar_card";//小程序会员卡
public static String Polar_Data ="polar_data";//数据中心
public static String Lunar_Order="lunar_order";//C端订单
public static String Lunar_Training="lunar_training";//C端订单
public static String Lunar_Share="lunar_share";//C端分享
public static String Polar_Coupon="polar_coupon";//优惠券
public static String Polar_LuckyDraw ="polar_luckyDraw";//幸运抽奖
public static String Polar_Membercluster = "polar_membercluster";
//小程序模块
public static String Lunar_LuckyDraw ="lunar_luckyDraw";//幸运抽奖
public static String Lunar_Coupon="lunar_coupon";//优惠券
public static String Lunar_Reserve="lunar_reserve";//预约
public static String Lunar_User="lunar_user";//会员信息
public static String Lunar_Card ="lunar_card";//会员卡
public static String Lunar_Order="lunar_order";//订单
public static String Lunar_Training="lunar_training";//训练
public static String Lunar_Share="lunar_share";//分享
public static String Lunar_VenueArea="lunar_venueArea";//场地
}
\ No newline at end of file
......@@ -135,6 +135,52 @@ public class TimeUtils {
long today_date = calendar.getTime().getTime();
return today_date;
}
/**
* @return 当前时间的小时数
*/
public static int hourOfDay(){
Calendar calendar = Calendar.getInstance(); // 获取当前时间戳
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY); //24小时制
return hourOfDay;
}
/**
* @return 今年的1月1日0点
*/
public static long getStartYear(){
//获取当前日期
Calendar calendar = Calendar.getInstance();
//将当前日期设置为1月1日
calendar.set(Calendar.MONTH,Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH,1);
//将时间设置为0点
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
long getStartYear = calendar.getTimeInMillis();
return getStartYear;
}
/**
* @return 今年的12月31日23点59分59秒
*/
public static long getEndYear(){
//获取当前日期
Calendar calendar = Calendar.getInstance();
//清除所有字段
calendar.clear();
calendar.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR)); // 设置当前年份
calendar.set(Calendar.MONTH, Calendar.DECEMBER); // 设置为12月
calendar.set(Calendar.DATE, 31); // 设置为31号
calendar.set(Calendar.HOUR_OF_DAY, 23); // 设置为23点
calendar.set(Calendar.MINUTE, 59); // 设置为59分
calendar.set(Calendar.SECOND, 59); // 设置为59秒
calendar.set(Calendar.MILLISECOND,59);
long getEndYear = calendar.getTimeInMillis();
return getEndYear;
}
/**
* @return 获取当前时间戳
......
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