|
|
@@ -11,6 +11,7 @@ import com.ruoyi.business.service.IBusinessService;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.BeanCopyUtils;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
+import com.ruoyi.common.utils.MathUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.core.domain.PageQuery;
|
|
|
@@ -252,9 +253,11 @@ public class SubsidySharedPoolServiceImpl implements ISubsidySharedPoolService {
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
+ BigDecimal totalSharedAmount = subsidySharedPool.getTotalSharedAmount();
|
|
|
//开始结算,并把结算剩余还给商家,同时需要记好均摊池改变日志
|
|
|
BigDecimal remaining = subsidyQueueService.sharedSubsidyCompute(subsidySharedPool.getBusinessId(), subsidySharedPool.getTotalSharedAmount());
|
|
|
|
|
|
+
|
|
|
subsidySharedPool.setReturnBusinessAmount(remaining);
|
|
|
subsidySharedPool.setSettlemented(true);
|
|
|
subsidySharedPool.setSettlementMode(sharedSettlementMode);
|
|
|
@@ -262,6 +265,16 @@ public class SubsidySharedPoolServiceImpl implements ISubsidySharedPoolService {
|
|
|
subsidySharedPool.setSettlementRemark("均摊定时补贴");
|
|
|
baseMapper.updateById(subsidySharedPool);
|
|
|
|
|
|
+ //添加均摊池改变日志
|
|
|
+ subsidySharedPoolLogService.insertByBo(SubsidySharedPoolLogBo.builder()
|
|
|
+ .sharedId(subsidySharedPool.getSharedId())
|
|
|
+ .businessId(subsidySharedPool.getBusinessId())
|
|
|
+ .behaviorType(SharedPoolBehaviorType.SETTLEMENT_SUBSIDY)
|
|
|
+ .prevValue(totalSharedAmount)
|
|
|
+ .changeValue(MathUtils.subtract(totalSharedAmount, remaining))
|
|
|
+ .resultValue(remaining)
|
|
|
+ .remark(SharedSettlementMode.DUE_SETTLEMENT.getMsg()+"给用户")
|
|
|
+ .build());
|
|
|
|
|
|
if(remaining.compareTo(BigDecimal.ZERO)>0)
|
|
|
{
|
|
|
@@ -279,22 +292,20 @@ public class SubsidySharedPoolServiceImpl implements ISubsidySharedPoolService {
|
|
|
.businessId(businessId)
|
|
|
.businessName(business.getBusinessName())
|
|
|
.build());
|
|
|
+
|
|
|
+ //均摊池改变日志
|
|
|
+ subsidySharedPoolLogService.insertByBo(SubsidySharedPoolLogBo.builder()
|
|
|
+ .sharedId(subsidySharedPool.getSharedId())
|
|
|
+ .businessId(subsidySharedPool.getBusinessId())
|
|
|
+ .behaviorType(SharedPoolBehaviorType.REFUND_SUBSIDY)
|
|
|
+ .prevValue(remaining)
|
|
|
+ .changeValue(remaining)
|
|
|
+ .resultValue(BigDecimal.ZERO)
|
|
|
+ .remark("剩余返还给商家")
|
|
|
+ .build());
|
|
|
}
|
|
|
-// // 商家余额做废
|
|
|
-// // 有了商家的实际补贴金额,就可以计算商家当前这个订单的实际所得
|
|
|
-// // 实际所得 = 订单金额- 平台服务费(5%)- (商家补贴金额(让利)-补贴返还)
|
|
|
-// businessService.changeBalance(BusinessBalanceRecordBo.builder()
|
|
|
-// .billType(BusinessBillType.IN)
|
|
|
-// .businessId(subsidySharedPool.getBusinessId())
|
|
|
-// .entryValue(remaining)
|
|
|
-// .sourceType(BusinessSourceType.SUBSIDY_OVERFLOW_RETURN)
|
|
|
-// .sourceId(sharedId)
|
|
|
-// .remark(String.format("均摊定时补贴后溢出,返还商家 %s", remaining))
|
|
|
-// .build());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
if(SharedSettlementMode.DUE_SETTLEMENT.equals(sharedSettlementMode)) {
|
|
|
//如果还是同样的模式,则开启新的均摊池
|
|
|
SubsidyMode currentMode = subsidyModeService.loadCurrentMode(subsidySharedPool.getBusinessId());
|