瀏覽代碼

解决mybatis 不支持乐观锁

周箭河 5 年之前
父節點
當前提交
38b69fe691

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java

@@ -48,7 +48,7 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @param musicGroupId
      * @param subjectId
      */
-    void addApplyStudentNum(String musicGroupId, Integer subjectId,int num);
+    void addApplyStudentNum(String musicGroupId, Integer subjectId,int num) throws Exception;
 
     /**
      * 批量修改声部规划费用

+ 19 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GoodsType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.collection.MapUtil;
 import org.snaker.engine.core.OrderService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -121,12 +122,22 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     }
 
     @Override
-    public void addApplyStudentNum(String musicGroupId, Integer subjectId, int num) {
-        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-        int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
-        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + num);
-        musicOneSubjectClassPlan.setUpdateTime(new Date());
-        musicGroupSubjectPlanDao.update(musicOneSubjectClassPlan);
+    public void addApplyStudentNum(String musicGroupId, Integer subjectId, int num) throws Exception {
+        boolean flag = false;
+        for (int i = 10; i >= 1; i--) {
+            MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+            int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
+            musicOneSubjectClassPlan.setApplyStudentNum(applyNum + num);
+            musicOneSubjectClassPlan.setUpdateTime(new Date());
+            int updateCount = musicGroupSubjectPlanDao.update(musicOneSubjectClassPlan);
+            if (updateCount >= 0) {
+                flag = true;
+                break;
+            }
+        }
+        if (flag == false) {
+            throw new BizException("系统繁忙,请重试");
+        }
     }
 
     @Override
@@ -150,7 +161,8 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
 
         List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.findUserApplyOrder(studentRegistration.getUserId(), DealStatusEnum.WAIT_PAY);
         for (StudentPaymentOrderDetail orderDetail : orderDetails) {
-            if (orderDetail == null || orderDetail.getGoodsIdList() == null || orderDetail.getGoodsIdList().isEmpty()) continue;
+            if (orderDetail == null || orderDetail.getGoodsIdList() == null || orderDetail.getGoodsIdList().isEmpty())
+                continue;
             MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup = new MusicGroupSubjectGoodsGroup();
             if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
                 musicGroupSubjectGoodsGroup.setName("乐器");