wukai 1 жил өмнө
parent
commit
20a998d613

+ 26 - 0
doc-admin/src/main/java/com/doc/task/SpaceCapTask.java

@@ -0,0 +1,26 @@
+package com.doc.task;
+
+import com.doc.biz.domain.DocSpace;
+import com.doc.biz.service.IDocSpaceService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 定时任务调度测试
+ *
+ * @author ruoyi
+ */
+@Component("spaceCapTask")
+public class SpaceCapTask {
+    @Resource
+    private IDocSpaceService spaceService;
+
+    public void exec() {
+        List<DocSpace> list = spaceService.selectDocSpaceList(new DocSpace());
+        list.forEach(space -> {
+            spaceService.updateUsedCap(space.getSpaceId());
+        });
+    }
+}

+ 3 - 3
doc-biz/src/main/java/com/doc/biz/mapper/DocSpaceMapper.java

@@ -70,12 +70,12 @@ public interface DocSpaceMapper extends BaseMapper<DocSpace> {
     List<DocSpace> selectDocSpaceByUser(@Param("userId") Long userId);
 
     /**
-     * 根据spaceId更新空间使用情况
+     * /**
+     * 更新空间使用情况,做个冗余
      *
-     * @param spaceId 空间ID
      * @return i
      */
-    int updateUsedCap(Long spaceId);
+    int updateUsedCap(@Param("spaceId") Long spaceId);
 
     /**
      * 增加容量

+ 11 - 1
doc-biz/src/main/java/com/doc/biz/service/IDocSpaceService.java

@@ -22,7 +22,7 @@ public interface IDocSpaceService {
     public DocSpace selectDocSpaceBySpaceId(Long spaceId);
 
     /**
-     * 根据spaceId更新空间使用情况
+     * 更新空间使用情况,做个冗余
      *
      * @param spaceId 空间ID
      */
@@ -103,6 +103,16 @@ public interface IDocSpaceService {
      *
      * @param spaceId   空间ID
      * @param expandCap 容量大小
+     * @return 空间对象
      */
     DocSpace addCap(Long spaceId, Long expandCap);
+
+    /**
+     * 改变已使用容量
+     *
+     * @param spaceId 空间ID
+     * @param size    容量大小
+     * @return 空间对象
+     */
+    DocSpace changeUsedCap(Long spaceId, Long size);
 }

+ 27 - 3
doc-biz/src/main/java/com/doc/biz/service/impl/DocSpaceServiceImpl.java

@@ -48,9 +48,8 @@ public class DocSpaceServiceImpl implements IDocSpaceService {
     }
 
     /**
-     * 根据spaceId更新空间使用情况
-     *
-     * @param spaceId 空间ID
+     * /**
+     * 更新空间使用情况,做个冗余
      */
     @Override
     public void updateUsedCap(Long spaceId) {
@@ -182,6 +181,31 @@ public class DocSpaceServiceImpl implements IDocSpaceService {
     }
 
     /**
+     * 改变已使用容量
+     *
+     * @param spaceId 空间ID
+     * @param size    容量大小
+     * @return 空间对象
+     */
+    @Override
+    public DocSpace changeUsedCap(Long spaceId, Long size) {
+        DocSpace space = selectDocSpaceBySpaceId(spaceId);
+        BigDecimal used = space.getUsedCap();
+        if (used == null) {
+            used = BigDecimal.ZERO;
+        }
+        BigDecimal cap = space.getSpaceCap();
+        long convert = 1024 * 1024 * 1024;
+        BigDecimal addSize = BigDecimal.valueOf(size).divide(BigDecimal.valueOf(convert));
+        used = used.add(addSize);
+        BigDecimal free = cap.subtract(used);
+        space.setFreeCap(free);
+        space.setUsedCap(used);
+        updateDocSpace(space);
+        return space;
+    }
+
+    /**
      * 初始化空间
      *
      * @param spaceType  空间类型