Browse Source

支付缓存bug修复

zouxuan 2 years ago
parent
commit
426377ea1d

+ 12 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -659,18 +659,21 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public boolean liveBuyOrderCallback(StudentPaymentOrder studentPaymentOrder) {
         //查询原定的是否已处理
-        StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
+        /*StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
         if (orignStudentPaymentOrder == null) {
             return false;
         }
         if (orignStudentPaymentOrder.getStatus() != DealStatusEnum.ING) {
             return false;
-        }
+        }*/
         Integer userId = studentPaymentOrder.getUserId();
         Date nowDate = new Date();
         // 更新订单信息
         studentPaymentOrder.setUpdateTime(nowDate);
-        studentPaymentOrderService.update(studentPaymentOrder);
+        int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
+        if (updateCount <= 0) {
+            throw new BizException("订单更新失败");
+        }
 
         if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
             //退还优惠券和余额
@@ -759,18 +762,21 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
         //查询原定的是否已处理
-        StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
+        /*StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
         if (orignStudentPaymentOrder == null) {
             return false;
         }
         if (orignStudentPaymentOrder.getStatus() != DealStatusEnum.ING) {
             return false;
-        }
+        }*/
         Integer userId = studentPaymentOrder.getUserId();
         Date nowDate = new Date();
         // 更新订单信息
         studentPaymentOrder.setUpdateTime(nowDate);
-        studentPaymentOrderService.update(studentPaymentOrder);
+        int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
+        if (updateCount <= 0) {
+            throw new BizException("订单更新失败");
+        }
 
         if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
             //退还优惠券和余额

+ 20 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -4317,18 +4317,18 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public void activityOrderCallback(StudentPaymentOrder studentPaymentOrder) {
-        Integer userId = studentPaymentOrder.getUserId();
-        StudentPaymentOrder order = studentPaymentOrderDao.lockOrder(studentPaymentOrder.getId());
+    public void activityOrderCallback(StudentPaymentOrder order) {
+        Integer userId = order.getUserId();
+        /*StudentPaymentOrder order = studentPaymentOrderDao.lockOrder(studentPaymentOrder.getId());
         if (!order.getStatus().equals(DealStatusEnum.ING)) {
             return;
-        }
+        }*/
         //更新订单状态
-        int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
+        int updateCount = studentPaymentOrderService.update(order);
         if (updateCount <= 0) {
             throw new BizException("订单更新失败");
         }
-        if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
+        if (order.getStatus().equals(DealStatusEnum.SUCCESS)) {
             Integer activityId = Integer.parseInt(order.getActivityId());
             VipGroupActivity activity = vipGroupActivityDao.get(activityId);
             ActivityUserMapper activityUserMapper = new ActivityUserMapper();
@@ -4342,7 +4342,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             activityUserMapper.setOrganId(order.getOrganId());
             activityUserMapperService.copyProperty(activityUserMapper,activity,false,true);
             if (activity.isPayToBalance()) {
-                sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
+                sysUserCashAccountService.appendCourseBalance(userId, order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
             }
             if (activity.getFullMinusCourseTimes() != -1 && order.getActivityBuyNum() >= activity.getFullMinusCourseTimes()) {
                 activityUserMapper.setGiveVipFlag(1);
@@ -4359,9 +4359,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
             sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
             sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-            sysUserIncomeCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-            sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount());
-            sysUserIncomeCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount());
+            sysUserIncomeCashAccountDetail.setChannel(order.getPaymentChannel());
+            sysUserIncomeCashAccountDetail.setComAmount(order.getComAmount());
+            sysUserIncomeCashAccountDetail.setPerAmount(order.getPerAmount());
             //支出
             SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
             sysUserExpendCashAccountDetail.setUserId(order.getUserId());
@@ -4370,30 +4370,30 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
             sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
             sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
-            sysUserExpendCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+            sysUserExpendCashAccountDetail.setChannel(order.getPaymentChannel());
 
-            if (studentPaymentOrder.getComAmount() != null) {
-                sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
+            if (order.getComAmount() != null) {
+                sysUserIncomeCashAccountDetail.setComAmount(order.getComAmount().negate());
             }
-            if (studentPaymentOrder.getPerAmount() != null) {
-                sysUserExpendCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
+            if (order.getPerAmount() != null) {
+                sysUserExpendCashAccountDetail.setPerAmount(order.getPerAmount().negate());
             }
 
             sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
             sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
 
             try {
-                contractService.transferProduceContract(userId, null, studentPaymentOrder.getType());
+                contractService.transferProduceContract(userId, null, order.getType());
             } catch (Exception e) {
                 LOGGER.error("产品协议生成失败", e);
             }
             studentDao.updateStudentServiceTag(userId, null, YesOrNoEnum.YES.getCode());
         }
-        if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED) || studentPaymentOrder.getStatus().equals(DealStatusEnum.CLOSE)) {
-            if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-                sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "报名缴费失败");
+        if (order.getStatus().equals(DealStatusEnum.FAILED) || order.getStatus().equals(DealStatusEnum.CLOSE)) {
+            if (order.getBalancePaymentAmount() != null && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "报名缴费失败");
             }
-            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
+            sysCouponCodeService.quit(order.getCouponCodeId());
         }
     }