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
19a744de
Commit
19a744de
authored
Sep 18, 2020
by
孙昱
Browse files
Options
Browse Files
Download
Plain Diff
sunyu::fixconflicts::resolve conflicts about merge feature banch to qa
parents
0395ad3d
1c36b24a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
113 additions
and
19 deletions
+113
-19
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+31
-18
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
+19
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+63
-1
No files found.
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
View file @
19a744de
...
@@ -210,37 +210,50 @@ public interface ShoppingCartBaseService {
...
@@ -210,37 +210,50 @@ public interface ShoppingCartBaseService {
return
CartResponseUtil
.
error
(
valiadResponse
.
getMessage
(),
checkCartRequest
);
return
CartResponseUtil
.
error
(
valiadResponse
.
getMessage
(),
checkCartRequest
);
}
}
ValiadShopProductResponse
validateResult
=
valiadResponse
.
getData
();
ValiadShopProductResponse
validateResult
=
valiadResponse
.
getData
();
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if
(
CollectionUtils
.
isNotEmpty
(
validateResult
.
getFailureList
())){
if
(
CollectionUtils
.
isNotEmpty
(
validateResult
.
getFailureList
())){
for
(
int
i
=
0
;
i
<
validateResult
.
getFailureList
().
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
validateResult
.
getFailureList
().
size
();
i
++)
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
checkCartRequest
.
getCartGoodsList
().
forEach
(
cartGoods
->
{
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
String
spuName
=
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
())
?
cartGoods
.
getSpuName
()
:
""
;
String
spuName
=
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
())
?
cartGoods
.
getSpuName
()
:
""
;
switch
(
validaProduct
.
getCode
()){
if
(
PRODUCT_DOWN
==
validaProduct
.
getCode
()){
case
PRODUCT_PRICE_CHANGE
:
cartGoodsStates
.
setHasInvalidGoods
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
spuName
));
cartGoods
.
setCartGoodsUid
(
null
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
spuName
));
break
;
}
if
(
PRODUCT_NOTFOUND
==
validaProduct
.
getCode
()){
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
spuName
));
break
;
}
}
}
if
(
null
==
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
||
StringUtils
.
isEmpty
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
())
||
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getChanged
())
{
for
(
int
i
=
0
;
i
<
validateResult
.
getFailureList
().
size
();
i
++)
{
cartGoodsStates
.
setPriceChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
checkCartRequest
.
getCartGoodsList
().
forEach
(
cartGoods
->
{
String
spuName
=
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
())
?
cartGoods
.
getSpuName
()
:
""
;
if
(
PRODUCT_PRICE_CHANGE
==
validaProduct
.
getCode
())
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
spuName
));
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
break
;
}
case
PRODUCT_NOTFOUND:
});
cartGoods
.
setCartGoodsUid
(
null
);
}
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
spuName
));
break
;
case
PRODUCT_DOWN:
cartGoods
.
setCartGoodsUid
(
null
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
spuName
));
break
;
default
:
break
;
}
});
}
}
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
}
}
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getSuccessList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getSuccessList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
View file @
19a744de
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
*
*
...
@@ -27,4 +28,21 @@ public class QueryCartInfoRequestVo {
...
@@ -27,4 +28,21 @@ public class QueryCartInfoRequestVo {
@ApiModelProperty
(
value
=
"门店id"
,
required
=
true
)
@ApiModelProperty
(
value
=
"门店id"
,
required
=
true
)
@NotEmpty
(
message
=
"门店id不可为空"
)
@NotEmpty
(
message
=
"门店id不可为空"
)
private
String
storeId
;
private
String
storeId
;
@ApiModelProperty
(
value
=
"sessionId"
,
required
=
true
)
@NotEmpty
(
message
=
"用户sessionId不可为空"
)
private
String
sessionId
;
@ApiModelProperty
(
value
=
"appId"
,
required
=
true
)
@NotEmpty
(
message
=
"appId不可为空"
)
private
String
appId
;
@ApiModelProperty
(
value
=
"menuType"
,
notes
=
"业务类型: 0 : 自提 1:外卖 2:微商城"
,
required
=
true
)
@NotEmpty
(
message
=
"业务类型不可为空"
)
private
String
menuType
;
@ApiModelProperty
(
value
=
"订单类型"
)
@NotNull
(
message
=
"订单类型不可为空"
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"收货地址id"
,
notes
=
"svc卡支付外卖订单必传"
)
private
String
receiveId
;
}
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
19a744de
...
@@ -322,9 +322,23 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -322,9 +322,23 @@ public class ShoppingCartMCoffeeServiceImpl {
}
}
/**
* 券码用-查询购物车最新信息,计算优惠
* @param requestVo
* @return
*/
public
BaseResponse
getCartInfoByUser
(
QueryCartInfoRequestVo
requestVo
){
public
BaseResponse
getCartInfoByUser
(
QueryCartInfoRequestVo
requestVo
){
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
requestVo
.
getSessionId
());
// 获取购物车商品?
// 获取购物车商品?
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCartForCoupon
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
(),
requestVo
.
getUserId
(),
""
,
shoppingCartBaseService
);
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCartForCoupon
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
(),
requestVo
.
getUserId
(),
""
,
shoppingCartBaseService
);
// 当couponCode不为空时,需参与价格计算
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
getCoupon
(
null
,
null
,
cartGoodsList
);
// 促销活动的优惠金额计算
calculationService
.
updateShoppingCartGoodsDiscount
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
(),
requestVo
.
getUserId
(),
requestVo
.
getAppId
(),
requestVo
.
getOrderType
(),
assortmentCustomerInfoVo
.
isMemberPaid
(),
requestVo
.
getMenuType
(),
requestVo
.
getReceiveId
(),
null
,
cartGoodsList
,
coupons
,
new
ArrayList
<>(),
shoppingCartGoodsResponseVo
);
List
<
CouponAvailableReq
>
resList
=
couponDiscountCalculation
.
buildAvailableCoupons
(
requestVo
,
cartGoodsList
);
List
<
CouponAvailableReq
>
resList
=
couponDiscountCalculation
.
buildAvailableCoupons
(
requestVo
,
cartGoodsList
);
return
ResponseUtil
.
success
(
resList
);
return
ResponseUtil
.
success
(
resList
);
}
}
...
@@ -435,7 +449,32 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -435,7 +449,32 @@ public class ShoppingCartMCoffeeServiceImpl {
}
}
// check购物车中所有商品
// check购物车中所有商品
cartGoodsList
=
checkCartGoods
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
cartGoodsList
);
List
<
CartGoods
>
allCartGoodsList
=
new
ArrayList
<>();
CheckCartRequest
checkCartRequest
=
checkCartGoodsForToPay
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
cartGoodsList
);
if
(
null
!=
checkCartRequest
)
{
//商品不再售卖状态或价格变动,直接返回报错
if
(
null
!=
checkCartRequest
.
getShoppingCartGoodsResponseVo
())
{
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
ShoppingCartGoodsResponseVo
cartGoodsResponseVo
=
checkCartRequest
.
getShoppingCartGoodsResponseVo
();
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isHasInvalidGoods
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_ITEM_CHECK_INVAILD
);
}
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isPriceChanged
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
SHOPPING_CART_ACTIVITY_CHANGE
);
}
shoppingCartGoodsResponseVo
.
setToastMsg
(
cartGoodsResponseVo
.
getToastMsg
());
}
allCartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
}
//加价购商品
List
<
CartGoods
>
reduceGoods
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getGoodsType
()
==
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
()).
collect
(
Collectors
.
toList
());
//添加商品为加价购商品
if
(
CollectionUtils
.
isNotEmpty
(
reduceGoods
))
{
allCartGoodsList
.
addAll
(
reduceGoods
);
}
//恢复套餐商品空键位
// checkNewCartGoods(allCartGoodsList,2,map);
// 重新存储最新购物车
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
sessionId
,
tableNumber
,
shoppingCartBaseService
);
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
sessionId
,
tableNumber
,
shoppingCartBaseService
);
...
@@ -985,6 +1024,29 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -985,6 +1024,29 @@ public class ShoppingCartMCoffeeServiceImpl {
}
}
/**
* 【去支付使用】购物车商品check,加购商品不在菜单不check
*/
private
CheckCartRequest
checkCartGoodsForToPay
(
String
partnerId
,
String
storeId
,
Integer
orderType
,
String
menuType
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
List
<
CartGoods
>
cartGoodsList
)
{
//去除套餐商品空键位
// Map<String, String> map = checkNewCartGoods(cartGoodsList,1,null);
//筛选数量不为0商品
cartGoodsList
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getQty
()
!=
0
).
collect
(
Collectors
.
toList
());
//筛选非加购商品--加价购商品不校验是否在菜单,不调用validateShopProduct
List
<
CartGoods
>
checkGoods
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getGoodsType
()
!=
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
()).
collect
(
Collectors
.
toList
());
CheckCartRequest
checkCartRequest
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
checkGoods
))
{
//当商品全部添加完毕,校验购物车商品(是否合法,上下架,点餐方式,是否在当前菜单中...),并移除非法商品
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
checkGoods
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
orderType
,
""
,
menuType
,
shoppingCartBaseService
);
}
return
checkCartRequest
;
}
private
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
getCoupon
(
String
couponCode
,
String
activityCode
,
List
<
CartGoods
>
cartGoodsList
)
{
private
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
getCoupon
(
String
couponCode
,
String
activityCode
,
List
<
CartGoods
>
cartGoodsList
)
{
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
new
ArrayList
<>();
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
new
ArrayList
<>();
...
...
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