Commit 3b92e986 by xyy

Merge remote-tracking branch 'origin/master'

parents 82eda54c 465be28e
......@@ -67,7 +67,7 @@ public class TestPurchaseCampByDeposit extends BaseTestImpl {
@Test(description = "使用储值卡抵扣购买存量的训练营")
public void testPurchaseCampByDeposit() {
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营A:999.99元
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营B:999.99元
//购买充0送1000的储值卡
//获取的微信用户
......@@ -108,8 +108,8 @@ public class TestPurchaseCampByDeposit extends BaseTestImpl {
// 获取存量训练营活动
String id = trainTools.getAppliableCampList("杭州自动化测试训练营A").getJSONObject(0).getString("id");
BigDecimal price = new BigDecimal(trainTools.getAppliableCampList("杭州自动化测试训练营A").getJSONObject(0).getString("price"));
String id = trainTools.getAppliableCampList("杭州自动化测试训练营B").getJSONObject(0).getString("id");
BigDecimal price = new BigDecimal(trainTools.getAppliableCampList("杭州自动化测试训练营B").getJSONObject(0).getString("price"));
JSONObject body = new JSONObject();
......
......@@ -165,4 +165,37 @@ public class FinanceDataTools extends XMBaseTest {
return response;
}
/**
* @param
* @description:获取数据中心-财务数据-营收明细-商品类型
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param sort:CONFIRMED_AMOUNT_DESC 确认收入从大到小 CONFIRMED_AMOUNT_ASC 确认收入从小到大 LEFT_AMOUNT_DESC 待消耗金额从大到小 LEFT_AMOUNT_ASC 待消耗金额从小到大
* @author: yangfangfang
**/
public JSONObject getCommodityTypeCostDetail(String dateType,String sort,long startTime, long endTime, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_getCommodityTypeCostDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject getCostData=new JSONObject();
getCostData.put("dateType",dateType);
getCostData.put("endTime",endTime);
getCostData.put("startTime",startTime);
getCostData.put("sort",sort);
getCostData.put("brandId",xmAppApi.getLoginInfo().getBrandId());
getCostData.put("studioId",xmAppApi.getLoginInfo().getStudioId());
getCostData.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, getCostData.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.data.financeData;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
......@@ -182,6 +183,57 @@ public class TestGetCostData extends XMBaseTest {
BigDecimal afterConfirmedAmount1=new BigDecimal(afterGetCostData1.getJSONObject("result").getString("confirmedAmount"));//确认收入
BigDecimal afterLeftAmount1=new BigDecimal(afterGetCostData1.getJSONObject("result").getString("leftAmount"));//待消耗金额
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//根据商品类型全部加起来的确认收入查全部(覆盖一下商品类型的新接口)
JSONObject getCommodityTypeCostDetail=financeDataTools.getCommodityTypeCostDetail("DAY","LEFT_AMOUNT_DESC",TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
int getCommodityTypeCostDetail_total=Integer.parseInt(getCommodityTypeCostDetail.getJSONObject("result").getString("total"));
Assert.assertEquals(getCommodityTypeCostDetail_total,9,"获取商品类型不是9个");
JSONObject getCommodityTypeCostDetail_result=getCommodityTypeCostDetail.getJSONObject("result");
//确认收入
BigDecimal confirmedAmount1=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(0).getString("confirmedAmount"));
BigDecimal confirmedAmount2=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(1).getString("confirmedAmount"));
BigDecimal confirmedAmount3=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(2).getString("confirmedAmount"));
BigDecimal confirmedAmount4=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(3).getString("confirmedAmount"));
BigDecimal confirmedAmount5=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(4).getString("confirmedAmount"));
BigDecimal confirmedAmount6=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(5).getString("confirmedAmount"));
BigDecimal confirmedAmount7=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(6).getString("confirmedAmount"));
BigDecimal confirmedAmount8=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(7).getString("confirmedAmount"));
BigDecimal confirmedAmount9=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(8).getString("confirmedAmount"));
// //待消耗金额--之前有脏数据,不好订正就不校验待消耗金额了
// BigDecimal leftAmount1=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(0).getString("leftAmount"));
// BigDecimal leftAmount2=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(1).getString("leftAmount"));
// BigDecimal leftAmount3=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(2).getString("leftAmount"));
// BigDecimal leftAmount4=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(3).getString("leftAmount"));
// BigDecimal leftAmount5=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(4).getString("leftAmount"));
// BigDecimal leftAmount6=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(5).getString("leftAmount"));
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验所有商品类型的确认收入加起来=全部的确认收入
Assert.assertEquals(confirmedAmount1.setScale(2, RoundingMode.HALF_UP).add(confirmedAmount2.setScale(2, RoundingMode.HALF_UP)).add(confirmedAmount3.setScale(2, RoundingMode.HALF_UP))
.add(confirmedAmount4.setScale(2, RoundingMode.HALF_UP)).add(confirmedAmount5.setScale(2, RoundingMode.HALF_UP))
.add(confirmedAmount6.setScale(2, RoundingMode.HALF_UP)).add(confirmedAmount7.setScale(2, RoundingMode.HALF_UP))
.add(confirmedAmount8.setScale(2, RoundingMode.HALF_UP)).add(confirmedAmount9.setScale(2, RoundingMode.HALF_UP)),afterConfirmedAmount1,"营收明细所有商品类型的确认收入加起来不等于营收数据全部的确认收入");
// //校验所有商品类型的待消耗金额加起来=全部的待消耗金额
// Assert.assertEquals(leftAmount1.setScale(2, RoundingMode.HALF_UP).add(leftAmount2.setScale(2, RoundingMode.HALF_UP)).add(leftAmount3.setScale(2, RoundingMode.HALF_UP))
// .add(leftAmount4.setScale(2, RoundingMode.HALF_UP)).add(leftAmount5.setScale(2, RoundingMode.HALF_UP))
// .add(leftAmount6.setScale(2, RoundingMode.HALF_UP)),afterLeftAmount1,"所有商品类型的待消耗金额加起来不等于全部的待消耗金额");
//再查一下当前营收数据-会员卡
JSONObject afterGetCostDataMember_card1=financeDataTools.getCostData_type("DAY","MEMBER_CARD",TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal afterConfirmedAmountMember_card1=new BigDecimal(afterGetCostDataMember_card1.getJSONObject("result").getString("confirmedAmount"));//确认收入
......
......@@ -249,7 +249,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert.assertEquals(disRefundInventory,refundInventory-1,"B端作废退货退款订单后,物品库存数应减少1个");
try {
Thread.sleep(5000);
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -289,7 +289,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert.assertEquals(disSignInventory,disRefundInventory+1,"B端作废购买订单后,物品库存数应增加1个");
try {
Thread.sleep(8000);
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......
......@@ -70,7 +70,7 @@ public class TestRefundGoods extends XMBaseTest {
info.setLoginUser(LoginAccount.GYM_MINIAPPC);
try {
Thread.sleep(3000);
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -90,7 +90,7 @@ public class TestRefundGoods extends XMBaseTest {
int beforeInventory=Integer.parseInt(getDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
try {
Thread.sleep(3000);
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -131,7 +131,7 @@ public class TestRefundGoods extends XMBaseTest {
int refundBeforeInventory = Integer.parseInt(lastGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
try {
Thread.sleep(5000);
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -155,10 +155,15 @@ public class TestRefundGoods extends XMBaseTest {
String voucherItemId=getLeftGoodsItem.getJSONObject("result").getString("id");
BigDecimal receivableAmount=new BigDecimal(getLeftGoodsItem.getJSONObject("result").getString("leftConsumeAmount"));
BigDecimal amount=new BigDecimal(getLeftGoodsItem.getJSONObject("result").getString("leftConsumeAmount"));
String voucherId=getLeftGoodsItem.getJSONObject("result").getString("voucherId");
String ownerName=adminTools.getStudioAdmin(xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("nickName");
Boolean success=Boolean.parseBoolean(orderTools.checkRefundableAmount(voucherId, amount.floatValue()).getString("success"));
if (success==true){
//退货退款物品
JSONObject refundGoods=goodTools.refundGoods(xmAppApi.getLoginInfo().getAdminId(),ownerName,quantity,refundAmount,true,voucherItemId,memberId,receivableAmount,amount,"1",new BigDecimal("0.00"),new BigDecimal("0.00"),"",0,amount,amount);
String refundOrderId1=refundGoods.getString("result");
......@@ -177,7 +182,7 @@ public class TestRefundGoods extends XMBaseTest {
Assert.assertEquals(refundAfterInventory,refundBeforeInventory+1,"退货退款成功后,库存数应+1");
try {
Thread.sleep(5000);
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -208,7 +213,7 @@ public class TestRefundGoods extends XMBaseTest {
Assert.assertEquals(discardRefundAfterInventory,refundAfterInventory-1,"作废退货退款订单成功后,库存数应-1");
try {
Thread.sleep(5000);
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -233,98 +238,98 @@ public class TestRefundGoods extends XMBaseTest {
String voucherItemId_onlyAmount=getLeftGoodsItem_onlyAmount.getJSONObject("result").getString("id");
BigDecimal receivableAmount_onlyAmount=new BigDecimal(getLeftGoodsItem_onlyAmount.getJSONObject("result").getString("leftConsumeAmount"));
BigDecimal amount_onlyAmount=new BigDecimal(getLeftGoodsItem_onlyAmount.getJSONObject("result").getString("leftConsumeAmount"));
String voucherId1=getLeftGoodsItem.getJSONObject("result").getString("voucherId");
Boolean success1=Boolean.parseBoolean(orderTools.checkRefundableAmount(voucherId1, amount_onlyAmount.floatValue()).getString("success"));
//仅退款物品
JSONObject refundGoods_onlyAmount=goodTools.refundGoods(xmAppApi.getLoginInfo().getAdminId(),ownerName,quantity_onlyAmount,refundAmount_onlyAmount,false,voucherItemId_onlyAmount,memberId,receivableAmount_onlyAmount,amount_onlyAmount,"1",new BigDecimal("0.00"),new BigDecimal("0.00"),"",0,amount_onlyAmount,amount_onlyAmount);
String refundOrderId2_onlyAmount=refundGoods_onlyAmount.getString("result");
if (success1==true) {
//仅退款物品
JSONObject refundGoods_onlyAmount = goodTools.refundGoods(xmAppApi.getLoginInfo().getAdminId(), ownerName, quantity_onlyAmount, refundAmount_onlyAmount, false, voucherItemId_onlyAmount, memberId, receivableAmount_onlyAmount, amount_onlyAmount, "1", new BigDecimal("0.00"), new BigDecimal("0.00"), "", 0, amount_onlyAmount, amount_onlyAmount);
String refundOrderId2_onlyAmount = refundGoods_onlyAmount.getString("result");
//校验:
//校验1:获取B端订单详情:退单已完成状态
JSONObject getDetailResult_refund_onlyAmount = orderTools.getDetail(refundOrderId2_onlyAmount);
String state_refund_onlyAmount = getDetailResult_refund_onlyAmount.getJSONObject("result").getString("state");
Assert.assertEquals(state_refund_onlyAmount, "PAID", "B端退货退款成功后退单订单状态变为已完成");
//校验:
//校验1:获取B端订单详情:退单已完成状态
JSONObject getDetailResult_refund_onlyAmount = orderTools.getDetail(refundOrderId2_onlyAmount);
String state_refund_onlyAmount = getDetailResult_refund_onlyAmount.getJSONObject("result").getString("state");
Assert.assertEquals(state_refund_onlyAmount, "PAID", "B端退货退款成功后退单订单状态变为已完成");
//校验2:商品详情库存数不变
JSONObject refundAfterGetDetail_goods_onlyAmount = goodTools.getDetail_goods(goodsId1);
int refundAfterInventory_onlyAmount = Integer.parseInt(refundAfterGetDetail_goods_onlyAmount.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(refundAfterInventory_onlyAmount,discardRefundAfterInventory,"仅退款成功后,库存数应不变");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject refundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal refundAfterConfirmedAmount_onlyAmount = new BigDecimal(refundAfterGetCostData_type_onlyAmount.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(refundAfterConfirmedAmount_onlyAmount,discardRefundAfterConfirmedAmount.subtract(refundAmount_onlyAmount.setScale(2, RoundingMode.HALF_UP)),"仅退款成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额");
//校验2:商品详情库存数不变
JSONObject refundAfterGetDetail_goods_onlyAmount = goodTools.getDetail_goods(goodsId1);
int refundAfterInventory_onlyAmount = Integer.parseInt(refundAfterGetDetail_goods_onlyAmount.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(refundAfterInventory_onlyAmount, discardRefundAfterInventory, "仅退款成功后,库存数应不变");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject refundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal refundAfterConfirmedAmount_onlyAmount = new BigDecimal(refundAfterGetCostData_type_onlyAmount.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(refundAfterConfirmedAmount_onlyAmount, discardRefundAfterConfirmedAmount.subtract(refundAmount_onlyAmount.setScale(2, RoundingMode.HALF_UP)), "仅退款成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额");
//case5:作废仅退款订单
//case5:作废仅退款订单
JSONObject discardRefundOrder_onlyAmount=orderTools.discard(refundOrderId2_onlyAmount, "重复录入", "已作废物品仅退款订单" + RandomStringUtil.randomString(10));
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject getDetailResult_discardRefund_onlyAmount = orderTools.getDetail(refundOrderId2_onlyAmount);
String state_discardRefund_onlyAmount = getDetailResult_discardRefund_onlyAmount.getJSONObject("result").getString("state");
Assert.assertEquals(state_discardRefund_onlyAmount, "DISCARD", "B端作废仅退款订单后,订单状态由已完成变为已作废");
JSONObject discardRefundOrder_onlyAmount = orderTools.discard(refundOrderId2_onlyAmount, "重复录入", "已作废物品仅退款订单" + RandomStringUtil.randomString(10));
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject getDetailResult_discardRefund_onlyAmount = orderTools.getDetail(refundOrderId2_onlyAmount);
String state_discardRefund_onlyAmount = getDetailResult_discardRefund_onlyAmount.getJSONObject("result").getString("state");
Assert.assertEquals(state_discardRefund_onlyAmount, "DISCARD", "B端作废仅退款订单后,订单状态由已完成变为已作废");
//校验2:商品详情库存数不变
JSONObject discardRefundAfterGetDetail_goods_onlyAmount = goodTools.getDetail_goods(goodsId1);
int discardRefundAfterInventory_onlyAmount = Integer.parseInt(discardRefundAfterGetDetail_goods_onlyAmount.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(discardRefundAfterInventory_onlyAmount,refundAfterInventory_onlyAmount,"作废仅退款订单成功后,库存数应不变");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验2:商品详情库存数不变
JSONObject discardRefundAfterGetDetail_goods_onlyAmount = goodTools.getDetail_goods(goodsId1);
int discardRefundAfterInventory_onlyAmount = Integer.parseInt(discardRefundAfterGetDetail_goods_onlyAmount.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(discardRefundAfterInventory_onlyAmount, refundAfterInventory_onlyAmount, "作废仅退款订单成功后,库存数应不变");
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject discardRefundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal discardRefundAfterConfirmedAmount_onlyAmount = new BigDecimal(discardRefundAfterGetCostData_type_onlyAmount.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(discardRefundAfterConfirmedAmount_onlyAmount,refundAfterConfirmedAmount_onlyAmount.add(refundAmount_onlyAmount.setScale(2, RoundingMode.HALF_UP)),"作废仅退款订单成功后,数据中心-财务中心-营收明细-物品的确认收入应增加对应的金额");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject discardRefundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal discardRefundAfterConfirmedAmount_onlyAmount = new BigDecimal(discardRefundAfterGetCostData_type_onlyAmount.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(discardRefundAfterConfirmedAmount_onlyAmount, refundAfterConfirmedAmount_onlyAmount.add(refundAmount_onlyAmount.setScale(2, RoundingMode.HALF_UP)), "作废仅退款订单成功后,数据中心-财务中心-营收明细-物品的确认收入应增加对应的金额");
//case6:作废购买订单
//case6:作废购买订单
JSONObject discardSignOrder = orderTools.discard(signOrderId1, "重复录入", "已作废物品购买订单" + RandomStringUtil.randomString(10));
JSONObject discardSignOrder=orderTools.discard(signOrderId1, "重复录入", "已作废物品购买订单" + RandomStringUtil.randomString(10));
//校验:
//校验1:获取B端订单详情:购买订单已作废状态
JSONObject getDetailResult_discardSign = orderTools.getDetail(signOrderId1);
String state_discardRefund_discardSign = getDetailResult_discardSign.getJSONObject("result").getString("state");
Assert.assertEquals(state_discardRefund_discardSign, "DISCARD", "B端作废购买订单后,签单订单状态由已完成变为已作废");
//校验:
//校验1:获取B端订单详情:购买订单已作废状态
JSONObject getDetailResult_discardSign = orderTools.getDetail(signOrderId1);
String state_discardRefund_discardSign = getDetailResult_discardSign.getJSONObject("result").getString("state");
Assert.assertEquals(state_discardRefund_discardSign, "DISCARD", "B端作废购买订单后,签单订单状态由已完成变为已作废");
//校验2:商品详情库存数+1
JSONObject discardSignAfterGetDetail_goods = goodTools.getDetail_goods(goodsId1);
int discardSignAfterInventory = Integer.parseInt(discardSignAfterGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(discardSignAfterInventory, discardRefundAfterInventory_onlyAmount + 1, "作废购买订单成功后,库存数应+1");
//校验2:商品详情库存数+1
JSONObject discardSignAfterGetDetail_goods = goodTools.getDetail_goods(goodsId1);
int discardSignAfterInventory = Integer.parseInt(discardSignAfterGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(discardSignAfterInventory,discardRefundAfterInventory_onlyAmount+1,"作废购买订单成功后,库存数应+1");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject discardSignAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal discardSignAfterConfirmedAmount = new BigDecimal(discardSignAfterGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(discardSignAfterConfirmedAmount, discardRefundAfterConfirmedAmount_onlyAmount.subtract(unpaidAmount.setScale(2, RoundingMode.HALF_UP)), "作废购买订单成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额");
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject discardSignAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal discardSignAfterConfirmedAmount = new BigDecimal(discardSignAfterGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(discardSignAfterConfirmedAmount,discardRefundAfterConfirmedAmount_onlyAmount.subtract(unpaidAmount.setScale(2, RoundingMode.HALF_UP)),"作废购买订单成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额");
}
}
......
......@@ -910,6 +910,30 @@ public class ReserveTools extends XMBaseTest {
}
/**
* @description: 撤销签到
* @author: yj
* @date: 2025/3/06 17:17
* @param reserveId 预约记录id
* @return: com.alibaba.fastjson.JSONArray
**/
public void memberReserve_discardSignIn(String reserveId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Reserve)
.setApiName("API_memberReserve_discardSignIn")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("reserveId",reserveId);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
}
......
......@@ -98,7 +98,7 @@ public class TestBatchReserveGroup extends BaseTestImpl {
//因为是存量排好团课的数据去批量预约的,存量数据需要提前做的是:
//创建一个课程:批量预约团课课程-禁用 必须是30分钟;创建两个会员:批量约团课会员1和批量约团课会员2;排好团课,用上述的课程排好一年的数据;人数上限必须是60(下面的筛选是59人以上,不是60会筛不出来的),时间必须是00.00-00.30,上课星期是:周一~周日;教练是:f
//注意:只能排一年的,只排到了来年2025-04-01的,后面记得重新排团课
//注意:只能排一年的,只排到了来年2025-10-02的,后面记得重新排团课
//注意:reserveMemberNum和planCheckBalance必须是1,超出太多会不够扣除,后面的校验也对不上
......
package com.xiaomai.cases.polar.reserve.group;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.clue.MemberTools;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.cases.polar.reserve.ReserveTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Random;
public class TestMemberReserveDiscardSignIn extends XMBaseTest {
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "reserveTools")
ReserveTools reserveTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
MemberTools memberTools = new MemberTools();
OrderTools orderTools = new OrderTools();
CardTools cardTools = new CardTools();
Tools tools = new Tools();
String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(-1);
Long scheduleEndTime = TimeUtils.getTodayEndTime(-1);
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Reserve)
.setApiName("API_memberReserve_discardSignIn")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "撤销签到")
public void testMemberReserveDiscardSignIn(){
String reserveId="1904005941288620033";
reserveTools.signIn(true,reserveId,false);//签到
reserveTools.getDetailById(reserveId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.signInState"), "SIGNED", "签到失败");//断言目标签到成功
reserveTools.memberReserve_discardSignIn(reserveId);//撤销签到
reserveTools.getDetailById(reserveId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.signInState"), "UN_SIGNED", "撤销签到失败");//断言目标预约记录未签到
}
}
......@@ -54,7 +54,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
@Test(description = "使用储值卡抵扣购买存量的训练营")
public void testSignCampOrderByDeposit(){
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营A:999.99元
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营B:999.99元
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
......@@ -97,7 +97,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
// 获取存量训练营活动
JSONObject fetchAppliableCampList = trainingTools.fetchAppliableCampList("杭州自动化测试训练营A");
JSONObject fetchAppliableCampList = trainingTools.fetchAppliableCampList("杭州自动化测试训练营B");
String id=fetchAppliableCampList.getJSONArray("result").getJSONObject(0).getString("id");
BigDecimal price = new BigDecimal(fetchAppliableCampList.getJSONArray("result").getJSONObject(0).getString("price"));
......@@ -141,7 +141,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
String title=fetchUserCardListResult.getJSONObject(0).getString("title");
Assert.assertEquals(fetchUserCardListResult.size()>0,true,"使用储值卡购买训练营成功后,已购训练营列表数据小于1");
Assert.assertEquals(title,"杭州自动化测试训练营A","已购训练营名称和购买的训练营名称非同一个");
Assert.assertEquals(title,"杭州自动化测试训练营B","已购训练营名称和购买的训练营名称非同一个");
//check 3:校验储值卡消耗列表增加签单类型的消耗记录,以及签单消耗记录的剩余金额=储值卡剩余金额-购买的训练营金额
......
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