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
f595e0ef
Commit
f595e0ef
authored
Mar 16, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
回滚
parent
674b5d46
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
8 additions
and
268 deletions
+8
-268
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+0
-8
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+0
-4
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
+0
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
+2
-12
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
+2
-12
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+0
-14
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
+2
-45
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
+0
-18
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
+1
-153
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
f595e0ef
...
@@ -158,7 +158,7 @@ public class ShoppingCartConvertAdapter {
...
@@ -158,7 +158,7 @@ public class ShoppingCartConvertAdapter {
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_62
.
getCode
(),
cartGoods
.
getActivityType
()))
{
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_62
.
getCode
(),
cartGoods
.
getActivityType
()))
{
cartGoodsDetailDto
.
setTotalDiscountAmount
(
cartGoods
.
getOriginalAmount
().
intValue
()
-
cartGoods
.
getAmount
().
intValue
());
cartGoodsDetailDto
.
setTotalDiscountAmount
(
cartGoods
.
getOriginalAmount
().
intValue
()
-
cartGoods
.
getAmount
().
intValue
());
}
else
{
}
else
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
>
collect
=
apportionGoodsList
.
stream
().
filter
(
a
->
ObjectUtils
.
equals
(
cartGoods
.
getCartGoodsUid
(),
a
.
getCartGoodsUid
())
&&
(
cartGoods
.
getQty
()
!=
null
&&
cartGoods
.
getQty
()
>
0
)
).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
>
collect
=
apportionGoodsList
.
stream
().
filter
(
a
->
ObjectUtils
.
equals
(
cartGoods
.
getCartGoodsUid
(),
a
.
getCartGoodsUid
())).
collect
(
Collectors
.
toList
());
//List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> collect = apportionGoodsList.stream().filter(a -> ObjectUtils.equals(cartGoods.getSkuId(), a.getGoodsId()) || ObjectUtils.equals(cartGoods.getSpuId(), a.getGoodsId())).collect(Collectors.toList());
//List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> collect = apportionGoodsList.stream().filter(a -> ObjectUtils.equals(cartGoods.getSkuId(), a.getGoodsId()) || ObjectUtils.equals(cartGoods.getSpuId(), a.getGoodsId())).collect(Collectors.toList());
if
(
CollectionUtils
.
isNotEmpty
(
collect
))
{
if
(
CollectionUtils
.
isNotEmpty
(
collect
))
{
setTotalDiscountAndSalePrice
(
collect
,
cartGoodsDetailDto
,
duplicateGoodsMap
);
setTotalDiscountAndSalePrice
(
collect
,
cartGoodsDetailDto
,
duplicateGoodsMap
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
f595e0ef
...
@@ -348,10 +348,6 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -348,10 +348,6 @@ public class ActivityCalculationDiscountResponseDto {
*/
*/
private
String
originalGoodsUid
;
private
String
originalGoodsUid
;
/**
/**
* 购物车一行的Id(后台生成)
*/
private
String
cartGoodsUid
=
UUID
.
randomUUID
().
toString
();
/**
* 赠送商品ID
* 赠送商品ID
*/
*/
private
String
goodsId
;
private
String
goodsId
;
...
@@ -372,10 +368,6 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -372,10 +368,6 @@ public class ActivityCalculationDiscountResponseDto {
*/
*/
private
Long
originalPrice
;
private
Long
originalPrice
;
/**
/**
* 优惠
*/
private
Long
discount
;
/**
* 赠送商品数量
* 赠送商品数量
*/
*/
private
Integer
sendNumber
;
private
Integer
sendNumber
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
f595e0ef
...
@@ -130,10 +130,6 @@ public class CartGoods {
...
@@ -130,10 +130,6 @@ public class CartGoods {
* 购物车一行商品的数量
* 购物车一行商品的数量
*/
*/
private
Integer
qty
;
private
Integer
qty
;
/**
* 购物车一行商品的数量(X件y折时才显示)
*/
private
Integer
actualQty
;
/**
/**
* 参与活动商品数量 前端展示参数
* 参与活动商品数量 前端展示参数
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
View file @
f595e0ef
...
@@ -19,7 +19,6 @@ public enum ActivityTypeEnum {
...
@@ -19,7 +19,6 @@ public enum ActivityTypeEnum {
TYPE_13
(
13
,
"新用户立减"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_104
(
104
,
"x件y折"
),
TYPE_104
(
104
,
"x件y折"
),
TYPE_1040
(
1040
,
"x件y折0折活动"
),
/**
/**
* 限时特价
* 限时特价
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
View file @
f595e0ef
...
@@ -77,28 +77,18 @@ public class PlatformActiveServiceImpl implements ActiveService {
...
@@ -77,28 +77,18 @@ public class PlatformActiveServiceImpl implements ActiveService {
Map
<
String
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
discountForGift
=
this
.
getDiscountForGift
(
discountResult
);
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
)
{
for
(
ProductBeanDTO
product
:
products
)
{
String
k
=
product
.
getPid
();
String
k
=
product
.
getPid
();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
List
<
String
>
finalActivityCodeList
=
activityCodeList
;
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
stream
()
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
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_1040
.
getCode
().
equals
(
g
.
getType
())
&&
finalActivityCodeList
.
contains
(
g
.
getActivityCode
()))
)
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
()))
.
findFirst
()
.
findFirst
()
.
get
();
.
get
();
CartGoods
cartGood
=
new
CartGoods
();
CartGoods
cartGood
=
new
CartGoods
();
cartGood
.
setGoodsId
(
goods
.
getGoodsId
());
cartGood
.
setGoodsId
(
goods
.
getGoodsId
());
if
(
StringUtils
.
isNotBlank
(
goods
.
getCartGoodsUid
())
&&
ActivityTypeEnum
.
TYPE_1040
.
getCode
().
equals
(
discount
.
getType
())){
cartGood
.
setCartGoodsUid
(
goods
.
getCartGoodsUid
());
}
cartGood
.
setGoodsType
(
1
);
cartGood
.
setGoodsType
(
1
);
cartGood
.
setSpuId
(
goods
.
getGoodsId
());
cartGood
.
setSpuId
(
goods
.
getGoodsId
());
cartGood
.
setSkuId
(
goods
.
getGoodsId
());
cartGood
.
setSkuId
(
goods
.
getGoodsId
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
View file @
f595e0ef
...
@@ -51,7 +51,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
...
@@ -51,7 +51,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
return
;
return
;
}
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
().
stream
()
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
().
stream
()
.
filter
(
goods
->
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
())
||
ActivityTypeEnum
.
TYPE_1040
.
getCode
().
equals
(
goods
.
getActivityType
())
).
collect
(
Collectors
.
toList
());
.
filter
(
goods
->
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
sendActivities
))
{
if
(
CollectionUtils
.
isEmpty
(
sendActivities
))
{
return
;
return
;
}
}
...
@@ -95,19 +95,9 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
...
@@ -95,19 +95,9 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGoods
.
setNodeId
(
sendActivity
.
getActivityCode
());
cartGoods
.
setNodeId
(
sendActivity
.
getActivityCode
());
cartGoods
.
setOriginalGoodsUid
(
sendGoods
.
getOriginalGoodsUid
());
cartGoods
.
setOriginalGoodsUid
(
sendGoods
.
getOriginalGoodsUid
());
cartGoods
.
setCartGoodsUid
(
sendGoods
.
getCartGoodsUid
());
this
.
setGiftExtra
(
cartGoods
,
product
,
cartGoodsList
);
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
);
cartGoodsList
.
add
(
cartGoods
);
if
(!
ActivityTypeEnum
.
TYPE_1040
.
getCode
().
equals
(
sendActivity
.
getActivityType
())){
totalGiftAmount
+=
product
.
getFinalPrice
()
*
sendGoods
.
getSendNumber
();
totalGiftAmount
+=
product
.
getFinalPrice
()
*
sendGoods
.
getSendNumber
();
}
}
}
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
f595e0ef
...
@@ -41,7 +41,6 @@ import cn.freemud.service.*;
...
@@ -41,7 +41,6 @@ import cn.freemud.service.*;
import
cn.freemud.service.delivery.DeliveryFactory
;
import
cn.freemud.service.delivery.DeliveryFactory
;
import
cn.freemud.service.delivery.DeliveryService
;
import
cn.freemud.service.delivery.DeliveryService
;
import
cn.freemud.service.impl.calculate.*
;
import
cn.freemud.service.impl.calculate.*
;
import
cn.freemud.service.impl.calculate.promotion.GiftSharingService
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationFactory
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationFactory
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationService
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationService
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.service.thirdparty.*
;
...
@@ -192,8 +191,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -192,8 +191,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
@Autowired
@Autowired
private
ShoppingCartRelationFactory
shoppingCartRelationFactory
;
private
ShoppingCartRelationFactory
shoppingCartRelationFactory
;
@Autowired
private
GiftSharingService
giftSharingService
;
/**
/**
...
@@ -1255,18 +1252,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1255,18 +1252,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
=
result
.
getDiscounts
().
stream
().
filter
(
d
->
221
==
d
.
getType
()).
findFirst
().
get
();
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
=
result
.
getDiscounts
().
stream
().
filter
(
d
->
221
==
d
.
getType
()).
findFirst
().
get
();
convert2SendPoint
(
result
,
discountDTO
);
convert2SendPoint
(
result
,
discountDTO
);
}
}
Map
<
String
,
Integer
>
qtyMap
=
giftSharingService
.
xPiecesYFoldAdapter
(
activityCalculationDiscountResponseDto
);
if
(
MapUtils
.
isNotEmpty
(
qtyMap
)){
for
(
String
key
:
qtyMap
.
keySet
()){
CartGoods
cartGoods
=
cartGoodsList
.
stream
().
filter
(
p
->
p
.
getCartGoodsUid
().
equals
(
key
)).
findFirst
().
orElse
(
null
);
if
(
cartGoods
!=
null
){
cartGoods
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
cartGoods
.
setActualQty
(
cartGoods
.
getQty
());
cartGoods
.
setQty
(
qtyMap
.
get
(
key
));
}
}
}
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setDeliveryAmount
(
distributionFee
);
result
.
setDeliveryAmount
(
distributionFee
);
result
.
setDistributionFee
(
result
.
getDistributionFee
());
result
.
setDistributionFee
(
result
.
getDistributionFee
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/XyDiscountServiceImpl.java
View file @
f595e0ef
...
@@ -87,7 +87,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
...
@@ -87,7 +87,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
detail
.
getActivityCode
());
activityDiscountsDto
.
setActivityCode
(
detail
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
detail
.
getActivityName
());
activityDiscountsDto
.
setActivityName
(
detail
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
detail
.
getActivityTyp
e
());
activityDiscountsDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCod
e
());
activityDiscountsDto
.
setDiscountAmount
(
detail
.
getActivityApportionAmount
().
intValue
());
activityDiscountsDto
.
setDiscountAmount
(
detail
.
getActivityApportionAmount
().
intValue
());
activityDiscountsDtoList
.
add
(
activityDiscountsDto
);
activityDiscountsDtoList
.
add
(
activityDiscountsDto
);
product
.
setActivityDiscountsDtos
(
activityDiscountsDtoList
);
product
.
setActivityDiscountsDtos
(
activityDiscountsDtoList
);
...
@@ -126,56 +126,17 @@ public class XyDiscountServiceImpl implements IPromotionService {
...
@@ -126,56 +126,17 @@ public class XyDiscountServiceImpl implements IPromotionService {
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getApportionGoods
()))
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getApportionGoods
()))
{
return
null
;
return
null
;
}
}
// 0折的x件y折活动
List
<
String
>
activityCode
=
calculationDiscountResult
.
getDiscounts
().
stream
()
.
filter
(
p
->
ActivityTypeEnum
.
TYPE_104
.
getCode
().
equals
(
p
.
getType
())
&&
p
.
getZeroDiscount
())
.
map
(
p
->
p
.
getActivityCode
()).
collect
(
Collectors
.
toList
());
List
<
ApportionGoodsDetail
>
apportionGoodsDetail
=
new
ArrayList
<>();
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());
*/
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
apportionGood
:
calculationDiscountResult
.
getApportionGoods
())
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
apportionGood
:
calculationDiscountResult
.
getApportionGoods
())
{
if
(!
CollectionUtils
.
isEmpty
(
apportionGood
.
getApportionDetails
()))
{
if
(!
CollectionUtils
.
isEmpty
(
apportionGood
.
getApportionDetails
()))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
.
ApportionDetails
apportionDetail
:
apportionGood
.
getApportionDetails
())
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
.
ApportionDetails
apportionDetail
:
apportionGood
.
getApportionDetails
())
{
if
(
apportionDetail
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_104
.
getCode
()))
{
if
(
apportionDetail
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_104
.
getCode
()))
{
ApportionGoodsDetail
detail
=
new
ApportionGoodsDetail
();
ApportionGoodsDetail
detail
=
new
ApportionGoodsDetail
();
if
(
activityCode
.
contains
(
apportionDetail
.
getActivityCode
())){
detail
.
setActivityApportionAmount
(
apportionDetail
.
getActivityApportionAmount
());
detail
.
setActivityApportionAmount
(
0L
);
}
else
{
detail
.
setActivityApportionAmount
(
apportionDetail
.
getActivityApportionAmount
());
}
detail
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
detail
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
detail
.
setActivityName
(
apportionDetail
.
getActivityName
());
detail
.
setActivityName
(
apportionDetail
.
getActivityName
());
detail
.
setGoodsId
(
apportionGood
.
getGoodsId
());
detail
.
setGoodsId
(
apportionGood
.
getGoodsId
());
detail
.
setCartGoodsUid
(
apportionGood
.
getCartGoodsUid
());
detail
.
setCartGoodsUid
(
apportionGood
.
getCartGoodsUid
());
detail
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
apportionGoodsDetail
.
add
(
detail
);
apportionGoodsDetail
.
add
(
detail
);
}
}
}
}
...
@@ -190,10 +151,6 @@ public class XyDiscountServiceImpl implements IPromotionService {
...
@@ -190,10 +151,6 @@ public class XyDiscountServiceImpl implements IPromotionService {
*/
*/
private
String
activityCode
;
private
String
activityCode
;
/**
/**
* 活动type
*/
private
Integer
activityType
;
/**
* 活动名称,如果是商品券,优惠券,放券名称
* 活动名称,如果是商品券,优惠券,放券名称
*/
*/
private
String
activityName
;
private
String
activityName
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
View file @
f595e0ef
...
@@ -208,25 +208,7 @@ public class CalculationSharingDiscountService {
...
@@ -208,25 +208,7 @@ public class CalculationSharingDiscountService {
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
=
result
.
getDiscounts
().
stream
().
filter
(
d
->
221
==
d
.
getType
()).
findFirst
().
get
();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
=
result
.
getDiscounts
().
stream
().
filter
(
d
->
221
==
d
.
getType
()).
findFirst
().
get
();
convert2SendPoint
(
result
,
discountDTO
);
convert2SendPoint
(
result
,
discountDTO
);
}
}
// 将x件y折的0折数据转为赠品
Map
<
String
,
Integer
>
qtyMap
=
giftSharingService
.
xPiecesYFoldAdapter
(
sharingDiscountResponseDto
);
if
(
MapUtils
.
isNotEmpty
(
qtyMap
)){
for
(
String
key
:
qtyMap
.
keySet
()){
CartGoods
cartGoods
=
cartGoodsList
.
stream
().
filter
(
p
->
p
.
getCartGoodsUid
().
equals
(
key
)).
findFirst
().
orElse
(
null
);
if
(
cartGoods
!=
null
){
cartGoods
.
setActivityType
(
ActivityTypeEnum
.
TYPE_104
.
getCode
());
cartGoods
.
setActualQty
(
cartGoods
.
getQty
());
cartGoods
.
setQty
(
qtyMap
.
get
(
key
));
if
(
ObjectUtils
.
equals
(
cartGoods
.
getQty
(),
0
)){
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
sharingDiscountResponseDto
.
getResult
().
getGoods
().
stream
().
filter
(
p
->
cartGoods
.
getCartGoodsUid
().
equals
(
p
.
getOriginalGoodsUid
())).
findFirst
().
orElse
(
null
);
if
(
goods
!=
null
){
goods
.
setCartGoodsUid
(
cartGoods
.
getCartGoodsUid
());
}
}
}
}
}
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setDeliveryAmount
(
deliveryAmount
);
result
.
setDeliveryAmount
(
deliveryAmount
);
result
.
setDistributionFee
(
result
.
getDistributionFee
());
result
.
setDistributionFee
(
result
.
getDistributionFee
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
View file @
f595e0ef
...
@@ -47,158 +47,6 @@ public class GiftSharingService {
...
@@ -47,158 +47,6 @@ public class GiftSharingService {
@Autowired
@Autowired
private
ActiveFactory
activeFactory
;
private
ActiveFactory
activeFactory
;
public
void
giftResponse
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
ActivityQueryDto
activityQueryDto
,
String
partnerId
,
Integer
flag
)
{
if
(
discountResult
==
null
||
CollectionUtils
.
isEmpty
(
discountResult
.
getGoods
()))
{
return
;
}
String
menuType
=
shoppingCartInfoRequestVo
==
null
?
null
:
shoppingCartInfoRequestVo
.
getMenuType
();
List
<
ProductBeanDTO
>
beanDTOList
=
this
.
drawGiftInfo
(
discountResult
,
activityQueryDto
,
menuType
);
this
.
setCartGoods
(
discountResult
,
cartGoodsList
,
beanDTOList
,
shoppingCartInfoRequestVo
,
partnerId
,
flag
);
}
public
Map
<
String
,
Integer
>
xPiecesYFoldAdapter
(
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
)
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
result
=
activityCalculationDiscountResponseDto
.
getResult
();
if
(
result
==
null
){
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
result
.
getDiscounts
())
&&
CollectionUtils
.
isEmpty
(
result
.
getGoods
())){
return
null
;
}
// 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
null
;
}
List
<
ActivityCalculationDiscountResponseDto
.
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
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
goodsList
=
result
.
getSendGoods
()
==
null
?
new
ArrayList
<>()
:
result
.
getSendGoods
();
Map
<
String
,
Integer
>
qtyMap
=
new
HashMap
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
:
discountGoodsList
){
int
sendQty
=
0
;
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discountList
=
goods
.
getDiscounts
()
.
stream
().
filter
(
p
->
activityCode
.
contains
(
p
.
getActivityCode
())).
collect
(
Collectors
.
toList
());
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
:
discountList
){
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendGoods
=
new
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
>
sendGoodsList
=
new
ArrayList
<>();
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
sendGoodsInfo
=
new
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
();
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
());
sendGoods
.
setActivityName
(
discount
.
getActivityName
());
sendGoods
.
setActivityType
(
ActivityTypeEnum
.
TYPE_1040
.
getCode
());
sendQty
+=
discount
.
getActualGoodsNumber
();
goodsList
.
add
(
sendGoods
);
}
qtyMap
.
put
(
goods
.
getCartGoodsUid
(),
goods
.
getGoodsQuantity
()
-
sendQty
);
}
result
.
setSendGoods
(
goodsList
);
return
qtyMap
;
}
public
Map
<
String
,
Integer
>
xPiecesYFoldAdapter
(
CalculationSharingDiscountResponseDto
sharingDiscountResponseDto
)
{
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
result
=
sharingDiscountResponseDto
.
getResult
();
if
(
result
==
null
){
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
result
.
getDiscounts
())
&&
CollectionUtils
.
isEmpty
(
result
.
getGoods
())){
return
null
;
}
// 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
null
;
}
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
()
==
null
?
new
ArrayList
<>()
:
result
.
getGoods
();
Map
<
String
,
Integer
>
qtyMap
=
new
HashMap
<>();
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
:
discountGoodsList
){
int
sendQty
=
0
;
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
oldSendGoods
=
goodsList
.
stream
().
filter
(
p
->
p
.
getGoodsId
().
equals
(
discount
.
getGoodsId
())
&&
ObjectUtils
.
equals
(
p
.
getCartGoodType
(),
1
)).
findFirst
().
orElse
(
null
);
if
(
oldSendGoods
!=
null
){
// 表明赠品原来有
Integer
goodsQuantity
=
oldSendGoods
.
getGoodsQuantity
();
Integer
send
=
goodsQuantity
+
discount
.
getActualGoodsNumber
();
oldSendGoods
.
setGoodsQuantity
(
send
);
Long
discountAmount
=
oldSendGoods
.
getDiscountAmount
();
discountAmount
=
discountAmount
+
discount
.
getDiscount
();
oldSendGoods
.
setDiscountAmount
(
discountAmount
);
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
oldDiscount
=
oldSendGoods
.
getDiscounts
().
stream
().
filter
(
p
->
p
.
getActivityCode
().
equals
(
discount
.
getActivityCode
())
&&
ObjectUtils
.
equals
(
p
.
getType
(),
ActivityTypeEnum
.
TYPE_1040
.
getCode
())).
findFirst
().
orElse
(
null
);
if
(
oldDiscount
!=
null
){
oldDiscount
.
setActualGoodsNumber
(
send
);
oldDiscount
.
setDiscount
(
discountAmount
);
}
}
else
{
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
(
goods
.
getOriginalPrice
());
sendGoods
.
setDiscountAmount
(
discount
.
getDiscount
());
sendGoods
.
setOriginalGoodsUid
(
goods
.
getCartGoodsUid
());
sendGoods
.
setRealAmount
(
0L
);
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscounts
=
new
ArrayList
<>();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
new
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
();
goodsDiscount
.
setActivityCode
(
discount
.
getActivityCode
());
goodsDiscount
.
setActivityDesc
(
discount
.
getActivityDesc
());
goodsDiscount
.
setActivityName
(
discount
.
getActivityName
());
goodsDiscount
.
setActualGoodsNumber
(
discount
.
getActualGoodsNumber
());
goodsDiscount
.
setDiscount
(
discount
.
getDiscount
());
goodsDiscount
.
setGoodsId
(
discount
.
getGoodsId
());
goodsDiscount
.
setSignleDiscount
(
discount
.
getSignleDiscount
());
goodsDiscount
.
setType
(
ActivityTypeEnum
.
TYPE_1040
.
getCode
());
goodsDiscounts
.
add
(
goodsDiscount
);
sendGoods
.
setDiscounts
(
goodsDiscounts
);
goodsList
.
add
(
sendGoods
);
}
sendQty
+=
discount
.
getActualGoodsNumber
();
if
(
goods
.
getDiscountAmount
()
!=
null
&&
discount
.
getDiscount
()
!=
null
){
goods
.
setDiscountAmount
(
goods
.
getDiscountAmount
()
-
discount
.
getDiscount
());
}
}
if
(
qtyMap
.
get
(
goods
.
getCartGoodsUid
())
!=
null
){
qtyMap
.
put
(
goods
.
getCartGoodsUid
(),
qtyMap
.
get
(
goods
.
getCartGoodsUid
())
-
sendQty
);
}
else
{
qtyMap
.
put
(
goods
.
getCartGoodsUid
(),
goods
.
getGoodsQuantity
()
-
sendQty
);
}
}
result
.
setGoods
(
goodsList
);
return
qtyMap
;
}
/**
/**
* 抽取赠品
* 抽取赠品
* goodsId->goods
* goodsId->goods
...
@@ -356,7 +204,7 @@ public class GiftSharingService {
...
@@ -356,7 +204,7 @@ public class GiftSharingService {
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
stream
()
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
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_1040
.
getCode
().
equals
(
g
.
getType
())
)
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
()))
.
findFirst
()
.
findFirst
()
.
get
();
.
get
();
return
discount
;
return
discount
;
...
...
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