skyline пре 2 година
родитељ
комит
82e8f740a4

+ 11 - 3
service/src/main/java/com/kym/service/admin/impl/ActivityServiceImpl.java

@@ -160,8 +160,8 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> i
     @Override
     @Async("AsyncExecutor")
     public void handleRechargeActivity(long userId, int rechargeAmount) {
-        asyncHandleRechargeActivity(userId,rechargeAmount);
-//        executor.execute(new RechargeActivityTask(userId, rechargeAmount));
+//        asyncHandleRechargeActivity(userId,rechargeAmount);
+        executor.execute(new RechargeActivityTask(userId, rechargeAmount));
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -210,6 +210,8 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> i
         public void run() {
             log.info("RechargeActivityTask run....");
             // 进行中的充值权益活动
+            // 手动切换数据源
+            DynamicDataSourceContextHolder.push("db-admin");
             var activity = lambdaQuery().eq(Activity::getDiscountType, DISCOUNT_TYPE_服务费折扣权益).eq(Activity::getStatus, Activity.STATUS_进行中).one();
             // 充值金额,匹配到到具体的充值权益,生成用户权益
             if (activity != null) {
@@ -217,13 +219,19 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> i
                         .le(RechargeRights::getAmountMin, rechargeAmount)
                         .ge(RechargeRights::getAmountMax, rechargeAmount) // 最后一档最大值设置成10000
                         .one();
+                DynamicDataSourceContextHolder.poll();
                 if (rechargeRights != null) {
-                    var userRechargeRights = new UserRechargeRights().setRightsId(rechargeRights.getId()).setUserId(this.useId).setRightsBalance(rechargeAmount);
+                    var userRechargeRights = new UserRechargeRights().setRightsId(rechargeRights.getId()).setUserId(userId).setRightsBalance(rechargeAmount);
                     BeanUtils.copyProperties(rechargeRights, userRechargeRights, "id");
                     // 计算有效期
                     var endTime = LocalDateTime.now().with(LocalTime.MAX).plusDays(rechargeRights.getValidity() - 1);
+                    // 手动切换数据源
+                    DynamicDataSourceContextHolder.push("db-miniapp");
                     userRechargeRightsService.save(userRechargeRights.setStartTime(LocalDateTime.now()).setEndTime(endTime));
+                    DynamicDataSourceContextHolder.poll();
                 }
+            }else {
+                DynamicDataSourceContextHolder.poll();
             }
             log.info("RechargeActivityTask run end....");
         }