Commit bdfa0c6a by yangfangfang

物品

parent 7261572c
...@@ -926,6 +926,48 @@ public class OrderTools extends XMBaseTest { ...@@ -926,6 +926,48 @@ public class OrderTools extends XMBaseTest {
return response; return response;
} }
/**
* @param
* @description:继续收款
* @param unpaidAmount:欠费金额
* @param getDetailId:订单ID
* @param paymentWay:支付方式 1-线下微信 2 3
* @param directReceive:true待补交 false待支付
* @author: yangfangfang
**/
public JSONObject pay_unpaid(BigDecimal unpaidAmount,String paymentWay,String getDetailId,boolean directReceive, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pay")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
JSONArray paymentWays = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("amount", unpaidAmount);
jsonObject1.put("paymentWay",paymentWay);
JSONArray voucherResourceIds = new JSONArray();
voucherResourceIds.add("");
jsonObject1.put("voucherResourceIds", voucherResourceIds);
paymentWays.add(jsonObject1);
jsonObject.put("paymentWays", paymentWays);
jsonObject.put("voucherId", getDetailId);
jsonObject.put("directReceive",directReceive);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/** /**
......
...@@ -11,6 +11,7 @@ import com.xiaomai.client.DataUserInfo; ...@@ -11,6 +11,7 @@ import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal; import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils; import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest; import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert; import org.testng.Assert;
...@@ -18,8 +19,9 @@ import org.testng.annotations.BeforeMethod; ...@@ -18,8 +19,9 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
public class TestRefundGoods extends XMBaseTest { public class TestGoodsOrder extends XMBaseTest {
GoodTools goodTools=new GoodTools(); GoodTools goodTools=new GoodTools();
GoodCTools goodCTools=new GoodCTools(); GoodCTools goodCTools=new GoodCTools();
...@@ -28,20 +30,15 @@ public class TestRefundGoods extends XMBaseTest { ...@@ -28,20 +30,15 @@ public class TestRefundGoods extends XMBaseTest {
DataUserInfo info =new DataUserInfo(); DataUserInfo info =new DataUserInfo();
UserTools userTools=new UserTools(); UserTools userTools=new UserTools();
OrderCTools orderCTools=new OrderCTools();
OrderTools orderTools=new OrderTools(); OrderTools orderTools=new OrderTools();
FinanceDataTools financeDataTools=new FinanceDataTools(); FinanceDataTools financeDataTools=new FinanceDataTools();
String orderId1;
String memberId; String memberId;
@BeforeMethod @BeforeMethod
public void beforeTest() { public void beforeTest() {
xmAppApi.setApiModule(ApiModule.Polar_Goods) xmAppApi.setApiModule(ApiModule.Polar_Goods)
...@@ -55,7 +52,7 @@ public class TestRefundGoods extends XMBaseTest { ...@@ -55,7 +52,7 @@ public class TestRefundGoods extends XMBaseTest {
} }
@Test(description = "签单单规格:待支付->取消订单") @Test(description = "签单单规格:待支付->取消订单")
public void testModifyGoods_single() { public void testSignGoods_single() {
//涉及到订单的都使用存量物品数据,因为购买过物品就不能被删除了,所以不会买一次新建一个 //涉及到订单的都使用存量物品数据,因为购买过物品就不能被删除了,所以不会买一次新建一个
...@@ -111,7 +108,7 @@ public class TestRefundGoods extends XMBaseTest { ...@@ -111,7 +108,7 @@ public class TestRefundGoods extends XMBaseTest {
if(checkAllowPurchase==true) { if(checkAllowPurchase==true) {
JSONObject purchaseGoods = goodCTools.purchaseGoods("0.00", null,memberId,"",price,id,price,1,info); JSONObject purchaseGoods = goodCTools.purchaseGoods("0.00", null,memberId,"",price,id,price,1,info);
orderId1=purchaseGoods.getJSONObject("result").getString("id"); String orderId1=purchaseGoods.getJSONObject("result").getString("id");
//生成待支付订单后,去B端继续收款 //生成待支付订单后,去B端继续收款
...@@ -168,34 +165,148 @@ public class TestRefundGoods extends XMBaseTest { ...@@ -168,34 +165,148 @@ public class TestRefundGoods extends XMBaseTest {
} }
else {
System.out.println("物品购买校验未通过,不能下单");
}
} }
@Test(description = "签单单规格:待支付->待补交->作废订单")
public void testSignGoods_single1() {
//case1:购买非0订单->待支付->带补交->作废订单
// //切换端位
// //继续收款 info.setTerminal(Terminal.minApp);
// JSONObject pay=orderTools.pay(unpaidAmount,"1",orderId1); info.setLoginUser(LoginAccount.GYM_MINIAPPC);
//
// //获取B端订单详情:待支付状态
// JSONObject getDetailResult1 = orderTools.getDetail(orderId1,info);
// String state1=getDetailResult1.getJSONObject("result").getString("state");
//
// Assert.assertEquals(state1,"PAID","继续收款后订单状态由待支付变为已完成");
@Test(description = "退单物品_多规格")
public void testModifyGoods_multiple() {
//涉及到订单的都使用存量物品数据,因为购买过物品就不能被删除了,所以不会买一次新建一个 try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// "id": "1874413681302990849",
// "name": "自动化禁用-购买订单单规格1元",
// "id": "1874413587237335042",
// "name": "自动化禁用-购买订单多规格1元",
// "id": "1874413193018896386",
// "name": "自动化禁用-购买订单多规格0元",
// "id": "1874411064376061954",
// "name": "自动化禁用-购买订单单规格0元",
//case1:购买多规格非0元物品生成待支付订单 //获取会员信息
//获取用户
memberId = userTools.getMemberInfo(info).getString("memberId");
String goodsId1="1874413681302990849";
//获取B端商品详情
JSONObject getDetail_goods=goodTools.getDetail_goods(goodsId1);
String id=getDetail_goods.getJSONObject("result").getString("id");
String price=getDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("price");
int beforeInventory=Integer.parseInt(getDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject beforeGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal beforeConfirmedAmount=new BigDecimal(beforeGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
boolean checkAllowPurchase=Boolean.parseBoolean(goodCTools.checkAllowPurchase(id,memberId,price,beforeInventory,info).getJSONObject("result").getString("success"));
//校验一下物品购买是否可以通过,为true才可以
if(checkAllowPurchase==true) {
JSONObject purchaseGoods = goodCTools.purchaseGoods("0.00", null,memberId,"",price,id,price,1,info);
String orderId2=purchaseGoods.getJSONObject("result").getString("id");
//生成待支付订单后,去B端继续收款
//获取B端订单详情:待支付状态
JSONObject getDetailResult = orderTools.getDetail(orderId2,info);
String state=getDetailResult.getJSONObject("result").getString("state");
BigDecimal unpaidAmount=new BigDecimal(getDetailResult.getJSONObject("result").getString("unpaidAmount"));
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(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验2:权益未到,数据中心的确认收入没有增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject afterGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal afterConfirmedAmount=new BigDecimal(afterGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(afterConfirmedAmount,beforeConfirmedAmount,"购买1个物品生成待支付订单后,财务中心-营收明细-物品的确认收入应无变化");
//B端变更为待补交物品订单
BigDecimal num=new BigDecimal(2);
//继续收款为待补交
JSONObject pay_unpaid=orderTools.pay_unpaid(unpaidAmount.divide(num),"1",orderId2,true);
//校验1:获取B端订单详情:待补交状态
JSONObject getDetailResult_delinquent = orderTools.getDetail(orderId2);
String state_delinquent=getDetailResult_delinquent.getJSONObject("result").getString("state");
Assert.assertEquals(state_delinquent,"DELINQUENT","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端继续收款后订单状态由待支付变为待补交,库存数应不变");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:权益到,数据中心的确认收入应增加
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject lastGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal lastConfirmedAmount=new BigDecimal(lastGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(lastConfirmedAmount,afterConfirmedAmount.add(unpaidAmount.setScale(2, RoundingMode.HALF_UP)),"B端继续收款后订单状态由待支付变为待补交,财务中心-营收明细-物品的确认收入应增加");
//作废待补交订单
JSONObject discard=orderTools.discard(orderId2, "重复录入", "已作废签单订单" + RandomStringUtil.randomString(10));
//校验1:获取B端订单详情:已作废状态
JSONObject getDetailResult_discard = orderTools.getDetail(orderId2);
String state_discard=getDetailResult_discard.getJSONObject("result").getString("state");
Assert.assertEquals(state_discard,"DISCARD","B端作废订单后状态由待补交变为已作废");
//校验2:B端商品详情库存数+1
JSONObject discardGetDetail_goods=goodTools.getDetail_goods(goodsId1);
int discardInventory=Integer.parseInt(discardGetDetail_goods.getJSONObject("result").getJSONObject("singleSpecInfo").getString("inventory"));
Assert.assertEquals(discardInventory,lastInventory+1,"B端作废订单后,应增加1个库存数");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验3:权益退回,数据中心的确认收入应减少
//获取数据中心-财务中心-营收明细-物品的确认收入
JSONObject discardGetCostData_type=financeDataTools.getCostData_type("DAY","GOODS", TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal discardConfirmedAmount=new BigDecimal(discardGetCostData_type.getJSONObject("result").getString("confirmedAmount"));//确认收入
Assert.assertEquals(discardConfirmedAmount,lastConfirmedAmount.subtract(unpaidAmount.setScale(2, RoundingMode.HALF_UP)),"B端作废订单后,财务中心-营收明细-物品的确认收入应减少");
}
else {
System.out.println("物品购买校验未通过,不能下单");
}
} }
} }
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