Преглед изворни кода

相机已使用容量更新改为原子操作

dsx пре 2 година
родитељ
комит
42784fd9cb

+ 6 - 8
src/main/java/com/fdkankan/contro/service/impl/CameraDetailServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.contro.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.TbStatus;
@@ -37,14 +38,11 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         if(Objects.isNull(cameraDetail)){
             return null;
         }
-        cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + space);
-        if(cameraDetail.getUsedSpace() < 0){
-            cameraDetail.setUsedSpace(0L);
-        }
-        if(!this.updateById(cameraDetail)){
-            throw new BusinessException(ErrorCode.ERROR_MSG);
-        }
-        return cameraDetail;
+        this.update(new LambdaUpdateWrapper<CameraDetail>()
+                .setSql("used_space = used_space + " + space)
+                .eq(CameraDetail::getId, cameraDetail.getId()));
+
+        return this.getByCameraId(cameraId);
     }
 
 }