Selaa lähdekoodia

fix 数据源切换

skyline 1 vuosi sitten
vanhempi
säilyke
312fd46f39

+ 2 - 0
service/src/main/java/com/kym/service/admin/CouponService.java

@@ -20,4 +20,6 @@ public interface CouponService extends MPJBaseService<Coupon> {
     void issueCoupons(UserCouponsIssueVo userCouponsIssue);
 
     PageBean<Coupon> listAvailableCoupons(CouponQueryParam params);
+
+    void usedQuantifyCount(Long couponId);
 }

+ 1 - 1
service/src/main/java/com/kym/service/admin/impl/AdminUserRoleServiceImpl.java

@@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
  * @since 2023-09-04
  */
 @Service
-@DS("db_admin")
+@DS("db-admin")
 public class AdminUserRoleServiceImpl extends MPJBaseServiceImpl<AdminUserRoleMapper, AdminUserRole> implements AdminUserRoleService {
 
 }

+ 6 - 1
service/src/main/java/com/kym/service/admin/impl/CouponServiceImpl.java

@@ -41,6 +41,7 @@ import java.util.Objects;
  * @since 2024-04-25
  */
 @Service
+@DS("db-admin")
 public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements CouponService {
 
     private final UserService userService;
@@ -119,7 +120,6 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     }
 
     @Override
-    @DS("db-admin")
     public PageBean<Coupon> listAvailableCoupons(CouponQueryParam params) {
         if (CommUtil.isEmptyOrNull(params.getStationId())) {
             throw new BusinessException("请选择充电站点");
@@ -139,4 +139,9 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
         return new PageBean<>(res);
     }
 
+    @Override
+    public void usedQuantifyCount(Long couponId){
+        lambdaUpdate().setSql("used_quantity = used_quantity + 1").eq(Coupon::getId, couponId).update();
+    }
+
 }

+ 2 - 1
service/src/main/java/com/kym/service/enplus/impl/EnNotifyServiceImpl.java

@@ -3,6 +3,7 @@ package com.kym.service.enplus.impl;
 import cn.hutool.extra.mail.MailUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.kym.entity.admin.ConnectorInfo;
 import com.kym.entity.admin.EquipmentInfo;
@@ -255,7 +256,7 @@ public class EnNotifyServiceImpl implements EnNotifyService {
      * @return
      */
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional(rollbackFor = Exception.class)
     public String handleNotificationChargeOrderInfo(JSONObject json) {
         var dataStr = enPlusService.signValidation(json);
         var data = JSONObject.parseObject(dataStr);

+ 1 - 1
service/src/main/java/com/kym/service/miniapp/DiscountService.java

@@ -2,8 +2,8 @@ package com.kym.service.miniapp;
 
 import com.kym.entity.miniapp.Account;
 import com.kym.entity.miniapp.ChargeOrder;
-import com.kym.entity.miniapp.other.DiscountCompute;
 
 public interface DiscountService {
+
     void computeDiscount(ChargeOrder chargeOrder, Account account);
 }

+ 3 - 7
service/src/main/java/com/kym/service/miniapp/impl/CouponDiscountHandle.java

@@ -1,6 +1,5 @@
 package com.kym.service.miniapp.impl;
 
-import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.kym.entity.admin.Coupon;
 import com.kym.entity.miniapp.Account;
 import com.kym.entity.miniapp.ChargeOrder;
@@ -35,7 +34,7 @@ public class CouponDiscountHandle implements DiscountService {
 
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @Transactional
     public void computeDiscount(ChargeOrder chargeOrder, Account account) {
         int discountAmount = 0;
 
@@ -53,7 +52,7 @@ public class CouponDiscountHandle implements DiscountService {
                     .one();
 
             // 检查是否达到使用门槛
-            if (chargeOrder.getServiceMoney() > userCoupon.getMinServiceMoney()) {
+            if (chargeOrder.getServiceMoney() >= userCoupon.getMinServiceMoney()) {
                 // 根据优惠券类型处理
                 switch (userCoupon.getCouponType()) {
                     case Coupon.COUPON_TYPE_满减券:
@@ -86,10 +85,7 @@ public class CouponDiscountHandle implements DiscountService {
                         .update();
 
                 // 优惠券使用情况数据
-                // 手动切换数据源
-                DynamicDataSourceContextHolder.push("db-admin");
-                couponService.lambdaUpdate().setSql("usage_count = usage_count + 1").eq(Coupon::getId, userCoupon.getCouponId()).update();
-                DynamicDataSourceContextHolder.poll();
+                couponService.usedQuantifyCount(userCoupon.getCouponId());
             } else {
                 log.error("订单使用优惠券失败:订单号:{},优惠券id{}:服务费未达到优惠券使用门槛", chargeOrder.getStartChargeSeq(), userCoupon.getCouponId());
             }