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
3cabd6a1
Commit
3cabd6a1
authored
Nov 10, 2020
by
huiyang.chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 买三赠一对接促销
parent
17f4e00d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
64 additions
and
28 deletions
+64
-28
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+10
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+7
-5
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+38
-22
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
3cabd6a1
...
@@ -83,6 +83,10 @@ public class ActivityCalculationDiscountRequestDto {
...
@@ -83,6 +83,10 @@ public class ActivityCalculationDiscountRequestDto {
* 活动号
* 活动号
*/
*/
private
String
activityCode
;
private
String
activityCode
;
/**
* 买卡活动Id
*/
private
String
payCardActivityId
;
}
}
@Data
@Data
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
3cabd6a1
...
@@ -169,13 +169,22 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -169,13 +169,22 @@ public class ActivityCalculationDiscountResponseDto {
*/
*/
private
String
tenderId
;
private
String
tenderId
;
/**
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
7买三赠一券
*/
*/
private
Integer
extendType
;
private
Integer
extendType
;
private
SendPointDto
sendPointVo
;
private
SendPointDto
sendPointVo
;
private
Date
endTime
;
private
Date
endTime
;
/**
* 买卡现价
*/
private
Integer
cardAmount
;
/**
* 买卡原价
*/
private
Integer
cardOriginalPrice
;
}
}
@Data
@Data
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
3cabd6a1
...
@@ -133,6 +133,11 @@ public class ShoppingCartGoodsDto {
...
@@ -133,6 +133,11 @@ public class ShoppingCartGoodsDto {
*/
*/
private
Long
payCardFee
;
private
Long
payCardFee
;
/**
* 麦咖啡-买三赠一券价格
*/
private
Long
buyThreeGiveOneCouponFee
;
@Data
@Data
public
static
class
CartGoodsDetailDto
{
public
static
class
CartGoodsDetailDto
{
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
3cabd6a1
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
3cabd6a1
...
@@ -91,7 +91,7 @@ public class CalculationServiceImpl {
...
@@ -91,7 +91,7 @@ public class CalculationServiceImpl {
boolean
isMember
,
String
menuType
,
String
receiveId
,
String
couponCode
,
boolean
isMember
,
String
menuType
,
String
receiveId
,
String
couponCode
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
Long
payCardFee
)
{
Long
payCardFee
,
List
<
String
>
eliminateGoodsList
)
{
Long
deliveryAmount
=
calculateDeliveryAmount
(
receiveId
,
partnerId
,
storeId
,
menuType
);
Long
deliveryAmount
=
calculateDeliveryAmount
(
receiveId
,
partnerId
,
storeId
,
menuType
);
...
@@ -107,7 +107,7 @@ public class CalculationServiceImpl {
...
@@ -107,7 +107,7 @@ public class CalculationServiceImpl {
//优惠券
//优惠券
CouponPromotionVO
couponPromotionVO
=
couponDiscountCalculation
.
getCouponPromotionVO
(
partnerId
,
storeId
,
userId
,
couponCode
,
orderType
);
CouponPromotionVO
couponPromotionVO
=
couponDiscountCalculation
.
getCouponPromotionVO
(
partnerId
,
storeId
,
userId
,
couponCode
,
orderType
);
couponDiscountCalculation
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
);
couponDiscountCalculation
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
eliminateGoodsList
);
//套餐
//套餐
setMealCalculation
.
updateShoppingCartGoodsDiscount
(
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
);
setMealCalculation
.
updateShoppingCartGoodsDiscount
(
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
);
...
@@ -115,7 +115,7 @@ public class CalculationServiceImpl {
...
@@ -115,7 +115,7 @@ public class CalculationServiceImpl {
//加料
//加料
materialCalculation
.
updateShoppingCartGoodsApportion
(
calculationDiscount
,
cartGoodsList
);
materialCalculation
.
updateShoppingCartGoodsApportion
(
calculationDiscount
,
cartGoodsList
);
//买三赠一券
//买三赠一券
couponDiscountCalculation
.
updateBuyThreeToOneShoppingCartGoodsDiscount
(
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
);
couponDiscountCalculation
.
updateBuyThreeToOneShoppingCartGoodsDiscount
(
calculationDiscount
,
cartGoodsList
,
shoppingCartGoodsResponseVo
);
return
calculationDiscount
;
return
calculationDiscount
;
}
}
...
@@ -168,7 +168,8 @@ public class CalculationServiceImpl {
...
@@ -168,7 +168,8 @@ public class CalculationServiceImpl {
}
}
public
void
updateShoppingCartGoodsApportion
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
){
public
void
updateShoppingCartGoodsApportion
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
){
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
cartGoodsDetailDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getProducts
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getProducts
();
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
cartGoodsDetailDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getProducts
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getProducts
();
List
<
ShareDiscountActivityDto
>
shareDiscountActivityDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getShareDiscountActivityDtos
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getShareDiscountActivityDtos
();
List
<
ShareDiscountActivityDto
>
shareDiscountActivityDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getShareDiscountActivityDtos
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getShareDiscountActivityDtos
();
...
@@ -180,7 +181,8 @@ public class CalculationServiceImpl {
...
@@ -180,7 +181,8 @@ public class CalculationServiceImpl {
shoppingCartGoodsDto
.
setTotalDiscountAmount
(
shoppingCartGoodsResponseVo
.
getTotalDiscountAmount
());
shoppingCartGoodsDto
.
setTotalDiscountAmount
(
shoppingCartGoodsResponseVo
.
getTotalDiscountAmount
());
//随单购 月卡价格
//随单购 月卡价格
shoppingCartGoodsDto
.
setPayCardFee
(
shoppingCartGoodsResponseVo
.
getPayCardFee
());
shoppingCartGoodsDto
.
setPayCardFee
(
shoppingCartGoodsResponseVo
.
getPayCardFee
());
long
buyThreeGiveOneCouponFee
=
calculationDiscountResult
.
getDiscounts
().
stream
().
filter
(
t
->
t
.
getExtendType
()
==
7
).
mapToLong
(
apportionGoods
->
apportionGoods
.
getCardAmount
()).
sum
();
shoppingCartGoodsDto
.
setBuyThreeGiveOneCouponFee
(
buyThreeGiveOneCouponFee
);
shoppingCartGoodsDto
.
setDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDeliveryAmount
());
shoppingCartGoodsDto
.
setDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDeliveryAmount
());
shoppingCartGoodsDto
.
setDiscountDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
());
shoppingCartGoodsDto
.
setDiscountDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
());
shoppingCartGoodsDto
.
setThresholdAmount
(
shoppingCartGoodsResponseVo
.
getThresholdAmount
());
shoppingCartGoodsDto
.
setThresholdAmount
(
shoppingCartGoodsResponseVo
.
getThresholdAmount
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
View file @
3cabd6a1
...
@@ -75,11 +75,13 @@ public class CouponDiscountCalculation {
...
@@ -75,11 +75,13 @@ public class CouponDiscountCalculation {
/**
/**
* 优惠计算
* 优惠计算
*/
*/
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
)
{
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
List
<
String
>
eliminateGoodsList
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
()))
)))
{
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_35
.
getCode
().
equals
(
discount
.
getType
()))
)))
{
return
;
return
;
}
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
...
@@ -93,7 +95,7 @@ public class CouponDiscountCalculation {
...
@@ -93,7 +95,7 @@ public class CouponDiscountCalculation {
return
;
return
;
}
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
couponDiscounts
=
discounts
.
stream
().
filter
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
couponDiscounts
=
discounts
.
stream
().
filter
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
())
))).
collect
(
Collectors
.
toList
());
||
(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_35
.
getCode
().
equals
(
discount
.
getType
()))
))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
couponDiscounts
))
{
if
(
CollectionUtils
.
isEmpty
(
couponDiscounts
))
{
return
;
return
;
}
}
...
@@ -105,25 +107,11 @@ public class CouponDiscountCalculation {
...
@@ -105,25 +107,11 @@ public class CouponDiscountCalculation {
&&
mccafeUniversalCouponCode
.
equals
(
t
.
getActivityCode
()))).
findFirst
().
orElse
(
null
);
&&
mccafeUniversalCouponCode
.
equals
(
t
.
getActivityCode
()))).
findFirst
().
orElse
(
null
);
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
if
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
())
==
null
)
{
continue
;
}
//商品券商品
//商品券商品
if
(
StringUtils
.
isNotBlank
(
cartGoods
.
getCouponCode
())
||
discountMon
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
cartGoods
.
getCouponCode
())
||
discountMon
!=
null
)
{
// String couponCode = cartGoods.getCouponCode();
// // 计算优惠信息时,已将券校验过,放在map中
// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
// if (MapUtils.isNotEmpty(validCouponMap)) {
// CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
// if (checkSpqInfoResponseDto != null) {
// cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
// cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
// cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId());
// cartGoods.setQty(1);
// cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
// cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
// }
// }
if
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
())
==
null
)
{
continue
;
}
cartGoods
.
setAmount
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getRealAmount
());
cartGoods
.
setAmount
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getRealAmount
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discountsNew
=
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discountsNew
=
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getDiscounts
();
if
(
CollectionUtils
.
isNotEmpty
(
discountsNew
))
{
if
(
CollectionUtils
.
isNotEmpty
(
discountsNew
))
{
...
@@ -131,8 +119,17 @@ public class CouponDiscountCalculation {
...
@@ -131,8 +119,17 @@ public class CouponDiscountCalculation {
cartGoods
.
setCouponName
(
goodsDiscount
.
getActivityName
());
cartGoods
.
setCouponName
(
goodsDiscount
.
getActivityName
());
}
}
}
}
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
());
// 用来判断是否需要删除商品中的加料信息,然后重新计算
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsMaterial
>
smallMaterial
=
goods
.
getSmallMaterial
();
if
(
CollectionUtils
.
isNotEmpty
(
smallMaterial
))
{
if
(
CollectionUtils
.
isNotEmpty
(
goods
.
getDiscounts
()))
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscounts_35
=
goods
.
getDiscounts
().
stream
().
filter
(
t
->
(
ActivityTypeEnum
.
TYPE_35
.
getCode
().
equals
(
t
.
getType
()))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
goodsDiscounts_35
))
{
eliminateGoodsList
.
add
(
cartGoods
.
getCartGoodsUid
());
}
}
}
}
}
// 当couponCode不为空时,需计算优惠价格
// 当couponCode不为空时,需计算优惠价格
...
@@ -222,6 +219,25 @@ public class CouponDiscountCalculation {
...
@@ -222,6 +219,25 @@ public class CouponDiscountCalculation {
cartGoods
.
setActivityDiscountsDtos
(
productActivityDiscountsDtos
);
cartGoods
.
setActivityDiscountsDtos
(
productActivityDiscountsDtos
);
}
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscounts_35
=
list
.
stream
().
filter
(
t
->
(
ActivityTypeEnum
.
TYPE_35
.
getCode
().
equals
(
t
.
getType
()))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
goodsDiscounts_35
))
{
List
<
ActivityDiscountsDto
>
productActivityDiscountsDtos
=
new
ArrayList
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
:
goodsDiscounts_35
)
{
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
goodsDiscount
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
goodsDiscount
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
goodsDiscount
.
getType
());
activityDiscountsDto
.
setDiscountAmount
(
0
-
goodsDiscount
.
getDiscount
().
intValue
());
activityDiscountsDto
.
setExtendType
(
discount
.
getExtendType
());
activityDiscountsDto
.
setTenderId
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getArtNo
());
productActivityDiscountsDtos
.
add
(
activityDiscountsDto
);
}
cartGoods
.
setTotalDiscountAmount
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getDiscountAmount
().
intValue
());
cartGoods
.
setSalePrice
(
goodsMap
.
get
(
cartGoods
.
getCartGoodsUid
()).
getRealAmount
());
cartGoods
.
setActivityDiscountsDtos
(
productActivityDiscountsDtos
);
}
}
}
}
}
}
...
...
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