From d8d7058d6245d33685ddf6ced109ec171423febc Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期四, 19 一月 2023 06:31:03 +0800
Subject: [PATCH] 优化 物品领用 bug
---
service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java | 54 ++++++++++++++++++++++++++++--------------------------
1 files changed, 28 insertions(+), 26 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 664ebde..989ef2e 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;
@@ -47,10 +48,10 @@
@Java110ParamsDoc(params = {
@Java110ParamDoc(name = "applyOrderId", length = 30, remark = "閲囪喘鐢宠鍗曡鍗旾D"),
- @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"),
+ @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,8 +62,8 @@
)
@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':'鎴愬姛'}"
)
/**
@@ -100,6 +101,7 @@
}
@Override
+ @Java110Transactional
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
JSONArray purchaseApplyDetails = reqJson.getJSONArray("purchaseApplyDetailVo");
@@ -151,7 +153,7 @@
resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
//鍔犲叆 浠庡簱瀛樹腑鎵e噺
- subResourceStoreTimesStock(resourceStores.get(0).getResCode(), purchaseApplyDetailPo.getPurchaseQuantity());
+ subResourceStoreTimesStock(resourceStores.get(0).getResCode(), purchaseApplyDetailPo);
ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
resourceStoreDto.setResId(purchaseApplyDetailPo.getResId());
@@ -220,7 +222,10 @@
}
userStorehouseInnerServiceSMOImpl.updateUserStorehouses(userStorehousePo);
}
+
}
+
+ //
//鑾峰彇璁㈠崟鍙�
String applyOrderId = purchaseApplyPo.getApplyOrderId();
PurchaseApplyPo purchaseApply = new PurchaseApplyPo();
@@ -233,14 +238,16 @@
/**
* 浠巘imes涓墸鍑�
+ *
* @param resCode
- * @param applyQuantity
+ * @param purchaseApplyDetailPo
*/
- private void subResourceStoreTimesStock(String resCode, String applyQuantity) {
-
+ private void subResourceStoreTimesStock(String resCode, PurchaseApplyDetailPo purchaseApplyDetailPo) {
+ String applyQuantity = purchaseApplyDetailPo.getPurchaseQuantity();
ResourceStoreTimesDto resourceStoreTimesDto = new ResourceStoreTimesDto();
resourceStoreTimesDto.setResCode(resCode);
- resourceStoreTimesDto.setHasStock("Y");
+ resourceStoreTimesDto.setTimesId(purchaseApplyDetailPo.getTimesId());
+ //resourceStoreTimesDto.setHasStock("Y");
List<ResourceStoreTimesDto> resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto);
if (resourceStoreTimesDtos == null || resourceStoreTimesDtos.size() < 1) {
@@ -249,21 +256,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 - quantity) + "");
+ resourceStoreTimesV1InnerServiceSMOImpl.updateResourceStoreTimes(resourceStoreTimesPo);
}
}
--
Gitblit v1.8.0