Commit 1b87966d by xyy

Merge remote-tracking branch 'origin/master'

parents bd36e27c 153dd31a
...@@ -35,7 +35,7 @@ public class TestGetSmsRechargeOrderStatus extends XMBaseTest { ...@@ -35,7 +35,7 @@ public class TestGetSmsRechargeOrderStatus extends XMBaseTest {
public void testGetSmsRechargeOrderStatus(){ public void testGetSmsRechargeOrderStatus(){
//随机生成订单id //随机生成订单id
String orderId = RandomStringUtil.randomNumber(3,""); String orderId = RandomStringUtil.randomNumber(6,"");
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("orderId",orderId); object.put("orderId",orderId);
...@@ -46,6 +46,7 @@ public class TestGetSmsRechargeOrderStatus extends XMBaseTest { ...@@ -46,6 +46,7 @@ public class TestGetSmsRechargeOrderStatus extends XMBaseTest {
//调用请求 //调用请求
xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers); xmAppApi.doRequest(RequestType.JSON,params,object.toJSONString(),headers);
boolean flag = Boolean.parseBoolean(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.success")); boolean flag = Boolean.parseBoolean(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.success"));
if(flag==false){ if(flag==false){
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"充值订单不存在"); Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"充值订单不存在");
}else { }else {
......
package com.xiaomai.cases.polar.entry;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.export.ExportTool;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestMemberEntryExport extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_MemberEntry)
.setApiName("API_memberEntry_export")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "入场记录导出")
public void testMemberEntryExport(){
ExportTool exportTool = new ExportTool();
int before = Integer.parseInt(XMJSONPath.readPath(exportTool.pageStudioExportRecord(), "$.result.total"));
JSONObject object = new JSONObject();
object.put("entryType",null);
object.put("startTime",TimeUtils.getBeforeDayDate(30));
object.put("endTime", TimeUtils.getTodayEndTime());
object.put("size",20);
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
int after = Integer.parseInt(XMJSONPath.readPath(exportTool.pageStudioExportRecord(), "$.result.total"));
Assert.assertEquals(after,before+1);
}
}
package com.xiaomai.cases.polar.eventRegistration;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
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 TestDel extends XMBaseTest {
@Resource(name = "EventRegistrationTools")
EventRegistrationTools EventRegistrationTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Registration)
.setApiName("API_deleteById")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "删除活动报名")
public void testDel() {
String activityName = "自动化" + RandomStringUtil.randomString(5);//活动名称
String activityName1 = "自动化编辑" + RandomStringUtil.randomString(5);//活动名称
int before1 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.getStudioActivityPage("UNPUBLISHED"), "$.result.total"));//未发布-初始活动条数
int before2 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.getStudioActivityPage("PROCESSING"), "$.result.total"));//报名中-初始活动条数
EventRegistrationTools.create(activityName,false, TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime(),TimeUtils.getToDayTime(23,00));//创建活动
String activityId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//创建活动后,拿活动id
EventRegistrationTools.sellableActivity_getStudioActivityById(activityId);
String skuId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result.skuItems[0].id");
EventRegistrationTools.edit(activityName1,false, TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime(),TimeUtils.getToDayTime(23,00),activityId,skuId);//编辑活动,修改活动名称
int after1 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.getStudioActivityPage("UNPUBLISHED"), "$.result.total"));//创建活动后,未发布活动条数
Assert.assertEquals(after1,before1+1);//创建未发布活动后,活动数+1
EventRegistrationTools.SearchActivity(activityName1);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.total"), "1", "未搜索到目标活动");
EventRegistrationTools.sellableActivity_publish(activityId);//发布活动
int after2 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.getStudioActivityPage("PROCESSING"), "$.result.total"));//发布活动后,进行中的活动条数
Assert.assertEquals(after2,before2+1);//创建未发布活动后,活动数+1
EventRegistrationTools.sellableActivityInvalid(activityId);//失效活动
EventRegistrationTools.sellableActivity_getStudioActivityById(activityId);//查看失效活动
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "ABNORMAL", "未失效活动成功");//断言活动详情返回状态为已失效
EventRegistrationTools.deleteById(activityId);//删除活动
int after3 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.getStudioActivityPage("PROCESSING"), "$.result.total"));//删除活动后,进行中的活动条数
Assert.assertEquals(after3,before2);//进行中的活动-1,和初始一样
}
}
package com.xiaomai.cases.polar.eventRegistration;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
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 TestGetPurchaseRecordDetail extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Registration)
.setApiName("API_getPurchaseRecordDetail")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("yangjian")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
DataUserInfo info = new DataUserInfo();
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "EventRegistrationTools")
EventRegistrationTools EventRegistrationTools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Test(description = "小程序-查看活动票详情")
public void testgetPurchaseRecordDetail() {
String memberId = userTools.getMemberInfo().getString("memberId");
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);//切换B端
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");
int before1 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.pagePurchaseRecord("WAITING",memberId), "$.result.total"));//未购买时,有几张待参与的活动票
int before2 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.pagePurchaseRecord("CANCELED",memberId), "$.result.total"));//未购买时,有几张已取消的活动票
EventRegistrationTools.sellableActivity_getStudioActivityPage("PROCESSING");//进行中的活动报名
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].activityId"), activityId, "目标活动未展示正确");
EventRegistrationTools.MinsellableActivity_getStudioActivityById(activityId);//查看活动详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "PROCESSING", "目标活动状态不正确");//目标活动为进行中的活动
String activitySkuId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result.skuItems[0].id");//获取活动购买项目id
EventRegistrationTools.sellableActivity_checkMemberPurchaseActivity(activityId,activitySkuId,memberId);//活动报名页
EventRegistrationTools.purchaseSellableActivity(activityId,activitySkuId,memberId);//报名
String id =XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//订单ID
orderTools.getDetail(id,info);//查看B生成的订单
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.voucherItems[0].activityType"), "SELLABLE_ACTIVITY", "非活动报名进来的订单");//断言订单为活动报名订单
int after1 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.pagePurchaseRecord("WAITING",memberId), "$.result.total"));//购买后,有几张待参与的活动票
Assert.assertEquals(after1,before1+1);
String recordId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].id");//获取第一张活动票的id
EventRegistrationTools.getPurchaseRecordDetail(recordId);//查看活动票详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.activityInfo.state"), "PROCESSING", "活动票状态非待参与");//断言活动票详情为待参与
EventRegistrationTools.BpagePurchaseRecord(activityId,info);//B端查看报名名单
String voucherId =XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].voucherId");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].memberInfo.id"), memberId, "报名活动人和C端memberid不一致");//断言参与报名的人的member正确
EventRegistrationTools.sellableActivity_getRecordUserInfo(recordId,info);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].values[0]"), "10000000000", "报名填写的手机号和用户信息不一致");//断言用户信息是否正确
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result[1].values[0]"), "自动化用户名称", "报名填写的姓名和用户信息不一致");//断言用户信息是否正确
EventRegistrationTools.cancelPurchaseRecord(voucherId,info);//活动报名-取消报名
EventRegistrationTools.BgetPurchaseRecordDetail(recordId,info);//B端查看报名详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "INVALID", "取消报名未成功");//核对B端报名状态
orderTools.getDetail(id,info);//查看B生成的订单
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "DISCARD", "订单未作废");//断言订单作废状态
EventRegistrationTools.getPurchaseRecordDetail(recordId);//小程序查看活动票详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "INVALID", "取消报名未成功");//核对C端报名状态
int after2 = Integer.parseInt(XMJSONPath.readPath(EventRegistrationTools.pagePurchaseRecord("CANCELED",memberId), "$.result.total"));//取消报名后,几张已取消的活动票
Assert.assertEquals(after2,before2+1);
EventRegistrationTools.deleteById(activityId,info);//删除活动报名
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "INVALID", "取消报名未成功");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.message"),"已有用户参与此活动,不支持删除");
EventRegistrationTools.sellableActivityInvalid(activityId,info);//失效活动
EventRegistrationTools.sellableActivity_getStudioActivityById(activityId,info);//查看失效活动
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "ABNORMAL", "未失效活动成功");//断言活动详情返回状态为已失效
}
}
...@@ -14,6 +14,8 @@ import com.xiaomai.utils.XMBaseTest; ...@@ -14,6 +14,8 @@ import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID; import java.util.UUID;
@Component("orderTools") @Component("orderTools")
...@@ -1036,5 +1038,39 @@ public class OrderTools extends XMBaseTest { ...@@ -1036,5 +1038,39 @@ public class OrderTools extends XMBaseTest {
return response; return response;
} }
/**
* @param
* @description:修改订单销售业绩
* @param voucherId:订单id
* @author: yangfangfang
**/
public JSONObject updateBusinessOwnerInfo(String ownerId,String ownerName,String voucherId,double amount,int percent, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_updateBusinessOwnerInfo")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject body1 = new JSONObject();
body1.put("ownerId",ownerId);//订单销售人员id
body1.put("ownerName",ownerName);//订单销售人员
body1.put("amount",amount);//业绩金额
body1.put("percent",percent);//业绩百分比
List<JSONObject> businessOwners = new ArrayList<>();
businessOwners.add(body1);
JSONObject jsonObject=new JSONObject();
jsonObject.put("businessOwners",businessOwners);
jsonObject.put("voucherId",voucherId);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
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.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
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;
public class TestUpdateGetdetail extends XMBaseTest {
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_getDetail")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "修改订单销售业绩-查看订单详情")
public void testUpdateGetdetail(){
String ownerId ="1796482784551211010";
String ownerName="f昵称昵称昵称f昵称昵称昵称f昵称昵称昵";
Tools tools=new Tools();
String name = "退单手续费"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("111");
String memberId = tools.create(name,phone).getString("result");
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡","MEMBER_CARD");
String cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
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"));
JSONObject orderResult= orderTools.signOrder(cardId, latestSnapshotId, quantity, price, validPeriod, latestSnapshotId, 0, "PURCHASE",
"MEMBER_CARD", memberId, price, price , "1", true);//会员签单
String getDetailId = orderResult.getString("result");//获取刚创建的订单id
orderTools.updateBusinessOwnerInfo(ownerId,ownerName,getDetailId,0.25,50);//修改业归属人
orderTools.getDetail(getDetailId);//查看订单详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.businessOwners[0].ownerId"), ownerId, "修改订单业绩人错误");//断言业绩归属人
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.businessOwners[0].owner.name"), ownerName, "修改订单业绩人错误");
//System.out.println("--------"+price);//--------1.0
//退单,产生手续费
orderTools.listUserRefundableCard("MEMBER","次卡",memberId);//查看会员名下可退卡
String memberCardId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].id");//拿新购买的卡ID
JSONObject getDetailBResult=orderTools.getDetail(getDetailId);//查看订单详情
BigDecimal quantity1= new BigDecimal(getDetailBResult.getJSONObject("result").getJSONArray("voucherItems").getJSONObject(0).getJSONObject("purchaseCardSkuAttr").getJSONArray("skuItemAttrs").getJSONObject(0).getString("quantity"));
orderTools.refundOrder(ownerId,ownerName,0,memberCardId,quantity1,1,"MEMBER_CARD",memberId,0,0,"1",1,new BigDecimal(1),new BigDecimal(0));
String getDetailId1=XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//退单订单id
orderTools.getDetail(getDetailId1);//查看退单订单详情
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.voucherItems[0].deductionAmount"), 1.0, "");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.voucherItems[0].deductionAmount"), "1.0000", "订单未产生手续费");//断言退单详情,手续费产生1元
}
}
...@@ -289,7 +289,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest { ...@@ -289,7 +289,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert.assertEquals(disSignInventory,disRefundInventory+1,"B端作废购买订单后,物品库存数应增加1个"); Assert.assertEquals(disSignInventory,disRefundInventory+1,"B端作废购买订单后,物品库存数应增加1个");
try { try {
Thread.sleep(5000); Thread.sleep(8000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -922,4 +922,87 @@ public class CardTools extends XMBaseTest { ...@@ -922,4 +922,87 @@ public class CardTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true); dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON(); return dataApi.getBodyInJSON();
} }
/**
* @param
* @description:删除卡(会员、体验、储蓄)
* @author: yangjian
* @param id 卡id
**/
public JSONObject tenantMemberCard_delete(String id, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_delete")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", id);
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:延长单卡-期限卡有效期
* @author: yangjian
* @param days 延长天数
* @param memberCardId 卡id
**/
public JSONObject extendEffectiveDate(String days,String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_extendEffectiveDate")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("days", days);
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("memo", "自动化延长");
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:批量延长卡有效期
* @author: yangjian
* @param days 延长天数
* @param accountType 类型 MEMBER会员卡 DEPOSIT储蓄卡
**/
public JSONObject batchExtEffectiveDate(String accountType,String days,DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_batchExtEffectiveDate")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("accountType", accountType);
jsonObject.put("activateTimeStart", TimeUtils.getTodayTime());//批量任务,数据太多,仅批量延长开卡时间是今天的卡
jsonObject.put("days", days);
jsonObject.put("memo", "自动化批量延长");
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
} }
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
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 TestCardDel extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_delete")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "删除卡")
public void testCardDel() throws InterruptedException {
cardTools.memberCardCreate("会员卡-需要删除");//创建会员卡
String memberCardId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//获取会员卡ID
cardTools.tenantMemberCard_delete(memberCardId);//删除会员卡
cardTools.fetchDetailById(memberCardId);//查看已删除会员卡详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.deleted"), "YES", "目标会员卡,未删除成功");//断言已删除的会员卡详情,返回已删除字段
String memberCardId1="1894024199604604929";//已有出售记录的会员卡。随机找了一张
cardTools.tenantMemberCard_delete(memberCardId1);//删除已出售的会员卡会员卡
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.message"), "该卡项已售出,不可删除!", "已出售的会员卡居然删除了");//断言已出售的会员卡,无法删除
String prizeName = "体验卡-需要删除";
JSONObject benefit = new JSONObject();
benefit.put("identifier", RandomStringUtil.randomString(20));
benefit.put("benefitType", "BALANCE");
benefit.put("targetScope","GROUP_CLASS_AND_PERSONAL_COURSE");
benefit.put("balance","3");//使用次数
benefit.put("reserveLimitType","UN_LIMIT");//预约次数限制:不限制
benefit.put("reserveLimitNumber",0);
benefit.put("defaultConsumeBalance",1);//扣除次数
benefit.put("itemList",new JSONArray());
benefit.put("targetType","COURSE");
benefit.put("price","10");
Thread.sleep(3000);//前面创建过会员卡,加上防止调用频繁
String prizeId = cardTools.experienceCardCreate(prizeName,"10",benefit);
cardTools.tenantMemberCard_delete(prizeId);//删除体验卡
cardTools.fetchDetailById(prizeId);//查看已删除会员卡详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.deleted"), "YES", "目标会员卡,未删除成功");//断言已删除的体验卡详情,返回已删除字段
String prizeId1="1897439567449800706";//已有出售记录的会员卡。随机找了一张
cardTools.tenantMemberCard_delete(prizeId1);//删除已出售的会员卡会员卡
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.message"), "该卡项已售出,不可删除!", "已出售的体验看居然删除了");//断言已出售的体验卡,无法删除
Thread.sleep(3000);
cardTools.depositCardCreate("储值卡-需要删除" ,"0.00","100.00");//创建储值卡
String cardId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result");
cardTools.tenantMemberCard_delete(cardId);//删除储值卡
cardTools.fetchDetailById(cardId);//查看已删除会员卡详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.deleted"), "YES", "目标会员卡,未删除成功");//断言已删除的储值卡详情,返回已删除字段
String cardId1="1875017334458486785";//已有出售记录的会员卡。随机找了一张
cardTools.tenantMemberCard_delete(cardId1);//删除已出售的会员卡会员卡
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.message"), "该卡项已售出,不可删除!", "已出售的体验看居然删除了");//断言已出售的体验卡,无法删除
}
}
...@@ -2,6 +2,8 @@ package com.xiaomai.cases.polar.memberCard; ...@@ -2,6 +2,8 @@ package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType; import com.xiaomai.enums.RequestType;
...@@ -13,6 +15,7 @@ import org.testng.Assert; ...@@ -13,6 +15,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -29,7 +32,7 @@ public class TestCreateTerm extends XMBaseTest { ...@@ -29,7 +32,7 @@ public class TestCreateTerm extends XMBaseTest {
super.beforeTest(); super.beforeTest();
} }
@Test(description = "创建期限卡") @Test(description = "创建期限卡")
public void testCreateTerm() { public void testCreateTerm() throws InterruptedException {
CardTools Cardtools = new CardTools(); CardTools Cardtools = new CardTools();
JSONArray activatePatternList = new JSONArray(); JSONArray activatePatternList = new JSONArray();
activatePatternList.add("PURCHASE"); activatePatternList.add("PURCHASE");
...@@ -75,11 +78,68 @@ public class TestCreateTerm extends XMBaseTest { ...@@ -75,11 +78,68 @@ public class TestCreateTerm extends XMBaseTest {
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId()); jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("commodityCardType","MEMBER_CARD"); jsonObject.put("commodityCardType","MEMBER_CARD");
Thread.sleep(3000);//防止调用频繁
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true); xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//String cardId= XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//期限卡ID
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");//会员卡第一张 Cardtools.fetchPageOfMemberCard("MEMBER_CARD");//会员卡第一张
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].benefitList[0].benefitType"), "PERIOD", "创建的非期限卡");//类型为期限卡 Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].benefitList[0].benefitType"), "PERIOD", "创建的非期限卡");//类型为期限卡
OrderTools orderTools = new OrderTools();
Tools tools=new Tools();
String name = "创建数据中心潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("111");
String memberId = tools.create(name,phone).getString("result");
JSONObject memberCard=orderTools.fetchPageOfMemberCard(title,"MEMBER_CARD");
String cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
//BigDecimal quantity= XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].validPeriod");//
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");
orderTools.signOrder(cardId, latestSnapshotId, new BigDecimal(3), price, validPeriod, latestSnapshotId, 0, "PURCHASE",
"MEMBER_CARD", memberId, price , price , "1",true);//创建期限卡订单
String id = XMJSONPath.readPath(dataApi.getApi_response(), "$.result");//获取订单id
orderTools.fetchUserCardList("MEMBER",memberId,"NORMAL");//查看会员名下卡
String cardid=XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");//获取售出卡id
Cardtools.memberCardFindDetailById(cardid);//查看期限卡售卖记录详情
int before = Integer.parseInt(XMJSONPath.readPath(Cardtools.memberCardFindDetailById(cardid), "$.result.leftEffectiveDays"));//初始期限卡剩余天数
System.out.println("--------"+before);
Cardtools.extendEffectiveDate("1",cardid);//延长期限卡有效期1天
Cardtools.memberCardFindDetailById(cardid);//再次查看期限卡售卖记录详情
int after = Integer.parseInt(XMJSONPath.readPath(Cardtools.memberCardFindDetailById(cardid), "$.result.leftEffectiveDays"));//延长后期限卡剩余天数
System.out.println("--------"+after);
Assert.assertEquals(after,before+1);//断言有效期加了一天
Cardtools.batchExtEffectiveDate("MEMBER","1");//批量延长卡有效期 1天??
Thread.sleep(3000);
Cardtools.memberCardFindDetailById(cardid);//再次查看期限卡售卖记录详情
int after1 = Integer.parseInt(XMJSONPath.readPath(Cardtools.memberCardFindDetailById(cardid), "$.result.leftEffectiveDays"));//延长后期限卡剩余天数
Assert.assertEquals(after1,after+1);//断言有效期加了一天
orderTools.discard(id,"订单录错","");//作废期限卡订单,新逻辑:未消耗的期限卡能直接作废订单
orderTools.getDetail(id);//查看已作废订单详情
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "DISCARD", "作废期限卡订单成功未成功");//断言订单已作废
Cardtools.fetchPageOfMemberCard("MEMBER_CARD"); Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id"); String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
Cardtools.modifyMemberCardShelfState(memberCardId,"NO");//停卡 Cardtools.modifyMemberCardShelfState(memberCardId,"NO");//停卡
......
package com.xiaomai.cases.polar.setting.venue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.export.ExportTool;
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 javax.annotation.Resource;
public class TestVenueBookingRecordExport extends XMBaseTest {
@BeforeMethod
public void beforeTest() {
xmAppApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_venueBookingRecord_export")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "场地预约-约场记录-导出")
public void testvenueBookingRecordExport() {
ExportTool exportTool = new ExportTool();
int before = Integer.parseInt(XMJSONPath.readPath(exportTool.pageStudioExportRecord(), "$.result.total"));
JSONObject object = new JSONObject();
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
String id =XMJSONPath.readPath(dataApi.getApi_response(),"$.result");//导出任务id
int after = Integer.parseInt(XMJSONPath.readPath(exportTool.pageStudioExportRecord(), "$.result.total"));
Assert.assertEquals(after,before+1);
}
}
...@@ -32,6 +32,7 @@ public class ApiModule { ...@@ -32,6 +32,7 @@ public class ApiModule {
public static String Polar_Membercluster = "polar_membercluster"; public static String Polar_Membercluster = "polar_membercluster";
public static String Polar_Salary = "polar_salary"; public static String Polar_Salary = "polar_salary";
public static String Polar_Invitation = "polar_invitation"; public static String Polar_Invitation = "polar_invitation";
public static String Polar_Registration = "polar_registration";//活动报名
public static String Polar_MemberEntry="polar_memberEntry";//入场 public static String Polar_MemberEntry="polar_memberEntry";//入场
public static String Polar_Export="polar_export";//导出 public static String Polar_Export="polar_export";//导出
...@@ -51,6 +52,7 @@ public class ApiModule { ...@@ -51,6 +52,7 @@ public class ApiModule {
public static String Lunar_Share="lunar_share";//分享 public static String Lunar_Share="lunar_share";//分享
public static String Lunar_VenueArea="lunar_venueArea";//场地 public static String Lunar_VenueArea="lunar_venueArea";//场地
public static String Lunar_Goods="lunar_goods";//物品 public static String Lunar_Goods="lunar_goods";//物品
public static String Lunar_Registration = "lunar_registration";//活动报名
public static String Lunar_Invitation = "lunar_invitation"; public static String Lunar_Invitation = "lunar_invitation";
......
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