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
3001513b
Commit
3001513b
authored
Aug 30, 2021
by
胡博文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决满N件N券结算页不能选优惠券的问题
parent
6c7132ad
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
40 deletions
+52
-40
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+51
-39
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
View file @
3001513b
...
...
@@ -190,7 +190,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
addShoppingCartGoodsRequestVo
.
getOrderType
());
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
discountResult
=
null
;
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
allCartGoodsList
,
new
ArrayList
<>(),
null
,
deliveryAmount
,
null
,
null
);
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
allCartGoodsList
,
new
ArrayList
<>(),
null
,
deliveryAmount
,
null
,
null
,
accountType
);
sharingCartService
.
distribute
(
discountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
null
,
null
,
activityQueryDto
,
menuType
,
deliveryAmount
,
ShoppingCartConstant
.
ADD_AND_UPDATE
,
partnerId
,
null
,
userId
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
discountResult
,
null
,
partnerId
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
3001513b
...
...
@@ -383,24 +383,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
null
//加价购商品
,
deliveryAmount
,
null
,
bizType
,
accountFlag
);
//更新购物车
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
discountResult
.
getDiscounts
();
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
mnCouponDiscount
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
discounts
))
{
mnCouponDiscount
=
discounts
.
stream
().
filter
(
discount
->
ActivityTypeEnum
.
TYPE_330
.
getCode
().
equals
(
discount
.
getType
())).
collect
(
toList
());
}
String
mnCouponCode
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
mnCouponDiscount
))
{
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discount
=
mnCouponDiscount
.
get
(
0
);
mnCouponCode
=
discount
.
getActivityCode
();
}
if
(
StringUtils
.
isNotBlank
(
mnCouponCode
))
{
String
finalMnCouponCode
=
mnCouponCode
;
List
<
CartGoods
>
couponCartGoods
=
allCartGoodsList
.
stream
().
filter
(
good
->
finalMnCouponCode
.
equals
(
good
.
getCouponCode
())).
collect
(
toList
());
//更新购物车状态
assortmentSdkService
.
updateGoodsCouponStatus
(
partnerId
,
userId
,
storeId
,
couponCartGoods
,
shoppingCartBaseService
,
bizType
);
}
//更新购物车券状态
newCalculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
cartGoods
,
allCartGoodsList
,
discountResult
);
sharingCartService
.
distribute
(
discountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
...
...
@@ -424,25 +408,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getSendGoods
())){
sendGoodsQtyCheck
(
productsCount
,
appId
,
partnerId
,
userId
,
storeId
,
tableNumber
,
oldCartGoodsList
,
shoppingCartBaseService
,
calculationDiscountResult
.
getSendGoods
(),
bizType
);
}
//校验
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getDiscounts
()))
{
String
activityCouponCode
=
null
;
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponDiscounts
=
calculationDiscountResult
.
getCouponDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponResults
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
couponDiscounts
))
{
couponResults
=
couponDiscounts
.
stream
().
filter
(
discount
->
ActivityTypeEnum
.
TYPE_330
.
getCode
().
equals
(
discount
.
getActivityType
())).
collect
(
toList
());
}
if
(
CollectionUtils
.
isNotEmpty
(
couponResults
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
coupon
=
couponDiscounts
.
get
(
0
);
activityCouponCode
=
coupon
.
getCouponCode
();
}
if
(
StringUtils
.
isNotBlank
(
activityCouponCode
))
{
String
finalActivityCouponCode
=
activityCouponCode
;
List
<
CartGoods
>
couponCartGoods
=
allCartGoodsList
.
stream
().
filter
(
good
->
finalActivityCouponCode
.
equals
(
good
.
getCouponCode
())).
collect
(
toList
());
//更新购物车状态
assortmentSdkService
.
updateGoodsCouponStatus
(
partnerId
,
userId
,
storeId
,
couponCartGoods
,
shoppingCartBaseService
,
bizType
);
}
}
//更新买M N券 券状态
calculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
allCartGoodsList
,
calculationDiscountResult
);
// 当商品数量被设为0时
if
(
Objects
.
equals
(
cartGoods
.
getQty
(),
0
))
{
...
...
@@ -460,6 +427,27 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
private
void
calculationUpdateCouponStatus
(
String
userId
,
String
partnerId
,
String
storeId
,
Integer
bizType
,
List
<
CartGoods
>
allCartGoodsList
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
)
{
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getDiscounts
()))
{
String
activityCouponCode
=
null
;
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponDiscounts
=
calculationDiscountResult
.
getCouponDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponResults
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
couponDiscounts
))
{
couponResults
=
couponDiscounts
.
stream
().
filter
(
discount
->
ActivityTypeEnum
.
TYPE_330
.
getCode
().
equals
(
discount
.
getActivityType
())).
collect
(
toList
());
}
if
(
CollectionUtils
.
isNotEmpty
(
couponResults
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
coupon
=
couponDiscounts
.
get
(
0
);
activityCouponCode
=
coupon
.
getCouponCode
();
}
if
(
StringUtils
.
isNotBlank
(
activityCouponCode
))
{
String
finalActivityCouponCode
=
activityCouponCode
;
List
<
CartGoods
>
couponCartGoods
=
allCartGoodsList
.
stream
().
filter
(
good
->
finalActivityCouponCode
.
equals
(
good
.
getCouponCode
())).
collect
(
toList
());
//更新购物车状态
assortmentSdkService
.
updateGoodsCouponStatus
(
partnerId
,
userId
,
storeId
,
couponCartGoods
,
shoppingCartBaseService
,
bizType
);
}
}
}
/**
* 埋点添加购物车行为
...
...
@@ -554,6 +542,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
null
//加价购商品
,
deliveryAmount
,
null
,
bizType
,
accountFlag
);
//更新购物车
newCalculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
cartGoods
,
cartGoodsList
,
discountResult
);
sharingCartService
.
distribute
(
discountResult
,
cartGoodsList
...
...
@@ -573,14 +563,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
discountResult
,
null
,
partnerId
);
}
else
{
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
cartGoodsList
,
new
ArrayList
(),
new
ArrayList
<>(),
null
,
deliveryAmount
,
bizType
,
accountFlag
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
cartGoodsList
,
new
ArrayList
(),
new
ArrayList
<>(),
null
,
deliveryAmount
,
bizType
,
accountFlag
);
if
(
calculationDiscountResult
==
null
)
{
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
}
if
(
calculationDiscountResult
!=
null
)
{
sendGoodsQtyCheckForUpdate
(
cartGoodsList
,
oldQty
,
appId
,
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
""
,
shoppingCartBaseService
,
calculationDiscountResult
.
getSendGoods
(),
bizType
);
}
//校验
calculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
cartGoodsList
,
calculationDiscountResult
);
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
,
updateShoppingCartGoodsQtyRequestVo
.
getMenuType
(),
deliveryAmount
);
clearMsg
(
shoppingCartGoodsResponseVo
,
cartGoodsUid
);
...
...
@@ -592,6 +583,27 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
private
void
newCalculationUpdateCouponStatus
(
String
userId
,
String
partnerId
,
String
storeId
,
Integer
bizType
,
CartGoods
cartGoods
,
List
<
CartGoods
>
cartGoodsList
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
discountResult
)
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
discountResult
.
getDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
mnCouponDiscount
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
discounts
))
{
mnCouponDiscount
=
discounts
.
stream
().
filter
(
discount
->
ActivityTypeEnum
.
TYPE_330
.
getCode
().
equals
(
discount
.
getType
())).
collect
(
toList
());
}
String
mnCouponCode
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
mnCouponDiscount
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discount
=
mnCouponDiscount
.
get
(
0
);
mnCouponCode
=
discount
.
getActivityCode
();
}
if
(
StringUtils
.
isNotBlank
(
mnCouponCode
)
&&
mnCouponCode
.
equals
(
cartGoods
.
getCouponCode
()))
{
String
finalMnCouponCode
=
mnCouponCode
;
List
<
CartGoods
>
couponCartGoods
=
cartGoodsList
.
stream
().
filter
(
good
->
finalMnCouponCode
.
equals
(
good
.
getCouponCode
())).
collect
(
toList
());
//更新购物车状态
assortmentSdkService
.
updateGoodsCouponStatus
(
partnerId
,
userId
,
storeId
,
couponCartGoods
,
shoppingCartBaseService
,
bizType
);
}
}
/**
* 检查购物车商品库存数量
*
...
...
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