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
8704bf5a
Commit
8704bf5a
authored
May 29, 2020
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员价优惠设置划线价
parent
040b3041
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
87 additions
and
43 deletions
+87
-43
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
+2
-1
shopping-cart-application-service/src/main/java/cn/freemud/enums/ShoppingCartPromotionEnum.java
+2
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MemberDiscountServiceImpl.java
+79
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+4
-41
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
View file @
8704bf5a
...
...
@@ -51,7 +51,8 @@ public enum ActivityTypeEnum {
TYPE_103
(
103
,
"阶梯单品满数量减N元"
),
TYPE_200
(
200
,
"X元Y件"
),
TYPE_PACKAGE
(
900
,
"包装费"
),
TYPE_DELIVERY
(
901
,
"配送费"
);
TYPE_DELIVERY
(
901
,
"配送费"
),
TYPE_320
(
320
,
"会员价商品优惠"
);
private
Integer
code
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ShoppingCartPromotionEnum.java
View file @
8704bf5a
...
...
@@ -23,7 +23,8 @@ public enum ShoppingCartPromotionEnum {
SET_MEAL
(
7
,
"setMealService"
),
XY_DISCOUNT
(
8
,
"xyDiscountService"
),
TwoN_DISCOUNT
(
9
,
"twoNDiscountService"
),
BUY_GIFTS
(
10
,
"buyAndGiftsPromotionService"
);
BUY_GIFTS
(
10
,
"buyAndGiftsPromotionService"
),
MEMBER_DISCOUNT
(
11
,
"memberDiscountService"
);
private
Integer
type
;
private
String
msgType
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MemberDiscountServiceImpl.java
0 → 100644
View file @
8704bf5a
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.UserLoginInfoDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.service.IPromotionService
;
import
lombok.Data
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: MemberDiscountServiceImpl
* @Package cn.freemud.service.impl
* @Description:
* @author: shuhu.hou
* @date: 2020/5/29 14:52
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
(
"memberDiscountService"
)
public
class
MemberDiscountServiceImpl
implements
IPromotionService
{
@Override
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
UserLoginInfoDto
userLoginInfoDto
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
//获取每个商品的会员价优惠单价
Map
<
String
,
Long
>
apportionGoodsDetail
=
getApportionGoodsDetail
(
calculationDiscountResult
);
if
(
apportionGoodsDetail
.
size
()==
0
){
return
;
}
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
//优惠单价
Long
discountPrice
=
apportionGoodsDetail
.
get
(
cartGoods
.
getGoodsId
());
if
(
discountPrice
!=
null
&&
discountPrice
>
0
){
cartGoods
.
setAmount
(
cartGoods
.
getAmount
()-
discountPrice
*
cartGoods
.
getQty
());
}
}
}
@Override
public
void
updateShoppingCartGoodsApportion
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
return
;
}
/**
* 单个商品,每个均摊单价
* @param calculationDiscountResult
* @return key:goodId value:每个商品均摊金额
*/
private
Map
<
String
,
Long
>
getApportionGoodsDetail
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
)
{
// 遍历购物车内的商品,如果存在则进行均摊
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getApportionGoods
()))
{
return
null
;
}
Map
<
String
,
Long
>
result
=
new
HashMap
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
apportionGood
:
calculationDiscountResult
.
getApportionGoods
())
{
if
(!
CollectionUtils
.
isEmpty
(
apportionGood
.
getApportionDetails
()))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ApportionGoods
.
ApportionDetails
apportionDetail
:
apportionGood
.
getApportionDetails
())
{
if
(
apportionDetail
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_320
.
getCode
()))
{
result
.
putIfAbsent
(
apportionGood
.
getGoodsId
(),
apportionDetail
.
getActivityApportionAmount
());
}
}
}
}
return
result
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
8704bf5a
...
...
@@ -697,20 +697,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
/**
* 获取优惠信息
*
* @param partnerId
* @param storeId
* @param cartGoodsList
* @return
*/
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
String
partnerId
,
String
storeId
,
String
userId
,
String
wxAppid
,
Integer
orderType
,
boolean
isMember
,
List
<
CartGoods
>
cartGoodsList
,
String
menuType
,
Long
distributionFee
)
{
return
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
wxAppid
,
orderType
,
isMember
,
cartGoodsList
,
new
ArrayList
<>(),
new
ArrayList
<>(),
menuType
,
distributionFee
);
}
/**
* 获取优惠信息
*
...
...
@@ -838,33 +824,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
activityCalculationDiscountRequestDto
;
}
/**
* * 构建 ActivityCalculationDiscountRequestDto
*
* @param partnerId
* @param storeId
* @param userId
* @param appId
* @param orderType
* @param distributionFee
* @return
*/
private
ActivityCalculationDiscountRequestDto
getActivityCalculationDiscountRequestDto
(
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
Long
distributionFee
)
{
ActivityCalculationDiscountRequestDto
activityCalculationDiscountRequestDto
=
new
ActivityCalculationDiscountRequestDto
();
activityCalculationDiscountRequestDto
.
setPartnerCode
(
partnerId
);
activityCalculationDiscountRequestDto
.
setStoreId
(
storeId
);
activityCalculationDiscountRequestDto
.
setIsShowGoodsActivity
(
1
);
activityCalculationDiscountRequestDto
.
setUserId
(
userId
);
activityCalculationDiscountRequestDto
.
setVer
(
1
);
activityCalculationDiscountRequestDto
.
setAppId
(
appId
);
activityCalculationDiscountRequestDto
.
setDistributionFee
(
distributionFee
);
ActivityChannelEnum
activityChannelEnum
=
PropertyConvertUtil
.
orderTypeConvert2ActivityChannel
(
orderType
);
if
(!
Objects
.
isNull
(
activityChannelEnum
))
{
activityCalculationDiscountRequestDto
.
setChannel
(
activityChannelEnum
.
getCode
());
}
return
activityCalculationDiscountRequestDto
;
}
/**
* 累加需加入计算的商品
...
...
@@ -1005,6 +964,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService
buyAndGiftsPromotionService
=(
BuyAndGiftsPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
BUY_GIFTS
);
buyAndGiftsPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
//会员价
MemberDiscountServiceImpl
memberDiscountService
=(
MemberDiscountServiceImpl
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
MEMBER_DISCOUNT
);
memberDiscountService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
/**
* 满额减配送费
*/
...
...
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