Commit 1771b127 by yangfangfang

创建订单

parent 56ef759e
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
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.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
public class OrderTools extends XMBaseTest {
......@@ -230,7 +233,7 @@ public class OrderTools extends XMBaseTest {
**/
public JSONObject fetchPageOfMemberCard(String brandId,String studioId,String operatorId,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
dataApi.setApiModule(ApiModule.polar_Card)
.setApiName("API_fetchPageOfMemberCard")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
......@@ -249,5 +252,133 @@ public class OrderTools extends XMBaseTest {
return response;
}
/**
* @param
* @description: 获取会员卡详情
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject fetchDetailById(String id,String brandId,String studioId,String operatorId,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.polar_Card)
.setApiName("API_fetchDetailById")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("id",id);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description: 检查会员对该卡是否超出购买上限
* @param skuType:商品类型:[ MEMBER_CARD, TRAINING_CAMP, SINGLE_RESERVE, EXPERIENCE_CARD "会员卡", "训练营", "单次约课", "体验卡"
* @param skuId:场馆ID
* @param memberId:会员ID
* @param quantity:卡张数,默认为1
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject checkAllowPurchase(String skuType,String skuId,String memberId,String quantity,String brandId,String studioId,String operatorId,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_checkAllowPurchase")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("skuType",skuType);
jsonObject.put("skuId",skuId);
jsonObject.put("memberId",memberId);
jsonObject.put("quantity",quantity);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description: 检查会员对该卡是否超出购买上限
* @param cardId:卡id
* @param cardSnapshotId:卡快照id
* @param quantity:次数
* @param price:卡的价格
* @param validPeriod:有效期
* @param activatePattern:激活方式 [ "即时生效", "首次使用生效", "指定日期生效" ][ PURCHASE, FIRST_USED, SPECIFIC_DATE ]
* @param memberId:会员ID
* @param receivableAmount:应收金额
* @param amount:支付金额
* @param paymentWay:支付方式
* @author: yangfangfang
**/
public JSONObject signOrder(String cardId,String cardSnapshotId,int quantity,float price,int validPeriod,String latestSnapshotId,String activatePattern,
String memberId,float receivableAmount,float amount,String paymentWay,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_signOrder")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
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",cardSnapshotId);
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("activatePattern",activatePattern);
jsonObject.put("card",card);
jsonObject.put("objectId", RandomStringUtil.randomString(20));
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",receivableAmount);
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
JSONArray paymentWays=new JSONArray();
JSONObject object=new JSONObject();
object.put("amount",amount);
object.put("paymentWay",paymentWay);
JSONArray voucherResourceIds=new JSONArray();//支付凭证
voucherResourceIds.add("");
object.put("voucherResourceIds",voucherResourceIds);
paymentWays.add(object);
jsonObject.put("paymentWays",paymentWays);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.client.XMAppApi;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestSignOrder extends XMBaseTest {
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_signOrder")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "创建订单")
public void testSignOrder(){
//获取会员ID
String memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡信息
//获取会员卡列表
JSONObject memberCard=orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
int quantity= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").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"));
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);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,memberId,"1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if( limitResult == true){
//创建订单
JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1");
} else {
}
}
}
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