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
d8468fb3
Commit
d8468fb3
authored
Dec 07, 2020
by
缪晖
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/2.0.1-collageOrder-刘鹏飞' into 'qa'
拼单新增加车时间,用于给促销调用进行商品排序 See merge request
!50
parents
2906d1b8
882a4ef7
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
66 additions
and
12 deletions
+66
-12
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
+5
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
+14
-2
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TwoNDiscountServiceImpl.java
+32
-9
No files found.
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
View file @
d8468fb3
...
...
@@ -26,6 +26,12 @@ public class CartGoods {
* 购物车一行的Id(后台生成)
*/
private
String
cartGoodsUid
=
UUID
.
randomUUID
().
toString
();
/**
* 加车时间
*/
private
Long
addCartTime
;
/**
* 单规格spuId,多规格skuId
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
d8468fb3
...
...
@@ -108,6 +108,10 @@ public class ActivityCalculationDiscountRequestDto {
*/
private
String
cartGoodsUid
;
/**
* 加车时间
*/
private
Long
addCartTime
;
/**
* 商品品类
*/
private
String
category
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
d8468fb3
...
...
@@ -35,6 +35,11 @@ public class CartGoods {
private
String
originalGoodsUid
;
/**
* 加车时间
*/
private
Long
addCartTime
;
/**
* 单规格spuId,多规格skuId
*/
private
String
goodsId
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
View file @
d8468fb3
...
...
@@ -93,6 +93,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
cartGoods
.
setClassificationName
(
product
.
getCategoryName
());
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGoods
.
setNodeId
(
sendActivity
.
getActivityCode
());
cartGoods
.
setOriginalGoodsUid
(
sendGoods
.
getOriginalGoodsUid
());
this
.
setGiftExtra
(
cartGoods
,
product
,
cartGoodsList
);
cartGoodsList
.
add
(
cartGoods
);
totalGiftAmount
+=
product
.
getFinalPrice
()
*
sendGoods
.
getSendNumber
();
...
...
@@ -170,7 +171,10 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
long
count
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
())).
count
();
//购物车内存在同类
if
(
count
>
0
)
{
CartGoods
find
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
())).
findFirst
().
get
();
CartGoods
find
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getCartGoodsUid
().
equals
(
cartGoods
.
getOriginalGoodsUid
())).
findFirst
().
orElseGet
(
null
);
if
(
null
==
find
)
{
find
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
())).
findFirst
().
get
();
}
cartGoods
.
setExtra
(
find
.
getExtra
());
cartGoods
.
setSpuName
(
find
.
getSpuName
());
cartGoods
.
setSkuName
(
find
.
getSkuName
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
View file @
d8468fb3
...
...
@@ -144,6 +144,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
cartGoods
.
setOpenId
(
currentUserInfoVo
.
getOpenId
());
cartGoods
.
setUserName
(
currentUserInfoVo
.
getNickName
());
cartGoods
.
setPhotoUrl
(
currentUserInfoVo
.
getPhotoUrl
());
cartGoods
.
setAddCartTime
(
System
.
currentTimeMillis
());
List
<
Long
>
productIds
=
new
ArrayList
<>();
productIds
.
add
(
Long
.
parseLong
(
goodsId
));
...
...
@@ -770,6 +771,17 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
if
(
CollectionUtils
.
isEmpty
(
calculationDiscountGoodsList
))
{
return
null
;
}
// 调用促销前先对购物车行id进行排序
calculationDiscountGoodsList
.
sort
((
o1
,
o2
)
->
{
if
(
o1
.
getAddCartTime
()
==
null
||
o2
.
getAddCartTime
()
==
null
)
{
return
0
;}
if
(
o1
.
getAddCartTime
()
>
o2
.
getAddCartTime
())
{
return
1
;
}
else
if
(
o1
.
getCartGoodsUid
().
hashCode
()
>
o2
.
getCartGoodsUid
().
hashCode
())
{
return
-
1
;
}
else
{
return
0
;
}
});
activityCalculationDiscountRequestDto
.
setGoods
(
calculationDiscountGoodsList
);
activityCalculationDiscountRequestDto
.
setCoupons
(
coupons
);
activityCalculationDiscountRequestDto
.
setOrgIds
(
commonService
.
getOrgIds
(
partnerId
,
storeId
));
...
...
@@ -777,8 +789,6 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
activityCalculationDiscountRequestDto
.
setIsMember
(
isMember
);
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
try
{
System
.
out
.
println
(
"start discount"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
activityCalculationDiscountRequestDto
));
// 调用老促销接口
activityCalculationDiscountResponseDto
=
activityClient
.
calculationDiscount
(
activityCalculationDiscountRequestDto
);
}
catch
(
Exception
ex
)
{
...
...
@@ -1027,6 +1037,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
calculationDiscountGoods
.
setOriginalPrice
(
cartGoods
.
getFinalPrice
());
calculationDiscountGoods
.
setMemberDiscount
(
cartGoods
.
getMemberDiscount
());
calculationDiscountGoods
.
setSpuId
(
cartGoods
.
getSpuId
());
calculationDiscountGoods
.
setAddCartTime
(
cartGoods
.
getAddCartTime
());
//加料
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductMaterialList
()))
{
...
...
@@ -1062,6 +1073,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
calculationDiscountGoods
.
setGoodsQuantity
(
goodsQuantity
);
calculationDiscountGoods
.
setOriginalPrice
(
originalPrice
);
calculationDiscountGoods
.
setMemberDiscount
(
memberDiscount
);
calculationDiscountGoods
.
setAddCartTime
(
System
.
currentTimeMillis
());
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
calculationDiscountGoods
);
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TwoNDiscountServiceImpl.java
View file @
d8468fb3
...
...
@@ -10,6 +10,7 @@ import cn.freemud.service.IPromotionService;
import
com.google.common.collect.Lists
;
import
lombok.Data
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -37,15 +38,32 @@ public class TwoNDiscountServiceImpl implements IPromotionService {
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
UserLoginInfoDto
userLoginInfoDto
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
List
<
ApportionGoodsDetail
>
apportionGoodsDetailList
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(!
CollectionUtils
.
isEmpty
(
apportionGoodsDetailList
))
{
List
<
String
>
goodIdsList
=
apportionGoodsDetailList
.
stream
().
map
(
ApportionGoodsDetail:
:
getGoodsId
).
collect
(
Collectors
.
toList
());
List
<
CartGoods
>
list
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
goodIdsList
.
contains
(
cartGoods
.
getGoodsId
())).
collect
(
Collectors
.
toList
());
Map
<
String
,
ApportionGoodsDetail
>
map
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getGoodsId
,
detail
->
detail
));
Map
<
String
,
Long
>
mapPro
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getGoodsId
,
detail
->
detail
.
getActivityApportionAmount
()));
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
for
(
CartGoods
cartGoods
:
list
)
{
if
(
mapPro
.
get
(
cartGoods
.
getGoodsId
())
>
0
)
{
cartGoods
.
setAmount
(
cartGoods
.
getAmount
()
-
map
.
get
(
cartGoods
.
getGoodsId
()).
getActivityApportionAmount
());
mapPro
.
put
(
cartGoods
.
getGoodsId
(),
mapPro
.
get
(
cartGoods
.
getGoodsId
())
-
map
.
get
(
cartGoods
.
getGoodsId
()).
getActivityApportionAmount
());
if
(
apportionGoodsDetailList
.
stream
().
filter
(
goodsDetail
->
StringUtils
.
isBlank
(
goodsDetail
.
getCartGoodsUid
())).
collect
(
Collectors
.
toList
()).
isEmpty
())
{
// 若促销返回优惠信息均包含购物车行ID,则按行ID进行优惠均摊
List
<
String
>
cartGoodsUidList
=
apportionGoodsDetailList
.
stream
().
map
(
ApportionGoodsDetail:
:
getCartGoodsUid
).
collect
(
Collectors
.
toList
());
List
<
CartGoods
>
list
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoodsUidList
.
contains
(
cartGoods
.
getCartGoodsUid
())).
collect
(
Collectors
.
toList
());
Map
<
String
,
ApportionGoodsDetail
>
map
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getCartGoodsUid
,
detail
->
detail
));
Map
<
String
,
Long
>
mapPro
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getCartGoodsUid
,
detail
->
detail
.
getActivityApportionAmount
()));
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
for
(
CartGoods
cartGoods
:
list
)
{
if
(
mapPro
.
get
(
cartGoods
.
getCartGoodsUid
())
>
0
)
{
cartGoods
.
setAmount
(
cartGoods
.
getAmount
()
-
map
.
get
(
cartGoods
.
getCartGoodsUid
()).
getActivityApportionAmount
());
mapPro
.
put
(
cartGoods
.
getCartGoodsUid
(),
mapPro
.
get
(
cartGoods
.
getCartGoodsUid
())
-
map
.
get
(
cartGoods
.
getCartGoodsUid
()).
getActivityApportionAmount
());
}
}
}
}
else
{
// 原算价逻辑,根据购物车商品ID进行优惠均摊
List
<
String
>
goodIdsList
=
apportionGoodsDetailList
.
stream
().
map
(
ApportionGoodsDetail:
:
getGoodsId
).
collect
(
Collectors
.
toList
());
List
<
CartGoods
>
list
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
goodIdsList
.
contains
(
cartGoods
.
getGoodsId
())).
collect
(
Collectors
.
toList
());
Map
<
String
,
ApportionGoodsDetail
>
map
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getGoodsId
,
detail
->
detail
));
Map
<
String
,
Long
>
mapPro
=
apportionGoodsDetailList
.
stream
().
collect
(
Collectors
.
toMap
(
ApportionGoodsDetail:
:
getGoodsId
,
detail
->
detail
.
getActivityApportionAmount
()));
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
for
(
CartGoods
cartGoods
:
list
)
{
if
(
mapPro
.
get
(
cartGoods
.
getGoodsId
())
>
0
)
{
cartGoods
.
setAmount
(
cartGoods
.
getAmount
()
-
map
.
get
(
cartGoods
.
getGoodsId
()).
getActivityApportionAmount
());
mapPro
.
put
(
cartGoods
.
getGoodsId
(),
mapPro
.
get
(
cartGoods
.
getGoodsId
())
-
map
.
get
(
cartGoods
.
getGoodsId
()).
getActivityApportionAmount
());
}
}
}
}
...
...
@@ -72,6 +90,7 @@ public class TwoNDiscountServiceImpl implements IPromotionService {
apportionGoodsDetail
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
apportionGoodsDetail
.
setActivityName
(
apportionDetail
.
getActivityName
());
apportionGoodsDetail
.
setGoodsId
(
apportionGood
.
getGoodsId
());
apportionGoodsDetail
.
setCartGoodsUid
(
apportionGood
.
getCartGoodsUid
());
list
.
add
(
apportionGoodsDetail
);
}
}
...
...
@@ -96,5 +115,9 @@ public class TwoNDiscountServiceImpl implements IPromotionService {
*/
private
Long
activityApportionAmount
;
private
String
goodsId
;
/**
* 购物车行记录
*/
private
String
cartGoodsUid
;
}
}
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