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
f8addb98
Commit
f8addb98
authored
Nov 29, 2020
by
刘鹏飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
买一赠一寄件商品返回购物车行
parent
15fc1ac3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
24 deletions
+63
-24
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/BuyOneGiveOneSendService.java
+57
-24
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
View file @
f8addb98
...
...
@@ -19,6 +19,7 @@ import lombok.Data;
import
java.util.Date
;
import
java.util.List
;
import
java.util.UUID
;
@Data
public
class
ShoppingCartGoodsResponseVo
extends
ShoppingCartGoodsBaseResponseVo
{
...
...
@@ -163,6 +164,11 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
public
static
class
chooseGood
{
/**
* 购物车一行的Id(后台生成)
*/
private
String
cartGoodsUid
;
/**
* 活动code
*/
private
String
activeCode
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/BuyOneGiveOneSendService.java
View file @
f8addb98
...
...
@@ -13,6 +13,8 @@ import cn.freemud.interceptor.ServiceException;
import
cn.freemud.service.ItemService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
...
...
@@ -23,10 +25,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.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -81,7 +80,7 @@ public class BuyOneGiveOneSendService {
this
.
setCartGoods
(
discountResult
,
cartGoodsList
,
beanDTOList
);
// 设置用户可以选择的寄送商品券码
this
.
buildSendGoods
(
discountResult
,
shoppingCartGoodsResponseVo
);
this
.
buildSendGoods
(
discountResult
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
);
}
/**
...
...
@@ -195,44 +194,79 @@ public class BuyOneGiveOneSendService {
}
/**
* 抽取赠品
* goodsId->goods
* 构建用户可以商品券信息
*
* @param discountResult
* @return
*/
private
void
buildSendGoods
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
)
{
private
void
buildSendGoods
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
List
<
ShoppingCartGoodsResponseVo
.
chooseGood
>
chooseGoods
=
shoppingCartGoodsResponseVo
.
getChooseGoods
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsResponseVo
.
getChooseGoods
();
// 赠送、换购商品信息集合
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendGoods
=
discountResult
.
getSendGoods
();
if
(
sendGoods
==
null
||
sendGoods
.
isEmpty
()){
ApiLog
.
info
(
"买一赠一寄件活动,未查到赠送、换购商品信息集合,shoppingCartInfoRequestVo,discountResult"
,
shoppingCartInfoRequestVo
,
discountResult
);
return
;
}
// 抽取买一赠一寄件活动送的商品
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
buyOneGiveOneSendGoods
=
sendGoods
.
stream
()
.
filter
(
sendGood
->
ObjectUtils
.
equals
(
sendGood
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_63
.
getCode
()))
.
collect
(
Collectors
.
toList
());
Map
<
String
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
>
activeSendGoodMap
=
new
HashMap
<>();
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendGood
:
sendGoods
){
if
(!
ObjectUtils
.
equals
(
sendGood
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_63
.
getCode
())){
break
;
}
String
activeCode
=
sendGood
.
getActivityCode
();
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
>
innerSendGoods
=
sendGood
.
getSendGoods
();
if
(
innerSendGoods
==
null
||
innerSendGoods
.
isEmpty
()){
break
;
}
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
innerSendGood
:
innerSendGoods
){
String
goodsId
=
innerSendGood
.
getGoodsId
();
activeSendGoodMap
.
put
(
activeCode
+
"-"
+
goodsId
,
innerSendGood
);
}
}
// 商品优惠信息
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goods
=
discountResult
.
getGoods
();
if
(
null
==
buyOneGiveOneSendGoods
||
buyOneGiveOneSendGoods
.
isEmpty
()){
if
(
goods
==
null
||
goods
.
isEmpty
()){
ApiLog
.
info
(
"买一赠一寄件活动,未查到商品优惠信息,shoppingCartInfoRequestVo,discountResult"
,
shoppingCartInfoRequestVo
,
discountResult
);
return
;
}
List
<
ShoppingCartGoodsResponseVo
.
chooseGood
>
chooseGoods
=
shoppingCartGoodsResponseVo
.
getChooseGoods
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsResponseVo
.
getChooseGoods
();
buyOneGiveOneSendGoods
.
forEach
(
sendActivity
->{
goods
.
forEach
(
g
->
{
// 这个是真正的送的券
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
>
innerSendGoods
=
sendActivity
.
getSendGoods
();
if
(
innerSendGoods
==
null
||
innerSendGoods
.
isEmpty
()){
// 获取商品参加的优惠活动
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discounts
=
g
.
getDiscounts
();
if
(
discounts
==
null
||
discounts
.
isEmpty
()){
ApiLog
.
info
(
"买一赠一寄件活动,优惠商品未查找到优惠集合,shoppingCartInfoRequestVo,discountResult"
,
shoppingCartInfoRequestVo
,
discountResult
);
return
;
}
innerSendGoods
.
forEach
(
innerSendGood
->
{
// 获取商品参加的买一赠一寄件优惠活动
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
buyOneGiveOneSendDiscount
=
discounts
.
stream
()
.
filter
(
discount
->
ObjectUtils
.
equals
(
discount
.
getType
(),
ActivityTypeEnum
.
TYPE_63
.
getCode
()))
.
collect
(
Collectors
.
toList
());
if
(
buyOneGiveOneSendDiscount
==
null
||
buyOneGiveOneSendDiscount
.
isEmpty
()){
ApiLog
.
info
(
"买一赠一寄件活动,优惠商品未参加买一赠一寄件活动,shoppingCartInfoRequestVo,discountResult"
,
shoppingCartInfoRequestVo
,
discountResult
);
return
;
}
buyOneGiveOneSendDiscount
.
forEach
(
d
->
{
String
activeCode
=
d
.
getActivityCode
();
String
goodsId
=
g
.
getGoodsId
();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
.
SendGoods
innerSendGood
=
activeSendGoodMap
.
get
(
activeCode
+
"-"
+
goodsId
);
ShoppingCartGoodsResponseVo
.
chooseGood
chooseGood
=
new
ShoppingCartGoodsResponseVo
.
chooseGood
();
chooseGood
.
setActiveCode
(
sendActivity
.
getActivityCode
());
chooseGood
.
setActiveType
(
sendActivity
.
getActivityType
());
chooseGood
.
setGoodsId
(
innerSendGood
.
getGoodsId
());
chooseGood
.
setCartGoodsUid
(
g
.
getCartGoodsUid
());
chooseGood
.
setActiveCode
(
activeCode
);
chooseGood
.
setActiveType
(
ActivityTypeEnum
.
TYPE_63
.
getCode
());
chooseGood
.
setGoodsId
(
goodsId
);
chooseGood
.
setQty
(
innerSendGood
.
getSendNumber
());
chooseGood
.
setCouponQty
(
1
);
chooseGood
.
setCouponCode
(
innerSendGood
.
getSendCouponCode
());
...
...
@@ -241,7 +275,6 @@ public class BuyOneGiveOneSendService {
chooseGood
.
setGoodsName
(
innerSendGood
.
getGoodsName
());
chooseGoods
.
add
(
chooseGood
);
});
});
shoppingCartGoodsResponseVo
.
setChooseGoods
(
chooseGoods
);
...
...
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