licailing 3 лет назад
Родитель
Сommit
1ccaf4e7ef

+ 19 - 0
src/main/java/com/izouma/nineth/service/AssetPostService.java

@@ -97,4 +97,23 @@ public class AssetPostService {
         assetPostRepo.save(assetPost);
         assetPostRepo.save(assetPost);
     }
     }
 
 
+    public AssetPost cancelPost(Long id) {
+        AssetPost assetPost = assetPostRepo.findById(id).orElseThrow(new BusinessException("无邮寄信息"));
+        if (PostStatus.CANCELLED.equals(assetPost.getStatus())) {
+            return assetPost;
+        }
+        if (!PostStatus.DELIVERY.equals(assetPost.getStatus())) {
+            throw new BusinessException("已邮寄无法取消");
+        }
+
+        Asset asset = assetRepo.findById(assetPost.getAssetId()).orElseThrow(new BusinessException("无衍生品"));
+        if (AssetStatus.POSTING.equals(asset.getStatus())) {
+            throw new BusinessException("当前状态无法取消");
+        }
+        assetPost.setStatus(PostStatus.CANCELLED);
+        asset.setStatus(AssetStatus.NORMAL);
+        assetRepo.save(asset);
+        return assetPostRepo.save(assetPost);
+    }
+
 }
 }

+ 5 - 0
src/main/java/com/izouma/nineth/web/AssetPostController.java

@@ -74,5 +74,10 @@ public class AssetPostController extends BaseController {
     public void receiveAsset(@RequestParam Long id, @RequestParam String courier, @RequestParam String courierId) {
     public void receiveAsset(@RequestParam Long id, @RequestParam String courier, @RequestParam String courierId) {
         assetPostService.receiveAsset(id, courier, courierId);
         assetPostService.receiveAsset(id, courier, courierId);
     }
     }
+
+    @PostMapping("/cancelPost")
+    public AssetPost cancelPost(@RequestParam Long id) {
+        return assetPostService.cancelPost(id);
+    }
 }
 }