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
7028ad46
Commit
7028ad46
authored
Aug 24, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/feature/1.9.32_商品加料'
parents
a2e0b65c
fbfee320
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
19 deletions
+16
-19
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MaterialPromotionService.java
+16
-19
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MaterialPromotionService.java
View file @
7028ad46
...
...
@@ -89,7 +89,7 @@ public class MaterialPromotionService implements IPromotionService {
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
MaterialGoods
materialGoods
:
product
.
getMaterialList
())
{
pk
=
shoppingCartConvertAdapter
.
jointPk
(
product
.
getCartGoodsUid
(),
materialGoods
.
getSpuId
());
MaterialApportion
material
=
map
.
get
(
pk
);
if
((
material
==
null
)
||
(
material
!=
null
&&
material
.
get
Apportion
Amount
().
intValue
()
==
0
))
if
((
material
==
null
)
||
(
material
!=
null
&&
material
.
get
TotalDiscount
Amount
().
intValue
()
==
0
))
continue
;
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
materialGoods
.
getActivityDiscountsDtos
();
if
(
CollectionUtils
.
isEmpty
(
activityDiscountsDtos
))
{
...
...
@@ -97,18 +97,17 @@ public class MaterialPromotionService implements IPromotionService {
}
//设置行记录参加的活动及总优惠
if
(
CollectionUtils
.
isNotEmpty
(
material
.
getDetails
()))
{
long
sum
=
material
.
getDetails
().
stream
().
mapToLong
(
ApportionDetails:
:
getQty
).
sum
();
for
(
ApportionDetails
detail
:
material
.
getDetails
())
{
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
detail
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
detail
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
detail
.
getActivityType
());
activityDiscountsDto
.
setDiscountAmount
(
material
.
getApportionAmount
()
*
(
sum
==
product
.
getQty
()
?
1
:
product
.
getQty
()
));
activityDiscountsDto
.
setDiscountAmount
(
detail
.
getAmount
().
intValue
(
));
activityDiscountsDtos
.
add
(
activityDiscountsDto
);
}
}
materialGoods
.
setActivityDiscountsDtos
(
activityDiscountsDtos
);
materialGoods
.
setTotalDiscountAmount
(
material
.
getTotalDiscountAmount
()
*
(
material
.
getQty
()
==
product
.
getQty
()
?
1
:
product
.
getQty
())
);
materialGoods
.
setTotalDiscountAmount
(
material
.
getTotalDiscountAmount
());
product
.
setProductType
(
GoodsTypeEnum
.
MATERIAL
.
getGoodsType
());
}
}
...
...
@@ -146,10 +145,8 @@ public class MaterialPromotionService implements IPromotionService {
pk
=
shoppingCartConvertAdapter
.
jointPk
(
apportionGood
.
getCartGoodsUid
(),
material
.
getGoodsId
());
if
(
mApportion
.
get
(
pk
)
==
null
)
{
MaterialApportion
materialApportion
=
new
MaterialApportion
();
materialApportion
.
setApportionAmount
(
material
.
getApportionAmount
()
*
material
.
getGoodsQuantity
());
materialApportion
.
setGoodsId
(
material
.
getGoodsId
());
materialApportion
.
setTotalDiscountAmount
(
material
.
getApportionAmount
()
*
material
.
getGoodsQuantity
());
materialApportion
.
setQty
(
material
.
getGoodsQuantity
());
materialApportion
.
setTotalDiscountAmount
(
material
.
getApportionAmount
()
*
apportionGood
.
getGoodsQuantity
());
materialApportion
.
setPk
(
pk
);
ArrayList
<
ApportionDetails
>
apportionDetailsList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
material
.
getApportionDetails
()))
{
...
...
@@ -158,8 +155,7 @@ public class MaterialPromotionService implements IPromotionService {
apportionDetails
.
setActivityName
(
apportionDetail
.
getActivityName
());
apportionDetails
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
apportionDetails
.
setActivityType
(
apportionDetail
.
getActivityType
());
apportionDetails
.
setAmount
(
apportionDetail
.
getActivityApportionAmount
());
apportionDetails
.
setQty
(
material
.
getGoodsQuantity
());
apportionDetails
.
setAmount
(
apportionDetail
.
getActivityApportionAmount
()*
apportionGood
.
getGoodsQuantity
());
apportionDetailsList
.
add
(
apportionDetails
);
}
materialApportion
.
setDetails
(
apportionDetailsList
);
...
...
@@ -168,20 +164,26 @@ public class MaterialPromotionService implements IPromotionService {
continue
;
}
MaterialApportion
apportion
=
mApportion
.
get
(
pk
);
apportion
.
setApportionAmount
(
apportion
.
getApportionAmount
()
+
material
.
getApportionAmount
()
*
material
.
getGoodsQuantity
());
apportion
.
setTotalDiscountAmount
(
apportion
.
getTotalDiscountAmount
()
+
material
.
getApportionAmount
()
*
material
.
getGoodsQuantity
());
apportion
.
setQty
(
apportion
.
getQty
()
+
material
.
getGoodsQuantity
());
apportion
.
setTotalDiscountAmount
(
apportion
.
getTotalDiscountAmount
()
+
material
.
getApportionAmount
()
*
apportionGood
.
getGoodsQuantity
());
List
<
ApportionDetails
>
details
=
apportion
.
getDetails
();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
.
ApportionDetails
apportionDetail
:
material
.
getApportionDetails
())
{
//累加不同的均摊活动
if
(
apportion
.
getDetails
().
stream
().
filter
(
e
->
e
.
getActivityCode
().
equals
(
apportionDetail
.
getActivityCode
())).
count
()
==
0
)
{
ApportionDetails
apportionDetails
=
new
ApportionDetails
();
apportionDetails
.
setActivityName
(
apportionDetail
.
getActivityName
());
apportionDetails
.
setActivityCode
(
apportionDetail
.
getActivityCode
());
apportionDetails
.
setActivityType
(
apportionDetail
.
getActivityType
());
apportionDetails
.
setAmount
(
apportionDetail
.
getActivityApportionAmount
());
apportionDetails
.
setQty
(
material
.
getGoodsQuantity
());
apportionDetails
.
setAmount
(
apportionDetail
.
getActivityApportionAmount
()*
apportionGood
.
getGoodsQuantity
());
details
.
add
(
apportionDetails
);
}
//相同的均摊累加金额
else
{
for
(
ApportionDetails
detail
:
apportion
.
getDetails
())
{
if
(
detail
.
getActivityCode
().
equals
(
apportionDetail
.
getActivityCode
()))
{
detail
.
setAmount
(
detail
.
getAmount
()+
apportionDetail
.
getActivityApportionAmount
()*
apportionGood
.
getGoodsQuantity
());
}
}
}
apportion
.
setDetails
(
details
);
}
mApportion
.
put
(
pk
,
apportion
);
...
...
@@ -193,14 +195,10 @@ public class MaterialPromotionService implements IPromotionService {
@Data
private
class
MaterialApportion
{
private
String
goodsId
;
private
Long
salePrice
;
private
Long
amount
;
private
Integer
apportionAmount
;
//优惠金额
private
Integer
totalDiscountAmount
;
private
List
<
ApportionDetails
>
details
;
private
String
pk
;
private
Integer
qty
;
}
@Data
...
...
@@ -209,6 +207,5 @@ public class MaterialPromotionService implements IPromotionService {
private
String
activityName
;
private
Integer
activityType
;
private
Long
amount
;
private
Integer
qty
;
}
}
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