## Opt - 业绩统计细化
This commit is contained in:
parent
a1e7a85fc5
commit
ddf974e33c
|
@ -3,6 +3,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||||
|
import com.hzs.common.core.constant.RetailConstants;
|
||||||
import com.hzs.common.core.enums.EOrderType;
|
import com.hzs.common.core.enums.EOrderType;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.domain.report.CuMemberPerformanceSummary;
|
import com.hzs.common.domain.report.CuMemberPerformanceSummary;
|
||||||
|
@ -42,10 +43,24 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP
|
||||||
List<SaOrder> orderList = baseMapper.getOrderByDay(startDate, endDate, orderTypeList);
|
List<SaOrder> orderList = baseMapper.getOrderByDay(startDate, endDate, orderTypeList);
|
||||||
Map<Integer, List<SaOrder>> groupedOrders = orderList.stream().collect(Collectors.groupingBy(SaOrder::getOrderType));
|
Map<Integer, List<SaOrder>> groupedOrders = orderList.stream().collect(Collectors.groupingBy(SaOrder::getOrderType));
|
||||||
CuMemberPerformanceSummary summary = CuMemberPerformanceSummary.getInitCuMemberPerformanceSummary(startDate);
|
CuMemberPerformanceSummary summary = CuMemberPerformanceSummary.getInitCuMemberPerformanceSummary(startDate);
|
||||||
|
|
||||||
|
BigDecimal dvSource;
|
||||||
|
|
||||||
if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue()))) {
|
if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue()))) {
|
||||||
for (SaOrder saOrder : groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue())) {
|
for (SaOrder saOrder : groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue())) {
|
||||||
summary.setRetailRegisterAmount(summary.getRetailDiscountAmount().add(saOrder.getOrderAmount()));
|
summary.setRetailRegisterAmount(summary.getRetailRegisterAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setRetailRegisterPv(summary.getRetailDiscountPv().add(saOrder.getOrderAchieve()));
|
summary.setRetailRegisterPv(summary.getRetailRegisterPv().add(saOrder.getOrderAchieve()));
|
||||||
|
|
||||||
|
dvSource = getDvSource(summary.getRetailRegisterPv());
|
||||||
|
BigDecimal dvUL = dvSource;
|
||||||
|
if(saOrder.getOrderAmount().compareTo(RetailConstants.SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_AMOUNT) > 0){
|
||||||
|
dvUL = RetailConstants.SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_VALUE;
|
||||||
|
}
|
||||||
|
summary.setRetailRegisterDvSource(dvSource);
|
||||||
|
summary.setRetailRegisterDvUL(dvUL);
|
||||||
|
|
||||||
|
summary.setTotalDvSource(summary.getTotalDvSource().add(dvSource));
|
||||||
|
summary.setTotalDvUL(summary.getTotalDvUL().add(dvUL));
|
||||||
|
|
||||||
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
||||||
|
@ -56,6 +71,17 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP
|
||||||
summary.setRetailUpgradeAmount(summary.getRetailUpgradeAmount().add(saOrder.getOrderAmount()));
|
summary.setRetailUpgradeAmount(summary.getRetailUpgradeAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setRetailUpgradePv(summary.getRetailUpgradePv().add(saOrder.getOrderAchieve()));
|
summary.setRetailUpgradePv(summary.getRetailUpgradePv().add(saOrder.getOrderAchieve()));
|
||||||
|
|
||||||
|
dvSource = getDvSource(summary.getRetailUpgradePv());
|
||||||
|
BigDecimal dvUL = dvSource;
|
||||||
|
if(saOrder.getOrderAmount().compareTo(RetailConstants.SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_AMOUNT) > 0){
|
||||||
|
dvUL = RetailConstants.SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_VALUE;
|
||||||
|
}
|
||||||
|
summary.setRetailUpgradeDvSource(dvSource);
|
||||||
|
summary.setRetailUpgradeDvUL(dvUL);
|
||||||
|
|
||||||
|
summary.setTotalDvSource(summary.getTotalDvSource().add(dvSource));
|
||||||
|
summary.setTotalDvUL(summary.getTotalDvUL().add(dvUL));
|
||||||
|
|
||||||
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
||||||
}
|
}
|
||||||
|
@ -65,12 +91,19 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP
|
||||||
summary.setRetailRepurchaseAmount(summary.getRetailRepurchaseAmount().add(saOrder.getOrderAmount()));
|
summary.setRetailRepurchaseAmount(summary.getRetailRepurchaseAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setRetailRepurchasePv(summary.getRetailRepurchasePv().add(saOrder.getOrderAchieve()));
|
summary.setRetailRepurchasePv(summary.getRetailRepurchasePv().add(saOrder.getOrderAchieve()));
|
||||||
|
|
||||||
|
dvSource = getDvSource(summary.getRetailRepurchasePv());
|
||||||
|
summary.setRetailRepurchaseDvSource(dvSource);
|
||||||
|
summary.setRetailRepurchaseDvUL(dvSource);
|
||||||
|
|
||||||
|
summary.setTotalDvSource(summary.getTotalDvSource().add(dvSource));
|
||||||
|
summary.setTotalDvUL(summary.getTotalDvUL().add(dvSource));
|
||||||
|
|
||||||
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
summary.setTotalAmount(summary.getTotalAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.RETAIL_CONSUME.getValue()))){
|
if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.DISCOUNT_ORDER.getValue()))){
|
||||||
for (SaOrder saOrder : groupedOrders.get(EOrderType.RETAIL_CONSUME.getValue())) {
|
for (SaOrder saOrder : groupedOrders.get(EOrderType.DISCOUNT_ORDER.getValue())) {
|
||||||
summary.setRetailDiscountAmount(summary.getRetailDiscountAmount().add(saOrder.getOrderAmount()));
|
summary.setRetailDiscountAmount(summary.getRetailDiscountAmount().add(saOrder.getOrderAmount()));
|
||||||
summary.setDividendPv(summary.getDividendPv().add(saOrder.getOrderAchieve()));
|
summary.setDividendPv(summary.getDividendPv().add(saOrder.getOrderAchieve()));
|
||||||
|
|
||||||
|
@ -78,8 +111,11 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP
|
||||||
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
summary.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
summary.setDividendPv(summary.getTotalPv().multiply(new BigDecimal("0.015")));
|
|
||||||
summary.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
summary.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||||
baseMapper.insert(summary);
|
baseMapper.insert(summary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BigDecimal getDvSource(BigDecimal source){
|
||||||
|
return source.multiply(RetailConstants.SPECIAL_AREA_DIVIDEND_PV_PROPORTION);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,21 @@ public class RetailConstants {
|
||||||
*/
|
*/
|
||||||
public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_AMOUNT = new BigDecimal("20000");
|
public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_AMOUNT = new BigDecimal("20000");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分红上限(0.015)金额
|
||||||
|
*/
|
||||||
|
public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_AMOUNT = new BigDecimal("10000");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分红上限(0.015)结果值
|
||||||
|
*/
|
||||||
|
public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_DIVIDEND_PV_VALUE = new BigDecimal("350");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分红计算比例
|
||||||
|
*/
|
||||||
|
public static final BigDecimal SPECIAL_AREA_DIVIDEND_PV_PROPORTION = new BigDecimal("0.015");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册是否限制手机号重复
|
* 注册是否限制手机号重复
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -52,6 +52,18 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
@TableField("RETAIL_REGISTER_PV")
|
@TableField("RETAIL_REGISTER_PV")
|
||||||
private BigDecimal retailRegisterPv;
|
private BigDecimal retailRegisterPv;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 精品专区销售分红(原值)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_REGISTER_DV_SOURCE")
|
||||||
|
private BigDecimal retailRegisterDvSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 精品专区销售分红(上限)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_REGISTER_DV_UL")
|
||||||
|
private BigDecimal retailRegisterDvUL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 甄选专区销售金额
|
* 甄选专区销售金额
|
||||||
*/
|
*/
|
||||||
|
@ -64,6 +76,18 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
@TableField("RETAIL_UPGRADE_PV")
|
@TableField("RETAIL_UPGRADE_PV")
|
||||||
private BigDecimal retailUpgradePv;
|
private BigDecimal retailUpgradePv;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甄选专区销售分红(原值)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_UPGRADE_DV_SOURCE")
|
||||||
|
private BigDecimal retailUpgradeDvSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甄选专区销售分红(上限)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_UPGRADE_DV_UL")
|
||||||
|
private BigDecimal retailUpgradeDvUL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商城专区销售金额
|
* 商城专区销售金额
|
||||||
*/
|
*/
|
||||||
|
@ -76,6 +100,18 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
@TableField("RETAIL_REPURCHASE_PV")
|
@TableField("RETAIL_REPURCHASE_PV")
|
||||||
private BigDecimal retailRepurchasePv;
|
private BigDecimal retailRepurchasePv;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城专区销售分红(原值)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_REPURCHASE_DV_SOURCE")
|
||||||
|
private BigDecimal retailRepurchaseDvSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城专区销售分红(上限)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_REPURCHASE_DV_UL")
|
||||||
|
private BigDecimal retailRepurchaseDvUL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 五折专区销售金额
|
* 五折专区销售金额
|
||||||
*/
|
*/
|
||||||
|
@ -88,6 +124,18 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
@TableField("RETAIL_DISCOUNT_PV")
|
@TableField("RETAIL_DISCOUNT_PV")
|
||||||
private BigDecimal retailDiscountPv;
|
private BigDecimal retailDiscountPv;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 五折专区销售分红(原值)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_DISCOUNT_DV_SOURCE")
|
||||||
|
private BigDecimal retailDiscountDvSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 五折专区销售分红(上限)
|
||||||
|
*/
|
||||||
|
@TableField("RETAIL_DISCOUNT_DV_UL")
|
||||||
|
private BigDecimal retailDiscountDvUL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当期销售金额合计
|
* 当期销售金额合计
|
||||||
*/
|
*/
|
||||||
|
@ -101,10 +149,16 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
private BigDecimal totalPv;
|
private BigDecimal totalPv;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当日分红合计(分红:所有专区PV值的1.5%每天进行记录)
|
* 当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(原值)
|
||||||
*/
|
*/
|
||||||
@TableField("DIVIDEND_PV")
|
@TableField("TOTAL_DV_SOURCE")
|
||||||
private BigDecimal dividendPv;
|
private BigDecimal totalDvSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(上限)
|
||||||
|
*/
|
||||||
|
@TableField("TOTAL_DV_UL")
|
||||||
|
private BigDecimal totalDvUL;
|
||||||
|
|
||||||
|
|
||||||
public static CuMemberPerformanceSummary getInitCuMemberPerformanceSummary(Date summaryDate){
|
public static CuMemberPerformanceSummary getInitCuMemberPerformanceSummary(Date summaryDate){
|
||||||
|
@ -112,15 +166,24 @@ public class CuMemberPerformanceSummary extends BaseEntity {
|
||||||
.summaryDate(summaryDate)
|
.summaryDate(summaryDate)
|
||||||
.retailRegisterAmount(BigDecimal.ZERO)
|
.retailRegisterAmount(BigDecimal.ZERO)
|
||||||
.retailRegisterPv(BigDecimal.ZERO)
|
.retailRegisterPv(BigDecimal.ZERO)
|
||||||
|
.retailRegisterDvSource(BigDecimal.ZERO)
|
||||||
|
.retailRegisterDvUL(BigDecimal.ZERO)
|
||||||
.retailUpgradeAmount(BigDecimal.ZERO)
|
.retailUpgradeAmount(BigDecimal.ZERO)
|
||||||
.retailUpgradePv(BigDecimal.ZERO)
|
.retailUpgradePv(BigDecimal.ZERO)
|
||||||
|
.retailUpgradeDvSource(BigDecimal.ZERO)
|
||||||
|
.retailUpgradeDvUL(BigDecimal.ZERO)
|
||||||
.retailRepurchaseAmount(BigDecimal.ZERO)
|
.retailRepurchaseAmount(BigDecimal.ZERO)
|
||||||
.retailRepurchasePv(BigDecimal.ZERO)
|
.retailRepurchasePv(BigDecimal.ZERO)
|
||||||
|
.retailRepurchaseDvSource(BigDecimal.ZERO)
|
||||||
|
.retailRepurchaseDvUL(BigDecimal.ZERO)
|
||||||
.retailDiscountAmount(BigDecimal.ZERO)
|
.retailDiscountAmount(BigDecimal.ZERO)
|
||||||
.retailDiscountPv(BigDecimal.ZERO)
|
.retailDiscountPv(BigDecimal.ZERO)
|
||||||
|
.retailDiscountDvSource(BigDecimal.ZERO)
|
||||||
|
.retailDiscountDvUL(BigDecimal.ZERO)
|
||||||
.totalAmount(BigDecimal.ZERO)
|
.totalAmount(BigDecimal.ZERO)
|
||||||
.totalPv(BigDecimal.ZERO)
|
.totalPv(BigDecimal.ZERO)
|
||||||
.dividendPv(BigDecimal.ZERO)
|
.totalDvSource(BigDecimal.ZERO)
|
||||||
|
.totalDvUL(BigDecimal.ZERO)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,31 @@ COMMENT ON COLUMN CU_MEMBER_PERFORMANCE_SUMMARY."DIVIDEND_PV" IS '当日分红
|
||||||
|
|
||||||
COMMENT ON TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" IS '销售业绩统计表';
|
COMMENT ON TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" IS '销售业绩统计表';
|
||||||
|
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" RENAME COLUMN "DIVIDEND_PV" TO "TOTAL_DV_SOURCE";
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_REGISTER_DV_SOURCE" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_REGISTER_DV_UL" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_UPGRADE_DV_SOURCE" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_UPGRADE_DV_UL" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_REPURCHASE_DV_SOURCE" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_REPURCHASE_DV_UL" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_DISCOUNT_DV_SOURCE" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "RETAIL_DISCOUNT_DV_UL" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
ALTER TABLE "CU_MEMBER_PERFORMANCE_SUMMARY" ADD "TOTAL_DV_UL" NUMBER(20) DEFAULT 0 NOT NULL;
|
||||||
|
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_REGISTER_DV_SOURCE" IS '精品专区销售分红(原值)';
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_REGISTER_DV_UL" IS '精品专区销售分红(上限)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_UPGRADE_DV_SOURCE" IS '甄选专区销售分红(原值)';
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_UPGRADE_DV_UL" IS '甄选专区销售分红(上限)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_REPURCHASE_DV_SOURCE" IS '商城专区销售分红(原值)';
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_REPURCHASE_DV_UL" IS '商城专区销售分红(上限)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_DISCOUNT_DV_SOURCE" IS '五折专区销售分红(原值)';
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."RETAIL_DISCOUNT_DV_UL" IS '五折专区销售分红(上限)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."TOTAL_DV_SOURCE" IS '当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(原值)';
|
||||||
|
COMMENT ON COLUMN "CU_MEMBER_PERFORMANCE_SUMMARY"."TOTAL_DV_UL" IS '当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(上限)';
|
||||||
|
|
||||||
|
|
||||||
CREATE SEQUENCE C_M_PERFORMANCE_SUMMARY_SEQ
|
CREATE SEQUENCE C_M_PERFORMANCE_SUMMARY_SEQ
|
||||||
|
|
Loading…
Reference in New Issue