Commit b23c4f20 by dujunli

Merge remote-tracking branch 'origin/master'

parents 8497aca2 1c6f0e5c
......@@ -500,4 +500,46 @@ public class ReserveCTools extends XMBaseTest {
return dataApi.getBodyInJSON();
}
/**
* @description:创建单次约课订单使用储值卡
* @author: xuyamei
* @date: 2024/7/30 11:48
* @param addToQueue 是否排队
* @param chiefCoachId 主教id
* @param memberId 会员id
* @param scheduleId 课次id
* @param scheduleStartTime 课次开始时间
* @param spanMinutes 上课时长
* @param receivableAmount 单次约课金额
* @return: java.lang.String
**/
public String createSingleReserve1(boolean addToQueue,String courseId,String chiefCoachId,String memberId,String scheduleId,long scheduleStartTime,int spanMinutes,int receivableAmount,String depositCardId,String depositAmount){
setUP("API_createSingleReserve");
JSONObject body = new JSONObject();
body.put("addToQueue",addToQueue);
JSONArray areaIds = new JSONArray();
body.put("areaIds", areaIds); // 场地
JSONArray assistantCoachIds = new JSONArray();
body.put("assistantCoachIds",assistantCoachIds); // 助教
body.put("chiefCoachId",chiefCoachId); // 教练
body.put("memberId", memberId); // 会员id
body.put("courseId", courseId); // 课次id
body.put("objectId", RandomStringUtil.randomString(16)); // 会员id
body.put("receivableAmount", receivableAmount); // 会员id
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("scheduleId", scheduleId);
body.put("scheduleStartTime", scheduleStartTime);
body.put("spanMinutes", spanMinutes);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("depositCardId", depositCardId);
body.put("depositAmount", depositAmount);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
}
......@@ -56,11 +56,6 @@ public class TestGetCostData extends XMBaseTest {
BigDecimal beforeConfirmedAmountMember_card=new BigDecimal(beforeGetCostDataMember_card.getJSONObject("result").getString("confirmedAmount"));//确认收入
BigDecimal beforeLeftAmountMember_card=new BigDecimal(beforeGetCostDataMember_card.getJSONObject("result").getString("leftAmount"));//待消耗金额
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//①创建已支付订单,筛选全部和会员卡的确认收入无变化,待消耗金额增加对应的金额
//造订单相关数据
......@@ -125,9 +120,9 @@ public class TestGetCostData extends XMBaseTest {
try {
Thread.sleep(25000);
Thread.sleep(200000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
......@@ -143,12 +138,6 @@ public class TestGetCostData extends XMBaseTest {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验1:
//校验已支付订单对于营收数据-全部的确认收入无变化,待消耗金额增加对应的金额
......@@ -223,9 +212,9 @@ public class TestGetCostData extends XMBaseTest {
try {
Thread.sleep(20000);
Thread.sleep(200000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
......
......@@ -127,4 +127,24 @@ public class EntryTool extends XMBaseTest {
return dataApi.getBodyInJSON();
}
//添加入场记录
public JSONObject addmemberEntry(String entryVoucherType,String entryVoucherId,String memberId){
dataApi.setApiModule(ApiModule.Polar_MemberEntry)
.setApiName("API_manual")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject object = new JSONObject();
object.put("entryVoucherType",entryVoucherType);//EXPERIENCE_CARD 体验卡
object.put("memberId",memberId);
object.put("entryVoucherId",entryVoucherId);
object.put("remark","自动化脚本手动添加入场记录备注");
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,dataparams,object.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
......@@ -112,8 +112,16 @@ public class EventRegistrationTools extends BaseTestImpl {
jsonObject1.put("purchaseNumberLimit", -1);//购买限制
jsonObject1.put("skuName", "自动化-报名项目");
jsonObject1.put("stock", "100");//剩余数量
JSONObject jsonObject5 = new JSONObject();
jsonObject5.put("price", 100);//报名价格为0元
jsonObject5.put("purchaseNumberLimit", -1);//购买限制
jsonObject5.put("skuName", "自动化-积分");
jsonObject5.put("stock", "100");//剩余数量
List<JSONObject> skuItems = new ArrayList<>();//报名项目
skuItems.add(jsonObject1);
skuItems.add(jsonObject5);
JSONObject jsonObject2 = new JSONObject();//活动地点
jsonObject2.put("address", "同人广场A座");
......@@ -531,7 +539,7 @@ public class EventRegistrationTools extends BaseTestImpl {
* @param activitySkuId 报名项目id
* @param memberId 会员id
**/
public JSONObject purchaseSellableActivity( String activityId,String activitySkuId,String memberId,DataUserInfo... dataUserInfos) {
public JSONObject purchaseSellableActivity( String activityId,String receivableAmount,String activitySkuId,String memberId,DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Registration)
.setApiName("API_purchaseSellableActivity")
......@@ -568,7 +576,7 @@ public class EventRegistrationTools extends BaseTestImpl {
jsonObject.put("objectId", RandomStringUtil.randomString(16));
jsonObject.put("activityType", "SELLABLE_ACTIVITY");
jsonObject.put("purchaseQuantity", 1);
jsonObject.put("receivableAmount", 0);
jsonObject.put("receivableAmount", receivableAmount);
jsonObject.put("collectUserInfoList", collectUserInfoList);
......
......@@ -63,7 +63,7 @@ public class TestGetPurchaseRecordDetail extends XMBaseTest {
EventRegistrationTools.sellableActivity_checkMemberPurchaseActivity(activityId,activitySkuId,memberId);//活动报名页
EventRegistrationTools.purchaseSellableActivity(activityId,activitySkuId,memberId);//报名
EventRegistrationTools.purchaseSellableActivity(activityId, String.valueOf(0),activitySkuId,memberId);//报名
String id =XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//订单ID
orderTools.getDetail(id,info);//查看B生成的订单
......
......@@ -44,7 +44,7 @@ public class TestExportVoucher extends XMBaseTest {
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
try {
Thread.sleep(3000);
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
......
......@@ -33,43 +33,43 @@ public class TestRefundByRecord extends XMBaseTest {
//目前1808757176611880962这笔流水是已经结算过的收款流水,商户号下没有钱退,但是当商户号下有钱可退的时候,这个case会报错,因为可以退成功
//乐动收银退款预校验-检查流水是否可退
String checkBeforeRefundCode=cashierTools.checkBeforeRefund("1808757176611880962", BigDecimal.valueOf(0.01)).getJSONObject("result").getString("code");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//如果校验为可退
if("SUCCESS".equals(checkBeforeRefundCode)){
//流水退款
JSONObject refundByRecordResult=new JSONObject();
refundByRecordResult.put("transAmount",0.01);
refundByRecordResult.put("refundReason", RandomStringUtil.randomString(6));
refundByRecordResult.put("orderType","PAY_QR_CODE");
refundByRecordResult.put("payTransNo","1808757176611880962");
refundByRecordResult.put("brandId", xmAppApi.getLoginInfo().getBrandId());
refundByRecordResult.put("studioId", xmAppApi.getLoginInfo().getStudioId());
refundByRecordResult.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, refundByRecordResult.toJSONString(), headers).assetsSuccess(true);
String success = xmAppApi.getBodyInJSON().getString("success");
String failCode = xmAppApi.getBodyInJSON().getJSONObject("result").getString("failCode");
Assert.assertEquals(success, "true", "获取流水退款失败");
Assert.assertEquals(failCode, "OTHER_ERROR", "当前乐动收银余额不足,无法退款,请在线收款后再次发起退款或者线下处理退款");
}
else{
Assert.assertEquals(checkBeforeRefundCode,"AMOUNT_LIMIT","订单关联流水可退金额不足,请修改退款金额后重试");
}
// String checkBeforeRefundCode=cashierTools.checkBeforeRefund("1808757176611880962", BigDecimal.valueOf(0.01)).getJSONObject("result").getString("code");
//
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
//
// //如果校验为可退
// if("SUCCESS".equals(checkBeforeRefundCode)){
//
// //流水退款
// JSONObject refundByRecordResult=new JSONObject();
// refundByRecordResult.put("transAmount",0.01);
// refundByRecordResult.put("refundReason", RandomStringUtil.randomString(6));
// refundByRecordResult.put("orderType","PAY_QR_CODE");
// refundByRecordResult.put("payTransNo","1808757176611880962");
// refundByRecordResult.put("brandId", xmAppApi.getLoginInfo().getBrandId());
// refundByRecordResult.put("studioId", xmAppApi.getLoginInfo().getStudioId());
// refundByRecordResult.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
//
// xmAppApi.doRequest(RequestType.JSON, params, refundByRecordResult.toJSONString(), headers).assetsSuccess(true);
// String success = xmAppApi.getBodyInJSON().getString("success");
// String failCode = xmAppApi.getBodyInJSON().getJSONObject("result").getString("failCode");
// Assert.assertEquals(success, "true", "获取流水退款失败");
// Assert.assertEquals(failCode, "OTHER_ERROR", "当前乐动收银余额不足,无法退款,请在线收款后再次发起退款或者线下处理退款");
//
// }
//
// else{
// Assert.assertEquals(checkBeforeRefundCode,"AMOUNT_LIMIT","订单关联流水可退金额不足,请修改退款金额后重试");
// }
//
//
}
}
//
//
//
//
......@@ -107,17 +107,19 @@ public class TestGoodsOrder extends XMBaseTest {
Assert.assertEquals(state,"WAITING","未生成待支付物品订单");
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验1:B端商品详情库存数-1
JSONObject afterGetDetail_goods=goodTools.getDetail_goods(goodsId1);
int afterInventory=Integer.parseInt(afterGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(afterInventory,beforeInventory-1,"购买1个物品生成待支付订单后,应扣除1个库存数");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject afterGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
......@@ -129,6 +131,12 @@ public class TestGoodsOrder extends XMBaseTest {
JSONObject cancel=orderTools.cancel(orderId1);
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验1:获取B端订单详情:已取消状态
JSONObject getDetailResult_cancel = orderTools.getDetail(orderId1);
String state_cancel=getDetailResult_cancel.getJSONObject("result").getString("state");
......@@ -140,11 +148,6 @@ public class TestGoodsOrder extends XMBaseTest {
int lastInventory=Integer.parseInt(lastGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(lastInventory,afterInventory+1,"取消购买1个物品的待支付订单后,应返回1个库存数");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:权益未涉及,数据中心的确认收入没有变化
//获取数据中心-财务中心-营收明细-物品的确认收入
......@@ -156,7 +159,7 @@ public class TestGoodsOrder extends XMBaseTest {
}
@Test(description = "签单单规格:待支付->待补交->作废订单")
@Test(description = "签单单规格:待支付->继续收款为已完成->作废订单")
public void testSignGoods_single1() {
//case1:购买非0订单->待支付->带补交->作废订单
......@@ -199,6 +202,12 @@ public class TestGoodsOrder extends XMBaseTest {
JSONObject purchaseGoods = goodCTools.purchaseGoods("0.00", null,memberId,"",String.valueOf(price),id,price,1,info);
String orderId2=purchaseGoods.getJSONObject("result").getString("id");
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
......@@ -208,16 +217,13 @@ public class TestGoodsOrder extends XMBaseTest {
Assert.assertEquals(state,"WAITING","未生成待支付物品订单");
//校验1:B端商品详情库存数-1
JSONObject afterGetDetail_goods=goodTools.getDetail_goods(goodsId1);
int afterInventory=Integer.parseInt(afterGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(afterInventory,beforeInventory-1,"购买1个物品生成待支付订单后,应扣除1个库存数");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject afterGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
......@@ -225,28 +231,27 @@ public class TestGoodsOrder extends XMBaseTest {
Assert.assertEquals(afterConfirmedAmount,beforeConfirmedAmount,"购买1个物品生成待支付订单后,财务中心-营收明细-物品的确认收入应无变化");
//B端变更为待补交物品订单
//B端变更为已完成物品订单
BigDecimal num=new BigDecimal(2);
//继续收款为已完成
JSONObject pay_unpaid=orderTools.pay_unpaid(unpaidAmount,"1",orderId2,true);
//继续收款为待补交
JSONObject pay_unpaid=orderTools.pay_unpaid(unpaidAmount.divide(num),"1",orderId2,true);
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验1:获取B端订单详情:待补交状态
//校验1:获取B端订单详情:已完成状态
JSONObject getDetailResult_delinquent = orderTools.getDetail(orderId2);
String state_delinquent=getDetailResult_delinquent.getJSONObject("result").getString("state");
Assert.assertEquals(state_delinquent,"DELINQUENT","B端继续收款后订单状态由待支付变为待补交");
Assert.assertEquals(state_delinquent,"PAID","B端继续收款后订单状态由待支付变为已完成");
//校验2:B端商品详情库存数不变
//校验2:继续收款后,B端商品详情库存数应不变
JSONObject lastGetDetail_goods=goodTools.getDetail_goods(goodsId1);
int lastInventory=Integer.parseInt(lastGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(lastInventory,afterInventory,"B端继续收款后订单状态由待支付变为待补交,库存数应不变");
Assert.assertEquals(lastInventory,afterInventory,"B端继续收款后订单状态由待支付变为已完成,库存数应不变");
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:权益到,数据中心的确认收入应增加
//获取数据中心-财务中心-营收明细-物品的确认收入
......@@ -256,10 +261,16 @@ public class TestGoodsOrder extends XMBaseTest {
//作废待补交订单
//作废已完成订单
JSONObject discard=orderTools.discard(orderId2, "重复录入", "已作废签单订单" + RandomStringUtil.randomString(10));
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验1:获取B端订单详情:已作废状态
JSONObject getDetailResult_discard = orderTools.getDetail(orderId2);
......
......@@ -112,11 +112,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
BigDecimal price=new BigDecimal(getDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("price"));
int beforeInventory=Integer.parseInt(getDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject beforeGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
......@@ -127,6 +122,14 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
cardId1, memberId, "", String.valueOf(price.subtract(cardPrice.add(cardBalance.setScale(2, RoundingMode.HALF_UP)))), id, price, 1, info);
String signOrderId1 = purchaseGoods.getJSONObject("result").getString("id");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验1:获取B端订单详情:已完成状态
JSONObject getDetailResult_delinquent = orderTools.getDetail(signOrderId1);
String state_delinquent = getDetailResult_delinquent.getJSONObject("result").getString("state");
......@@ -139,11 +142,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int signInventory=Integer.parseInt(signGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(signInventory,beforeInventory-1,"使用储值卡全额抵扣购买物品成功后,物品库存数应减少1个");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入增加对应的充值金额
JSONObject afterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -151,12 +149,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert.assertEquals(afterConfirmedAmount,beforeConfirmedAmount.add(cardPrice.setScale(2,RoundingMode.HALF_UP)),"使用储值卡全额抵扣购买物品,确认收入增加储值卡充值金额");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验4:储值卡额度减少,剩余充值金额+赠送金额为0
//获取储值卡详情
JSONObject fetchDetailById1=cardTools.memberCardFindDetailById(cardId1);
......@@ -192,6 +184,13 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject refundGoods=goodTools.refundGoods(xmAppApi.getLoginInfo().getAdminId(),ownerName,quantity,refundAmount,true,voucherItemId,memberId,receivableAmount,amount,"1",cardPrice,cardBalance,cardId1,0,amount,amount);
String refundOrderId1=refundGoods.getString("result");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
......@@ -206,12 +205,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert.assertEquals(refundInventory,signInventory+1,"使用储值卡全额抵扣购买物品退货退款成功后,物品库存数应增加1个");
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少充值金额
......@@ -235,6 +228,14 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject discardRefundOrder=orderTools.discard(refundOrderId1, "重复录入", "已作废物品退货退款订单" + RandomStringUtil.randomString(10));
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject getDetailResult_discardRefund = orderTools.getDetail(refundOrderId1);
......@@ -248,12 +249,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int disRefundInventory=Integer.parseInt(disRefundGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(disRefundInventory,refundInventory-1,"B端作废退货退款订单后,物品库存数应减少1个");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加充值金额
JSONObject disRefundAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -275,6 +270,13 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
JSONObject discardSignOrder=orderTools.discard(signOrderId1, "重复录入", "已作废物品购买订单" + RandomStringUtil.randomString(10));
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:购买订单已作废状态
JSONObject getDetailResult_discardSign = orderTools.getDetail(signOrderId1);
......@@ -288,12 +290,6 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
int disSignInventory=Integer.parseInt(disSignGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(disSignInventory,disRefundInventory+1,"B端作废购买订单后,物品库存数应增加1个");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少充值金额
JSONObject disSignAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......
......@@ -50,8 +50,8 @@ public class TestDiscardManualDeduct extends XMBaseTest {
if (listDatas > 0) {
if(cardType=="DEPOSIT"){
//取最后一张导入有实充金额的卡,不然会取到0元卡,检验扣款金额时购买金额的次数不准确
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[-1].id");//拿售卖记录最后一张【生效中】会员卡的ID;
benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[-1].depositBenefit.id");//储值卡权益id;
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录最后一张【生效中】会员卡的ID;
benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].depositBenefit.id");//储值卡权益id;
}else{
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张【生效中】会员卡的ID;
benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].courseBenefit.id");//会员卡/体验卡权益id;
......
package com.xiaomai.cases.polar.points;
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;
@Component("pointsMinTools")//小程序会员积分工具类
public class PointsMInTools extends XMBaseTest {
public void setUp(String name, DataUserInfo...dataUserInfo) {
dataApi.setApiModule(ApiModule.Lunar_Points)
.setApiName(name)
.setTerminal(Terminal.B);//这个到时候要改
}
/**
* @param
* @description:小程序-我的-获取积分
* @author: yangjian
* @param memberId 会员id
**/
public JSONObject memberPoint_getAccount(String memberId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Points)
.setApiName("API_memberPoint_getAccount")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberId", memberId);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:小程序-我的-获取积分
* @author: yangjian
* @param memberId 会员id
**/
public JSONObject findStatementPage(String memberId,String incTag, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Points)
.setApiName("API_findStatementPage")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("memberId", memberId);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
if (!incTag.equals("")){
jsonObject.put("incTag", incTag);//true为获取tab;false为消耗tab
}
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.points;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
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 TestBatchPoints extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_batchClearPoint")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Resource(name = "pointsTools")
PointsTools pointsTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Test(description = "品牌手动-积分")
public void testBatchClearPoint() throws InterruptedException {
String phone = "13357537209";
String memberId = trainingTools.searchTargerMember(phone);
//获取品牌初始会员的发放积分数、已使用积分数、剩余积分数
int BetotalAwardBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].totalAwardBalance"));//发放积分数
int BealreadyUsedBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].alreadyUsedBalance"));//已用积分数
int BeleftBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("betotal--------"+BetotalAwardBalance);
System.out.println("beuse--------"+BealreadyUsedBalance);
System.out.println("beleft--------"+BeleftBalance);
int before = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(""), "$.result.total"));//积分记录列表总条数
//品牌操作批量增加
pointsTools.batchAwardPoint("1",memberId,"");
Thread.sleep(1000);
int AftotalAwardBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].totalAwardBalance"));//发放积分数
int AfleftBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("aftotal1--------"+AftotalAwardBalance1);
System.out.println("afleft1--------"+AfleftBalance1);
Assert.assertEquals(AftotalAwardBalance1,BetotalAwardBalance+1);//断言发放积分数+1
Assert.assertEquals(AfleftBalance1,BeleftBalance+1);//断言剩余积分数+1
//核对积分记录
Thread.sleep(1000);
int after1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(""), "$.result.total"));
System.out.println("after1--------"+after1);
Assert.assertEquals(after1,before+1);//断言积分记录+1条记录
String str = Integer.toString(AfleftBalance1);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "IN_MANUAL_GIVE", "第一条记录非手动增加记录");//断言列表第一条手动增加积分的记录
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].accountLeftBalance"), str, "积分记录明细中,剩余积分和积分帐户对不上");//断言积分记录中的剩余积分
//品牌操作批量扣减
pointsTools.batchDeductPoint("1",memberId,"");//会员详情扣减1积分
Thread.sleep(1000);
//核对积分帐户的积分的变化
int AfalreadyUsedBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].alreadyUsedBalance"));//已使用积分积分数
int AfleftBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("aftuse2--------"+AfalreadyUsedBalance2);
System.out.println("afleft2--------"+AfleftBalance2);
Assert.assertEquals(AfalreadyUsedBalance2,BealreadyUsedBalance+1);//断言已使用积分数+1
Assert.assertEquals(AfleftBalance2,AfleftBalance1-1);//断言剩余积分数-1
//核对积分记录
Thread.sleep(1000);
int after2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(""), "$.result.total"));
System.out.println("after2--------"+after2);
Assert.assertEquals(after2,after1+1);//断言积分记录+1条记录
String str1 = Integer.toString(AfleftBalance2);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "OUT_MANUAL_DEDUCT", "第一条记录非手动扣减记录");//断言列表第一条手动扣减积分的记录
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].accountLeftBalance"), str1, "积分记录明细中,剩余积分和积分帐户对不上");//断言积分记录中的剩余积分
//品牌操作批量清零
pointsTools.batchClearPoint(memberId,"");
Thread.sleep(1000);
int AfleftBalance3 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission("",memberId), "$.result.records[0].leftBalance"));//剩余积分数
Assert.assertEquals(AfleftBalance3,0);//断言剩余积分数等于0
//品牌积分导出
pointsTools.exportAccount("");//积分帐户导出
pointsTools.pageStudioExportRecord("");//查看导出记录
Thread.sleep(2000);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].workflowName"), "导出会员积分账户", "未生成导出会员积分账户记录");//断言有导出记录
pointsTools.exportStatement("");//积分记录导出
pointsTools.pageStudioExportRecord("");//查看导出记录
Thread.sleep(2000);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].workflowName"), "导出会员积分记录", "未生成导出会员积分记录");//断言有导出记录
}
}
package com.xiaomai.cases.polar.points;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.coupon.CouponTools;
import com.xiaomai.cases.polar.export.ExportTool;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
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 TestFindAccountPagePermission extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_findAccountPagePermission")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Resource(name = "pointsTools")
PointsTools pointsTools;
@Resource(name = "tools")
Tools tools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Test(description = "场馆手动-积分")
public void testFindAccountPagePermission() throws InterruptedException {
String phone = "13357537209";
String memberId = trainingTools.searchTargerMember(phone);
if (memberId.isEmpty()) {
memberId = tools.create("杨剑积分", phone).getString("result");
}
//获取场馆初始会员的发放积分数、已使用积分数、剩余积分数
int BetotalAwardBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].totalAwardBalance"));//发放积分数
int BealreadyUsedBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].alreadyUsedBalance"));//已用积分数
int BeleftBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("betotal--------"+BetotalAwardBalance);
System.out.println("beuse--------"+BealreadyUsedBalance);
System.out.println("beleft--------"+BeleftBalance);
int before = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(xmAppApi.getLoginInfo().getStudioId()), "$.result.total"));//积分记录列表总条数
System.out.println("before--------"+before);
pointsTools.manualAwardPoint("1",memberId);//会员详情增加1积分
Thread.sleep(1000);
//核对积分帐户的积分的变化
int AftotalAwardBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].totalAwardBalance"));//发放积分数
int AfleftBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("aftotal1--------"+AftotalAwardBalance1);
System.out.println("afleft1--------"+AfleftBalance1);
Assert.assertEquals(AftotalAwardBalance1,BetotalAwardBalance+1);//断言发放积分数+1
Assert.assertEquals(AfleftBalance1,BeleftBalance+1);//断言剩余积分数+1
//核对积分记录
int after1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(xmAppApi.getLoginInfo().getStudioId()), "$.result.total"));
System.out.println("after1--------"+after1);
Assert.assertEquals(after1,before+1);//断言积分记录+1条记录
String str = Integer.toString(AfleftBalance1);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "IN_MANUAL_GIVE", "第一条记录非手动增加记录");//断言列表第一条手动增加积分的记录
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].accountLeftBalance"), str, "积分记录明细中,剩余积分和积分帐户对不上");//断言积分记录中的剩余积分
pointsTools.manualDeductPoint("1",memberId);//会员详情扣减1积分
Thread.sleep(1000);
//核对积分帐户的积分的变化
int AfalreadyUsedBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].alreadyUsedBalance"));//已使用积分积分数
int AfleftBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(),memberId), "$.result.records[0].leftBalance"));//剩余积分数
System.out.println("aftuse2--------"+AfalreadyUsedBalance2);
System.out.println("afleft2--------"+AfleftBalance2);
Assert.assertEquals(AfalreadyUsedBalance2,BealreadyUsedBalance+1);//断言已使用积分数+1
Assert.assertEquals(AfleftBalance2,AfleftBalance1-1);//断言剩余积分数-1
//核对积分记录
int after2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findStatementPagePermission(xmAppApi.getLoginInfo().getStudioId()), "$.result.total"));
System.out.println("after2--------"+after2);
Assert.assertEquals(after2,after1+1);//断言积分记录+1条记录
String str1 = Integer.toString(AfleftBalance2);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "OUT_MANUAL_DEDUCT", "第一条记录非手动扣减记录");//断言列表第一条手动扣减积分的记录
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].accountLeftBalance"), str1, "积分记录明细中,剩余积分和积分帐户对不上");//断言积分记录中的剩余积分
}
}
package com.xiaomai.cases.polar.points;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
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 TestPointsRule extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_memberPoint_saveRule")
.setLoginUser(LoginAccount.YJ_PROD_ALL)
.setTerminal(Terminal.B);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Resource(name = "pointsTools")
PointsTools pointsTools;
@Test(description = "积分规则编辑/保存")//新开场馆和品牌
public void testMemberPoint_saveRule(){
//pointsTools.memberPoint_saveRule("");
//pointsTools.memberPoint_saveRule("");
//pointsTools.memberPoint_findRule(xmAppApi.getLoginInfo().getStudioId());
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.enableMemberPoint"), "YES", "积分规则未开启");
}
}
......@@ -13,6 +13,8 @@ import com.xiaomai.utils.XMJSONPath;
import org.springframework.stereotype.Component;
import org.testng.Assert;
import java.math.BigDecimal;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.setting.venue
......@@ -1030,4 +1032,51 @@ public class VenueAreaTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON, dataparams, object.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序场地预约非0元
* @param startMinute 开始时间
* @param endMinute 结束时间
* @param suiteId 场地组id
* @param groupId 场地id
* @param memberId 会员id
* @param reserveDay 预约日期
* @param userInfos
* @return
*/
public String purchaseAreaTimes1(String startMinute, String endMinute, BigDecimal price, String suiteId, String groupId,
String memberId, String receivableAmount, String reserveDay, String venueAreaId,String depositAmount,String depositCardId, 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",price);
areaTimeInfos.add(areaTime);
//构建请求参数
JSONObject object = new JSONObject();
object.put("areaTimeInfos", areaTimeInfos);
object.put("depositAmount", depositAmount);
object.put("depositCardId", depositCardId);
object.put("groupId", groupId);//场地id
object.put("memberId", memberId);
object.put("memo", "自动化脚本创建的场地预约");
object.put("objectId", RandomStringUtil.randomString(16));
object.put("receivableAmount", receivableAmount);
object.put("reserveDay", reserveDay);
object.put("studioId", dataApi.getLoginInfo().getStudioId());
object.put("suiteId", suiteId);//场地组id
object.put("venueAreaId", venueAreaId);
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");
}
}
......@@ -34,6 +34,7 @@ public class ApiModule {
public static String Polar_Invitation = "polar_invitation";
public static String Polar_Registration = "polar_registration";//活动报名
public static String Polar_Charts = "polar_charts";//会员排行榜-B
public static String Polar_Points = "polar_points";//会员积分
public static String Polar_MemberEntry="polar_memberEntry";//入场
public static String Polar_Export="polar_export";//导出
......@@ -55,6 +56,7 @@ public class ApiModule {
public static String Lunar_Goods="lunar_goods";//物品
public static String Lunar_Registration = "lunar_registration";//活动报名
public static String Lunar_Charts = "lunar_charts";//会员排行榜-小程序
public static String Lunar_Points = "lunar_points";//会员积分
public static String Lunar_Invitation = "lunar_invitation";
......
......@@ -25,5 +25,7 @@ public class LoginAccount {
public static String YFF_RC="yff_rc";
public static String YFF_GRAY="yff_gray";//芳芳场馆
public static String YJ_PROD="yj_prod";//杨剑场馆
public static String YJ_PROD_ALL="yj_prod_all";//杨剑场馆
}
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