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
a8b4bdfe
Commit
a8b4bdfe
authored
Mar 11, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x件y折
parent
a9acc7c4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
5 deletions
+58
-5
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/CalculationSharingDiscountResponseDto.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
+11
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
+45
-4
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/CalculationSharingDiscountResponseDto.java
View file @
a8b4bdfe
...
...
@@ -159,6 +159,8 @@ public class CalculationSharingDiscountResponseDto {
private
Long
thresholdAmount
;
private
SendPointDto
sendPointVo
;
private
Date
endTime
;
private
Boolean
zeroDiscount
;
}
@Data
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
View file @
a8b4bdfe
...
...
@@ -21,6 +21,7 @@ import cn.freemud.enums.ActivityTypeEnum;
import
cn.freemud.enums.CalculationGoodsType
;
import
cn.freemud.service.active.ActiveService
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -75,12 +76,21 @@ public class PlatformActiveServiceImpl implements ActiveService {
Map
<
String
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
discountForGift
=
this
.
getDiscountForGift
(
discountResult
);
List
<
String
>
activityCodeList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
discountResult
.
getDiscounts
())){
// 0折的x件y折活动
activityCodeList
=
discountResult
.
getDiscounts
().
stream
()
.
filter
(
p
->
ActivityTypeEnum
.
TYPE_104
.
getCode
().
equals
(
p
.
getType
())
&&
p
.
getZeroDiscount
())
.
map
(
p
->
p
.
getActivityCode
()).
collect
(
Collectors
.
toList
());
}
for
(
ProductBeanDTO
product
:
products
)
{
String
k
=
product
.
getPid
();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
List
<
String
>
finalActivityCodeList
=
activityCodeList
;
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
()))
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_104
.
getCode
().
equals
(
g
.
getType
())
&&
finalActivityCodeList
.
contains
(
g
.
getActivityCode
())))
.
findFirst
()
.
get
();
CartGoods
cartGood
=
new
CartGoods
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
View file @
a8b4bdfe
...
...
@@ -30,10 +30,7 @@ import org.apache.commons.lang.StringUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -204,6 +201,9 @@ public class CalculationSharingDiscountService {
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
=
result
.
getDiscounts
().
stream
().
filter
(
d
->
221
==
d
.
getType
()).
findFirst
().
get
();
convert2SendPoint
(
result
,
discountDTO
);
}
// 将x件y折的0折数据转为赠品
xPiecesYFoldAdapter
(
sharingDiscountResponseDto
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setDeliveryAmount
(
deliveryAmount
);
result
.
setDistributionFee
(
result
.
getDistributionFee
());
...
...
@@ -220,6 +220,47 @@ public class CalculationSharingDiscountService {
return
null
;
}
private
void
xPiecesYFoldAdapter
(
CalculationSharingDiscountResponseDto
sharingDiscountResponseDto
)
{
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
result
=
sharingDiscountResponseDto
.
getResult
();
if
(
result
==
null
){
return
;
}
if
(
CollectionUtils
.
isEmpty
(
result
.
getDiscounts
())
&&
CollectionUtils
.
isEmpty
(
result
.
getGoods
())){
return
;
}
// 0折的x件y折活动
List
<
String
>
activityCode
=
result
.
getDiscounts
().
stream
()
.
filter
(
p
->
ActivityTypeEnum
.
TYPE_104
.
getCode
().
equals
(
p
.
getType
())
&&
p
.
getZeroDiscount
())
.
map
(
p
->
p
.
getActivityCode
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
activityCode
)){
return
;
}
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
discountGoodsList
=
result
.
getGoods
().
stream
().
filter
(
p
->
CollectionUtils
.
isNotEmpty
(
p
.
getDiscounts
())
&&
p
.
getDiscounts
().
stream
().
filter
(
discount
->
activityCode
.
contains
(
discount
.
getActivityCode
())).
count
()
>
0
).
collect
(
Collectors
.
toList
());
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
result
.
getGoods
();
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
:
discountGoodsList
){
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discountList
=
goods
.
getDiscounts
()
.
stream
().
filter
(
p
->
activityCode
.
contains
(
p
.
getActivityCode
())).
collect
(
Collectors
.
toList
());
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
:
discountList
){
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
sendGoods
=
new
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
();
sendGoods
.
setCartGoodsUid
(
UUID
.
randomUUID
().
toString
());
sendGoods
.
setGoodsId
(
discount
.
getGoodsId
());
sendGoods
.
setCartGoodType
(
CalculationGoodsType
.
TYPE_1
.
getType
());
sendGoods
.
setGoodsQuantity
(
discount
.
getActualGoodsNumber
());
sendGoods
.
setOriginalPrice
(
discount
.
getSignleDiscount
());
sendGoods
.
setRealAmount
(
0L
);
goodsList
.
add
(
sendGoods
);
}
}
}
private
void
convert2SendPoint
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
result
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
)
{
SendPoint
sendPointNew
=
new
SendPoint
();
...
...
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