From a13573d5ef8d16f4bc2535a3c89c2891e6f5b56c Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 30 五月 2023 15:33:30 +0800
Subject: [PATCH] optimize

---
 service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java |   71 ++++++++++++++++++++---------------
 1 files changed, 41 insertions(+), 30 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java b/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
index b161d03..197427d 100644
--- a/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -36,7 +37,7 @@
  * 璇锋眰鍦板潃涓�/app/purchase/resourceEnter
  */
 
-@Java110CmdDoc(title = "浠撳簱绠$悊鍛� 棰嗙敤鍑哄簱",
+@Java110CmdDoc(title = "棰嗙敤鍑哄簱",
         description = "涓昏鐢ㄤ簬 浠撳簱绠$悊鍛橀鐢ㄥ嚭搴�",
         httpMethod = "post",
         url = "http://{ip}:{port}/app/collection/resourceOut",
@@ -47,10 +48,10 @@
 
 @Java110ParamsDoc(params = {
         @Java110ParamDoc(name = "applyOrderId", length = 30, remark = "閲囪喘鐢宠鍗曡鍗旾D"),
-        @Java110ParamDoc(name = "purchaseApplyDetailVo", type = "Array",length = 30, remark = "閲囪喘鐗╁搧淇℃伅"),
-        @Java110ParamDoc(parentNodeName = "-", name = "purchaseQuantity", type = "Int",length = 30, remark = "鏁伴噺"),
-        @Java110ParamDoc(parentNodeName = "-", name = "id", type = "String",length = 30, remark = "閲囪喘鏄庣粏ID"),
-        @Java110ParamDoc(parentNodeName = "-", name = "resId", type = "String",length = 30, remark = "鐗╁搧ID"),
+        @Java110ParamDoc(name = "purchaseApplyDetailVo", type = "Array", length = 30, remark = "閲囪喘鐗╁搧淇℃伅"),
+        @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "purchaseQuantity", type = "Int", length = 30, remark = "鏁伴噺"),
+        @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "id", type = "String", length = 30, remark = "閲囪喘鏄庣粏ID"),
+        @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "resId", type = "String", length = 30, remark = "鐗╁搧ID"),
 })
 
 @Java110ResponseDoc(
@@ -61,12 +62,12 @@
 )
 
 @Java110ExampleDoc(
-        reqBody="{'applyOrderId':'123123','purchaseApplyDetailVo':[{'purchaseQuantity':'10','id':'123123','resId':'343434'}]}",
-        resBody="{'code':0,'msg':'鎴愬姛'}"
+        reqBody = "{'applyOrderId':'123123','purchaseApplyDetailVo':[{'purchaseQuantity':'10','id':'123123','resId':'343434'}]}",
+        resBody = "{'code':0,'msg':'鎴愬姛'}"
 )
 
 /**
- * 鐗╁搧棰嗙敤
+ * 鐗╁搧棰嗙敤鐢宠鍑哄簱
  */
 @Java110Cmd(serviceCode = "/collection/resourceOut")
 public class ResourceOutCmd extends Cmd {
@@ -99,7 +100,16 @@
         }
     }
 
+    /**
+     * 鐗╁搧棰嗙敤-鐗╁搧棰嗙敤鐗╁搧鍙戞斁
+     * @param event              浜嬩欢瀵硅薄
+     * @param context 鏁版嵁涓婃枃瀵硅薄
+     * @param reqJson            璇锋眰鎶ユ枃
+     * @throws CmdException
+     * @throws ParseException
+     */
     @Override
+    @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
         JSONArray purchaseApplyDetails = reqJson.getJSONArray("purchaseApplyDetailVo");
@@ -151,7 +161,7 @@
             resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
 
             //鍔犲叆 浠庡簱瀛樹腑鎵e噺
-            subResourceStoreTimesStock(purchaseApplyDetailPo.getResId(), purchaseApplyDetailPo.getPurchaseQuantity());
+            subResourceStoreTimesStock(resourceStores.get(0).getResCode(), purchaseApplyDetailPo);
 
             ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
             resourceStoreDto.setResId(purchaseApplyDetailPo.getResId());
@@ -174,6 +184,7 @@
             userStorehousePo.setResName(resourceStoreDtos.get(0).getResName());
             userStorehousePo.setStoreId(resourceStoreDtos.get(0).getStoreId());
             userStorehousePo.setUserId(purchaseApplyDtos.get(0).getUserId());
+            userStorehousePo.setTimesId(purchaseApplyDetailPo.getTimesId());
             //鏌ヨ鐗╁搧 鏄惁宸茬粡瀛樺湪
             UserStorehouseDto userStorehouseDto = new UserStorehouseDto();
             userStorehouseDto.setResCode(resourceStoreDtos.get(0).getResCode());
@@ -220,7 +231,10 @@
                 }
                 userStorehouseInnerServiceSMOImpl.updateUserStorehouses(userStorehousePo);
             }
+
         }
+
+        //
         //鑾峰彇璁㈠崟鍙�
         String applyOrderId = purchaseApplyPo.getApplyOrderId();
         PurchaseApplyPo purchaseApply = new PurchaseApplyPo();
@@ -233,14 +247,16 @@
 
     /**
      * 浠巘imes涓墸鍑�
-     * @param resId
-     * @param applyQuantity
+     *
+     * @param resCode
+     * @param purchaseApplyDetailPo
      */
-    private void subResourceStoreTimesStock(String resId, String applyQuantity) {
-
+    private void subResourceStoreTimesStock(String resCode, PurchaseApplyDetailPo purchaseApplyDetailPo) {
+        String applyQuantity = purchaseApplyDetailPo.getPurchaseQuantity();
         ResourceStoreTimesDto resourceStoreTimesDto = new ResourceStoreTimesDto();
-        resourceStoreTimesDto.setResId(resId);
-        resourceStoreTimesDto.setHasStock("Y");
+        resourceStoreTimesDto.setResCode(resCode);
+        resourceStoreTimesDto.setTimesId(purchaseApplyDetailPo.getTimesId());
+        //resourceStoreTimesDto.setHasStock("Y");
         List<ResourceStoreTimesDto> resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto);
 
         if (resourceStoreTimesDtos == null || resourceStoreTimesDtos.size() < 1) {
@@ -249,21 +265,16 @@
         int stock = 0;
         int quantity = Integer.parseInt(applyQuantity);
         ResourceStoreTimesPo resourceStoreTimesPo = null;
-        for (ResourceStoreTimesDto resourceStoreTimesDto1 : resourceStoreTimesDtos) {
-            stock = Integer.parseInt(resourceStoreTimesDto1.getStock());
-            if (stock > quantity) {
-                stock = stock - quantity;
-                resourceStoreTimesPo = new ResourceStoreTimesPo();
-                resourceStoreTimesPo.setTimesId(resourceStoreTimesDto1.getTimesId());
-                resourceStoreTimesPo.setStock(stock + "");
-                resourceStoreTimesV1InnerServiceSMOImpl.updateResourceStoreTimes(resourceStoreTimesPo);
-                break;
-            }
-            quantity = quantity - stock;
-            resourceStoreTimesPo = new ResourceStoreTimesPo();
-            resourceStoreTimesPo.setTimesId(resourceStoreTimesDto1.getTimesId());
-            resourceStoreTimesPo.setStock("0");
-            resourceStoreTimesV1InnerServiceSMOImpl.updateResourceStoreTimes(resourceStoreTimesPo);
+
+        stock = Integer.parseInt(resourceStoreTimesDtos.get(0).getStock());
+        if (stock < quantity) {
+            throw new CmdException(resourceStoreTimesDtos.get(0).getResCode() + "浠锋牸涓猴細" + resourceStoreTimesDtos.get(0).getPrice() + "鐨勫簱瀛�" + resourceStoreTimesDtos.get(0).getStock() + ",搴撳瓨涓嶈冻");
         }
+
+        stock = stock - quantity;
+        resourceStoreTimesPo = new ResourceStoreTimesPo();
+        resourceStoreTimesPo.setTimesId(resourceStoreTimesDtos.get(0).getTimesId());
+        resourceStoreTimesPo.setStock(stock + "");
+        resourceStoreTimesV1InnerServiceSMOImpl.updateResourceStoreTimes(resourceStoreTimesPo);
     }
 }

--
Gitblit v1.8.0