|
@@ -136,6 +136,10 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
}
|
|
|
|
|
|
private void calc(List<DistriOrderMessage> tradeOrderDO, OrderPercentageDO orderPercentageDO, String percentTemplate) {
|
|
|
+
|
|
|
+ // 给用户分组
|
|
|
+
|
|
|
+
|
|
|
// 每个订单收益
|
|
|
List<OrderCalcSaveReqVO> saveList = new ArrayList<>();
|
|
|
// 平台收益
|
|
@@ -149,6 +153,7 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
List<DuserSaveReqVO> duserSaveReqVOS = new ArrayList<>();
|
|
|
|
|
|
PtProfitDO ptProfitDO = ptProfitService.getPtProfit();
|
|
|
+ PtProfitDO finalPtProfitDO = ptProfitDO;
|
|
|
tradeOrderDO.forEach(k -> {
|
|
|
|
|
|
BigDecimal price = new BigDecimal(String.valueOf(k.getPrice()));
|
|
@@ -193,19 +198,19 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
// 如果sharePath为空, 则说明没有直推人关系
|
|
|
IntegralDO integralDOAncestor = integralService.selectByUser(sharePath.getAncestor());
|
|
|
IntegralDO integralDO = integralService.selectByUser(sharePath.getDescendant());
|
|
|
-
|
|
|
+ IntegralDO ptIntegral = integralService.selectByUser(1L);
|
|
|
// ========== 汇总计算 =================
|
|
|
addCaclDo(percentTemplate, saveList, k, grossProfitInt, ancestorQuotaInt, descendantQuotaInt, bonusQuotaInt, platformQuotaInt);
|
|
|
// ========== 修改用户钱包 =================
|
|
|
- changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ancestorQuotaInt, descendantQuotaInt, highQuotaInt);
|
|
|
+ changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ptIntegral, ancestorQuotaInt, descendantQuotaInt, highQuotaInt, grossProfitInt, platformQuotaInt);
|
|
|
// ========== 修改平台信息 =================
|
|
|
// 每个订单计算的过程
|
|
|
// 增加平台收益
|
|
|
// 平台服务费
|
|
|
|
|
|
- BigDecimal ptGrossAdd = new BigDecimal(ptProfitDO.getPtGrossAdd());
|
|
|
- BigDecimal ptAdd = new BigDecimal(ptProfitDO.getPtAdd());
|
|
|
- BigDecimal ptTotalAdd = new BigDecimal(ptProfitDO.getPtTotalAdd());
|
|
|
+ BigDecimal ptGrossAdd = new BigDecimal(finalPtProfitDO.getPtGrossAdd());
|
|
|
+ BigDecimal ptAdd = new BigDecimal(finalPtProfitDO.getPtAdd());
|
|
|
+ BigDecimal ptTotalAdd = new BigDecimal(finalPtProfitDO.getPtTotalAdd());
|
|
|
BigDecimal bonusQuotaPerc = new BigDecimal(orderPercentageDO.getGrossProfitPerc());
|
|
|
|
|
|
// 计算平台收益:毛利润减去合赢奖百分比后的金额
|
|
@@ -254,11 +259,31 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
|
|
|
});
|
|
|
|
|
|
+ // 信息整合
|
|
|
+ // 计算平台收益
|
|
|
+ ptProfitDO = calcPtProfit(ptProfitDO, ptProfitSaveReqVOS);
|
|
|
+
|
|
|
// 将信息存储到数据库中
|
|
|
orderCalcMapper.insertBatch(BeanUtils.toBean(saveList, OrderCalcDO.class));
|
|
|
- ptProfitService.saveBatch(ptProfitSaveReqVOS);
|
|
|
+ ptProfitService.updatePtProfit(BeanUtils.toBean(ptProfitDO, PtProfitSaveReqVO.class));
|
|
|
ptProfitLogService.saveBatch(ptProfitLogSaveReqVOS);
|
|
|
- integralService.updateBatch(integralSaveReqVOS);
|
|
|
+ }
|
|
|
+
|
|
|
+ private PtProfitDO calcPtProfit(PtProfitDO ptProfitDO, List<PtProfitSaveReqVO> ptProfitSaveReqVOS) {
|
|
|
+
|
|
|
+ int currentPtAdd = 0;
|
|
|
+ int currentPtGrossAdd = 0;
|
|
|
+
|
|
|
+ for (PtProfitSaveReqVO ptProfitSaveReqVO : ptProfitSaveReqVOS) {
|
|
|
+ currentPtAdd = currentPtAdd + ptProfitSaveReqVO.getPtAdd();
|
|
|
+ currentPtGrossAdd = currentPtGrossAdd + ptProfitSaveReqVO.getPtGrossAdd();
|
|
|
+ }
|
|
|
+
|
|
|
+ ptProfitDO.setPtAdd(ptProfitDO.getPtAdd() + currentPtAdd);
|
|
|
+ ptProfitDO.setPtGrossAdd(ptProfitDO.getPtGrossAdd() + currentPtGrossAdd);
|
|
|
+ ptProfitDO.setPtTotalAdd(currentPtAdd + currentPtGrossAdd + ptProfitDO.getPtTotalAdd());
|
|
|
+
|
|
|
+ return ptProfitDO;
|
|
|
}
|
|
|
|
|
|
private static void addCaclDo(String percentTemplate, List<OrderCalcSaveReqVO> saveList, DistriOrderMessage k, Integer grossProfit, Integer ancestorQuota, Integer descendantQuota, Integer bonusQuota, Integer platformQuota) {
|
|
@@ -266,25 +291,31 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
saveList.add(orderCalcSaveReqVO);
|
|
|
}
|
|
|
|
|
|
- private static void changeUserWallet(List<IntegralSaveReqVO> integralSaveReqVOS, IntegralDO integralDO, IntegralDO integralDOAncestor, Integer ancestorQuota, Integer descendantQuota, Integer highQuota) {
|
|
|
+ private void changeUserWallet(List<IntegralSaveReqVO> integralSaveReqVOS, IntegralDO integralDO, IntegralDO integralDOAncestor, IntegralDO pt,
|
|
|
+ Integer ancestorQuota, Integer descendantQuota, Integer highQuota, Integer ptA, Integer ptB) {
|
|
|
// 修改用户钱包
|
|
|
// 增加直推人额度
|
|
|
integralDO.setHighQuota(integralDO.getHighQuota() + highQuota);
|
|
|
integralDO.setCurrentQuota(integralDO.getCurrentQuota() + descendantQuota);
|
|
|
|
|
|
+
|
|
|
// 增加推荐人额度
|
|
|
integralDOAncestor.setCurrentQuota(integralDO.getCurrentQuota() + ancestorQuota);
|
|
|
+ // 增加平台额度
|
|
|
+ pt.setCurrentQuota(integralDO.getCurrentQuota() + ptA + ptB);
|
|
|
|
|
|
- integralSaveReqVOS.add(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
|
|
|
- integralSaveReqVOS.add(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
|
|
|
- }
|
|
|
+// integralSaveReqVOS.add(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
|
|
|
+// integralSaveReqVOS.add(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
|
|
|
|
|
|
+ integralService.updateIntegral(BeanUtils.toBean(integralDO, IntegralSaveReqVO.class));
|
|
|
+ integralService.updateIntegral(BeanUtils.toBean(integralDOAncestor, IntegralSaveReqVO.class));
|
|
|
+ integralService.updateIntegral(BeanUtils.toBean(pt, IntegralSaveReqVO.class));
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// 获取当前订单的下单人的直推关系
|
|
|
public SharePathDO getSharePath(Long userId) {
|
|
|
-
|
|
|
return sharePathService.getSharePathByDescendant(userId);
|
|
|
}
|
|
|
|