Ver Fonte

手动切换数据源

skyline há 2 anos atrás
pai
commit
7296c93f73

+ 7 - 0
service/src/main/java/com/kym/service/admin/impl/ActivityServiceImpl.java

@@ -1,6 +1,7 @@
 package com.kym.service.admin.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.kym.common.utils.CommUtil;
@@ -170,16 +171,22 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> i
         var activity = lambdaQuery().eq(Activity::getDiscountType, DISCOUNT_TYPE_服务费折扣权益).eq(Activity::getStatus, Activity.STATUS_进行中).one();
         // 充值金额,匹配到到具体的充值权益,生成用户权益
         if (activity != null) {
+            // 手动切换数据源
+            DynamicDataSourceContextHolder.push("db-admin");
             var rechargeRights = rechargeRightsService.lambdaQuery().eq(RechargeRights::getActivityId, activity.getId())
                     .le(RechargeRights::getAmountMin, rechargeAmount)
                     .ge(RechargeRights::getAmountMax, rechargeAmount) // 最后一档最大值设置成10000
                     .one();
+            DynamicDataSourceContextHolder.poll();
             if (rechargeRights != null) {
                 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();
             }
         }
         log.info("RechargeActivityTask run end....");