Commit f416d753 by yangfangfang

增加先享后付违约金相关case

parent a30bbbd6
......@@ -43,8 +43,8 @@ public class TestSignOrderAxf extends BaseTestImpl {
}
@Test
public void testSignOrderAxf(){
@Test(description = "创建先享后付订单_无违约金")
public void testSignOrderAxf_noBreakCosts(){
String memberId = "";
// 查询存量的学员没有则创建学员
......@@ -172,4 +172,141 @@ public class TestSignOrderAxf extends BaseTestImpl {
orderTools.discard(getDetailId, "重复录入","作废订单");
}
@Test(description = "创建先享后付订单_有违约金")
public void testSignOrderAxf_breakCosts(){
String memberId = "";
// 查询存量的学员没有则创建学员
if (tools.commonSearch("先享后付学员嘉艺","NORMAL").getJSONArray("result").size()>0){
memberId = tools.commonSearch("先享后付学员嘉艺","NORMAL").getJSONArray("result").getJSONObject(0).getString("id");
}else if (tools.commonSearch("先享后付学员嘉艺","HISTORY").getJSONArray("result").size()>0){
memberId = tools.commonSearch("先享后付学员嘉艺","HISTORY").getJSONArray("result").getJSONObject(0).getString("id");
}else if (tools.commonSearch("先享后付学员嘉艺","POTENTIAL").getJSONArray("result").size()>0){
memberId = tools.commonSearch("先享后付学员嘉艺","POTENTIAL").getJSONArray("result").getJSONObject(0).getString("id");
}else{
memberId = memberTools.create("先享后付学员嘉艺", RandomStringUtil.randomMobile("213")).getString("result");
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 查询存量的卡
JSONObject fetchPageOfMemberCard = orderTools.fetchPageOfMemberCard("","MEMBER_CARD").getJSONObject("result");
int total = Integer.parseInt(fetchPageOfMemberCard.getString("total"));
String cardId = "";
if (total == 0) {
cardId = cardTools.memberCardCreate("创建先享后付订单"+ TimeUtils.getCurrentTime()).getString("result");
}
cardId = fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity = new BigDecimal(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getJSONArray("benefitList").getJSONObject(0).getString("balance"));
float price = Float.parseFloat(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("validPeriod"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId = orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
JSONObject jsonObject=new JSONObject();
jsonObject.put("salesmanId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
JSONObject card = new JSONObject();
card.put("cardId",cardId);
card.put("cardSnapshotId",latestSnapshotId);
JSONObject cardChange=new JSONObject();
cardChange.put("quantity",quantity);
cardChange.put("price",price);
cardChange.put("validPeriod",validPeriod);
cardChange.put("latestSnapshotId",latestSnapshotId);
card.put("cardChange",cardChange);
card.put("deductionAmount",0);//优惠金额(元)
card.put("activatePattern","PURCHASE");
card.put("commodityCardType","MEMBER_CARD");
jsonObject.put("card",card);
jsonObject.put("objectId", RandomStringUtil.randomString(20));
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",price);//应收金额
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
JSONObject axfOrderInfo = new JSONObject();
axfOrderInfo.put("totalPeriod","2"); //总期数
axfOrderInfo.put("cycleType","MONTH"); // 按月扣款
axfOrderInfo.put("periodType","SAME_EACH_PERIOD"); // 扣款每期一致
axfOrderInfo.put("cycleValue",1); // 按月1号
axfOrderInfo.put("chargeNow", false);
//违约金相关字段
axfOrderInfo.put("breakCostsType","REMAIN_RATE");//违约金类型:REMAIN_RATE按剩余未付金额比例收取,DEFAULT无违约金
axfOrderInfo.put("breakCosts7Days",false);//7天内解约是否收取:true一律不收取;false仅未扣款时不收取
axfOrderInfo.put("breakCostsRate","15");//收取违约金的是剩余未扣款金额的百分之多少
axfOrderInfo.put("noBreakCostsFlag",false);//是否支付免违约金:true支持 false不支持
// axfOrderInfo.put("noBreakCostsStandardValue","1");//几期,是否支付免违约金为支持的时候,才有这个字段,成功扣满几期后可以免违约金
JSONArray periodPriceList = new JSONArray();
for (int i = 0; i < 2; i++){
JSONObject priceObj = new JSONObject();
priceObj.put("period",i+1); // 期数
priceObj.put("salePrice",price/2); // 每期还款金额
periodPriceList.add(priceObj);
}
axfOrderInfo.put("periodPriceList",periodPriceList);
jsonObject.put("axfOrderInfo",axfOrderInfo);
JSONArray paymentWays = new JSONArray();
JSONObject object = new JSONObject();
object.put("amount",price);//支付金额
object.put("paymentWay","7"); // 7先享后付支付
JSONArray voucherResourceIds = new JSONArray();//支付凭证
voucherResourceIds.add("");
object.put("voucherResourceIds",voucherResourceIds);
paymentWays.add(object);
jsonObject.put("paymentWays",paymentWays);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
JSONObject bodyInJSON = xmAppApi.getBodyInJSON();
String getDetailId = bodyInJSON.getString("result");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 校验订单详情状态:待支付、先享后付状态为签约中
JSONObject getDetailResult = orderTools.getDetail(getDetailId);
String state = getDetailResult.getJSONObject("result").getString("state");
Assert.assertEquals(state,"WAITING","先享后付订单创建成功后订单状态不是待支付");
String axfState = getDetailResult.getJSONObject("result").getString("axfState");
Assert.assertEquals(axfState,"PROCESS","先享后付订单安心付状态不是签约中");
orderTools.cancel(getDetailId);
}
}
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