Commit b57b90f4 by yangjian

优惠券自动化补充

parent f52a1158
......@@ -5,9 +5,11 @@ 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.XMBaseTest;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
......@@ -135,6 +137,73 @@ public class CouponMInTools extends XMBaseTest {
return response;
}
/**
* @param
* @description:确认订单页面,查询可用优惠券
* @author: yangjian
**/
public JSONObject fetchOrderWaitUse(String receiverId,DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Coupon)
.setApiName("API_fetchOrderWaitUse")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("amount", 1);
jsonObject1.put("scope","MEMBER_CARD");
List<JSONObject> useScope2Amounts = new ArrayList<>();
useScope2Amounts.add(jsonObject1);
JSONObject jsonObject = new JSONObject();
jsonObject.put("receiverId", receiverId);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("useScope2Amounts",useScope2Amounts);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:C端购买0元卡
* @param activatePattern [ "即时生效", "首次使用生效", "指定日期生效" ] 激活方式[ PURCHASE, FIRST_USED, SPECIFIC_DATE ]
* @param cardId 卡id
* @param cardSnapshotId:卡快照id
* @param memberId:会员id
* @author: yangfangfang
**/
public JSONObject purchaseCarduseCoupon(String activatePattern, String cardId, String cardSnapshotId, String memberId,String userCouponId, DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_purchaseCard")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("activatePattern",activatePattern);
jsonObject.put("cardId",cardId);
jsonObject.put("cardSnapshotId",cardSnapshotId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo", "");
jsonObject.put("receivableAmount","0.00");//使用-100的优惠券,应该是0。00元
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("objectId", RandomStringUtil.randomString(16));
jsonObject.put("userCouponId", userCouponId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
......
package com.xiaomai.cases.polar.coupon;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.order.OrderCTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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 java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class TestFetchOrderWaitUse extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Coupon)
.setApiName("API_fetchOrderWaitUse")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "确认订单页查看可使用优惠券")
public void fetchOrderWaitUse() {
UserTools userTools=new UserTools();
String receiverId = userTools.getMemberInfo().getString("memberId");//同memberId
CouponMInTools CouponMIntools =new CouponMInTools();
CouponMIntools.getPageConfig();//首页获取首页的配置
String id =XMJSONPath.readPath(dataApi.getApi_response(),"$.result.moduleConfigList[11].config.ids[0]");//小程序首页,拿配置返回的优惠券id
CouponMIntools.claim(id,receiverId);//领取优惠券
String cooponid =XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//拿第一张可用的优惠券
System.out.println("--------"+cooponid);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("amount", 1);
jsonObject1.put("scope","MEMBER_CARD");
List<JSONObject> useScope2Amounts = new ArrayList<>();
useScope2Amounts.add(jsonObject1);
JSONObject jsonObject = new JSONObject();
jsonObject.put("receiverId", receiverId);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("useScope2Amounts",useScope2Amounts);
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
CouponMIntools.fetchOrderWaitUse(receiverId);
int count= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();//核对能用优惠券的张数
Assert.assertEquals(count>=0,true,"该账户下,没有优惠券了");//没有优惠券需要提示
String memberId = userTools.getMemberInfo().getString("memberId");
OrderCTools orderCTools=new OrderCTools();
JSONObject Result=orderCTools.pageOrder(receiverId);
int before=Integer.parseInt(Result.getJSONObject("result").getString("total"));
MinCardTools minCardTools=new MinCardTools();
CouponMIntools.listMemberReceivedCoupon(receiverId,"USED");
int count1= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();//未签约0元单时候,已使用优惠券张数
JSONObject memberCardResult=minCardTools.fetchOnSaleMemberCard("次卡").getJSONObject("result").getJSONArray("records").getJSONObject(0);
String id1=memberCardResult.getString("id");
JSONObject memberCardDetailResult=orderCTools.findTenantCardDetailById(id1,memberId);
String cardId= memberCardDetailResult.getJSONObject("result").getString("id");
String latestSnapshotId= memberCardDetailResult.getJSONObject("result").getString("latestSnapshotId");
CouponMIntools.purchaseCarduseCoupon("PURCHASE",cardId,latestSnapshotId,memberId,cooponid);//使用优惠券购买0元卡
JSONObject Result1=orderCTools.pageOrder(receiverId);
int after=Integer.parseInt(Result1.getJSONObject("result").getString("total"));
Assert.assertEquals(after,before+1);//使用优惠券购买订单后,我的订单+1条数据
CouponMIntools.listMemberReceivedCoupon(receiverId,"USED");
int count2= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();//已签约0元单时候,已使用优惠券张数
Assert.assertEquals(count2,count1+1);//使用优惠券后,已使用优惠券+1
}
}
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