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
c3e1658a
Commit
c3e1658a
authored
Jul 20, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持多x件y折活动
parent
46800938
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
23 deletions
+72
-23
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuySendPromotionService.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
+71
-22
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuySendPromotionService.java
View file @
c3e1658a
...
...
@@ -84,7 +84,7 @@ public class BuySendPromotionService implements IPromotionService {
Map
<
String
,
Integer
>
maxNums
=
new
HashMap
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
activityList
:
sendActivityLists
)
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
sendGood
:
activityList
.
getSendGoods
())
{
sendGoodsMap
.
put
(
sendGood
.
get
GoodsId
(),
sendGood
);
sendGoodsMap
.
put
(
sendGood
.
get
Category
(),
sendGood
);
maxNums
.
put
(
sendGood
.
getGoodsId
(),
activityList
.
getMaxNum
());
activitySpuIds
.
add
(
sendGood
.
getGoodsId
());
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
View file @
c3e1658a
...
...
@@ -36,36 +36,64 @@ public class XyDiscountServiceImpl implements IPromotionService {
@Override
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
UserLoginInfoDto
userLoginInfoDto
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
ApportionGoodsDetail
apportionGoodsDetail
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(
apportionGoodsDetail
!=
null
)
{
Optional
<
CartGoods
>
firstCartGoods
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
ObjectUtils
.
equals
(
apportionGoodsDetail
.
getGoodsId
(),
cartGoods
.
getGoodsId
())).
findFirst
();
if
(
firstCartGoods
.
isPresent
())
{
firstCartGoods
.
get
().
setAmount
(
firstCartGoods
.
get
().
getAmount
()
-
apportionGoodsDetail
.
getActivityApportionAmount
());
//ApportionGoodsDetail apportionGoodsDetail = getApportionGoodsDetail(calculationDiscountResult);
//if (apportionGoodsDetail != null) {
// Optional<CartGoods> firstCartGoods = cartGoodsList.stream().filter(cartGoods -> ObjectUtils.equals(apportionGoodsDetail.getGoodsId(), cartGoods.getGoodsId())).findFirst();
// if (firstCartGoods.isPresent()) {
// firstCartGoods.get().setAmount(firstCartGoods.get().getAmount() - apportionGoodsDetail.getActivityApportionAmount());
// }
//}
List
<
ApportionGoodsDetail
>
apportionGoodsDetail
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(
apportionGoodsDetail
!=
null
&&
apportionGoodsDetail
.
size
()
>
0
)
{
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
for
(
ApportionGoodsDetail
detail
:
apportionGoodsDetail
)
{
if
(
detail
.
getGoodsId
().
equals
(
cartGoods
.
getGoodsId
()))
{
cartGoods
.
setAmount
(
cartGoods
.
getAmount
()
-
detail
.
getActivityApportionAmount
());
}
}
}
}
}
@Override
public
void
updateShoppingCartGoodsApportion
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
ApportionGoodsDetail
apportionGoodsDetail
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(
apportionGoodsDetail
!=
null
)
{
Optional
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
firstCartGoods
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
cartGoods
->
ObjectUtils
.
equals
(
apportionGoodsDetail
.
getGoodsId
(),
cartGoods
.
getSkuId
())).
findFirst
();
if
(
firstCartGoods
.
isPresent
())
{
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoods
=
firstCartGoods
.
get
();
cartGoods
.
setTotalDiscountAmount
(
cartGoods
.
getTotalDiscountAmount
()
+
apportionGoodsDetail
.
getActivityApportionAmount
().
intValue
());
List
<
ActivityDiscountsDto
>
activityDiscountsDtoList
=
new
ArrayList
<>();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
apportionGoodsDetail
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
apportionGoodsDetail
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
activityDiscountsDto
.
setDiscountAmount
(
apportionGoodsDetail
.
getActivityApportionAmount
().
intValue
());
activityDiscountsDtoList
.
add
(
activityDiscountsDto
);
cartGoods
.
setActivityDiscountsDtos
(
activityDiscountsDtoList
);
//ApportionGoodsDetail apportionGoodsDetail = getApportionGoodsDetail(calculationDiscountResult);
//if (apportionGoodsDetail != null) {
// Optional<ShoppingCartGoodsDto.CartGoodsDetailDto> firstCartGoods = shoppingCartGoodsDto.getProducts().stream().filter(cartGoods -> ObjectUtils.equals(apportionGoodsDetail.getGoodsId(), cartGoods.getSkuId())).findFirst();
// if (firstCartGoods.isPresent()) {
// ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods = firstCartGoods.get();
// cartGoods.setTotalDiscountAmount(cartGoods.getTotalDiscountAmount() + apportionGoodsDetail.getActivityApportionAmount().intValue());
// List<ActivityDiscountsDto> activityDiscountsDtoList = new ArrayList<>();
// ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
// activityDiscountsDto.setActivityCode(apportionGoodsDetail.getActivityCode());
// activityDiscountsDto.setActivityName(apportionGoodsDetail.getActivityName());
// activityDiscountsDto.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
// activityDiscountsDto.setDiscountAmount(apportionGoodsDetail.getActivityApportionAmount().intValue());
// activityDiscountsDtoList.add(activityDiscountsDto);
// cartGoods.setActivityDiscountsDtos(activityDiscountsDtoList);
// }
//}
List
<
ApportionGoodsDetail
>
apportionGoodsDetail
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(
apportionGoodsDetail
!=
null
&&
apportionGoodsDetail
.
size
()
>
0
)
{
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
product
:
shoppingCartGoodsDto
.
getProducts
())
{
for
(
ApportionGoodsDetail
detail
:
apportionGoodsDetail
)
{
if
(
detail
.
getGoodsId
().
equals
(
product
.
getSkuId
()))
{
product
.
setTotalDiscountAmount
(
product
.
getTotalDiscountAmount
()
+
detail
.
getActivityApportionAmount
().
intValue
());
List
<
ActivityDiscountsDto
>
activityDiscountsDtoList
=
new
ArrayList
<>();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
detail
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
detail
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
activityDiscountsDto
.
setDiscountAmount
(
detail
.
getActivityApportionAmount
().
intValue
());
activityDiscountsDtoList
.
add
(
activityDiscountsDto
);
product
.
setActivityDiscountsDtos
(
activityDiscountsDtoList
);
}
}
}
}
}
/*
private ApportionGoodsDetail getApportionGoodsDetail(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult) {
// 遍历购物车内的商品,如果存在则进行均摊
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getApportionGoods())) {
...
...
@@ -87,8 +115,29 @@ public class XyDiscountServiceImpl implements IPromotionService {
}
return null;
}
*/
private
List
<
ApportionGoodsDetail
>
getApportionGoodsDetail
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
)
{
// 遍历购物车内的商品,如果存在则进行均摊
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getApportionGoods
()))
{
return
null
;
}
List
<
ApportionGoodsDetail
>
apportionGoodsDetail
=
new
ArrayList
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
apportionGood
:
calculationDiscountResult
.
getApportionGoods
())
{
if
(!
CollectionUtils
.
isEmpty
(
apportionGood
.
getApportionDetails
()))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
.
ApportionDetails
apportionDetail
:
apportionGood
.
getApportionDetails
())
{
if
(
apportionDetail
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_104
.
getCode
()))
{
ApportionGoodsDetail
detail
=
new
ApportionGoodsDetail
();
detail
.
setActivityApportionAmount
(
apportionDetail
.
getActivityApportionAmount
());
detail
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
detail
.
setActivityName
(
apportionDetail
.
getActivityName
());
detail
.
setGoodsId
(
apportionGood
.
getGoodsId
());
apportionGoodsDetail
.
add
(
detail
);
}
}
}
}
return
apportionGoodsDetail
;
}
@Data
private
class
ApportionGoodsDetail
{
/**
...
...
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