Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
0e4a2864
Commit
0e4a2864
authored
Jun 09, 2021
by
王世昌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化对库存限制的判断
parent
a3c00a62
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
46 deletions
+41
-46
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/KgdProductServiceImpl.java
+6
-5
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/AbstractAddGoodsService.java
+29
-31
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/AbstractUpdateGoodsQtyService.java
+6
-10
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/KgdProductServiceImpl.java
View file @
0e4a2864
...
@@ -25,6 +25,7 @@ import com.freemud.application.sdk.api.productcenter.request.product.valid.Valid
...
@@ -25,6 +25,7 @@ import com.freemud.application.sdk.api.productcenter.request.product.valid.Valid
import
com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO
;
import
com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -91,14 +92,14 @@ public class KgdProductServiceImpl implements ProductService {
...
@@ -91,14 +92,14 @@ public class KgdProductServiceImpl implements ProductService {
GetProductStockRequestDto
getProductStockRequestDto
=
productBO2DTOAdapter
.
convert2GetProductStockDto
(
getProductStock
);
GetProductStockRequestDto
getProductStockRequestDto
=
productBO2DTOAdapter
.
convert2GetProductStockDto
(
getProductStock
);
GetProductStockResponseDto
availableStocks
=
stockClient
.
getAvailableStocks
(
getProductStockRequestDto
);
GetProductStockResponseDto
availableStocks
=
stockClient
.
getAvailableStocks
(
getProductStockRequestDto
);
List
<
GetProductStockResponseDto
.
DataBean
>
result
=
availableStocks
.
getResult
();
if
(
availableStocks
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
availableStocks
.
getCode
()))
{
if
(
availableStocks
!=
null
&&
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
availableStocks
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
}
List
<
ProductStockBO
>
list
=
new
ArrayList
<>();
List
<
ProductStockBO
>
list
=
new
ArrayList
<>();
for
(
GetProductStockResponseDto
.
DataBean
dataBean
:
result
){
if
(
CollectionUtils
.
isEmpty
(
availableStocks
.
getResult
()))
{
return
list
;
}
for
(
GetProductStockResponseDto
.
DataBean
dataBean
:
availableStocks
.
getResult
()){
ProductStockBO
productStockBO
=
productDTO2BOAdapter
.
convert2ProductStockBO
(
dataBean
);
ProductStockBO
productStockBO
=
productDTO2BOAdapter
.
convert2ProductStockBO
(
dataBean
);
list
.
add
(
productStockBO
);
list
.
add
(
productStockBO
);
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/AbstractAddGoodsService.java
View file @
0e4a2864
...
@@ -112,7 +112,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -112,7 +112,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
// 业务校验,例如商品数量库存之类的信息
// 业务校验,例如商品数量库存之类的信息
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
=
this
.
checkBusinessRules
(
addGoodsBO
,
checkBussinessRulesBO
);
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
=
this
.
checkBusinessRules
(
addGoodsBO
,
checkBussinessRulesBO
);
LogUtil
.
info
(
"checkBusinessRules >>> "
,
JsonUtil
.
toJSONString
(
Arrays
.
asList
(
addGoodsBO
,
addGoodsBO
)
),
JsonUtil
.
toJSONString
(
addGoodsToShoppingCartBO
));
LogUtil
.
info
(
"checkBusinessRules >>> "
,
JsonUtil
.
toJSONString
(
addGoodsBO
),
JsonUtil
.
toJSONString
(
addGoodsToShoppingCartBO
));
// 添加商品到购物车
// 添加商品到购物车
DiscountResultBO
discountResultBO
=
this
.
addGoodsToShoppingCart
(
addGoodsBO
,
addGoodsToShoppingCartBO
);
DiscountResultBO
discountResultBO
=
this
.
addGoodsToShoppingCart
(
addGoodsBO
,
addGoodsToShoppingCartBO
);
...
@@ -235,9 +235,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -235,9 +235,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
cartGoods
.
setOriginalPrice
(
spqBO
.
getProductPrice
());
cartGoods
.
setOriginalPrice
(
spqBO
.
getProductPrice
());
// 商品券Id
// 商品券Id
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestBO
.
getAddGoods
().
getExtra
())){
if
(
CollectionUtils
.
isEmpty
(
cartGoods
.
getExtra
())){
cartGoods
.
setExtra
(
baseRequestBO
.
getAddGoods
().
getExtra
());
}
else
{
cartGoods
.
setExtra
(
spqBO
.
getExtra
());
cartGoods
.
setExtra
(
spqBO
.
getExtra
());
}
}
cartGoods
.
setSpecProductId
(
spqBO
.
getSpecProductId
());
cartGoods
.
setSpecProductId
(
spqBO
.
getSpecProductId
());
...
@@ -744,37 +742,24 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -744,37 +742,24 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
private
void
checkStocks
(
BaseAddGoodsBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
){
private
void
checkStocks
(
BaseAddGoodsBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
){
ProductBO
product
=
checkBussinessRulesBO
.
getProduct
();
ProductBO
product
=
checkBussinessRulesBO
.
getProduct
();
ProductStockBO
availableStocks
=
null
;
boolean
isLimit
=
false
;
GetProductStock
getProductStock
=
new
GetProductStock
();
getProductStock
.
setChannel
(
BusinessTypeEnum
.
getByType
(
baseRequestDTO
.
getMenuType
()).
getCode
());
getProductStock
.
setPartnerId
(
baseRequestDTO
.
getPartnerId
());
getProductStock
.
setStoreId
(
baseRequestDTO
.
getShopId
());
List
<
Long
>
productIds
=
new
ArrayList
<>();
productIds
.
add
(
Long
.
parseLong
(
checkBussinessRulesBO
.
getProduct
().
getGoodsId
()));
getProductStock
.
setProductIds
(
productIds
);
if
(
product
.
getType
()
==
ProductType
.
NOSPEC
.
getCode
()
if
(
product
.
getType
()
==
ProductType
.
NOSPEC
.
getCode
()
&&
product
.
getStockLimit
()
==
1
)
{
&&
product
.
getStockLimit
()
==
1
)
{
List
<
ProductStockBO
>
productStock
=
productManager
.
getProductStock
(
getProductStock
,
baseRequestDTO
.
getManagerService
().
getProductService
());
isLimit
=
true
;
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
}
}
else
{
}
else
{
for
(
ProductBO
.
SkuProductBean
skuProductBean
:
product
.
getSkuList
())
{
for
(
ProductBO
.
SkuProductBean
skuProductBean
:
product
.
getSkuList
())
{
if
(
baseRequestDTO
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
())
&&
skuProductBean
.
getStockLimit
()
==
1
)
{
if
(
baseRequestDTO
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
())
&&
skuProductBean
.
getStockLimit
()
==
1
)
{
List
<
ProductStockBO
>
productStock
=
productManager
.
getProductStock
(
getProductStock
,
baseRequestDTO
.
getManagerService
().
getProductService
());
isLimit
=
true
;
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
}
break
;
break
;
}
}
}
}
}
}
if
(!
isLimit
){
return
;
}
List
<
CartGoods
>
oldCartGoodsList
=
checkBussinessRulesBO
.
getCartGoods
();
List
<
CartGoods
>
oldCartGoodsList
=
checkBussinessRulesBO
.
getCartGoods
();
CartGoods
cartGoods
=
baseRequestDTO
.
getAddGoods
();
CartGoods
cartGoods
=
baseRequestDTO
.
getAddGoods
();
Integer
qty
=
0
;
int
qty
;
if
(
CollectionUtils
.
isEmpty
(
oldCartGoodsList
))
{
if
(
CollectionUtils
.
isEmpty
(
oldCartGoodsList
))
{
qty
=
cartGoods
.
getQty
();
qty
=
cartGoods
.
getQty
();
}
else
{
}
else
{
...
@@ -785,15 +770,28 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -785,15 +770,28 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
}
}
}
}
}
}
if
(
availableStocks
!=
null
&&
(
availableStocks
.
getQty
()
==
null
GetProductStock
getProductStock
=
new
GetProductStock
();
||
availableStocks
.
getQty
()
<
qty
))
{
getProductStock
.
setChannel
(
BusinessTypeEnum
.
getByType
(
baseRequestDTO
.
getMenuType
()).
getCode
());
Integer
stock
=
0
;
getProductStock
.
setPartnerId
(
baseRequestDTO
.
getPartnerId
());
if
((
stock
=
availableStocks
.
getQty
())
>
0
)
{
getProductStock
.
setStoreId
(
baseRequestDTO
.
getShopId
());
throw
new
BizServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
"仅剩"
+
stock
+
"件库存了"
);
List
<
Long
>
productIds
=
new
ArrayList
<>();
}
productIds
.
add
(
Long
.
parseLong
(
checkBussinessRulesBO
.
getProduct
().
getGoodsId
()));
getProductStock
.
setProductIds
(
productIds
);
// 查询库存
List
<
ProductStockBO
>
productStock
=
productManager
.
getProductStock
(
getProductStock
,
baseRequestDTO
.
getManagerService
().
getProductService
());
ProductStockBO
availableStocks
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
}
int
stock
=
availableStocks
==
null
||
availableStocks
.
getQty
()
==
null
?
0
:
availableStocks
.
getQty
();
if
(
stock
<=
0
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
else
if
(
stock
<
qty
)
{
throw
new
BizServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
"仅剩"
+
stock
+
"件库存了"
);
}
}
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/AbstractUpdateGoodsQtyService.java
View file @
0e4a2864
...
@@ -463,17 +463,13 @@ public abstract class AbstractUpdateGoodsQtyService implements UpdateGoodsQtySer
...
@@ -463,17 +463,13 @@ public abstract class AbstractUpdateGoodsQtyService implements UpdateGoodsQtySer
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
availableStocks
=
productStock
.
get
(
0
);
}
}
if
(
availableStocks
!=
null
)
{
if
(
availableStocks
.
getQty
()
==
null
||
availableStocks
.
getQty
()
<
baseRequestDTO
.
getQty
())
{
Integer
stock
=
0
;
if
((
stock
=
availableStocks
.
getQty
())
>
0
)
{
throw
new
BizServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
"仅剩"
+
stock
+
"件库存了"
);
}
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
}
int
stock
=
availableStocks
==
null
||
availableStocks
.
getQty
()
==
null
?
0
:
availableStocks
.
getQty
();
if
(
stock
<=
0
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
else
if
(
stock
<
baseRequestDTO
.
getQty
())
{
throw
new
BizServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
"仅剩"
+
stock
+
"件库存了"
);
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment