Commit 203d26a1 by DuJunLi

增加会员卡开卡case,优化会员卡相关case代码

parent edc2b7a3
......@@ -6,6 +6,7 @@ import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
......@@ -371,6 +372,13 @@ public class OrderTools extends XMBaseTest {
card.put("cardChange",cardChange);
card.put("deductionAmount",deductionAmount);//优惠金额(元)
card.put("activatePattern",activatePattern);
if(activatePattern.equals("FIRST_USED")){ //如果选择生效方式为 首次使用生效
card.put("maxIdlePeriod",30); //最晚生效天数
card.put("giftQuantity",2);//赠送2次
}
if(activatePattern.equals("SPECIFIC_DATE")){//选择指定日期生效
card.put("activateDate", CommUtil.oneKeyGetAddDay(7));//当前时间+7天
}
card.put("commodityCardType",commodityCardType);
jsonObject.put("card",card);
......
......@@ -9,10 +9,13 @@ 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.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component("cardTools")
public class CardTools extends XMBaseTest {
/**
......@@ -20,14 +23,14 @@ public class CardTools extends XMBaseTest {
* @description:创建会员卡
* @author: yangjian
**/
public JSONObject memberCardCreate(String title, DataUserInfo...dataUserInfos) {
public JSONObject memberCardCreate(String title, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_create")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONArray activatePatternList=new JSONArray();
JSONArray activatePatternList = new JSONArray();
activatePatternList.add("PURCHASE");
activatePatternList.add("SPECIFIC_DATE");
activatePatternList.add("FIRST_USED");
......@@ -48,13 +51,10 @@ public class CardTools extends XMBaseTest {
benefitList.add(Object);
JSONObject jsonObject = new JSONObject();
jsonObject.put("surfaceUrl","https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark","自动化标签");
jsonObject.put("title",title );//会员卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3)
jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark", "自动化标签");
jsonObject.put("title", title);//会员卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3)
jsonObject.put("validPeriod", "3");//有效期-3天
jsonObject.put("activatePatternList", activatePatternList);//三种生效方式
jsonObject.put("sharePeopleLimit", "2");//共享人数
......@@ -71,39 +71,87 @@ public class CardTools extends XMBaseTest {
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* 快速创建会员卡次卡-存量数据: 嘟嘟创建的会员卡-次卡
*
* @param title
* @param dataUserInfos
* @return
*/
public String oneKeyCreateMembershipCardNumberCard(String title, DataUserInfo... dataUserInfos) {
String requestString = "{\n" +
"\"surfaceUrl\": \"https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png\",\n" +
"\"maxIdlePeriod\": 30,\n" +
"\"surfaceCornerMark\": \"\",\n" +
"\"title\": \"" + title + "\",\n" +
"\"validPeriod\": \"9999\",\n" +
"\"activatePatternList\": [\n" +
"\"PURCHASE\",\n" +
"\"FIRST_USED\",\n" +
"\"SPECIFIC_DATE\"\n" +
"],\n" +
"\"benefitList\": [\n" +
"{\n" +
"\"identifier\": \"" + RandomStringUtil.randomString(20) + "\",\n" +
"\"benefitType\": \"BALANCE\",\n" +
"\"targetScope\": \"GROUP_CLASS_AND_PERSONAL_COURSE\",\n" +
"\"balance\": \"60\",\n" +
"\"reserveLimitType\": \"UN_LIMIT\",\n" +
"\"reserveLimitNumber\": 0,\n" +
"\"defaultConsumeBalance\": 1,\n" +
"\"itemList\": [],\n" +
"\"targetType\": \"COURSE\"\n" +
"}\n" +
"],\n" +
"\"price\": \"398\",\n" +
"\"underlinePrice\": \"1000\",\n" +
"\"purchaseNumberLimit\": \"-1\",\n" +
"\"xcxSaleStatus\": \"YES\",\n" +
"\"creatorId\": \"1798957492546801666\",\n" +
"\"shelfState\": \"YES\",\n" +
"\"brandId\": \"1796482011391729666\",\n" +
"\"studioId\": \"1800375402938871809\",\n" +
"\"description\": \"{\\\"items\\\":[]}\",\n" +
"\"operatorId\": \"1798957492546801666\",\n" +
"\"commodityCardType\": \"MEMBER_CARD\"\n" +
"}";
dataApi.doRequest(RequestType.JSON, dataparams, requestString, dataheadrs).assetsSuccess(true);
return XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
}
/**
* @param
* @description:会员卡列表
* @author: yangjian
**/
public JSONObject fetchPageOfMemberCard(DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfMemberCard")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
//jsonObject.put("shelfState",shelfState);//启用状态
//jsonObject.put("xcxSaleStatus",xcxSaleStatus);//售卖状态
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员卡列表
* @author: yangjian
**/
public JSONObject fetchPageOfMemberCard(DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfMemberCard")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
//jsonObject.put("shelfState",shelfState);//启用状态
//jsonObject.put("xcxSaleStatus",xcxSaleStatus);//售卖状态
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
public JSONObject fetchPageOfMemberCard(String courseId,DataUserInfo...dataUserInfos) {
public JSONObject fetchPageOfMemberCard(String courseId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfMemberCard")
.setTerminal(Terminal.B);
......@@ -112,64 +160,64 @@ public JSONObject fetchPageOfMemberCard(DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
//jsonObject.put("shelfState",shelfState);//启用状态
//jsonObject.put("xcxSaleStatus",xcxSaleStatus);//售卖状态
jsonObject.put("courseId",courseId);
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("courseId", courseId);
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
JSONObject response = dataApi.getBodyInJSON();
return response.getJSONObject("result");
}
/**
* @param
* @description:会员卡搜索
* @author: yangjian
**/
public JSONObject testMemberCardcommonSearch(String title, DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_commonSearch")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("title",title);//搜索的卡名
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员卡搜索
* @author: yangjian
**/
public JSONObject doMemberCardcommonSearch(String title, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_commonSearch")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
/**
* @param
* @description:会员卡售卖记录
* @author: yangjian
**/
public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("title", title);//搜索的卡名
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_search")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
/**
* @param
* @description:会员卡售卖记录
* @author: yangjian
**/
public JSONObject membercardsearch(DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_search")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
JSONObject jsonObject = new JSONObject();
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
......@@ -177,22 +225,22 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @author: yangjian
**/
public JSONObject commonSearch( String content ,DataUserInfo...dataUserInfos) {
public JSONObject commonSearch(String content, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Clue)
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_commonSearch")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("content",content);
jsonObject.put("content", content);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
......@@ -201,7 +249,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @description:会员卡详情
* @author: yangjian
**/
public JSONObject fetchDetailById( String id ,DataUserInfo...dataUserInfos) {
public JSONObject fetchDetailById(String id, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchDetailById")
......@@ -210,80 +258,80 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",id);
jsonObject.put("id", id);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员卡售卖记录详情
* @author: yangjian
**/
public JSONObject membercardfindDetailById(String id, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_findDetailById")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", id);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:会员卡售卖记录详情
* @author: yangjian
**/
public JSONObject membercardfindDetailById( String id ,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_findDetailById")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", id);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* @description:查询会员可用于约课的会员卡
* @author: xuyamei
* @date: 2024/6/23 12:38
* @param courseId:课程id
* @param courseType:课程类型 GROUP_CLASS
* @param accountType:账户类型 MEMBER
* @param memberId 会员id
* @param reserveDate:约课时间
* @param dataUserInfos
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray listUserReservableBenefit(String courseId,String courseType,String accountType,String memberId,long reserveDate,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_listUserReservableBenefit")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("courseId", courseId);
jsonObject.put("courseType", courseType);
jsonObject.put("accountType", accountType);
jsonObject.put("memberId", memberId);
jsonObject.put("reserveDate", reserveDate);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONArray("result");
}
/**
* @param courseId:课程id
* @param courseType:课程类型 GROUP_CLASS
* @param accountType:账户类型 MEMBER
* @param memberId 会员id
* @param reserveDate:约课时间
* @param dataUserInfos
* @description:查询会员可用于约课的会员卡
* @author: xuyamei
* @date: 2024/6/23 12:38
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray listUserReservableBenefit(String courseId, String courseType, String accountType, String memberId, long reserveDate, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_listUserReservableBenefit")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("courseId", courseId);
jsonObject.put("courseType", courseType);
jsonObject.put("accountType", accountType);
jsonObject.put("memberId", memberId);
jsonObject.put("reserveDate", reserveDate);
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONArray("result");
}
/**
* @param
* @description:手动扣次
* @author: yangjian
**/
public JSONObject manualDeduct( String benefitId ,String memberCardId ,DataUserInfo...dataUserInfos) {
public JSONObject manualDeduct(String benefitId, String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_manualDeduct")
......@@ -292,7 +340,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("balance",1);
jsonObject.put("balance", 1);
jsonObject.put("benefitId", benefitId);
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("memo", "自动化手动扣次");
......@@ -301,7 +349,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
......@@ -310,7 +358,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @description:会员卡消耗记录
* @author: yangjian
**/
public JSONObject fetchPageOfConsumeRecord( String benefitId ,String memberCardId ,DataUserInfo...dataUserInfos) {
public JSONObject fetchPageOfConsumeRecord(String benefitId, String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfConsumeRecord")
......@@ -319,16 +367,16 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("benefitId",benefitId);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("current", 0);
jsonObject.put("size", 20);
jsonObject.put("benefitId", benefitId);
jsonObject.put("memberCardId", memberCardId);
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();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
......@@ -337,7 +385,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @description:修改会员卡有效期
* @author: yangjian
**/
public JSONObject modifyExpireDate( String benefitId ,String memberCardId ,DataUserInfo...dataUserInfos) {
public JSONObject modifyExpireDate(String benefitId, String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifyExpireDate")
......@@ -346,17 +394,17 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("confirm",false);
jsonObject.put("confirm", false);
jsonObject.put("expireDate", TimeUtils.getTodayTime());
jsonObject.put("memo","自动化修改会员卡有效期");
jsonObject.put("benefitId",benefitId);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("memo", "自动化修改会员卡有效期");
jsonObject.put("benefitId", benefitId);
jsonObject.put("memberCardId", memberCardId);
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();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
......@@ -365,7 +413,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @description:会员卡停卡
* @author: yangjian
**/
public JSONObject membercard_suspend( String benefitId ,String memberCardId ,DataUserInfo...dataUserInfos) {
public JSONObject membercard_suspend(String benefitId, String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_suspend")
......@@ -376,15 +424,15 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
jsonObject.put("planRestoreDate", TimeUtils.getAfterDayDate(1));//停卡到第二天
jsonObject.put("memo","自动化停卡");
jsonObject.put("benefitId",benefitId);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("memo", "自动化停卡");
jsonObject.put("benefitId", benefitId);
jsonObject.put("memberCardId", memberCardId);
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();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
......@@ -393,7 +441,7 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
* @description:会员卡查看编辑记录
* @author: yangjian
**/
public JSONObject fetchPageOfHistory( String memberCardId ,DataUserInfo...dataUserInfos) {
public JSONObject fetchPageOfHistory(String memberCardId, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfHistory")
......@@ -402,21 +450,79 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("current", 0);
jsonObject.put("size", 20);
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();
JSONObject response = dataApi.getBodyInJSON();
return response;
}
/**
* 修改会员卡的停启用状态
*
* @param memberCardId 会员卡ID
* @param shelfState 启用:YES,停用:NO
* @param dataUserInfos
*/
public void modifyMemberCardShelfState(String memberCardId, String shelfState, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifyShelfState")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("shelfState", shelfState);
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);
}
/**
* 售卖记录全局搜索:根据会员名称/手机号搜索,获取会员名下购卡相关记录
*
* @param memberId
*/
public void getUserMemberCardList(String memberId) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchUserCardList")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject jsonObject = new JSONObject();
jsonObject.put("accountType", "MEMBER");
jsonObject.put("memberId", memberId);
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);
}
/**
* 查看会员卡售卖记录-变动记录
* @param memberCardAccountId
*/
public void getMemberCardAccountOperateRecord(String memberCardAccountId){
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfOperateRecord")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberCardId", memberCardAccountId);
jsonObject.put("current", 0);
jsonObject.put("size", 100);
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);
}
}
package com.xiaomai.cases.polar.memberCard;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeClass;
import javax.annotation.Resource;
import java.math.BigDecimal;
/**
* @author adu
* data 2024/7/24 10:15
*/
public class GetMemberCardBaseInfoForSign extends BaseTestImpl {
String memberId = "";
String memberCardId="";
@Resource(name = "tools")
Tools tools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "cardTools")
CardTools cardTools;
String shelfState="";
BigDecimal quantity; //可用次数
float price; //价格
int validPeriod; //有效期
String latestSnapshotId;//最近的快照ID
@BeforeClass
public void beforeTest() {
super.beforeTest();
//搜索目标会员
String phone = "17682302508";
memberId = trainingTools.searchTargerMember(phone);
if (memberId.isEmpty()) {
memberId = tools.create("测试机吴彦祖", phone).getString("result");
}
//搜索目标会员卡-次卡
String title = "嘟嘟创建的会员卡-次卡";
cardTools.doMemberCardcommonSearch(title);
int total = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size();
if (total > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");
shelfState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].shelfState");//YES,上架状态:YES
if (shelfState.equals("NO")) {
cardTools.modifyMemberCardShelfState(memberCardId, "YES");
}
} else {
//创建一个新的会员卡
memberCardId = cardTools.oneKeyCreateMembershipCardNumberCard(title);
}
//获取会员卡详情
cardTools.fetchDetailById(memberCardId);
quantity=BigDecimal.valueOf(Long.valueOf(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].balance")));
price=Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.price"));
validPeriod=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.validPeriod"));
latestSnapshotId=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.latestSnapshotId");
//给会员签单-购买会员卡
orderTools.signOrder(memberCardId,latestSnapshotId,quantity,price,validPeriod,
latestSnapshotId,0,"FIRST_USED","MEMBER_CARD",
memberId,price,price,"1");
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* 售卖记录详情-会员卡开卡
*
* @author adu
* data 2024/7/24 14:43
*/
public class TestActivateMemberCard extends GetMemberCardBaseInfoForSign {
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderTools")
OrderTools orderTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Card, "API_activateMemberCard", LoginAccount.ADU_PROD, Terminal.B, "adu");
super.beforeTest();
}
@Test(description = "操作会员卡开卡")
public void testActivateMemberCard() {
cardTools.getUserMemberCardList(memberId);
String memberAccountCardId="";
String state;
int count= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();
if(count>0){
memberAccountCardId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].id");
state=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].state");
if(state.equals("UN_ACTIVE")){
//操作开卡
JSONObject body = new JSONObject();
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("memberCardId", memberAccountCardId);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//查看售卖记录详情
cardTools.membercardfindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.state"),"NORMAL","开卡后卡状态没变更为生效状态");
String benefitId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].id");
//check生成一条变动记录
cardTools.getMemberCardAccountOperateRecord(memberAccountCardId);
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].operateType").equals("ACTIVATE"),"手动开卡后生成的变动记录第一条备注不是手动开卡ACTIVATE");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].remark").equals("手动开卡"),"手动开卡后生成的变动记录第一条备注不是手动开卡");
//查看消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId,memberAccountCardId);
int totalBefore=XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result.records").size();
Assert.assertTrue(totalBefore==1,"会员购卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].consumeType").equals("PURCHASE"),"会员购卡后生成消耗记录不是购买");
//操作退卡
orderTools.refundOrder(2,memberAccountCardId,quantity,price,"MEMBER_CARD",
memberId,price,price,"1");
String refundOrderId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result");
//退卡成功后check 售卖记录详情状态:已退卡
cardTools.membercardfindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.state"),"REFUNDED","退卡后卡卡账户状态没变更为已退卡状态");
//退卡后check是否生成一条退卡的消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId,memberAccountCardId);
int totalAfter=XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result.records").size();
Assert.assertTrue(totalAfter==2,"会员退卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].consumeType").equals("REFUND"),"会员退卡后生成消耗记录不是退卡");
//check 消耗次数
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfPurchaseBalance"),"-60.00","购买次数变动不是-60");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfUsablePurchaseBalance"),"-60.00","可用次数变动不是-2");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfGiveBalance"),"-2.00","赠送次数变动不是-60");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfUsableGiveBalance"),"-2.00","可用赠送次数变动不是-2");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfBenefitAmount"),"-398.00","变动金额不是-398.00");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftBenefitAmount"),"0.00","剩余金额不是0.00");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftPurchaseBalance"),"0.00","剩余购买次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftUsablePurchaseBalance"),"0.00","剩余可用次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftGiveBalance"),"0.00","剩余赠送次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftUsableGiveBalance"),"0.00","剩余可用赠送次数不是0");
}
}
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.clue.MemberTools;
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.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 TestMemberCardSearch extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -26,25 +28,23 @@ public class TestMemberCardSearch extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "会员卡列表搜索")
@Test(description = "会员卡列表根据卡名称-全局搜索")
public void testMemberCardcommonSearch() {
CardTools Cardtools = new CardTools();
Cardtools.memberCardCreate("次卡-自动化会员卡"+ RandomStringUtil.randomString(3));//创建随机的名的次卡
Cardtools.fetchPageOfMemberCard();
String title = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].title");
String memberCardName="次卡-自动化会员卡"+ RandomStringUtil.randomString(8);
cardTools.memberCardCreate(memberCardName);//创建随机的名的次卡
cardTools.fetchPageOfMemberCard();//创建成功后查询会员卡列表(此处也可以不查询)
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result.records").size()>=1,"创建会员卡成功后,会员卡列表数据为空");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].title"),memberCardName,"创建成功后,列表中第一条数据不是显示的该卡");
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("title",title);//这里需要搜索新创建的会员卡
jsonObject.put("title",memberCardName);//这里需要搜索新创建的会员卡
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(),"$.result").size()==1,"精确搜索后发现会搜索到的数据不等于1");
Assert.assertTrue(XMJSONPath.readPath(xmAppApi.getApi_response(),"$.result[0].title").equals(memberCardName),"精确搜索后发现会员卡名称不匹配");
}
}
......@@ -7,10 +7,15 @@ 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 TestModifyShelfState extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -26,43 +31,60 @@ public class TestModifyShelfState extends XMBaseTest {
public void testmodifyShelfState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","NO");
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
String memberCardId = "";
String shelfState;
//先检查次下列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
shelfState=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].shelfState");
//如果不是启用状态,则开启
if(shelfState.equals("NO")){
cardTools.modifyMemberCardShelfState(memberCardId,"YES");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState", "NO");
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,查看状态是否是下架状态
cardTools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.shelfState"),"NO","操作停用会员卡后,查看卡详情,卡启用状态没变更为NO");
}
}
@Test(description = "启用会员卡")
public void testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","YES");
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
String memberCardId = "";
String shelfState;
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
shelfState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].shelfState");
if (shelfState.equals("YES")) {
cardTools.modifyMemberCardShelfState(memberCardId, "NO");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState", "YES");
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,查看状态是否是上架状态
cardTools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.shelfState"), "YES", "操作启用会员卡后,查看卡详情,卡启用状态没变更为YES");
}
}
}
......@@ -28,8 +28,6 @@ public class TestModifyXcxSaleState extends XMBaseTest {
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState","NO");
......@@ -37,9 +35,6 @@ public class TestModifyXcxSaleState extends XMBaseTest {
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
......
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