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
d022b42f
Commit
d022b42f
authored
Mar 12, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x件y折
parent
a8b4bdfe
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
91 additions
and
43 deletions
+91
-43
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+4
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
+5
-42
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
+81
-0
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
d022b42f
...
@@ -180,6 +180,7 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -180,6 +180,7 @@ public class ActivityCalculationDiscountResponseDto {
* 购物车商品行uid
* 购物车商品行uid
*/
*/
private
String
cartGoodsUid
;
private
String
cartGoodsUid
;
private
Boolean
zeroDiscount
;
}
}
@Data
@Data
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
d022b42f
...
@@ -41,6 +41,7 @@ import cn.freemud.service.*;
...
@@ -41,6 +41,7 @@ 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.*
;
...
@@ -189,7 +190,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -189,7 +190,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
@Autowired
@Autowired
private
ShoppingCartRelationFactory
shoppingCartRelationFactory
;
private
ShoppingCartRelationFactory
shoppingCartRelationFactory
;
@Autowired
private
GiftSharingService
giftSharingService
;
/**
/**
...
@@ -1251,6 +1253,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1251,6 +1253,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
);
}
}
giftSharingService
.
xPiecesYFoldAdapter
(
activityCalculationDiscountResponseDto
);
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/calculate/CalculationSharingDiscountService.java
View file @
d022b42f
...
@@ -17,6 +17,7 @@ import cn.freemud.service.CouponService;
...
@@ -17,6 +17,7 @@ import cn.freemud.service.CouponService;
import
cn.freemud.service.active.ActiveFactory
;
import
cn.freemud.service.active.ActiveFactory
;
import
cn.freemud.service.active.ActiveService
;
import
cn.freemud.service.active.ActiveService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.calculate.promotion.GiftSharingService
;
import
cn.freemud.service.thirdparty.CalculationClient
;
import
cn.freemud.service.thirdparty.CalculationClient
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
...
@@ -60,6 +61,9 @@ public class CalculationSharingDiscountService {
...
@@ -60,6 +61,9 @@ public class CalculationSharingDiscountService {
@Autowired
@Autowired
private
ActiveFactory
activeFactory
;
private
ActiveFactory
activeFactory
;
@Autowired
private
GiftSharingService
giftSharingService
;
public
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
getCalculationSharingDiscountResult
(
String
menuType
public
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
getCalculationSharingDiscountResult
(
String
menuType
,
String
partnerId
,
String
partnerId
,
String
storeId
,
String
storeId
...
@@ -202,7 +206,7 @@ public class CalculationSharingDiscountService {
...
@@ -202,7 +206,7 @@ public class CalculationSharingDiscountService {
convert2SendPoint
(
result
,
discountDTO
);
convert2SendPoint
(
result
,
discountDTO
);
}
}
// 将x件y折的0折数据转为赠品
// 将x件y折的0折数据转为赠品
xPiecesYFoldAdapter
(
sharingDiscountResponseDto
);
giftSharingService
.
xPiecesYFoldAdapter
(
sharingDiscountResponseDto
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setDeliveryAmount
(
deliveryAmount
);
result
.
setDeliveryAmount
(
deliveryAmount
);
...
@@ -220,47 +224,6 @@ public class CalculationSharingDiscountService {
...
@@ -220,47 +224,6 @@ public class CalculationSharingDiscountService {
return
null
;
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
)
{
private
void
convert2SendPoint
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
result
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discountDTO
)
{
SendPoint
sendPointNew
=
new
SendPoint
();
SendPoint
sendPointNew
=
new
SendPoint
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
View file @
d022b42f
package
cn
.
freemud
.
service
.
impl
.
calculate
.
promotion
;
package
cn
.
freemud
.
service
.
impl
.
calculate
.
promotion
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto
;
...
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
...
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -62,6 +64,85 @@ public class GiftSharingService {
...
@@ -62,6 +64,85 @@ public class GiftSharingService {
this
.
setCartGoods
(
discountResult
,
cartGoodsList
,
beanDTOList
,
shoppingCartInfoRequestVo
,
partnerId
,
flag
);
this
.
setCartGoods
(
discountResult
,
cartGoodsList
,
beanDTOList
,
shoppingCartInfoRequestVo
,
partnerId
,
flag
);
}
}
public
void
xPiecesYFoldAdapter
(
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
)
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
result
=
activityCalculationDiscountResponseDto
.
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
<
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
.
Goods
>
goodsList
=
result
.
getGoods
();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
:
discountGoodsList
){
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
.
Goods
sendGoods
=
new
ActivityCalculationDiscountResponseDto
.
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
);
}
}
}
public
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
);
}
}
}
/**
/**
* 抽取赠品
* 抽取赠品
* goodsId->goods
* goodsId->goods
...
...
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