Commit 825a0eab by yangfangfang

数据中心

parent 62526d54
package com.xiaomai.cases.polar.data.financeData;
import com.alibaba.fastjson.JSONObject;
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 com.xiaomai.utils.XMBaseTest;
public class FinanceDataTools extends XMBaseTest {
/**
* @param
* @description:获取数据中心-财务数据-订单数据
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @author: yangfangfang
**/
public JSONObject getOrderData(String dateType,long startTime, long endTime, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_getOrderData")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject getOrderData=new JSONObject();
getOrderData.put("dateType",dateType);
getOrderData.put("endTime",endTime );
getOrderData.put("startTime",startTime);
getOrderData.put("brandId",xmAppApi.getLoginInfo().getBrandId());
getOrderData.put("studioId",xmAppApi.getLoginInfo().getStudioId());
getOrderData.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, getOrderData.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.data.financeData;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
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.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class TestGetOrderData extends XMBaseTest {
OrderTools orderTools = new OrderTools();
Tools tools = new Tools();
CardTools cardTools=new CardTools();
FinanceDataTools financeDataTools=new FinanceDataTools();
String memberId;
String cardId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_getOrderData")
.setLoginUser(LoginAccount.YFF_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取数据中心-财务数据-订单数据")
public void testGetOrderData(){
//先查一下数据中心-财务数据-订单数据汇总
JSONObject beforeGetOrderData=financeDataTools.getOrderData("DAY",TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal beforeActualAmount=new BigDecimal(beforeGetOrderData.getJSONObject("result").getString("actualAmount"));//实收金额
BigDecimal beforeReceivableAmount=new BigDecimal(beforeGetOrderData.getJSONObject("result").getString("receivableAmount"));//应收金额
BigDecimal beforeRefundAmount=new BigDecimal(beforeGetOrderData.getJSONObject("result").getString("refundAmount"));//退款金额
BigDecimal beforeUnpaidAmount=new BigDecimal(beforeGetOrderData.getJSONObject("result").getString("unpaidAmount"));//欠费金额
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//造订单相关数据
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//获取会员ID,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("次卡").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("次卡-创建订单会员卡"+TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡");
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity= new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").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"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,memberId,"1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(limitResult == true) {
//创建部分支付订单
JSONObject orderResult = orderTools.signOrder(cardId, latestSnapshotId, quantity, price, validPeriod, latestSnapshotId, 0, "PURCHASE",
"MEMBER_CARD", memberId, price, price / 2, "1");
String getDetailId = orderResult.getString("result");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取订单详情
JSONObject getDetailResult = orderTools.getDetail(getDetailId);
BigDecimal receivableAmount = new BigDecimal(getDetailResult.getJSONObject("result").getString("receivableAmount"));//应收金额
System.out.println("yff-receivableAmount"+receivableAmount);
BigDecimal paidAmount = new BigDecimal(getDetailResult.getJSONObject("result").getString("paidAmount"));//已支付金额
BigDecimal unpaidAmount = new BigDecimal(getDetailResult.getJSONObject("result").getString("unpaidAmount"));//欠费金额
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
JSONObject getOrderData = new JSONObject();
getOrderData.put("dateType", "DAY");
getOrderData.put("endTime", TimeUtils.getTodayEndTime());
getOrderData.put("startTime", TimeUtils.getTodayTime());
getOrderData.put("brandId", xmAppApi.getLoginInfo().getBrandId());
getOrderData.put("studioId", xmAppApi.getLoginInfo().getStudioId());
getOrderData.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, getOrderData.toJSONString(), headers).assetsSuccess(true);
JSONObject getOrderDataResult = xmAppApi.getBodyInJSON();
BigDecimal afterActualAmount=new BigDecimal(getOrderDataResult.getJSONObject("result").getString("actualAmount"));//实收金额
BigDecimal afterReceivableAmount=new BigDecimal(getOrderDataResult.getJSONObject("result").getString("receivableAmount"));//应收金额
BigDecimal afterRefundAmount=new BigDecimal(getOrderDataResult.getJSONObject("result").getString("refundAmount"));//退款金额
BigDecimal afterUnpaidAmount=new BigDecimal(getOrderDataResult.getJSONObject("result").getString("unpaidAmount"));//欠费金额
Assert.assertEquals(getOrderDataResult.getString("success"), "true", "获取销售数据-数据分析-汇总失败");
//校验新增部分支付订单之后,订单应收金额、订单实收金额、欠费金额有没有增加
Assert.assertEquals(afterReceivableAmount, beforeReceivableAmount.add(receivableAmount.setScale(2, RoundingMode.HALF_UP)),"创建部分支付订单,数据中心-订单数据汇总没有增加对应的应收金额");
Assert.assertEquals(afterActualAmount,beforeActualAmount.add(paidAmount.setScale(2,RoundingMode.HALF_UP)),"创建部分支付订单,数据中心-订单数据汇总没有增加对应的实收金额");
Assert.assertEquals(afterUnpaidAmount, beforeUnpaidAmount.add(unpaidAmount.setScale(2,RoundingMode.HALF_UP)),"创建部分支付订单,数据中心-订单数据汇总没有增加对应的欠费金额");
//继续收款
JSONObject pay=orderTools.pay(unpaidAmount,"1",getDetailId);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验继续收款后欠费金额-继续收款支付金额,实收金额+继续收款支付金额
JSONObject afterGetOrderData1=financeDataTools.getOrderData("DAY",TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal afterActualAmount1=new BigDecimal(afterGetOrderData1.getJSONObject("result").getString("actualAmount"));//实收金额
BigDecimal afterReceivableAmount1=new BigDecimal(afterGetOrderData1.getJSONObject("result").getString("receivableAmount"));//应收金额
BigDecimal afterRefundAmount1=new BigDecimal(afterGetOrderData1.getJSONObject("result").getString("refundAmount"));//退款金额
BigDecimal afterUnpaidAmount1=new BigDecimal(afterGetOrderData1.getJSONObject("result").getString("unpaidAmount"));//欠费金额
Assert.assertEquals(afterActualAmount1,afterActualAmount.add(unpaidAmount.setScale(2,RoundingMode.HALF_UP)),"继续收款后,订单实收金额未增加继续收款支付金额");
Assert.assertEquals(afterUnpaidAmount1,afterUnpaidAmount.subtract(unpaidAmount.setScale(2,RoundingMode.HALF_UP)),"继续收款后,欠费金额未减少继续收款支付金额");
//退单
//查询要退的卡id 从listUserRefundableCard-查询用户可退的会员卡列表中获取
JSONObject listUserRefundableCardResult=orderTools.listUserRefundableCard("MEMBER","",memberId);
String listUserRefundableId=listUserRefundableCardResult.getJSONArray("result").getJSONObject(0).getString("id");
//查询订单或者收支可退流水金额(包含乐动收银状态信息)
boolean checkRefundableAmountResult=orderTools.checkRefundableAmount(getDetailId,price - price / 2).getBoolean("success");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(checkRefundableAmountResult == true) {
//退单-会员卡
JSONObject refundOrderResult = orderTools.refundOrder(0, listUserRefundableId, quantity, price , "MEMBER_CARD",
memberId, price, price , "1");
String refundOrderGetDetailId = refundOrderResult.getString("result");//退单订单ID
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取退单订单详情
JSONObject refundOrderGetDetailResult = orderTools.getDetail(refundOrderGetDetailId);
BigDecimal refundOrderReceivableAmount = new BigDecimal(refundOrderGetDetailResult.getJSONObject("result").getString("receivableAmount"));//退单订单的应退金额
BigDecimal refundOrderPaidAmount = new BigDecimal(refundOrderGetDetailResult.getJSONObject("result").getString("paidAmount"));//退单订单的实退金额
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验退单之后,退款金额-实退金额,其余金额不变
//获取财务中心-订单数据-汇总
JSONObject afterGetOrderData2=financeDataTools.getOrderData("DAY",TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime());
BigDecimal afterActualAmount2=new BigDecimal(afterGetOrderData2.getJSONObject("result").getString("actualAmount"));//实收金额
BigDecimal afterReceivableAmount2=new BigDecimal(afterGetOrderData2.getJSONObject("result").getString("receivableAmount"));//应收金额
BigDecimal afterRefundAmount2=new BigDecimal(afterGetOrderData2.getJSONObject("result").getString("refundAmount"));//退款金额
BigDecimal afterUnpaidAmount2=new BigDecimal(afterGetOrderData2.getJSONObject("result").getString("unpaidAmount"));//欠费金额
Assert.assertEquals(afterActualAmount2,afterActualAmount1,"退单后,订单实收金额应不变");
Assert.assertEquals(afterReceivableAmount2,afterReceivableAmount1,"退单后,订单应收金额应不变");
Assert.assertEquals(afterRefundAmount2,afterRefundAmount1.add(refundOrderPaidAmount.setScale(2,RoundingMode.HALF_UP)),"退单后,退款金额未增加");
Assert.assertEquals(afterUnpaidAmount2,afterUnpaidAmount1,"退单后,欠费金额应不变");
//退单订单作废-退款金额减掉订单实退金额
}
}
}
}
......@@ -45,7 +45,7 @@ public class SalesDataTools extends XMBaseTest {
* @param
* @description:销售数据-趋势图
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param metric:时间类型:[ "新增会员数", "签单实收金额" ][ NEW_MEMBER_COUNT, SIGN_ORDER_ACTUAL_AMOUNT ]
* @param metric:类型:[ "新增会员数", "签单实收金额" ][ NEW_MEMBER_COUNT, SIGN_ORDER_ACTUAL_AMOUNT ]
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param startTime:开始时间
* @author: yangfangfang
......@@ -57,7 +57,6 @@ public class SalesDataTools extends XMBaseTest {
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject trend=new JSONObject();
trend.put("dateType",dateType);
trend.put("endTime", endTime);
......@@ -72,4 +71,119 @@ public class SalesDataTools extends XMBaseTest {
return response;
}
/**
* @param
* @description:销售数据-按来源筛选数据明细
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param resourceId:来源 -1:无
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param sort:[ "新增会员数正序", "新增会员数倒序", "签单实收金额正序", "签单实收金额倒序" ]排序 [ NEW_MEMBER_COUNT_ASC, NEW_MEMBER_COUNT_DESC, ACTUAL_AMOUNT_ASC, ACTUAL_AMOUNT_DESC ]
* @author: yangfangfang
**/
public JSONObject resourceDataDetail(long startTime,long endTime,String resourceId,String dateType, String sort, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_resourceDataDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject resourceDataDetail=new JSONObject();
resourceDataDetail.put("current",0);
resourceDataDetail.put("size", 20);
resourceDataDetail.put("startTime", startTime);
resourceDataDetail.put("endTime", endTime);
resourceDataDetail.put("creatorId","");
resourceDataDetail.put("saleId", "");
resourceDataDetail.put("resourceId",resourceId);
resourceDataDetail.put("consumeType","GROUP_CLASS");
resourceDataDetail.put("dateType",dateType);
resourceDataDetail.put("sort",sort);
resourceDataDetail.put("brandId",xmAppApi.getLoginInfo().getBrandId());
resourceDataDetail.put("studioId",xmAppApi.getLoginInfo().getStudioId());
resourceDataDetail.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, resourceDataDetail.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:销售数据-按添加人筛选数据明细
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param creatorId:会员的添加人
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param sort:[ "新增会员数正序", "新增会员数倒序", "签单实收金额正序", "签单实收金额倒序" ]排序 [ NEW_MEMBER_COUNT_ASC, NEW_MEMBER_COUNT_DESC, ACTUAL_AMOUNT_ASC, ACTUAL_AMOUNT_DESC ]
* @author: yangfangfang
**/
public JSONObject creatorDataDetail(long startTime,long endTime,String creatorId,String dateType, String sort, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_creatorDataDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject resourceDataDetail=new JSONObject();
resourceDataDetail.put("current",0);
resourceDataDetail.put("size", 20);
resourceDataDetail.put("startTime", startTime);
resourceDataDetail.put("endTime", endTime);
resourceDataDetail.put("creatorId",creatorId);
resourceDataDetail.put("saleId", "");
resourceDataDetail.put("resourceId",null);
resourceDataDetail.put("consumeType","GROUP_CLASS");
resourceDataDetail.put("dateType",dateType);
resourceDataDetail.put("sort",sort);
resourceDataDetail.put("brandId",xmAppApi.getLoginInfo().getBrandId());
resourceDataDetail.put("studioId",xmAppApi.getLoginInfo().getStudioId());
resourceDataDetail.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, resourceDataDetail.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:销售数据-按跟进销售筛选数据明细
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param saleId:会员的跟进销售
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param sort:[ "新增会员数正序", "新增会员数倒序", "签单实收金额正序", "签单实收金额倒序" ]排序 [ NEW_MEMBER_COUNT_ASC, NEW_MEMBER_COUNT_DESC, ACTUAL_AMOUNT_ASC, ACTUAL_AMOUNT_DESC ]
* @author: yangfangfang
**/
public JSONObject salesDataDetail(long startTime,long endTime,String saleId,String dateType, String sort, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_salesDataDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject resourceDataDetail=new JSONObject();
resourceDataDetail.put("current",0);
resourceDataDetail.put("size", 20);
resourceDataDetail.put("startTime", startTime);
resourceDataDetail.put("endTime", endTime);
resourceDataDetail.put("creatorId",null);
resourceDataDetail.put("saleId", saleId);
resourceDataDetail.put("resourceId",null);
resourceDataDetail.put("consumeType","GROUP_CLASS");
resourceDataDetail.put("dateType",dateType);
resourceDataDetail.put("sort",sort);
resourceDataDetail.put("brandId",xmAppApi.getLoginInfo().getBrandId());
resourceDataDetail.put("studioId",xmAppApi.getLoginInfo().getStudioId());
resourceDataDetail.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, resourceDataDetail.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
......@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.data.salesData;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.clue.MemberTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
......@@ -19,7 +20,7 @@ import java.math.BigDecimal;
public class TestCenterData extends XMBaseTest {
MemberTools memberTools=new MemberTools();
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
......@@ -53,7 +54,27 @@ public class TestCenterData extends XMBaseTest {
//先查一下当前今天的销售数据-数据分析-汇总
JSONObject beforeAnalysis=salesDataTools.centerData("DAY",TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime());
int beforeNewMemberCount=Integer.parseInt(beforeAnalysis.getJSONObject("result").getString("newMemberCount"));//新增会员数
float beforeActualAmount=Float.parseFloat(beforeAnalysis.getJSONObject("result").getString("actualAmount"));//签单实收金额
BigDecimal beforeActualAmount=new BigDecimal(beforeAnalysis.getJSONObject("result").getString("actualAmount"));//签单实收金额
//先查一下当前今天的销售数据-按照来源是无筛选数据明细的数据
JSONObject beforeResourceDataDetail=salesDataTools.resourceDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),"-1","DAY","NEW_MEMBER_COUNT_DESC");
int beforeResourceDataDetailNewMemberCount=Integer.parseInt(beforeResourceDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal beforeResourceDataDetailActualAmount=new BigDecimal(beforeResourceDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
//先查一下当前今天的销售数据-按照添加人是当前人筛选数据明细的数据
JSONObject beforeCreatorDataDetail=salesDataTools.creatorDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),xmAppApi.getLoginInfo().getAdminId(),"DAY","NEW_MEMBER_COUNT_DESC");
int beforeCreatorDataDetailNewMemberCount=Integer.parseInt(beforeCreatorDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal beforeCreatorDataDetailActualAmount=new BigDecimal(beforeCreatorDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
//先查一下当前今天的销售数据-按照跟进销售是无筛选数据明细的数据
JSONObject beforeSalesDataDetail=salesDataTools.salesDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),"-1","DAY","NEW_MEMBER_COUNT_DESC");
int beforeSalesDataDetailNewMemberCount=Integer.parseInt(beforeSalesDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal beforeSalesDataDetailActualAmount=new BigDecimal(beforeSalesDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
try {
Thread.sleep(1000);
......@@ -61,10 +82,11 @@ public class TestCenterData extends XMBaseTest {
throw new RuntimeException(e);
}
//添加线索
String name = "创建数据中心潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("999");
memberId = memberTools.create(name,phone).getString("result");
String phone = RandomStringUtil.randomMobile("111");
//添加线索
memberId = tools.create(name,phone).getString("result");
//获取会员卡信息
//获取会员卡列表,没有则新建一个
......@@ -134,7 +156,7 @@ public class TestCenterData extends XMBaseTest {
JSONObject analysisResult=xmAppApi.getBodyInJSON();
Assert.assertEquals(analysisResult.getString("success"),"true","获取销售数据-数据分析-汇总失败");
int newMemberCount=Integer.parseInt(analysisResult.getJSONObject("result").getString("newMemberCount"));//新增会员数
float actualAmount=Float.parseFloat(analysisResult.getJSONObject("result").getString("actualAmount"));//签单实收金额
BigDecimal actualAmount=new BigDecimal(analysisResult.getJSONObject("result").getString("actualAmount"));//签单实收金额
// BigDecimal qoqOfActualAmount=new BigDecimal(analysisResult.getJSONObject("result").getString("qoqOfActualAmount"));//签单实收金额环比
// BigDecimal qoqOfNewMemberCount=new BigDecimal(analysisResult.getJSONObject("result").getString("qoqOfNewMemberCount"));//新增会员数环比
// BigDecimal yoyOfActualAmount=new BigDecimal(analysisResult.getJSONObject("result").getString("yoyOfActualAmount"));//签单实收金额同比
......@@ -146,14 +168,42 @@ public class TestCenterData extends XMBaseTest {
throw new RuntimeException(e);
}
//校验新增一个会员和签单之后销售数据-新增会员数与签单实收金额
//校验:
//1.校验新增一个会员和签单之后销售数据-数据分析汇总的新增会员数与签单实收金额
Assert.assertEquals(newMemberCount,beforeNewMemberCount+1,"新建一个线索之后数据分析的新增会员数未加1");
Assert.assertEquals(actualAmount,beforeActualAmount+paidAmount,"签单完成之后,数据分析的签单实收金额未增加对应的签单实收金额");
Assert.assertEquals(actualAmount,beforeActualAmount.add(BigDecimal.valueOf(paidAmount)),"签单完成之后,销售数据数据分析的签单实收金额未增加对应的签单实收金额");
//2.校验销售数据-趋势图的签单实收金额(注意:暂时无法在这里直接校验新增会员数的趋势图,因为beforeNewMemberCount是int型,而趋势图返回的value这个接口他定义的是BigDecimal类型,如果都改了BigDecimal上面接口比较的时候又要用int)
JSONObject trendResult=salesDataTools.trend("DAY","SIGN_ORDER_ACTUAL_AMOUNT",TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime());
BigDecimal value=new BigDecimal(trendResult.getJSONArray("result").getJSONObject(0).getJSONArray("items").getJSONObject(0).getString("value"));
Assert.assertEquals(value,beforeActualAmount.add(BigDecimal.valueOf(paidAmount)),"签单完成之后,销售数据趋势图的签单实收金额未增加对应的签单实收金额");
//3.校验销售数据-按照来源为无筛选数据明细-有无上述新增会员数和签单实收金额
JSONObject resourceDataDetail=salesDataTools.resourceDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),"-1","DAY","NEW_MEMBER_COUNT_DESC");
int resourceDataDetailNewMemberCount=Integer.parseInt(resourceDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal resourceDataDetailActualAmount=new BigDecimal(resourceDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
Assert.assertEquals(resourceDataDetailNewMemberCount,beforeResourceDataDetailNewMemberCount+1,"新建一个来源为无的线索之后,销售数据明细筛选来源为无的新增会员数未加1");
Assert.assertEquals(resourceDataDetailActualAmount,beforeResourceDataDetailActualAmount.add(BigDecimal.valueOf(paidAmount)),"签单完成之后,销售数据明细来源为无的签单实收金额未增加对应的签单实收金额");
//4.校验销售数据-按照添加人是当前人筛选数据明细-有无上述新增会员数和签单实收金额
JSONObject creatorDataDetail=salesDataTools.creatorDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),xmAppApi.getLoginInfo().getAdminId(),"DAY","NEW_MEMBER_COUNT_DESC");
int creatorDataDetailNewMemberCount=Integer.parseInt(creatorDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal creatorDataDetailActualAmount=new BigDecimal(creatorDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
Assert.assertEquals(creatorDataDetailNewMemberCount,beforeCreatorDataDetailNewMemberCount+1,"新建一个线索之后,销售数据明细筛选添加人是当前人的新增会员数未加1");
Assert.assertEquals(creatorDataDetailActualAmount,beforeCreatorDataDetailActualAmount.add(BigDecimal.valueOf(paidAmount)),"签单完成之后,销售数据明细筛选添加人是当前人的签单实收金额未增加对应的签单实收金额");
// //获取新增会员数的趋势图
// JSONObject trendResult=salesDataTools.trend("DAY","NEW_MEMBER_COUNT",TimeUtils.getTodayEndTime(),TimeUtils.getTodayTime());
// String value=trendResult.getJSONArray("result").getJSONObject(0).getJSONArray("items").getJSONObject(0).getString("value");
// Assert.assertEquals(value,beforeNewMemberCount+1,"新建一个线索之后趋势图的新增会员数未加1");
//5.校验销售数据-按照跟进销售为无筛选数据明细-有无上述新增会员数和签单实收金额
JSONObject salesDataDetail=salesDataTools.salesDataDetail(TimeUtils.getTodayTime(),TimeUtils.getTodayEndTime(),"-1","DAY","NEW_MEMBER_COUNT_DESC");
int salesDataDetailNewMemberCount=Integer.parseInt(salesDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("newMemberCount"));
BigDecimal salesDataDetailActualAmount=new BigDecimal(salesDataDetail.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("actualAmount"));
Assert.assertEquals(salesDataDetailNewMemberCount,beforeSalesDataDetailNewMemberCount+1,"新建一个线索之后,销售数据明细筛选跟进销售为无的新增会员数未加1");
Assert.assertEquals(salesDataDetailActualAmount,beforeSalesDataDetailActualAmount.add(BigDecimal.valueOf(paidAmount)),"签单完成之后,销售数据明细筛选跟进销售为无的签单实收金额未增加对应的签单实收金额");
......
......@@ -703,7 +703,7 @@ public class OrderTools extends XMBaseTest {
* @param paymentWay:支付方式 1-线下微信 2 3
* @author: yangfangfang
**/
public JSONObject pay(float unpaidAmount,String paymentWay,String getDetailId, DataUserInfo...dataUserInfos){
public JSONObject pay(BigDecimal unpaidAmount,String paymentWay,String getDetailId, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pay")
......
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