Compare commits
	
		
			2 Commits
		
	
	
		
			883be1c8a7
			...
			1a477878c9
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 1a477878c9 | |
|  | ddf974e33c | 
|  | @ -3,6 +3,7 @@ import cn.hutool.core.util.ObjectUtil; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| 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.utils.DateUtils; | ||||
| 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); | ||||
|         Map<Integer, List<SaOrder>> groupedOrders = orderList.stream().collect(Collectors.groupingBy(SaOrder::getOrderType)); | ||||
|         CuMemberPerformanceSummary summary = CuMemberPerformanceSummary.getInitCuMemberPerformanceSummary(startDate); | ||||
| 
 | ||||
|         BigDecimal dvSource; | ||||
| 
 | ||||
|         if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue()))) { | ||||
|             for (SaOrder saOrder : groupedOrders.get(EOrderType.RETAIL_REGISTER.getValue())) { | ||||
|                 summary.setRetailRegisterAmount(summary.getRetailDiscountAmount().add(saOrder.getOrderAmount())); | ||||
|                 summary.setRetailRegisterPv(summary.getRetailDiscountPv().add(saOrder.getOrderAchieve())); | ||||
|                 summary.setRetailRegisterAmount(summary.getRetailRegisterAmount().add(saOrder.getOrderAmount())); | ||||
|                 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.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount())); | ||||
|  | @ -56,6 +71,17 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP | |||
|                 summary.setRetailUpgradeAmount(summary.getRetailUpgradeAmount().add(saOrder.getOrderAmount())); | ||||
|                 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.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount())); | ||||
|             } | ||||
|  | @ -65,12 +91,19 @@ public class CuMemberPerformanceSummaryServiceImpl extends ServiceImpl<CuMemberP | |||
|                 summary.setRetailRepurchaseAmount(summary.getRetailRepurchaseAmount().add(saOrder.getOrderAmount())); | ||||
|                 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.setTotalPv(summary.getTotalPv().add(saOrder.getOrderAmount())); | ||||
|             } | ||||
|         } | ||||
|         if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.RETAIL_CONSUME.getValue()))){ | ||||
|             for (SaOrder saOrder : groupedOrders.get(EOrderType.RETAIL_CONSUME.getValue())) { | ||||
|         if(ObjectUtil.isNotEmpty(groupedOrders.get(EOrderType.DISCOUNT_ORDER.getValue()))){ | ||||
|             for (SaOrder saOrder : groupedOrders.get(EOrderType.DISCOUNT_ORDER.getValue())) { | ||||
|                 summary.setRetailDiscountAmount(summary.getRetailDiscountAmount().add(saOrder.getOrderAmount())); | ||||
|                 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.setDividendPv(summary.getTotalPv().multiply(new BigDecimal("0.015"))); | ||||
|         summary.setPkCreator(MagicNumberConstants.PK_ADMIN); | ||||
|         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"); | ||||
| 
 | ||||
|     /** | ||||
|      * 分红上限(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") | ||||
|     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") | ||||
|     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") | ||||
|     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") | ||||
|     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; | ||||
| 
 | ||||
|     /** | ||||
|      * 当日分红合计(分红:所有专区PV值的1.5%每天进行记录) | ||||
|      * 当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(原值) | ||||
|      */ | ||||
|     @TableField("DIVIDEND_PV") | ||||
|     private BigDecimal dividendPv; | ||||
|     @TableField("TOTAL_DV_SOURCE") | ||||
|     private BigDecimal totalDvSource; | ||||
| 
 | ||||
|     /** | ||||
|      * 当日分红合计(分红:所有专区PV值的1.5%每天进行记录)(上限) | ||||
|      */ | ||||
|     @TableField("TOTAL_DV_UL") | ||||
|     private BigDecimal totalDvUL; | ||||
| 
 | ||||
| 
 | ||||
|     public static CuMemberPerformanceSummary getInitCuMemberPerformanceSummary(Date summaryDate){ | ||||
|  | @ -112,15 +166,24 @@ public class CuMemberPerformanceSummary extends BaseEntity { | |||
|                 .summaryDate(summaryDate) | ||||
|                 .retailRegisterAmount(BigDecimal.ZERO) | ||||
|                 .retailRegisterPv(BigDecimal.ZERO) | ||||
|                 .retailRegisterDvSource(BigDecimal.ZERO) | ||||
|                 .retailRegisterDvUL(BigDecimal.ZERO) | ||||
|                 .retailUpgradeAmount(BigDecimal.ZERO) | ||||
|                 .retailUpgradePv(BigDecimal.ZERO) | ||||
|                 .retailUpgradeDvSource(BigDecimal.ZERO) | ||||
|                 .retailUpgradeDvUL(BigDecimal.ZERO) | ||||
|                 .retailRepurchaseAmount(BigDecimal.ZERO) | ||||
|                 .retailRepurchasePv(BigDecimal.ZERO) | ||||
|                 .retailRepurchaseDvSource(BigDecimal.ZERO) | ||||
|                 .retailRepurchaseDvUL(BigDecimal.ZERO) | ||||
|                 .retailDiscountAmount(BigDecimal.ZERO) | ||||
|                 .retailDiscountPv(BigDecimal.ZERO) | ||||
|                 .retailDiscountDvSource(BigDecimal.ZERO) | ||||
|                 .retailDiscountDvUL(BigDecimal.ZERO) | ||||
|                 .totalAmount(BigDecimal.ZERO) | ||||
|                 .totalPv(BigDecimal.ZERO) | ||||
|                 .dividendPv(BigDecimal.ZERO) | ||||
|                 .totalDvSource(BigDecimal.ZERO) | ||||
|                 .totalDvUL(BigDecimal.ZERO) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -36,6 +36,31 @@ COMMENT ON COLUMN CU_MEMBER_PERFORMANCE_SUMMARY."DIVIDEND_PV" 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 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue