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
1b38e902
Commit
1b38e902
authored
Mar 13, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
老算价优惠问题
parent
c1d06900
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
4 deletions
+49
-4
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+9
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
+37
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
+1
-0
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
1b38e902
...
...
@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
@Data
public
class
ActivityCalculationDiscountResponseDto
{
...
...
@@ -347,6 +348,10 @@ public class ActivityCalculationDiscountResponseDto {
*/
private
String
originalGoodsUid
;
/**
* 购物车一行的Id(后台生成)
*/
private
String
cartGoodsUid
=
UUID
.
randomUUID
().
toString
();
/**
* 赠送商品ID
*/
private
String
goodsId
;
...
...
@@ -367,6 +372,10 @@ public class ActivityCalculationDiscountResponseDto {
*/
private
Long
originalPrice
;
/**
* 优惠
*/
private
Long
discount
;
/**
* 赠送商品数量
*/
private
Integer
sendNumber
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
View file @
1b38e902
...
...
@@ -95,11 +95,13 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGoods
.
setNodeId
(
sendActivity
.
getActivityCode
());
cartGoods
.
setOriginalGoodsUid
(
sendGoods
.
getOriginalGoodsUid
());
cartGoods
.
setCartGoodsUid
(
sendGoods
.
getCartGoodsUid
());
this
.
setGiftExtra
(
cartGoods
,
product
,
cartGoodsList
);
CartGoods
fatherGoods
=
cartGoodsList
.
stream
().
filter
(
p
->
p
.
getCartGoodsUid
().
equals
(
sendGoods
.
getOriginalGoodsUid
())
&&
ObjectUtils
.
equals
(
p
.
getQty
(),
0
)).
findFirst
().
orElse
(
null
);
if
(
fatherGoods
!=
null
){
cartGoods
.
setCartGoodsUid
(
fatherGoods
.
getCartGoodsUid
());
sendGoods
.
setCartGoodsUid
(
fatherGoods
.
getCartGoodsUid
());
}
cartGoodsList
.
add
(
cartGoods
);
totalGiftAmount
+=
product
.
getFinalPrice
()
*
sendGoods
.
getSendNumber
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
View file @
1b38e902
...
...
@@ -87,7 +87,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
detail
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
detail
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCod
e
());
activityDiscountsDto
.
setActivityType
(
detail
.
getActivityTyp
e
());
activityDiscountsDto
.
setDiscountAmount
(
detail
.
getActivityApportionAmount
().
intValue
());
activityDiscountsDtoList
.
add
(
activityDiscountsDto
);
product
.
setActivityDiscountsDtos
(
activityDiscountsDtoList
);
...
...
@@ -132,21 +132,50 @@ public class XyDiscountServiceImpl implements IPromotionService {
.
filter
(
p
->
ActivityTypeEnum
.
TYPE_104
.
getCode
().
equals
(
p
.
getType
())
&&
p
.
getZeroDiscount
())
.
map
(
p
->
p
.
getActivityCode
()).
collect
(
Collectors
.
toList
());
List
<
ApportionGoodsDetail
>
apportionGoodsDetail
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getSendGoods
())){
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivityList
=
calculationDiscountResult
.
getSendGoods
().
stream
().
filter
(
p
->
ActivityTypeEnum
.
TYPE_1040
.
getCode
().
equals
(
p
.
getActivityType
())).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
sendActivityList
)){
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendActivity
:
sendActivityList
){
if
(!
CollectionUtils
.
isEmpty
(
sendActivity
.
getSendGoods
())){
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
sendGoods
:
sendActivity
.
getSendGoods
()){
ApportionGoodsDetail
detail
=
new
ApportionGoodsDetail
();
detail
.
setActivityApportionAmount
(
sendGoods
.
getDiscount
()
==
null
?
0L
:
sendGoods
.
getDiscount
());
detail
.
setActivityCode
(
sendActivity
.
getActivityCode
());
detail
.
setActivityName
(
sendActivity
.
getActivityName
());
detail
.
setGoodsId
(
sendGoods
.
getGoodsId
());
detail
.
setCartGoodsUid
(
sendGoods
.
getCartGoodsUid
());
detail
.
setActivityType
(
ActivityTypeEnum
.
TYPE_1040
.
getCode
());
apportionGoodsDetail
.
add
(
detail
);
}
}
}
}
}
/*
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> discountGoodsList = calculationDiscountResult.getGoods().stream().filter(p -> org.apache.commons.collections4.CollectionUtils.isNotEmpty(p.getDiscounts())
&& p.getDiscounts().stream().filter(discount -> activityCode.contains(discount.getActivityCode())).count() > 0).collect(Collectors.toList());
*/
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
())
&&
!
activityCode
.
contains
(
apportionDetail
.
getActivityCode
())
)
{
if
(
apportionDetail
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_104
.
getCode
()))
{
ApportionGoodsDetail
detail
=
new
ApportionGoodsDetail
();
detail
.
setActivityApportionAmount
(
apportionDetail
.
getActivityApportionAmount
());
if
(
activityCode
.
contains
(
apportionDetail
.
getActivityCode
())){
detail
.
setActivityApportionAmount
(
0L
);
}
else
{
detail
.
setActivityApportionAmount
(
apportionDetail
.
getActivityApportionAmount
());
}
detail
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
detail
.
setActivityName
(
apportionDetail
.
getActivityName
());
detail
.
setGoodsId
(
apportionGood
.
getGoodsId
());
detail
.
setCartGoodsUid
(
apportionGood
.
getCartGoodsUid
());
detail
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
apportionGoodsDetail
.
add
(
detail
);
}
}
...
...
@@ -161,6 +190,10 @@ public class XyDiscountServiceImpl implements IPromotionService {
*/
private
String
activityCode
;
/**
* 活动type
*/
private
Integer
activityType
;
/**
* 活动名称,如果是商品券,优惠券,放券名称
*/
private
String
activityName
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
View file @
1b38e902
...
...
@@ -96,6 +96,7 @@ public class GiftSharingService {
sendGoodsInfo
.
setGoodsId
(
discount
.
getGoodsId
());
sendGoodsInfo
.
setOriginalGoodsUid
(
goods
.
getCartGoodsUid
());
sendGoodsInfo
.
setSendNumber
(
discount
.
getActualGoodsNumber
());
sendGoodsInfo
.
setDiscount
(
discount
.
getDiscount
());
sendGoodsList
.
add
(
sendGoodsInfo
);
sendGoods
.
setSendGoods
(
sendGoodsList
);
sendGoods
.
setActivityCode
(
discount
.
getActivityCode
());
...
...
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