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
f34b91ea
Commit
f34b91ea
authored
May 28, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
限时特价支持设置折扣
parent
525cfcc6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
12 deletions
+9
-12
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
+9
-12
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
View file @
f34b91ea
...
@@ -13,10 +13,7 @@ import org.apache.commons.lang.ObjectUtils;
...
@@ -13,10 +13,7 @@ import org.apache.commons.lang.ObjectUtils;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -37,7 +34,7 @@ public class TimeSalePromotionService implements IPromotionService {
...
@@ -37,7 +34,7 @@ public class TimeSalePromotionService implements IPromotionService {
@Override
@Override
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
UserLoginInfoDto
userLoginInfoDto
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
UserLoginInfoDto
userLoginInfoDto
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
(
))))
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_21
.
getCode
().
equals
(
discount
.
getType
())
))))
{
return
;
return
;
}
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
...
@@ -49,12 +46,13 @@ public class TimeSalePromotionService implements IPromotionService {
...
@@ -49,12 +46,13 @@ public class TimeSalePromotionService implements IPromotionService {
.
collect
(
Collectors
.
toMap
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
::
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
.
collect
(
Collectors
.
toMap
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
::
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
List
<
Integer
>
discounts
=
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_2
.
getCode
(),
ActivityTypeEnum
.
TYPE_21
.
getCode
());
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
continue
;
continue
;
}
}
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
ActivityTypeEnum
.
TYPE_2
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
discounts
);
if
(
goodsDiscount
==
null
)
{
if
(
goodsDiscount
==
null
)
{
continue
;
continue
;
}
}
...
@@ -86,7 +84,7 @@ public class TimeSalePromotionService implements IPromotionService {
...
@@ -86,7 +84,7 @@ public class TimeSalePromotionService implements IPromotionService {
@Override
@Override
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
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
(
))))
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
())
||
ActivityTypeEnum
.
TYPE_21
.
getCode
().
equals
(
discount
.
getType
()
))))
{
return
;
return
;
}
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
...
@@ -98,14 +96,13 @@ public class TimeSalePromotionService implements IPromotionService {
...
@@ -98,14 +96,13 @@ public class TimeSalePromotionService implements IPromotionService {
Map
<
String
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsMap
=
goodsList
.
parallelStream
()
Map
<
String
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsMap
=
goodsList
.
parallelStream
()
.
collect
(
Collectors
.
toMap
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
::
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
.
collect
(
Collectors
.
toMap
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
::
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoods
:
shoppingCartGoodsDto
.
getProducts
())
{
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoods
:
shoppingCartGoodsDto
.
getProducts
())
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
// 特价商品没有匹配 或 加价购商品 直接跳出循环
// 特价商品没有匹配 或 加价购商品 直接跳出循环
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getSkuId
()))
==
null
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_81
.
getCode
(),
cartGoods
.
getActivityType
()))
{
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getSkuId
()))
==
null
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_81
.
getCode
(),
cartGoods
.
getActivityType
()))
{
continue
;
continue
;
}
}
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
A
ctivityTypeEnum
.
TYPE_2
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
A
rrays
.
asList
(
ActivityTypeEnum
.
TYPE_21
.
getCode
(),
ActivityTypeEnum
.
TYPE_2
.
getCode
())
);
if
(
goodsDiscount
==
null
)
{
if
(
goodsDiscount
==
null
)
{
continue
;
continue
;
}
}
...
@@ -135,15 +132,15 @@ public class TimeSalePromotionService implements IPromotionService {
...
@@ -135,15 +132,15 @@ public class TimeSalePromotionService implements IPromotionService {
* 获取指定促销类型的GoodsDiscount
* 获取指定促销类型的GoodsDiscount
*
*
* @param goodsDiscountList
* @param goodsDiscountList
* @param
type
* @param
discounts
* @return
* @return
*/
*/
private
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
getGoodsDiscount
(
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscountList
,
ActivityTypeEnum
type
)
{
private
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
getGoodsDiscount
(
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscountList
,
List
<
Integer
>
discounts
)
{
if
(
CollectionUtils
.
isEmpty
(
goodsDiscountList
))
{
if
(
CollectionUtils
.
isEmpty
(
goodsDiscountList
))
{
return
null
;
return
null
;
}
}
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
:
goodsDiscountList
)
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
:
goodsDiscountList
)
{
if
(
Objects
.
equals
(
goodsDiscount
.
getType
(),
type
.
getCod
e
()))
{
if
(
discounts
.
contains
(
goodsDiscount
.
getTyp
e
()))
{
return
goodsDiscount
;
return
goodsDiscount
;
}
}
}
}
...
...
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