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
jenkins
order-group
Commits
7516b168
Commit
7516b168
authored
Dec 30, 2019
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
暂存购物车校验
parent
961a6a4c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
116 additions
and
6 deletions
+116
-6
assortment-shoppingcart-sdk/pom.xml
+1
-1
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
+62
-4
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+4
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+48
-0
shopping-cart-application-service/pom.xml
+1
-1
No files found.
assortment-shoppingcart-sdk/pom.xml
View file @
7516b168
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
2.
4.1
-SNAPSHOT
</version>
<version>
2.
7.2
-SNAPSHOT
</version>
<scope>
provided
</scope>
<scope>
provided
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
View file @
7516b168
package
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
adapter
;
package
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
adapter
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ProductAttributeValueType
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.ProductStatus
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.ProductType
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateSkuProductType
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.*
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoodsStates
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoodsStates
;
import
com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest
;
import
com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest
;
...
@@ -43,6 +44,63 @@ public class ShoppingCartAdapter {
...
@@ -43,6 +44,63 @@ public class ShoppingCartAdapter {
return
request
;
return
request
;
}
}
public
ValidateShopProductRequest
getValidateShopProductRequest
(
CheckCartRequest
checkCartRequest
){
ValidateShopProductRequest
validateShopProductRequest
=
new
ValidateShopProductRequest
();
validateShopProductRequest
.
setChannel
(
OrderChannelType
.
SAAS
.
getCode
());
validateShopProductRequest
.
setPartnerId
(
checkCartRequest
.
getPartnerId
());
validateShopProductRequest
.
setStoreId
(
checkCartRequest
.
getStoreId
());
validateShopProductRequest
.
setProductTypeList
(
new
ArrayList
<>());
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 过滤非商品券商品
if
(
cartGoods
.
getCartGoodsUid
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)){
continue
;
}
ValidateShopProductType
productType
=
new
ValidateShopProductType
();
productType
.
setSpuId
(
cartGoods
.
getSpuId
());
productType
.
setSkuId
(
cartGoods
.
getSkuId
());
productType
.
setPrice
(
cartGoods
.
getOriginalPrice
()==
null
?
0
:
cartGoods
.
getOriginalPrice
().
intValue
());
productType
.
setValidatePrice
(
productType
.
getPrice
()==
0
?
0
:
1
);
productType
.
setValidateAttribute
(
1
);
productType
.
setValidateStatuses
(
Arrays
.
asList
(
2
));
//属性
productType
.
setAttributeList
(
getAttributes
(
cartGoods
.
getExtra
()));
//可选搭配&固定搭配
productType
.
setComboProductTypeList
(
getValidateSkuProductType
(
cartGoods
.
getProductComboList
()));
productType
.
setProductGroupTypeList
(
getValidateSkuProductType
(
cartGoods
.
getProductGroupList
()));
validateShopProductRequest
.
getProductTypeList
().
add
(
productType
);
}
return
validateShopProductRequest
;
}
public
List
<
ProductAttributeValueType
>
getAttributes
(
List
<
CartGoods
.
CartGoodsExtra
>
extra
){
List
<
ProductAttributeValueType
>
attributeValueTypes
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
extra
)){
for
(
CartGoods
.
CartGoodsExtra
cartGoodsExtra
:
extra
)
{
ProductAttributeValueType
productAttributeValueType
=
new
ProductAttributeValueType
();
productAttributeValueType
.
setAttributeId
(
cartGoodsExtra
.
getAttributeId
());
productAttributeValueType
.
setAttributeValue
(
cartGoodsExtra
.
getAttributeName
());
attributeValueTypes
.
add
(
productAttributeValueType
);
}
}
return
attributeValueTypes
;
}
public
List
<
ValidateSkuProductType
>
getValidateSkuProductType
(
List
<
CartGoods
.
ComboxGoods
>
productComboList
){
List
<
ValidateSkuProductType
>
result
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
productComboList
)){
for
(
CartGoods
.
ComboxGoods
comboxGoods
:
productComboList
)
{
ValidateSkuProductType
validateSkuProductType
=
new
ValidateSkuProductType
();
validateSkuProductType
.
setProductId
(
comboxGoods
.
getGoodsId
());
validateSkuProductType
.
setPrice
(
comboxGoods
.
getOriginalPrice
()==
null
?
0
:
comboxGoods
.
getOriginalPrice
().
intValue
());
validateSkuProductType
.
setMarkUpPrice
(
comboxGoods
.
getFinalPrice
()==
null
?
0
:
comboxGoods
.
getFinalPrice
().
intValue
());
validateSkuProductType
.
setQty
(
comboxGoods
.
getQty
());
validateSkuProductType
.
setAttributeList
(
getAttributes
(
comboxGoods
.
getExtra
()));
result
.
add
(
validateSkuProductType
);
}
}
return
result
;
}
public
GetProductInfoRequest
convertGetProductInfoRequest
(
CheckCartRequest
checkCartRequest
)
{
public
GetProductInfoRequest
convertGetProductInfoRequest
(
CheckCartRequest
checkCartRequest
)
{
//获取goodsId集合,包含套餐内的固定商品和可选商品
//获取goodsId集合,包含套餐内的固定商品和可选商品
List
<
List
<
CartGoods
.
ComboxGoods
>>
productGroupLists
=
checkCartRequest
.
getCartGoodsList
().
stream
().
filter
(
goods
->
CollectionUtils
.
isNotEmpty
(
goods
.
getProductGroupList
())).
map
(
CartGoods:
:
getProductGroupList
).
collect
(
Collectors
.
toList
());
List
<
List
<
CartGoods
.
ComboxGoods
>>
productGroupLists
=
checkCartRequest
.
getCartGoodsList
().
stream
().
filter
(
goods
->
CollectionUtils
.
isNotEmpty
(
goods
.
getProductGroupList
())).
map
(
CartGoods:
:
getProductGroupList
).
collect
(
Collectors
.
toList
());
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
7516b168
...
@@ -19,6 +19,10 @@ public class ShoppingCartConstant {
...
@@ -19,6 +19,10 @@ public class ShoppingCartConstant {
public
final
static
String
SHOPPING_CART_ACTIVITY_CHANGE
=
"商品价格有变动,将按照最新价格计算哦"
;
public
final
static
String
SHOPPING_CART_ACTIVITY_CHANGE
=
"商品价格有变动,将按照最新价格计算哦"
;
public
final
static
String
SHOPPING_CART_GOODS_CHANGE
=
"因商家变更了商品,导致选购失效,请刷新门店后重新尝试选购商品"
;
public
final
static
String
SHOPPING_CART_GOODS_INVALID
=
"因商品变更或其他原因,导致架构失效,无法结算,请重新尝试选购商品"
;
public
final
static
String
HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON
=
"该商品券与其他活动不同享,购物车中已优惠的商品将恢复原价"
;
public
final
static
String
HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON
=
"该商品券与其他活动不同享,购物车中已优惠的商品将恢复原价"
;
public
final
static
String
HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS
=
"已选商品券,与其他优惠商品不同享,商品将恢复原价"
;
public
final
static
String
HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS
=
"已选商品券,与其他优惠商品不同享,商品将恢复原价"
;
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
View file @
7516b168
...
@@ -18,7 +18,13 @@ import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
...
@@ -18,7 +18,13 @@ import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import
com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO
;
import
com.freemud.application.sdk.api.productcenter.request.menu.GetMenuCategoryByIdsRequest
;
import
com.freemud.application.sdk.api.productcenter.request.menu.GetMenuCategoryByIdsRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ProductAttributeValueType
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateSkuProductType
;
import
com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryByIdsResponse
;
import
com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryByIdsResponse
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResult
;
import
com.freemud.application.sdk.api.productcenter.service.MenuService
;
import
com.freemud.application.sdk.api.productcenter.service.MenuService
;
import
com.freemud.application.sdk.api.productcenter.service.ProductService
;
import
com.freemud.application.sdk.api.productcenter.service.ProductService
;
import
com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter
;
import
com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter
;
...
@@ -165,6 +171,48 @@ public interface ShoppingCartBaseService {
...
@@ -165,6 +171,48 @@ public interface ShoppingCartBaseService {
}
}
}
}
default
BaseResponse
<
CheckCartRequest
>
checkAllCartGoodsNew
(
CheckCartRequest
checkCartRequest
)
{
ShoppingCartAdapter
shoppingCartAdapter
=
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartAdapter
.
class
);
ProductService
productService
=
SDKCommonBaseContextWare
.
getBean
(
ProductService
.
class
);
try
{
ValidateShopProductRequest
validateShopProductRequest
=
shoppingCartAdapter
.
getValidateShopProductRequest
(
checkCartRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
ValiadShopProductResponse
>
valiadResponse
=
productService
.
validateShopProduct
(
validateShopProductRequest
);
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getCode
())
||
valiadResponse
.
getData
()==
null
)
{
return
CartResponseUtil
.
error
(
valiadResponse
.
getMessage
());
}
ValiadShopProductResponse
valiadResult
=
valiadResponse
.
getData
();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if
(
CollectionUtils
.
isNotEmpty
(
valiadResult
.
getFailureList
())){
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
if
(
valiadResult
.
getFailureList
().
stream
().
anyMatch
(
f
->
cartGoods
.
getGoodsId
().
equals
(
f
.
getSkuId
()))){
cartGoods
.
setCartGoodsUid
(
null
);
}
}
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
}
List
<
ProductBeanDTO
>
productList
=
valiadResult
.
getSuccessList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
//更新购物车详细信息
updateCartGoodsListInfoNew
(
checkCartRequest
.
getCartGoodsList
(),
productList
,
cartGoodsStates
,
checkCartRequest
.
getPartnerId
(),
checkCartRequest
.
getStoreId
(),
checkCartRequest
.
getTableNumber
());
//校验商品券是否有当前点餐方式
cartGoodsStates
=
updateSpqCartGoodsInfo
(
checkCartRequest
.
getCartGoodsList
(),
checkCartRequest
.
getOrderWay
(),
checkCartRequest
.
getPartnerId
(),
checkCartRequest
.
getTrackingNo
(),
cartGoodsStates
);
// 点餐方式改变商品券发生变动
if
(
cartGoodsStates
!=
null
&&
cartGoodsStates
.
isOrderWayFlag
())
{
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
ORDER_WAY_CHANGE
);
}
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setCartGoodsStates
(
cartGoodsStates
);
return
CartResponseUtil
.
success
(
checkCartRequest
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
checkCartRequest
.
getTrackingNo
(),
e
.
getMessage
(),
"checkAllCartGoods"
,
checkCartRequest
,
e
,
Level
.
ERROR
);
return
null
;
}
}
/**
/**
* 更新购物车详细信息
* 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架)
* 并check购物车中商品是否价格变更、是否非法(例如商品下架)
...
...
shopping-cart-application-service/pom.xml
View file @
7516b168
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
2.
6.RELEASE
</version>
<version>
2.
7.2-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
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