Commit ad98be80 by xyy

新增幸运抽奖case

parent 94b289a6
...@@ -105,6 +105,59 @@ public class CouponTools extends BaseTestImpl { ...@@ -105,6 +105,59 @@ public class CouponTools extends BaseTestImpl {
} }
/** /**
* 创建用于营销活动的优惠券
* @param useThresholdType:"WITHOUT"无门槛,"THRESHOLD"达到条件可用
* @param couponName
* @param allScope 全部商品可用true,指定商品可用false
* @param userInfos
* @return
*/
public String createStudioCoupon(String useThresholdType, String couponName, Boolean allScope,DataUserInfo...userInfos) {
setUP("API_createCoupon",userInfos);
String[] memberStatusLimits = {"POTENTIAL", "NORMAL", "HISTORY"};
JSONObject receiveCondition = new JSONObject();
receiveCondition.put("receiveTimesUpperType","WITHOUT");//每人领取次数不限制
receiveCondition.put("memberStatusLimits",memberStatusLimits);//可领取会员类型
JSONObject body = new JSONObject();
body.put("useThresholdType", useThresholdType);
if (useThresholdType.equals("THRESHOLD")) {//使用门槛是达到条件可用
body.put("useThreshold", 10);//目前没写成动态传参,固定为10元
}
body.put("useForActivity", true);//开启营销活动开关
body.put("quantityLimit", false);//若为true,则填写quantity
body.put("receiveCondition", receiveCondition);
body.put("name",couponName);
body.put("validPeriodType", "RELATIVE");//有效期:领取后生效
body.put("validPeriodStartTime",null);
body.put("validPeriodEndTime",null);
body.put("relativeDay","30");//领取30天内有效
body.put("memo", "自动化脚本生成用于营销活动的优惠券");
body.put("quantity","-1");//发放数量不限制
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("allScope",allScope);//全部可用
if(allScope.equals(false)){
String[] scope = {"MEMBER_CARD", "TRAINING_CAMP", "SINGLE_RESERVE", "EXPERIENCE_CARD"};//指定会员卡、体验卡、训练营、单次约课
body.put("scope",scope);//指定商品范围
body.put("preferentialType","DISCOUNT");//打折
body.put("preferential",8.8);//打8.8折
}else{
body.put("preferentialType","CERTAIN");
body.put("preferential",10);//直减10元
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(),"$.success"))==true,"调用接口返回结果:"+XMJSONPath.readPath(dataApi.getApi_response(),"$.message"));
return XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
}
/**
* 查看优惠券列表 * 查看优惠券列表
* @param nameLike 全局搜索中 根据优惠券名称搜索 * @param nameLike 全局搜索中 根据优惠券名称搜索
* @param status 列表中根据优惠券状态搜索 * @param status 列表中根据优惠券状态搜索
...@@ -236,8 +289,8 @@ public class CouponTools extends BaseTestImpl { ...@@ -236,8 +289,8 @@ public class CouponTools extends BaseTestImpl {
* 作废会员已领取/已发放的优惠券 * 作废会员已领取/已发放的优惠券
* @param recordId 对应的记录ID * @param recordId 对应的记录ID
*/ */
public void abandonMembercouponReceiveRecord(String recordId){ public void abandonMembercouponReceiveRecord(String recordId,DataUserInfo...userInfo){
setUP("API_abandonMembercouponReceiveRecord"); setUP("API_abandonMembercouponReceiveRecord",userInfo);
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId()); body.put("studioId", dataApi.getLoginInfo().getStudioId());
...@@ -248,6 +301,29 @@ public class CouponTools extends BaseTestImpl { ...@@ -248,6 +301,29 @@ public class CouponTools extends BaseTestImpl {
} }
/**
* 会员名下的优惠券
* @param receiverId
* @param status
* @param userInfo
* @return
*/
public JSONObject pageMemberReceivedCoupon(String receiverId,String status,DataUserInfo...userInfo){
setUP("API_pageMemberReceivedCoupon",userInfo);
JSONObject body = new JSONObject();
body.put("current", 0);
body.put("receiverId", receiverId);
body.put("size", 20);
body.put("status", status);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs);
Assert.assertTrue(Boolean.valueOf(XMJSONPath.readPath(dataApi.getApi_response(),"$.success"))==true,"调用接口返回结果:"+XMJSONPath.readPath(dataApi.getApi_response(),"$.message"));
return dataApi.getBodyInJSON();
}
} }
\ No newline at end of file
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import org.springframework.stereotype.Component;
@Component("luckyDrawTools")
public class LuckyDrawTools extends BaseTestImpl {
/**
* 查看幸运抽奖列表
* @param name 全局搜索中 根据活动名称搜索
*/
public JSONObject getLuckyDrawByPage(String name,DataUserInfo... userInfo){
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getLuckyDrawByPage")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("current",0);
body.put("size",10);
if (null != name || !name.isEmpty()) {
body.put("name", name);
}
// if (null != status || !status.isEmpty()) {
// body.put("status", status);
// }
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 查看优惠券列表
* @param nameLike 全局搜索中 根据优惠券名称搜索
*/
public JSONObject getStudioCouponList(String nameLike,DataUserInfo...userInfo){
dataApi.setApiModule(ApiModule.Polar_Coupon)
.setApiName("API_getStudioCouponList")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("status","CLAIMABLE");//可领取的优惠券
body.put("useForActivity",true);//是否开启用于营销活动
body.put("current",0);
body.put("size",20);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
if (null != nameLike || !nameLike.isEmpty()) {
body.put("nameLike", nameLike);
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 查询用于营销活动的体验卡
* @param title
* @param userInfo
* @return
*/
public JSONObject getPageOfMemberCard(String title,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfMemberCard")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("shelfState","YES");//启用状态
body.put("current", 0);
body.put("size", 20);
body.put("useForActivity", true);//是否开启营销活动
body.put("commodityCardType","EXPERIENCE_CARD");
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
if (null != title || !title.isEmpty()) {
body.put("title", title);
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 自定义奖品列表
* @param prizeName
* @param userInfo
* @return
*/
public JSONObject getCustomizePrizeByPage(String prizeName,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getCustomizePrizeByPage")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("current", 0);
body.put("size", 20);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
if (null != prizeName || !prizeName.isEmpty()) {
body.put("prizeName", prizeName);
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 创建自定义奖品
* @param prizeName
* @param userInfo
* @return
*/
public String addCustomizePrize(String prizeName,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_addCustomizePrize")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("prizeName", prizeName);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* 删除自定义奖品
* @param prizeId
* @param userInfo
* @return
*/
public JSONObject delCustomizePrize(String prizeId, DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_delCustomizePrize")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("id", prizeId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs);
return dataApi.getBodyInJSON();
}
/**
* 创建幸运抽奖:主要创建活动是未开始的活动,可以通过编辑改活动为进行中
*/
public String addLuckyDraw(String prizeType,String prizeName,String prizeId,boolean publish,String activityName,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_addLuckyDraw")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
String[] applyMemberStates = {"POTENTIAL", "NORMAL", "HISTORY"};
JSONArray prizeList = new JSONArray();
JSONObject prize = new JSONObject();
switch(prizeType){
case "COUPON":
prize.put("prizeType",prizeType);//优惠券
prize.put("stock","100");//奖品数量
prize.put("probability","100");//中奖概率
prize.put("prizeImgId","1");
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
break;
case "EXPERIENCE_CARD":
prize.put("prizeType",prizeType);//体验卡
prize.put("stock","100");
prize.put("probability","100");
prize.put("prizeImgId","2");
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
break;
case "CUSTOMIZE_GIFT":
prize.put("prizeType",prizeType);//自定义奖品
prize.put("stock","100");
prize.put("probability","100");
prize.put("prizeImgId","3");
prize.put("period","100");//兑奖时效
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
}
prizeList.add(prize);
JSONObject body = new JSONObject();
body.put("actWay", "SUDOKU");
body.put("applyMemberStates", applyMemberStates);
body.put("name", activityName);
body.put("endTime", TimeUtils.getAfterDayDate(30));//活动结束时间:当前时间往后30天
body.put("maxWinNumber","100");//最多可中奖次数
body.put("noWinImgId","0");//未中奖图
body.put("noWinName", "谢谢惠顾");
body.put("publish",publish);//是否发布
body.put("actDescribe","自动化脚本创建幸运抽奖");
body.put("startTime",TimeUtils.getAfterDayDate(1));//活动开始时间:当前时间往后1天
body.put("prizeList",prizeList);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
if(publish==false){
body.put("totalLimit",100);//每人总共抽100次
}else {
body.put("dailyLimit",100);//每人每日抽100次
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* 发布幸运抽奖
* @param activityId
* @param userInfo
*/
public void publishLuckyDraw(String activityId,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_publishLuckyDraw")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("id", activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
}
/**
* 编辑幸运抽奖,主要改活动为进行中
* @param prizeType
* @param prizeId
* @param prizeName
* @param userInfo
*/
public void editLuckyDraw(String prizeType,String prizeNo,String prizeName,String prizeId,boolean publish,String activityId,String activityName,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_editLuckyDraw")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
String[] applyMemberStates = {"POTENTIAL", "NORMAL", "HISTORY"};
JSONArray prizeList = new JSONArray();
JSONObject prize = new JSONObject();
switch(prizeType){
case "COUPON":
prize.put("id",prizeNo);
prize.put("activityId",activityId);
prize.put("prizeType",prizeType);//优惠券
prize.put("stock","100");//奖品数量
prize.put("probability","100");//中奖概率
prize.put("prizeImgId","1");
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
break;
case "EXPERIENCE_CARD":
prize.put("id",prizeNo);
prize.put("activityId",activityId);
prize.put("prizeType",prizeType);//体验卡
prize.put("stock","100");
prize.put("probability","100");
prize.put("prizeImgId","2");
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
break;
case "CUSTOMIZE_GIFT":
prize.put("id",prizeNo);
prize.put("activityId",activityId);
prize.put("prizeType",prizeType);//自定义奖品
prize.put("stock","100");
prize.put("probability","100");
prize.put("prizeImgId","3");
prize.put("period","100");//兑奖时效
prize.put("prizeName",prizeName);
prize.put("prizeId",prizeId);
}
prizeList.add(prize);
JSONObject body = new JSONObject();
body.put("actWay", "SUDOKU");
body.put("applyMemberStates", applyMemberStates);
body.put("name", activityName);
body.put("endTime", TimeUtils.getAfterDayDate(30));//活动结束时间:当前时间往后30天
body.put("maxWinNumber", "100");//最多可中奖次数
body.put("noWinImgId", 0);//未中奖图
body.put("noWinName", "谢谢惠顾");
body.put("publish",publish);//是否发布
body.put("actDescribe","自动化脚本edit幸运抽奖");
body.put("startTime",System.currentTimeMillis());//活动开始时间:当前时间
body.put("prizeList",prizeList);
body.put("id",activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
if(publish==true){
body.put("dailyLimit",100);//每人每日抽100次
}else {
body.put("totalLimit",100);//每人总共抽100次
}
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
}
/**
* 删除幸运抽奖
* @param activityId
* @param userInfo
*/
public void deleteLuckyDraw(String activityId,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_deleteLuckyDraw")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("id", activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
}
/**
* 查看幸运抽奖活动详情
* @param activityId
* @param userInfo
* @return
*/
public JSONObject getLuckyDrawDetail(String activityId,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getLuckyDrawDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 查看活动数据-奖品消耗
* @param activityId
* @param userInfo
* @return
*/
public JSONObject getLuckyPrizeCount(String activityId,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getLuckyPrizeCount")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 查看活动数据-参与记录
* @param activityId
* @param userInfo
* @return
*/
public JSONObject getLuckyAttendByPage(String activityId,DataUserInfo...userInfo) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getLuckyAttendByPage")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("startCreated",null);
body.put("endCreated",null);
body.put("memberId",null);
body.put("current",0);
body.put("size",10);
body.put("actId",activityId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序获取抽奖次数
* @param activityId
* @return
*/
public int getDrawNum(String activityId,String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_LuckyDraw)
.setApiName("API_getDrawNum")
.setTerminal(Terminal.C);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return Integer.parseInt(dataApi.getBodyInJSON().getString("result"));
}
/**
* 小程序查看我的奖品
* @param activityId
* @param memberId
* @return
*/
public JSONObject getMyActPrizeByPage(String activityId,String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_LuckyDraw)
.setApiName("API_getMyActPrizeByPage")
.setTerminal(Terminal.C);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("current",0);
body.put("size",20);
body.put("activityType","LUCKY_DRAW");
body.put("activityId",activityId);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序我的活动
* @param memberId
* @return
*/
public JSONObject getMyActivityByPage(String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_LuckyDraw)
.setApiName("API_getMyActivityByPage")
.setTerminal(Terminal.C);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("current",0);
body.put("size",20);
body.put("activityType","LUCKY_DRAW");
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 查看小程序我的优惠券
* @param memberId
* @return
*/
public int countMemberReceivedCoupon(String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_Coupon)
.setApiName("API_countMemberReceivedCoupon")
.setTerminal(Terminal.C);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("receiverId",memberId);
body.put("status","AVAILABLE");
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return Integer.parseInt(dataApi.getBodyInJSON().getString("result"));
}
/**
* 小程序幸运抽奖活动进行抽奖
* @param activityId
* @param memberId
* @param userInfos
* @return
*/
public JSONObject luckyDrawLottery(String activityId,String memberId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Lunar_LuckyDraw)
.setApiName("API_luckyDrawLottery")
.setTerminal(Terminal.C);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 兑换自定义奖品
* @param sendRecordId
* @param userInfos
*/
public JSONObject exchangePrize(String sendRecordId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_exchangePrize")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("id",sendRecordId);
body.put("manual",true);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs);
return dataApi.getBodyInJSON();
}
/**
* 核对中奖信息
* @param sendRecordId
* @param userInfos
* @return
*/
public JSONObject getRewardSendDetail(String sendRecordId,DataUserInfo...userInfos) {
dataApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getRewardSendDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject body = new JSONObject();
body.put("id",sendRecordId);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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 TestAbnormalLuckyDraw extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_abnormalLuckyDraw")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "创建未发布活动->发布活动->失效活动->删除活动")
public void testAbnormalLuckyDraw()throws InterruptedException{
//获取活动列表数据
int total = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyDrawByPage(""),"$.result.total"));
//创建自定义奖品
String prizeName = "奖品" + RandomStringUtil.randomString(5);
String prizeId = luckyDrawTools.addCustomizePrize(prizeName);
//创建活动名称
String activityName = "每人总共抽100次" + RandomStringUtil.randomString(5);
//创建未发布的活动
String activityId = luckyDrawTools.addLuckyDraw("CUSTOMIZE_GIFT",prizeName,prizeId,false,activityName);
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyDrawByPage(""),"$.result.total"))==total+1);
Thread.sleep(1000);
//检验活动状态=未发布
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId),"$.result.status"),"UNPUBLISHED");
//此时删除自定义奖品,会报错,因为奖品关联着活动
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.delCustomizePrize(prizeId),"$.message"),"该奖品已被"+activityName+"活动引用,暂不支持删除。");
//发布活动,并且校验活动状态=未开始
luckyDrawTools.publishLuckyDraw(activityId);
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId),"$.result.status"),"WAITING");
//失效活动
JSONObject body = new JSONObject();
body.put("id", activityId);
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
//检验活动状态=已失效
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId),"$.result.status"),"ABNORMAL");
//删除活动
luckyDrawTools.deleteLuckyDraw(activityId);
//删除自定义奖品
luckyDrawTools.delCustomizePrize(prizeId);
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestAddCustomizePrize extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_addCustomizePrize")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"自定义奖品",false},
{"奖品"+ RandomStringUtil.randomString(5),true}
};
}
@Test(description = "创建自定义奖品",dataProvider = "dataProvider")
public void testAddCustomizePrize(String prizeName,boolean success){
//获取当前自定义奖品列表数量
int total = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getCustomizePrizeByPage(""),"$.result.total"));
JSONObject body = new JSONObject();
body.put("prizeName", prizeName);
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers);
if(success==false){
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"自定义奖品名称重复,请修改");
}else{
String prizeId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result");
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
//检查自定奖品列表数据+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getCustomizePrizeByPage(""),"$.result.total"))==total+1);
//清理数据
luckyDrawTools.delCustomizePrize(prizeId);
}
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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 TestGetShareDetail extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getShareDetail")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "分享幸运抽奖海报")
public void testGetShareDetail()throws InterruptedException{
//创建自定义奖品
String prizeName = "奖品" + RandomStringUtil.randomString(5);
String prizeId = luckyDrawTools.addCustomizePrize(prizeName);
//创建活动名称
String activityName = "每人每日抽100次" + RandomStringUtil.randomString(5);
//创建已发布的活动
String activityId = luckyDrawTools.addLuckyDraw("CUSTOMIZE_GIFT",prizeName,prizeId,true,activityName);
//构建参数
JSONObject body = new JSONObject();
JSONObject extJson = new JSONObject();
extJson.put("brandId", xmAppApi.getLoginInfo().getBrandId());
extJson.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("bizId", activityId);
body.put("shareType", "LUCKY_DRAW");
body.put("extJson", extJson);
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
//调用请求
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.studioId"),xmAppApi.getLoginInfo().getStudioId());
//清理数据
//删除活动
luckyDrawTools.deleteLuckyDraw(activityId);
Thread.sleep(2000);
//删除自定义奖品
luckyDrawTools.delCustomizePrize(prizeId);
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.client.DataUserInfo;
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 TestGetStudioMemberPrizeByPage extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
DataUserInfo info = new DataUserInfo();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_getStudioMemberPrizeByPage")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "幸运抽奖-会员中奖列表")
public void testGetStudioMemberPrizeByPage(){
//获取会员信息
String memberId = trainingTools.searchTargerMember("自动化会员");;
//调用请求
JSONObject body = new JSONObject();
body.put("current",0);
body.put("size",10);
body.put("memberId",memberId);
body.put("prizeType","CUSTOMIZE_GIFT");
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
//若该会员名下有抽奖记录,则进入手动兑奖流程:
int total = Integer.parseInt(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.total"));
if (total>0){
for (int i = 0; i < total-1; i++) {
String sendState = XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.records["+i+"].sendState");
String sendRecordId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.records["+i+"].id");
String activityId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.records["+i+"].activityId");
//获取到的兑奖记录,暂未兑奖,可进行兑奖:
if(sendState=="NOT_SENT"){
Assert.assertEquals(luckyDrawTools.exchangePrize(sendRecordId),"$.message","操作成功!");
//兑奖状态=已兑换
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId),"$.result.records[0].sendState"),"SENT");//已兑奖状态
break;
}else{
//该兑奖记录若已兑奖,则提示兑奖码已兑换!
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.exchangePrize(sendRecordId),"$.message"),"该奖品码已兑换");
}
}
}
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONArray;
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.cases.polar.coupon.CouponTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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 TestLuckyDrawLottery extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "couponTools")
CouponTools couponTools;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "minCardTools")
MinCardTools minCardTools;
@Resource(name = "orderCTools")
OrderCTools orderCTools;
@Resource(name = "orderTools")
OrderTools orderTools;
DataUserInfo info = new DataUserInfo();
public String prizeId;
public String prizeName;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_LuckyDraw)
.setApiName("API_luckyDrawLottery")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "参与抽奖-抽中优惠券")
public void testLuckyDrawLottery_coupon()throws InterruptedException{
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//查询用于营销的优惠券数量
int total = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getStudioCouponList("yx优惠券",info),"$.result.total"));
if(total==0){
//创建1张优惠券
prizeName = "yx优惠券" + RandomStringUtil.randomString(5);
prizeId = couponTools.createStudioCoupon("WITHOUT",prizeName,true,info);
}
prizeId = XMJSONPath.readPath(luckyDrawTools.getStudioCouponList("yx优惠券",info),"$.result.records[0].id");
prizeName = XMJSONPath.readPath(luckyDrawTools.getStudioCouponList("yx优惠券",info),"$.result.records[0].name");
//创建活动名称
String activityName = "每人每天抽优惠券" + RandomStringUtil.randomString(5);
//创建活动=未开始
String activityId = luckyDrawTools.addLuckyDraw("COUPON",prizeName,prizeId,true,activityName,info);
Thread.sleep(1000);
String prizeNo = XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId,info),"$.result.prizeList[0].id");
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools.editLuckyDraw("COUPON",prizeNo,prizeName,prizeId,true,activityId,activityName,info);
//获取会员信息
String memberId = userTools.getMemberInfo().getString("memberId");
//当前我的抽奖次数
int drawNum = luckyDrawTools.getDrawNum(activityId,memberId);
//当前我的活动数量
int activityNum = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActivityByPage(memberId),"$.result.total"));
//当前我的优惠券数量
int couponNum = luckyDrawTools.countMemberReceivedCoupon(memberId);
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("memberId",memberId);
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
//100%中奖
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.winPrize"),"true");
//抽奖次数-1
Assert.assertTrue(luckyDrawTools.getDrawNum(activityId,memberId)==drawNum-1);
//我的奖品+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActPrizeByPage(activityId,memberId),"$.result.total"))==1);
//我的活动+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActivityByPage(memberId),"$.result.total"))==activityNum+1);
//我的优惠券+1
Assert.assertTrue(luckyDrawTools.countMemberReceivedCoupon(memberId)==couponNum+1);
//app奖品消耗
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId,info),"$.result[0].winCount"))==1);//已抽中1个
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId,info),"$.result[0].stock"))==99);//剩余99个
//app参与记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId,info),"$.result.total"))==1);//参与人员1个
//清理数据
//会员详情-优惠券-作废优惠券
String goalRecordId = XMJSONPath.readPath(couponTools.pageMemberReceivedCoupon(memberId,"AVAILABLE",info),"$.result.records[0].id");
Thread.sleep(1000);
couponTools.abandonMembercouponReceiveRecord(goalRecordId,info);
}
@Test(description = "参与抽奖-抽奖体验卡")
public void testLuckyDrawLottery_experienceCard()throws InterruptedException{
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//查询用于营销的体验卡数量
int total = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getPageOfMemberCard("yx体验卡",info),"$.result.total"));
if(total==0){
//创建1张体验卡
prizeName = "yx体验卡" + RandomStringUtil.randomString(5);
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");
prizeId = cardTools.experienceCardCreate(prizeName,"10",benefit,info);
}
prizeId = XMJSONPath.readPath(luckyDrawTools.getPageOfMemberCard("yx体验卡",info),"$.result.records[0].id");
prizeName = XMJSONPath.readPath(luckyDrawTools.getPageOfMemberCard("yx体验卡",info),"$.result.records[0].name");
//创建活动名称
String activityName = "每人每天抽体验卡" + RandomStringUtil.randomString(5);
//创建活动=未开始
Thread.sleep(4000);
String activityId = luckyDrawTools.addLuckyDraw("EXPERIENCE_CARD",prizeName,prizeId,true,activityName,info);
Thread.sleep(1000);
String prizeNo = XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId,info),"$.result.prizeList[0].id");
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools.editLuckyDraw("EXPERIENCE_CARD",prizeNo,prizeName,prizeId,true,activityId,activityName,info);
//获取会员信息
String memberId = userTools.getMemberInfo().getString("memberId");
//当前我的抽奖次数
int drawNum = luckyDrawTools.getDrawNum(activityId,memberId);
//当前我的活动数量
int activityNum = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActivityByPage(memberId),"$.result.total"));
//当前我的卡包数量
int cardNum = minCardTools.countMyUsableCard(memberId);
//当前我的订单
int orderNum = Integer.parseInt(XMJSONPath.readPath(orderCTools.pageOrder(memberId),"$.result.total"));
JSONObject body = new JSONObject();
body.put("id",activityId);
body.put("memberId",memberId);
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
//100%中奖
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.winPrize"),"true");
//抽奖次数-1
Assert.assertTrue(luckyDrawTools.getDrawNum(activityId,memberId)==drawNum-1);
//我的奖品+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActPrizeByPage(activityId,memberId),"$.result.total"))==1);
//我的活动+1
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActivityByPage(memberId),"$.result.total"))==activityNum+1);
//我的卡包+1
Assert.assertTrue(minCardTools.countMyUsableCard(memberId)==cardNum+1);
//我的订单+1
String voucherId = XMJSONPath.readPath(orderCTools.pageOrder(memberId),"$.result.records[0].id");
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(orderCTools.pageOrder(memberId),"$.result.total"))==orderNum+1);
//app奖品消耗,参与记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId,info),"$.result[0].winCount"))==1);//已抽中1个
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId,info),"$.result[0].stock"))==99);//剩余99个
//app参与记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId,info),"$.result.total"))==1);//参与人员1个
//清理数据
//作废体验卡订单
orderTools.discard(voucherId,"其他","自动化作废订单",info);
}
}
package com.xiaomai.cases.polar.luckyDraw;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
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 TestPrizeScanCode extends XMBaseTest {
@Resource(name = "luckyDrawTools")
LuckyDrawTools luckyDrawTools;
@Resource(name = "userTools")
UserTools userTools;
DataUserInfo info = new DataUserInfo();
public String prizeId;
public String prizeName = "自定义奖品";;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_LuckyDraw)
.setApiName("API_prizeScanCode")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "扫幸运抽奖活动的兑奖二维码进行兑奖")
public void testPrizeScanCod()throws InterruptedException{
info.setTerminal(Terminal.minApp);
info.setLoginUser(LoginAccount.GYM_MINIAPPC);
//查询自定义奖品数量
int total = Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getCustomizePrizeByPage("自定义奖品"),"$.result.total"));
if(total==0){
//创建1个自定义奖品
prizeId = luckyDrawTools.addCustomizePrize(prizeName);
}
prizeId = XMJSONPath.readPath(luckyDrawTools.getCustomizePrizeByPage("自定义奖品"),"$.result.records[0].id");
//创建活动名称
String activityName = "每人每天抽自定义奖品" + RandomStringUtil.randomString(5);
//创建活动=未开始
String activityId = luckyDrawTools.addLuckyDraw("CUSTOMIZE_GIFT",prizeName,prizeId,true,activityName);
Thread.sleep(1000);
String prizeNo = XMJSONPath.readPath(luckyDrawTools.getLuckyDrawDetail(activityId),"$.result.prizeList[0].id");
//编辑活动=进行中(主要是改活动开始时间)
luckyDrawTools.editLuckyDraw("CUSTOMIZE_GIFT",prizeNo,prizeName,prizeId,true,activityId,activityName);
//获取会员信息
String memberId = userTools.getMemberInfo(info).getString("memberId");
int drawNum = luckyDrawTools.getDrawNum(activityId,memberId,info);//抽奖次数
//开始抽奖, 总共抽2次,获奖2次:一次手动兑换,一次扫码兑换
for (int i = 0; i < 2; i++) {
//100%中奖
Thread.sleep(5000);
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.luckyDrawLottery(activityId,memberId,info),"$.result.winPrize"),"true");
}
//抽奖次数-2
Assert.assertTrue(luckyDrawTools.getDrawNum(activityId,memberId,info)==drawNum-2);
//我的奖品+2
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getMyActPrizeByPage(activityId,memberId,info),"$.result.total"))==2);
//app奖品消耗,参与记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId),"$.result[0].winCount"))==2);//已抽中2个
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyPrizeCount(activityId),"$.result[0].stock"))==98);//剩余98个
//app参与记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId),"$.result.total"))==2);//参与记录2条
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId),"$.result.records[0].sendState"),"NOT_SENT");//待兑奖状态
String sendRecordId = XMJSONPath.readPath(luckyDrawTools.getLuckyAttendByPage(activityId),"$.result.records[0].sendRecordId");
//扫兑奖码
JSONObject body = new JSONObject();
body.put("id",sendRecordId);
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
//调用请求
xmAppApi.doRequest(RequestType.JSON, params, body.toJSONString(), headers).assetsSuccess(true);
//检验扫码兑换时的状态及兑奖信息准确性
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.message"),"操作成功!");
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.prizeId"),prizeId);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.receivedMemberId"),memberId);
//进行兑奖,并且成功
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.exchangePrize(sendRecordId),"$.message"),"操作成功!");
//校验兑奖信息状态=已兑奖
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getRewardSendDetail(sendRecordId),"$.result.sendState"),"SENT");//已兑奖状态
Assert.assertEquals(XMJSONPath.readPath(luckyDrawTools.getRewardSendDetail(sendRecordId),"$.result.prizeType"),"CUSTOMIZE_GIFT");//自定义奖品
}
}
...@@ -132,6 +132,55 @@ public class CardTools extends XMBaseTest { ...@@ -132,6 +132,55 @@ public class CardTools extends XMBaseTest {
} }
/** /**
* 创建用于营销活动的体验卡
* @param title
* @param price
* @param benefit:自由组合想要的权益
* @param dataUserInfos
* @return
*/
public String experienceCardCreate(String title, String price,JSONObject benefit,DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_create")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
String[] activatePatternList = {"PURCHASE"};//即时生效
String[] purchaseMemberStateList = {"POTENTIAL", "NORMAL", "HISTORY"};
//构建体验卡权益object
JSONArray benefitList = new JSONArray();
benefitList.add(benefit);
//构建请求
JSONObject jsonObject = new JSONObject();
jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/EKDt4bPDBQ.png");//体验卡封面图片
jsonObject.put("surfaceCornerMark", "自动化标签");
jsonObject.put("title", title);//卡名称
jsonObject.put("useForActivity", true);//用于营销活动
jsonObject.put("validPeriod", "10");//有效期-10天
jsonObject.put("activatePatternList", activatePatternList);//生效方式
jsonObject.put("stock", -1);//库存不限
jsonObject.put("price", price);//体验卡售价
jsonObject.put("purchaseNumberLimit", "-1");//购买数量不限
jsonObject.put("purchaseMemberStateList", purchaseMemberStateList);//可购买会员类型
jsonObject.put("purchaseRestriction", "NO");
jsonObject.put("xcxSaleStatus", "YES");
jsonObject.put("creatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "YES");//卡启用状态
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("description", "{\"items\":[{\"content\":\"自动化创建用于营销活动的体验卡\",\"aspect\":\"\",\"type\":\"TEXT\"}]}");
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("benefitList", benefitList);//使用权益
jsonObject.put("commodityCardType","EXPERIENCE_CARD");
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* b端购买储值卡 * b端购买储值卡
* @param dataUserInfos * @param dataUserInfos
* @return 订单id * @return 订单id
......
...@@ -26,6 +26,8 @@ public class ApiModule { ...@@ -26,6 +26,8 @@ public class ApiModule {
public static String Polar_EleContract="polar_eleContract";//训练营活动 public static String Polar_EleContract="polar_eleContract";//训练营活动
public static String Polar_Coupon="polar_coupon";//优惠券 public static String Polar_Coupon="polar_coupon";//优惠券
public static String Polar_LuckyDraw ="polar_luckyDraw";//幸运抽奖
public static String Lunar_LuckyDraw ="lunar_luckyDraw";//小程序幸运抽奖
public static String Lunar_Coupon="lunar_coupon";//小程序优惠券 public static String Lunar_Coupon="lunar_coupon";//小程序优惠券
public static String Polar_Reserve="polar_reserve";//预约 public static String Polar_Reserve="polar_reserve";//预约
......
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