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.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);
}
}
}
......@@ -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