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());
......
......@@ -89,11 +89,6 @@ public class TestRefundGoods extends XMBaseTest {
BigDecimal price=new BigDecimal(getDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("price"));
int beforeInventory=Integer.parseInt(getDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).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());
......@@ -107,6 +102,13 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject purchaseGoods = goodCTools.purchaseGoods("0.00", null, memberId, "", String.valueOf(price), id, price, 1, info);
String signOrderId1 = purchaseGoods.getJSONObject("result").getString("id");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
......@@ -130,11 +132,6 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject lastGetDetail_goods = goodTools.getDetail_goods(goodsId1);
int refundBeforeInventory = Integer.parseInt(lastGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject refundBeforeGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -148,6 +145,9 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject listLeftGoodsItem=goodTools.listLeftGoodsItem(memberId);
String refundId=listLeftGoodsItem.getJSONArray("result").getJSONObject(0).getString("id");
//B端退单时获取订单可退物品(退单界面)
JSONObject getLeftGoodsItem=goodTools.getLeftGoodsItem(refundId);
int quantity=Integer.parseInt(getLeftGoodsItem.getJSONObject("result").getString("leftQuantity"));
......@@ -168,6 +168,13 @@ public class TestRefundGoods extends XMBaseTest {
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");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
JSONObject getDetailResult_refund = orderTools.getDetail(refundOrderId1);
......@@ -180,13 +187,8 @@ public class TestRefundGoods extends XMBaseTest {
int refundAfterInventory = Integer.parseInt(refundAfterGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(refundAfterInventory,refundBeforeInventory+1,"退货退款成功后,库存数应+1");
try {
Thread.sleep(25000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject refundAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
BigDecimal refundAfterConfirmedAmount = new BigDecimal(refundAfterGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(refundAfterConfirmedAmount,refundBeforeConfirmedAmount.subtract(refundAmount.setScale(2, RoundingMode.HALF_UP)),"退货退款成功后,数据中心-财务中心-营收明细-物品的确认收入应减少对应的金额");
......@@ -199,6 +201,12 @@ public class TestRefundGoods 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);
......@@ -211,11 +219,6 @@ public class TestRefundGoods extends XMBaseTest {
int discardRefundAfterInventory = Integer.parseInt(discardRefundAfterGetDetail_goods.getJSONObject("result").getJSONObject("multiSpecInfo").getJSONArray("specCombinationList").getJSONObject(0).getString("inventory"));
Assert.assertEquals(discardRefundAfterInventory,refundAfterInventory-1,"作废退货退款订单成功后,库存数应-1");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject discardRefundAfterGetCostData_type = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -246,6 +249,12 @@ public class TestRefundGoods extends XMBaseTest {
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");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:退单已完成状态
......@@ -259,11 +268,6 @@ public class TestRefundGoods extends XMBaseTest {
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(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject refundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -276,6 +280,12 @@ public class TestRefundGoods extends XMBaseTest {
JSONObject discardRefundOrder_onlyAmount = orderTools.discard(refundOrderId2_onlyAmount, "重复录入", "已作废物品仅退款订单" + RandomStringUtil.randomString(10));
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//校验:
//校验1:获取B端订单详情:退单已作废状态
JSONObject getDetailResult_discardRefund_onlyAmount = orderTools.getDetail(refundOrderId2_onlyAmount);
......@@ -288,11 +298,6 @@ public class TestRefundGoods extends XMBaseTest {
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(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应增加
JSONObject discardRefundAfterGetCostData_type_onlyAmount = financeDataTools.getCostData_type("DAY", "GOODS", TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime());
......@@ -305,6 +310,12 @@ public class TestRefundGoods 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);
......@@ -317,11 +328,6 @@ public class TestRefundGoods extends XMBaseTest {
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(20000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:数据中心-财务中心-营收明细-物品的确认收入应减少
JSONObject discardSignAfterGetCostData_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.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;
import java.util.ArrayList;
import java.util.List;
@Component("pointsTools")//B端会员积分工具类
public class PointsTools extends XMBaseTest {
public void setUp(String name, DataUserInfo...dataUserInfo) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName(name)
.setTerminal(Terminal.B);//这个到时候要改
}
/**
* @param
* @description:会员积分帐户列表
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject findAccountPagePermission(String studioId,String memberId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_findAccountPagePermission")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
List<String> memberIds = new ArrayList<>();
memberIds.add(memberId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("gtTotalAwardBalance", 0);
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("sort", "TOTAL_AWARD_BALANCE_DESC");
if (!studioId.equals("")){
jsonObject.put("studioId", studioId);//传studioId则为场馆操作;不传则为品牌操作
}
if (!memberId.equals("")){
jsonObject.put("memberIds", memberIds);//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:积分记录列表
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject findStatementPagePermission(String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_findStatementPagePermission")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("startCreated", null);
jsonObject.put("endCreated", null);
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:积分帐户导出
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject exportAccount(String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_exportAccount")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("gtTotalAwardBalance", 0);
jsonObject.put("sort", "TOTAL_AWARD_BALANCE_DESC");
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:积分记录导出
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject exportStatement(String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_exportStatement")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:获取积分规则
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject memberPoint_findRule(String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_memberPoint_findRule")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:保存积分规则
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
**/
public JSONObject memberPoint_saveRule(String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_memberPoint_saveRule")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
String description ="{\"items\":[{\"content\":\"自动化规则说明\",\"type\":\"TEXT\",\"aspect\":\"\"}]}";
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("ruleType", "BIND_WECHAT");//绑定公众号
jsonObject1.put("state","YES");
jsonObject1.put("fixedPointAmount", "19");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("ruleType", "CHECK_IN_GROUP_CLASS");//团课签到
jsonObject2.put("state","YES");
jsonObject2.put("fixedPointAmount", "1");//1积分
jsonObject2.put("fixedPointLimitPerDay", "100");//上限
JSONObject jsonObject3 = new JSONObject();
jsonObject3.put("ruleType", "CHECK_IN_PRIVATE_CLASS");//私教课签到
jsonObject3.put("state","YES");
jsonObject3.put("fixedPointAmount", "2");//2积分
jsonObject3.put("fixedPointLimitPerDay", "100");//上限
JSONObject jsonObject4 = new JSONObject();
jsonObject4.put("ruleType", "CHECK_IN_TRAINING_CAMP");//训练营签到
jsonObject4.put("state","YES");
jsonObject4.put("fixedPointAmount", "3");//3积分
jsonObject4.put("fixedPointLimitPerDay", "100");//上限
JSONObject jsonObject5 = new JSONObject();
jsonObject5.put("ruleType", "CHECK_IN_VENUE_ENTRY");//入场签到
jsonObject5.put("state","YES");
jsonObject5.put("fixedPointAmount", "4");//4积分
jsonObject5.put("fixedPointLimitPerDay", "100");//上限
JSONObject jsonObject6 = new JSONObject();
jsonObject6.put("ruleType", "CHECK_IN_VENUE_RESERVE");//约场签到
jsonObject6.put("state","YES");
jsonObject6.put("fixedPointAmount", "5");//5积分
jsonObject6.put("fixedPointLimitPerDay", "100");//上限
JSONObject jsonObject7 = new JSONObject();
jsonObject7.put("ruleType", "SIGN_MEMBER_CARD");//会员卡实付满100,送6积分
jsonObject7.put("state","YES");
jsonObject7.put("accumulativePointAmount", "6");//6积分
jsonObject7.put("accumulativeBizAmount", "100");//满100
JSONObject jsonObject8 = new JSONObject();
jsonObject8.put("ruleType", "REFUND_MEMBER_CARD");//会员卡实退满100,扣7积分
jsonObject8.put("state","YES");
jsonObject8.put("accumulativeBizAmount", "7");//7积分
jsonObject8.put("accumulativePointAmount", "100");
JSONObject jsonObject9 = new JSONObject();
jsonObject9.put("ruleType", "SIGN_DEPOSIT_CARD");//训练营实付满100,送8积分
jsonObject9.put("state","YES");
jsonObject9.put("accumulativePointAmount", "8");//8积分
jsonObject9.put("accumulativeBizAmount", "100");//上限
JSONObject jsonObject10 = new JSONObject();
jsonObject10.put("ruleType", "REFUND_TRAINING_CAMP");//训练营实退满100
jsonObject10.put("state","YES");
jsonObject10.put("accumulativePointAmount", "9");
jsonObject10.put("accumulativeBizAmount", "100");
JSONObject jsonObject11 = new JSONObject();
jsonObject11.put("ruleType", "SIGN_DEPOSIT_CARD");//储值卡实付款满100
jsonObject11.put("state","YES");
jsonObject11.put("accumulativePointAmount", "10");
jsonObject11.put("accumulativeBizAmount", "100");
JSONObject jsonObject12 = new JSONObject();
jsonObject12.put("ruleType", "CHECK_IN_TRAINING_CAMP");//储值卡实退款满100
jsonObject12.put("state","YES");
jsonObject12.put("accumulativePointAmount", "11");
jsonObject12.put("accumulativeBizAmount", "100");
JSONObject jsonObject13 = new JSONObject();
jsonObject13.put("ruleType", "SIGN_EXPERIENCE_CARD");//体验卡实付款满100
jsonObject13.put("state","YES");
jsonObject13.put("accumulativePointAmount", "12");
jsonObject13.put("accumulativeBizAmount", "100");
JSONObject jsonObject14 = new JSONObject();
jsonObject14.put("ruleType", "REFUND_EXPERIENCE_CARD");//体验卡实退款满100
jsonObject14.put("state","YES");
jsonObject14.put("accumulativePointAmount", "13");
jsonObject14.put("accumulativeBizAmount", "100");
JSONObject jsonObject15 = new JSONObject();
jsonObject15.put("ruleType", "SIGN_GOODS");//物品实付款满100
jsonObject15.put("state","YES");
jsonObject15.put("accumulativePointAmount", "14");
jsonObject15.put("accumulativeBizAmount", "100");
JSONObject jsonObject16 = new JSONObject();
jsonObject16.put("ruleType", "REFUND_GOODS");//物品实退款满100
jsonObject16.put("state","YES");
jsonObject16.put("accumulativePointAmount", "15");
jsonObject16.put("accumulativeBizAmount", "100");
JSONObject jsonObject17 = new JSONObject();
jsonObject17.put("ruleType", "SIGN_VENUE_RESERVE");//场地预约实付款满100
jsonObject17.put("state","YES");
jsonObject17.put("accumulativePointAmount", "16");
jsonObject17.put("accumulativeBizAmount", "100");
JSONObject jsonObject18 = new JSONObject();
jsonObject18.put("ruleType", "SIGN_SINGLE_RESERVE");//单次约课实付款满100
jsonObject18.put("state","YES");
jsonObject18.put("accumulativePointAmount", "17");
jsonObject18.put("accumulativeBizAmount", "100");
JSONObject jsonObject19 = new JSONObject();
jsonObject19.put("ruleType", "SIGN_ACTIVITY");//活动报名实付款满100
jsonObject19.put("state","YES");
jsonObject19.put("accumulativePointAmount", "18");
jsonObject19.put("accumulativeBizAmount", "100");
List<JSONObject> ruleItemList = new ArrayList<>();//规则数组
ruleItemList.add(jsonObject1);
ruleItemList.add(jsonObject2);
ruleItemList.add(jsonObject3);
ruleItemList.add(jsonObject4);
ruleItemList.add(jsonObject5);
ruleItemList.add(jsonObject6);
ruleItemList.add(jsonObject7);
ruleItemList.add(jsonObject8);
ruleItemList.add(jsonObject9);
ruleItemList.add(jsonObject10);
ruleItemList.add(jsonObject11);
ruleItemList.add(jsonObject12);
ruleItemList.add(jsonObject13);
ruleItemList.add(jsonObject14);
ruleItemList.add(jsonObject15);
ruleItemList.add(jsonObject16);
ruleItemList.add(jsonObject17);
ruleItemList.add(jsonObject18);
ruleItemList.add(jsonObject19);
JSONObject jsonObject = new JSONObject();
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("enableMemberPoint", "YES");//积分功能是否打开
jsonObject.put("memberPointName", "自动化积分");//积分名称
jsonObject.put("ruleItemList", ruleItemList);//积分规则
jsonObject.put("validPeriod", "-1");
jsonObject.put("description", description);
System.out.println("jsonObject----"+jsonObject);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:批量增加-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param amount 增加的积分数
* @param memberId 增加积分的会员
**/
public JSONObject batchAwardPoint(String amount,String memberId,String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_batchAwardPoint")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
List<String> memberIds = new ArrayList<>();
memberIds.add(memberId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("amount", amount);
jsonObject.put("memberIds", memberIds);
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("memo", "自动化积分批量增加");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:批量扣减-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param amount 扣减的积分数
* @param memberId 扣减积分的会员
**/
public JSONObject batchDeductPoint(String amount,String memberId,String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_batchDeductPoint")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
List<String> memberIds = new ArrayList<>();
memberIds.add(memberId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("amount", amount);
jsonObject.put("memberIds", memberIds);
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("memo", "自动化积分批量增扣减");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:批量清零-积分
* @author: yangjian
* @param studioId 场馆id不传则为品牌端操作
* @param memberId 扣减积分的会员
**/
public JSONObject batchClearPoint(String memberId,String studioId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_batchClearPoint")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
List<String> memberIds = new ArrayList<>();
memberIds.add(memberId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberIds", memberIds);
if (!studioId.equals("")){
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("memo", "自动化积分批量增清零");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员详情-增加积分
* @author: yangjian
* @param memberId 增加积分的会员
* @param amount 增加的积分数
**/
public JSONObject manualAwardPoint(String amount,String memberId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_manualAwardPoint")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("amount", amount);
jsonObject.put("memberId", memberId);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("memo", "自动化积分学员详情-增加积分");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员详情-扣减积分
* @author: yangjian
* @param memberId 扣减积分的会员
* @param amount 扣减的积分数
**/
public JSONObject manualDeductPoint(String amount,String memberId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_manualDeductPoint")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("amount", amount);
jsonObject.put("memberId", memberId);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("memo", "自动化积分学员详情-扣减积分");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
//导出记录列表-品牌
public JSONObject pageStudioExportRecord(String studioId, DataUserInfo...userInfos){
dataApi.setApiModule(ApiModule.Polar_Export)
.setApiName("API_pageStudioExportRecord")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("current",1);
object.put("size",20);
object.put("brandId",dataApi.getLoginInfo().getBrandId());
if (!studioId.equals("")){
object.put("studioId", dataApi.getLoginInfo().getStudioId());//传studioId则为场馆操作;不传则为品牌操作
}
object.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,dataparams,object.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
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.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.entry.EntryTool;
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.camp.CampScheduleTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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.*;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;
public class TestFindStatementPagePermission extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Points)
.setApiName("API_findStatementPagePermission")
.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 = "orderTools")
OrderTools orderTools;
String cardId;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "tools")
Tools tools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "reserveTools")
ReserveTools reserveTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools;
EntryTool entryTool = new EntryTool();
@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 BeleftBalance = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));
//创建会员卡
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("积分自动化会员卡", "MEMBER_CARD").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("积分自动化会员卡").getString("result");
}
JSONObject memberCard = orderTools.fetchPageOfMemberCard("积分会员卡", "MEMBER_CARD");
cardId = memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");//会员卡ID
//会员卡购买
BigDecimal quantity = new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONArray("benefitList").getJSONObject(0).getString("balance"));
float price = Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod = Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
String latestSnapshotId = orderTools.fetchDetailById(cardId, xmAppApi.getLoginInfo().getBrandId(), xmAppApi.getLoginInfo().getStudioId(), xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");//获取卡快照ID
orderTools.signOrder(cardId, latestSnapshotId, quantity, price, validPeriod, latestSnapshotId, 0, "PURCHASE", "MEMBER_CARD", memberId, price, price, "1", true);//会员购买订单,1元单
//核对购买会员卡后,积分数量对应上升
Thread.sleep(1000);
int afleftBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance1, BeleftBalance + 15);//断言增加规则的积分数,后需要改
//创建团课,预约对应团课,签到
String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(-1);
String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(-1);
String categoryId = courseCategoryTools.getCourseCategoryPage("积分");
String courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "自动化积分", categoryId, "STUDIO", "", 2, 1).getString(0);
// 创建排课
int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
Random random = new Random();
//1.1-创建排课日程(前一天的课程)
groupScheduleTools.createGroupRuleSchedule(courseId, xmAppApi.getLoginInfo().getAdminId(), todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), true, 1,minuteOffset[random.nextInt(20)]);
List<String> chiefCoachId = new ArrayList<>();
chiefCoachId.add("自动化昵称");
String chiefCoachIdS = groupScheduleTools.getStudioAdminId(chiefCoachId).get(0).toString();
JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, chiefCoachIdS);
String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId");
// 日程列表中新增一条刚创建的规则,匹配到对应的ruldId
Long goalRuld = result.toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count();
Assert.assertTrue(goalRuld == 1);
//查看今天的课表,获取刚创建的日程中对应的课次ID
groupScheduleTools.getGroupScheduleTable(Long.valueOf(todayStartTimeTamp),Long.valueOf(todayEndDateTimeTamp),courseId);
JSONArray array = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.timetableGroups");
String scheduleId = array.toJavaList(JSONObject.class).stream()
.flatMap(e -> e.getJSONArray("timetableList").toJavaList(JSONObject.class).stream())
.filter(e -> null != e.getString("ruleId"))
.filter(e ->e.getString("ruleId").equals(ruldId))
.map(e -> e.getString("scheduleId"))//获取scheduleId
.findFirst().orElse(null);
JSONObject getScheduleItemDetail = groupScheduleTools.getScheduleItemDetail(scheduleId);
long startTime = getScheduleItemDetail.getLongValue("startTime");
cardTools.listUserReservableBenefit("1937126076413669378", "GROUP_CLASS", "MEMBER", memberId, Long.parseLong(todayStartTimeTamp));
String benefitId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].benefitId");
String reserveId = reserveTools.addReserve("","", benefitId,xmAppApi.getLoginInfo().getAdminId(), memberId,1,scheduleId,startTime,true);
reserveTools.signIn(true,reserveId,false);//签到
//断言签到后,积分+10
Thread.sleep(1000);
int afleftBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance2, afleftBalance1 + 10);//断言增加规则的积分数,后需要改
//撤销签到,积分还回去
reserveTools.memberReserve_discardSignIn(reserveId);
Thread.sleep(1000);
int afleftBalance3 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance3, afleftBalance1);//断言增加规则的积分数,后需要改
//取消预约
reserveTools.cancelMemberReserve(reserveId,true);//防止卡余额不足
String categoryId1 = courseCategoryTools.getCourseCategoryPage("健美操");
String courseId1 = courseTools.getPersonalOrGroupCourseId("PERSONAL", "自动化私教课", categoryId1, "STUDIO", "ONE_TO_MANY", 1, 1).getString(0);
JSONArray personalCoachTime = reserveTools.getPersonalTimeBlocks(xmAppApi.getLoginInfo().getAdminId(),courseId1,TimeUtils.getTodayTime());
// 获取当前日期的Calendar实例
Calendar calendar = Calendar.getInstance();
// 获取第一条的步长 转换成时间戳
int minuteOffset1 = personalCoachTime.getJSONObject(0).getIntValue("minuteOffset")/60;
calendar.set(Calendar.HOUR_OF_DAY, minuteOffset1);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
// 将Calendar对象转换为时间戳
long timestamp = calendar.getTimeInMillis();
String reserveId1 = reserveTools.addPersonalReserve("",courseId1,"1796482517508263938",memberId,benefitId,10,1,"",timestamp,true);
//签到私教课
reserveTools.signIn(true,reserveId1,false);
Thread.sleep(1000);
int afleftBalance4 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance4, afleftBalance3 + 10);//断言增加规则的积分数,后需要改
//撤销签到,积分还回去
reserveTools.memberReserve_discardSignIn(reserveId1);
Thread.sleep(1000);
int afleftBalance5 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance5, afleftBalance3);//断言归还的规则的积分数
System.out.println("afleftBalance5--------"+afleftBalance5);
reserveTools.cancelMemberReserve(reserveId1,true);//取消私教课预约
//训练营
//int price1 =100;//保留两位小数
//double priceD =Double.parseDouble(String.valueOf(price1));//String 转double类型
//trainingTools.doSignCampOrder(memberId,priceD,"1937838684124549121","");//报名训练营
//int afleftBalance6 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
//Assert.assertEquals(afleftBalance6, afleftBalance5+10);//断言报名训练营积分数
JSONObject deposit = cardTools.tenantMemberCardCommonSearch("DEPOSIT_CARD", "积分储值卡");
String cardId1= deposit.getJSONArray("result").getJSONObject(0).getString("id");
//会员卡购买储值卡
String latestSnapshotIdC = XMJSONPath.readPath(cardTools.fetchDetailById(cardId1), "$.result.latestSnapshotId");
cardTools.signOrderDeposit(cardId1,latestSnapshotIdC,memberId,"100","0");
Thread.sleep(1000);
int afleftBalance6 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance6, afleftBalance5+10);//断言购买储值卡积分数+10
System.out.println("afleftBalance6--------"+afleftBalance6);
String depositCardId = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT", memberId, "NORMAL"), "$.result[0].id");
List voucherResourceIds = new ArrayList();
voucherResourceIds.add("");
JSONObject body = new JSONObject();
body.put("amount", 100);
body.put("paymentWay", 3);
body.put("voucherResourceIds", voucherResourceIds);
List paymentWays = new ArrayList();
paymentWays.add(body);
cardTools.refundOrderDeposit(depositCardId,"0","100","100",memberId,"100",paymentWays,0,new BigDecimal(100),new BigDecimal(100));//操作退储值卡
Thread.sleep(1000);
int afleftBalance7 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));
System.out.println("afleftBalance7--------"+afleftBalance7);
Assert.assertEquals(afleftBalance7, afleftBalance5);//断退储值卡积分数-10
//创建训练营
String applyStartTime = String.valueOf(CommUtil.getWholeHourTimestamp()); //当前时间的整点+1小时,比如现在是13:00,然后获取的是14:00的时间戳
String applyEndTime = CommUtil.oneKeyGetAddDay(1);//明天0点
String openStartDate = applyEndTime;
String openEndDate = CommUtil.getNDayEndTimeTamp(2);//后天23:59:59
int price1 =100;//保留两位小数
double priceD =Double.parseDouble(String.valueOf(price1));//String 转double类型
String title = "积分训练营" + RandomStringUtil.randomString(6);
List<String> trainerList = new ArrayList<>();
trainerList.add("木头");
trainerList.add("吴彦祖");
trainerList.add("杜君丽");
List trainerListIdS = groupScheduleTools.getStudioAdminId(trainerList);
List<String> trainerListEdit = new ArrayList<>();
trainerListEdit.add("杜君丽");
List editTrainerListId=groupScheduleTools.getStudioAdminId(trainerListEdit);
String campID=trainingTools.createThenPublishTraining(applyStartTime,applyEndTime,"1808462926413910017",openStartDate,openEndDate,priceD,title,40,1,trainerListIdS,"YES");
System.out.println("campID--------"+campID);
//报名训练营
trainingTools.doSignCampOrder(memberId,priceD,campID,"");//报名训练营
Thread.sleep(1000);
int afleftBalance8 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//购买会员卡后的会员积分数
Assert.assertEquals(afleftBalance8, afleftBalance7+10);//断言报名训练营积分数
//退训练营
trainingTools.getTrainingApplyRecordsList(campID, phone);
String memberCardId = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("memberCardId");
trainingTools.refundCampOrder(memberId,priceD,memberCardId,40,0,new BigDecimal(priceD),new BigDecimal(priceD));//退单训练营
Thread.sleep(1000);
int afleftBalance9 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//会员积分数
Assert.assertEquals(afleftBalance9, afleftBalance8-10);//断言报名训练营积分数
trainingTools.deleteTraining(campID);//删除训练营
//训练营签到
campScheduleTools.getCampScheduleTable(TimeUtils.getTodayTime(), TimeUtils.getTodayEndTime(), "1937865450415263745");//查看对应训练营排课
String scheduleId1 = XMJSONPath.readPath(dataApi.getApi_response(), "$result.timetableGroups[0].timetableList[0].scheduleId");
System.out.println("scheduleId1--------"+scheduleId1);
campScheduleTools.getCampScheduleItemDetail(scheduleId1);//获取课次信息
String reserveId2 = XMJSONPath.readPath(dataApi.getApi_response(), "$result.memberReserveList[0].id");
reserveTools.signIn(true,reserveId2,false);//完成签到
Thread.sleep(1000);
int afleftBalance10 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//会员积分数
Assert.assertEquals(afleftBalance10, afleftBalance9+10);//断言报名训练营积分数
reserveTools.memberReserve_discardSignIn(reserveId2);
Thread.sleep(1000);
int afleftBalance11 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//会员积分数
Assert.assertEquals(afleftBalance11, afleftBalance10-10);//断言撤销训练营签到积分-10
//签单体验卡
cardTools.doMemberCardcommonSearch("积分体验卡1","EXPERIENCE_CARD");
String memberCardId1 = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");//获取第一张搜索体验卡ID
cardTools.fetchDetailById(memberCardId1);
BigDecimal quantity1= new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].balance"));
//BigDecimal entryQuantity = new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[1].balance"));
float price2=Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[0].price"));
float entryPrice = Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[1].price"));
int validPeriod1=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.validPeriod"));
String latestSnapshotId1=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.latestSnapshotId");
orderTools.signOrder1(memberCardId1,latestSnapshotId1,quantity1, BigDecimal.valueOf(99999),price2,entryPrice,validPeriod1,latestSnapshotId1,0,"PURCHASE","EXPERIENCE_CARD", memberId,price2+entryPrice,price2+entryPrice,"1");
Thread.sleep(1000);
int afleftBalance12 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//会员积分数
Assert.assertEquals(afleftBalance12, afleftBalance11+40);//断言购买体验卡+40,400的单子加40积分
String entryVoucherId = entryTool.listUserVenueEntryCard("EXPERIENCE",memberId).getJSONArray("result").getJSONObject(0).getString("id");//第一张可用入场的体验看
entryTool.addmemberEntry("EXPERIENCE_CARD",entryVoucherId,memberId);//手动添加体验卡入场记录
Thread.sleep(1000);
int afleftBalance13 = Integer.parseInt(XMJSONPath.readPath(pointsTools.findAccountPagePermission(xmAppApi.getLoginInfo().getStudioId(), memberId), "$.result.records[0].leftBalance"));//会员积分数
Assert.assertEquals(afleftBalance13, afleftBalance12+10);//入场签到+10
}
}
package com.xiaomai.cases.polar.points;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.goods.GoodCTools;
import com.xiaomai.cases.lunar.reserve.ReserveCTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.eventRegistration.EventRegistrationTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.cases.polar.setting.venue.VenueAreaTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.*;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TestPointsMini extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Points)
.setApiName("API_memberPoint_getAccount")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "pointsMinTools")
PointsMInTools pointsMinTools;
GoodCTools goodCTools=new GoodCTools();
OrderTools orderTools = new OrderTools();
DataUserInfo info = new DataUserInfo();
@Resource(name = "EventRegistrationTools")
EventRegistrationTools EventRegistrationTools;
@Resource(name = "venueAreaTools")
VenueAreaTools venueAreaTools;
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "groupScheduleTools")
GroupScheduleTools groupScheduleTools;
@Resource(name = "reserveCTools")
ReserveCTools reserveCTools;
@Test(description = "小程序-积分")
public void testmemberPoint_getAccount() throws InterruptedException {
String memberId = userTools.getMemberInfo().getString("memberId");
//pointsMinTools.memberPoint_getAccount(memberId);
int BeleftBalance = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员在小程序初始积分数
System.out.println("BeleftBalance--------"+BeleftBalance);
goodCTools.purchaseGoods("0.00",null,memberId,"物品积分自动化","100.00","1938148913966530562", BigDecimal.valueOf(100),1);//C端下单不支付
String id =XMJSONPath.readPath(dataApi.getApi_response(), "$.result.id");
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);//切换B端
orderTools.pay(BigDecimal.valueOf(100),"1",id,info);//B端支付
Thread.sleep(1000);
int AfleftBalance = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员购买物品后,剩余积分数
Assert.assertEquals(AfleftBalance,BeleftBalance+10);//断言剩余积分数+10
pointsMinTools.findStatementPage(memberId, String.valueOf(true));
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].initialBalance"), "10", "第一条非加10积分的记录");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "IN_ORDER_CONSUME", "第一条非物品的积分记录");
//作废订单
orderTools.discard(id,"订单录错","",info);//B端
Thread.sleep(1000);
int AfleftBalance1 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员购买物品后,剩余积分数
Assert.assertEquals(AfleftBalance1,AfleftBalance-10);//断言剩余积分数+10
pointsMinTools.findStatementPage(memberId, String.valueOf(false));
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].initialBalance"), "-10", "第一条非减去10积分的记录");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].transactionType"), "OUT_ORDER_REFUND", "第一条退购买物品的积分记录");
//活动报名
String activityName = "积分参与" + RandomStringUtil.randomString(5);
EventRegistrationTools.create(activityName,true, TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime(),TimeUtils.getToDayTime(23,00),info);//创建并发布活动
String activityId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result");
EventRegistrationTools.MinsellableActivity_getStudioActivityById(activityId);//查看活动详情
String activitySkuId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result.skuItems[1].id");//获取活动购买项目id
EventRegistrationTools.purchaseSellableActivity(activityId, String.valueOf(100),activitySkuId,memberId);//报名
String id1 =XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//订单ID
System.out.println("id1--------"+id1);
orderTools.pay(BigDecimal.valueOf(100),"1",id1,info);//B端支付
Thread.sleep(1000);
int AfleftBalance2 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员购买物品后,剩余积分数
Assert.assertEquals(AfleftBalance2,AfleftBalance1+10);//断言剩余积分数+10
//作废订单
orderTools.discard(id1,"订单录错","",info);//B端
Thread.sleep(1000);
int AfleftBalance3 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
Assert.assertEquals(AfleftBalance3,AfleftBalance2-10);//断言剩余积分数-10
//单次约课 白写
//String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
//String todayEndDateTimeTamp = CommUtil.getNDayEndTimeTamp(1);
//String categoryId = courseCategoryTools.getCourseCategoryPage("积分");
//String courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "储值卡付费约课积分课程", categoryId, "STUDIO", "", 2, 1).getString(0);
//int[] minuteOffset = {60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260};
//Random random = new Random();
//1.1-创建排课日程(当前天的课程)
//groupScheduleTools.createGroupRuleSchedule(courseId, "1800447404349558786", todayStartTimeTamp, todayEndDateTimeTamp, new ArrayList(), new ArrayList(), true, 1,minuteOffset[random.nextInt(20)] ,info);
//List<String> chiefCoachId = new ArrayList<>();
//chiefCoachId.add("1800447404349558786");
//JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, "1800447404349558786");
//String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId");
// 日程列表中新增一条刚创建的规则,匹配到对应的ruldId
//Long goalRuld = result.toJavaList(JSONObject.class).stream().filter(e -> e.getString("ruleId").equals(ruldId)).count();
//Assert.assertTrue(goalRuld == 1);
//查看今天的课表,获取刚创建的日程中对应的课次ID
//groupScheduleTools.getGroupScheduleTable(Long.valueOf(todayStartTimeTamp),Long.valueOf(todayEndDateTimeTamp),courseId,info);
//reserveCTools.memberTimetable(memberId,TimeUtils.getBeforeDayDate(-1), TimeUtils.getAfterDayDate(1));
//JSONArray array = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.timetableGroups");
//String scheduleId = array.toJavaList(JSONObject.class).stream()
//.flatMap(e -> e.getJSONArray("timetableList").toJavaList(JSONObject.class).stream())
//.filter(e -> null != e.getString("ruleId"))
//.filter(e ->e.getString("ruleId").equals(ruldId))
//.map(e -> e.getString("scheduleId"))//获取scheduleId
//.findFirst().orElse(null);
//JSONObject getScheduleItemDetail = groupScheduleTools.getScheduleItemDetail(scheduleId);
//long startTime1 = getScheduleItemDetail.getLongValue("startTime");
//System.out.println("scheduleId--------"+scheduleId);
//System.out.println("startTime1--------"+startTime1);
//String voucherId = reserveCTools.createSingleReserve1(false,courseId,"1800447404349558786",memberId,scheduleId,startTime1,10,0,"1938194478934331393","100.00");
//场地预约
//String startMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60);
//String endMinute = String.valueOf((TimeUtils.hourOfDay()+1)*60+30);//结束时间与开始时间相差30分钟
//String reserveDay = String.valueOf(TimeUtils.getTodayTime());
//String groupId ="1938174465507115009";
//String areaId = String.valueOf(Long.valueOf(groupId)+1);//+1,不知道为啥
//String voucherId = venueAreaTools.purchaseAreaTimes1(startMinute,endMinute,BigDecimal.valueOf(100),"1929736213382733826",groupId,memberId,"0.00",reserveDay,areaId,"100.00","1938194478934331393");
//String venueBookingRecordId = XMJSONPath.readPath(venueAreaTools.getByVoucher(voucherId,info),"$.result.id");//场地预约的记录id
//Thread.sleep(1000);
//断言场地预约积分增加10分
//int AfleftBalance4 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance4,AfleftBalance3+10);//断言剩余积分数+10
//venueAreaTools.manualCheckIn(venueBookingRecordId);//场地签到
//Thread.sleep(1000);
//断言场地预约签到增加10分
//int AfleftBalance5 = Integer.parseInt(XMJSONPath.readPath(pointsMinTools.memberPoint_getAccount(memberId), "$.result.leftBalance"));//会员退物品后,剩余积分数
//Assert.assertEquals(AfleftBalance5,AfleftBalance4+10);//断言剩余积分数+10
}
}
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