Selaa lähdekoodia

app添加电梯bug(数据一致性问题)

yang 4 vuotta sitten
vanhempi
commit
3f2f888848

+ 9 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectAppService.java

@@ -181,8 +181,10 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         }
         Long liftId = lift.getId();
         //判断当前公司台量是否大于企业设置的台量
-        if (!maintenanceService.judge(mtCompanyId))
+        if (!maintenanceService.judge(mtCompanyId)) {
+            rollBack();
             return RestResponse.fail(MessageUtils.get("msg.limit.num"));
+        }
 
         PlatformCompanyLiftRelevance companyLiftEntry = liftService.saveCompanyLiftInfo(liftId, mtCompanyId);
         if (Objects.isNull(companyLiftEntry)) {
@@ -199,13 +201,14 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         //判断当前项目下实际台量是否大于项目里设置的台量
         int currentNum = projectLiftRelevanceService.countLiftNum(mtCompanyId, projectId);
         if (currentNum >= num) {
+            rollBack();
             return RestResponse.fail(MessageUtils.get("msg.project.limit.num"));
         }
         //新增项目电梯关联表
         ProjectLiftRelevance projectLiftRelevance = projectLiftRelevanceService
                 .save(lift.getId(), request.getProjectId(), companyLiftEntry.getId(), request.getWorkerId(), mtCompanyId);
         if (Objects.isNull(projectLiftRelevance)) {
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rollBack();
             return RestResponse.fail(MessageUtils.get("msg.add.fail"));
         }
         //新增电梯发送消息
@@ -213,6 +216,10 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         return RestResponse.success(null, MessageUtils.get("msg.add.success"));
     }
 
+    private void rollBack() {
+        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+    }
+
     /**
      * @param projectId 项目id
      * @return RestResponse 项目详情