lubo 3 ヶ月 前
コミット
c47b88d60f

+ 1 - 0
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyModeAutoServiceImpl.java

@@ -338,6 +338,7 @@ public class SubsidyModeAutoServiceImpl implements ISubsidyModeAutoService {
 
             if(!subsidySharedPool.getSettlemented())
             {
+                //模式改变提前结算
                 subsidySharedPoolService.settlement(subsidySharedPool.getSharedId(), SharedSettlementMode.EARLY_SETTLEMENT);
             }
 

+ 4 - 4
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyQueueServiceImpl.java

@@ -42,10 +42,7 @@ import com.ruoyi.subsidy.domain.SubsidyQueue;
 import com.ruoyi.subsidy.domain.SubsidySharedPool;
 import com.ruoyi.subsidy.domain.bo.*;
 import com.ruoyi.subsidy.domain.vo.SubsidyQueueVo;
-import com.ruoyi.subsidy.enums.PurchaseSource;
-import com.ruoyi.subsidy.enums.SubsidyCancelType;
-import com.ruoyi.subsidy.enums.SubsidyCountType;
-import com.ruoyi.subsidy.enums.SubsidyStatus;
+import com.ruoyi.subsidy.enums.*;
 import com.ruoyi.subsidy.exception.SubsidyQueueExceptionEnum;
 import com.ruoyi.subsidy.mapper.SubsidyQueueMapper;
 import com.ruoyi.subsidy.service.*;
@@ -650,6 +647,9 @@ public class SubsidyQueueServiceImpl implements ISubsidyQueueService {
                     .businessId(businessId)
                     .businessName(businessName)
                     .build());
+
+
+
             }
         }
     }

+ 24 - 13
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidySharedPoolServiceImpl.java

@@ -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());

+ 0 - 1
ruoyi-rabbitmq/src/main/java/com/ruoyi/rabbitmq/config/RabbitMqDelayedConfig.java

@@ -190,7 +190,6 @@ public class RabbitMqDelayedConfig {
                                           @Qualifier("subsidySharedPoolExpireDelayExchange") CustomExchange customExchange) {
         return BindingBuilder.bind(queue).to(customExchange).with(SUBSIDY_SHARED_POOL_EXPIRE_DELAYED_ROUTING).noargs();
     }
-
     //endregion
 
     //region 商城订单未支付自动关闭 延时队列MQ