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
5728124a
Commit
5728124a
authored
Mar 11, 2021
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
dc239497
8f6177eb
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
529 additions
and
116 deletions
+529
-116
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+1
-1
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/dto/ActivityCalculationDiscountResponseDto.java
+23
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityResponseDto.java
+5
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/BenefitBeanDto.java
+87
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/PromotionMessageDto.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/CalculationSharingDiscountResponseDto.java
+8
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ActivityList.java
+9
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/GiftTypeEnum.java
+40
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
+40
-8
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuySendPromotionService.java
+15
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullPromotionService.java
+97
-33
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullSubtractionActivityServiceImpl.java
+87
-30
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+12
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/FullSharingService.java
+94
-35
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
+1
-1
No files found.
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
5728124a
...
...
@@ -123,7 +123,7 @@ public class AppOrderServiceImpl implements AppOrderService {
requestDto
.
setCouponCodes
(
couponList
);
requestDto
.
setPartnerId
(
Integer
.
valueOf
(
createOrderVo
.
getPartnerId
()));
InvalidCouponsResponseDto
invalidCouponsResponseDto
=
couponOnlineClient
.
invalidCoupons
(
requestDto
);
if
(
invalidCouponsResponseDto
.
getStatusCode
()
!=
100
||
invalidCouponsResponseDto
.
getData
()
==
null
||
(
invalidCouponsResponseDto
.
getData
()
!=
null
&&
CollectionUtils
.
isEmpty
(
invalidCouponsResponseDto
.
getData
().
getInvalidCoupons
()))){
if
(
invalidCouponsResponseDto
.
getStatusCode
()
!=
100
||
invalidCouponsResponseDto
.
getData
()
==
null
||
(
invalidCouponsResponseDto
.
getData
()
!=
null
&&
CollectionUtils
.
is
Not
Empty
(
invalidCouponsResponseDto
.
getData
().
getInvalidCoupons
()))){
return
ResponseUtil
.
error
(
ResponseResult
.
COUPON_INVALID
.
getCode
(),
ResponseResult
.
COUPON_INVALID
.
getMessage
());
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
5728124a
...
...
@@ -17,6 +17,10 @@ public class ActivityCalculationDiscountRequestDto {
*/
private
String
channel
;
/**
* 渠道
*/
private
String
productChannel
;
/**
* 绑定的小程序id
*/
private
String
appId
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
5728124a
...
...
@@ -114,13 +114,30 @@ public class ActivityCalculationDiscountResponseDto {
@Data
public
static
class
ActivityPrompt
{
/**
* 活动名称
*/
private
String
acitivityName
;
/**
* 活动号
*/
private
String
activityCode
;
/**
* 活动类型
*/
private
Integer
activityType
;
private
Long
discountAmout
;
/**
* 门槛金额
*/
private
Long
thresholdAmount
;
private
Long
totalAmount
;
/**
* 已经优惠金额
*/
private
Long
alreadyDiscountAmount
;
private
Integer
activitySubType
;
private
List
<
SendGoods
>
sendGoods
;
}
@Data
...
...
@@ -516,6 +533,12 @@ public class ActivityCalculationDiscountResponseDto {
}
}
@Data
public
static
class
SendGoods
{
private
String
goodsId
;
private
String
goodsName
;
private
Integer
sendNumber
;
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityResponseDto.java
View file @
5728124a
package
cn
.
freemud
.
entities
.
dto
;
import
com.freemud.application.sdk.api.promotioncenter.domain.ActivityBenefitVO
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -126,7 +127,10 @@ public class ActivityResponseDto {
private
String
creater
;
private
String
updateor
;
/**
* 活动子类型 1 阶梯 2 每满
*/
private
Integer
activitySubType
;
/**
* 优惠列表(单品促销不需要此字段,传入此字段则不允许保存。)
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/BenefitBeanDto.java
View file @
5728124a
package
cn
.
freemud
.
entities
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Min
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
public
class
BenefitBeanDto
{
public
class
BenefitBeanDto
implements
Comparable
<
BenefitBeanDto
>
{
/**
* 优惠券名称
*/
...
...
@@ -22,7 +27,87 @@ public class BenefitBeanDto {
private
Integer
benefitSeq
;
private
Integer
benefitType
;
private
List
<
ActivitySendGoodsVO
>
sendGoodsList
;
@Override
public
int
compareTo
(
BenefitBeanDto
o
)
{
return
this
.
thresholdAmount
.
compareTo
(
o
.
getThresholdAmount
());
}
@Data
public
static
class
ActivitySendGoodsVO
{
/**
* 活动号
*/
private
String
activityCode
;
/**
* 商品id
*/
private
String
goodsId
;
/**
* 商品CODE
*/
private
String
goodsCode
;
/**
* 商品名
*/
private
String
goodsName
;
/**
* 原价
*/
private
Integer
originalPrice
;
/**
* 现价
*/
private
Integer
nowPrice
;
/**
* 限制数量
*/
private
Integer
quantityLimit
;
/**
* 赠送数量
*/
private
Integer
sendNumber
;
/**
* 赠品类型 0或null为计件赠品 1为称重赠品
*/
private
Integer
sendGoodsType
;
/**
* 赠品重量 g为单位
*/
private
Integer
sendGoodsWeight
;
/**
* 排序
*/
private
Integer
serialNumber
;
/**
* 商品类型:2、是加料商品,9、是虚拟商品,7、是套餐商品,1、是单品
*/
private
Integer
productType
;
/**
* 商品可兑换的券号
*/
private
String
sendCouponCode
;
/**
* 商品可兑换的券名称
*/
private
String
sendCouponName
;
/**
* 是否兑换券
*/
private
boolean
sendCoupon
=
false
;
}
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/PromotionMessageDto.java
View file @
5728124a
...
...
@@ -12,9 +12,12 @@
*/
package
cn
.
freemud
.
entities
.
dto
;
import
cn.freemud.entities.vo.ActivityList
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@Data
@NoArgsConstructor
public
class
PromotionMessageDto
{
...
...
@@ -39,4 +42,5 @@ public class PromotionMessageDto {
* 满减活动是否与其他活动同享,true:同享,false:不同享
*/
private
Boolean
share
=
false
;
private
List
<
ActivityList
>
activityList
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/CalculationSharingDiscountResponseDto.java
View file @
5728124a
...
...
@@ -114,8 +114,15 @@ public class CalculationSharingDiscountResponseDto {
private
Long
thresholdAmount
;
private
Long
totalAmount
;
private
Long
alreadyDiscountAmount
;
private
Integer
activitySubType
;
private
List
<
SendGoods
>
sendGoods
;
}
@Data
public
static
class
SendGoods
{
private
String
goodsId
;
private
String
goodsName
;
private
Integer
sendNumber
;
}
@Data
public
static
class
Discount
{
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ActivityList.java
View file @
5728124a
...
...
@@ -2,6 +2,8 @@ package cn.freemud.entities.vo;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -49,5 +51,12 @@ public class ActivityList {
private
String
againBuy
;
//在减
private
String
agianDeduct
;
private
List
<
SendGoods
>
sends
;
@Data
public
static
class
SendGoods
{
private
Integer
qty
;
private
String
goodsName
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
View file @
5728124a
...
...
@@ -16,6 +16,7 @@ public enum ActivityTypeEnum {
TYPE_1
(
1
,
"整单满减"
),
TYPE_11
(
11
,
"每满减"
),
TYPE_12
(
12
,
"阶梯满减"
),
TYPE_230
(
230
,
"满赠"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_104
(
104
,
"x件y折"
),
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/GiftTypeEnum.java
0 → 100644
View file @
5728124a
package
cn
.
freemud
.
enums
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.enums GiftTypeEnum
* @Description: TDO 描述....
* @author: 铁牌灵魂工程师
* @date: 2021/2/23
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
enum
GiftTypeEnum
{
TYPE_1
(
1
,
"阶梯满赠"
),
TYPE_2
(
2
,
"每满赠"
);
private
Integer
type
;
private
String
desc
;
GiftTypeEnum
(
Integer
type
,
String
desc
)
{
this
.
type
=
type
;
this
.
desc
=
desc
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/active/impl/PlatformActiveServiceImpl.java
View file @
5728124a
...
...
@@ -80,7 +80,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
()))
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
g
.
getType
())
)
.
findFirst
()
.
get
();
CartGoods
cartGood
=
new
CartGoods
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
View file @
5728124a
...
...
@@ -50,7 +50,9 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getSendGoods
()))
{
return
;
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
().
stream
().
filter
(
goods
->
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
())).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
().
stream
()
.
filter
(
goods
->
(
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
()))
||
(
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
goods
.
getActivityType
())))
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
sendActivities
))
{
return
;
}
...
...
@@ -83,7 +85,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
cartGoods
.
setCategoryName
(
product
.
getName
());
cartGoods
.
setPic
(
product
.
getPicture
());
cartGoods
.
setSkuName
(
product
.
getName
());
cartGoods
.
setActivityType
(
ActivityTypeEnum
.
TYPE_62
.
getCod
e
());
cartGoods
.
setActivityType
(
sendActivity
.
getActivityTyp
e
());
cartGoods
.
setStockLimit
(
ObjectUtils
.
equals
(
1
,
product
.
getStockLimit
()));
cartGoods
.
setCustomerCode
(
product
.
getCustomerCode
());
cartGoods
.
setUnit
(
product
.
getUnit
());
...
...
@@ -112,19 +114,30 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getSendGoods
()))
{
return
;
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
().
stream
().
filter
(
goods
->
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
())).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivities
=
calculationDiscountResult
.
getSendGoods
()
.
stream
()
.
filter
(
goods
->
(
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
goods
.
getActivityType
())
||
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
goods
.
getActivityType
())))
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
sendActivities
))
{
return
;
}
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
sendGoodsList
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
product
->
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
product
.
getActivityType
())).
collect
(
Collectors
.
toList
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
sendGoodsList
=
shoppingCartGoodsDto
.
getProducts
()
.
stream
()
.
filter
(
product
->
(
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
product
.
getActivityType
())
||
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
product
.
getActivityType
())))
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
sendGoodsList
))
{
return
;
}
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
//设置商品行活动均摊
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
:
sendGoodsList
)
{
Optional
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
first
=
sendActivities
.
stream
().
filter
(
sendActivity
->
ObjectUtils
.
equals
(
sendActivity
.
getActivityCode
(),
cartGoodsDetailDto
.
getNodeId
())).
findFirst
();
Optional
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
first
=
sendActivities
.
stream
()
.
filter
(
sendActivity
->
ObjectUtils
.
equals
(
sendActivity
.
getActivityCode
(),
cartGoodsDetailDto
.
getNodeId
()))
.
findFirst
();
if
(!
first
.
isPresent
())
{
continue
;
}
...
...
@@ -133,18 +146,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
ProductActivityDiscountsDto
.
setActivityCode
(
sendActivity
.
getActivityCode
());
ProductActivityDiscountsDto
.
setActivityName
(
sendActivity
.
getActivityName
());
ProductActivityDiscountsDto
.
setActivityType
(
sendActivity
.
getActivityType
());
ProductActivityDiscountsDto
.
setDiscountAmount
(
cartGoodsDetailDto
.
getTotalDiscountAmount
());
if
(
cartGoodsDetailDto
.
getActivityType
().
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
()))
{
cartGoodsDetailDto
.
setTotalDiscountAmount
(
cartGoodsDetailDto
.
getOriginalPrice
().
intValue
()*
cartGoodsDetailDto
.
getQty
());
ProductActivityDiscountsDto
.
setDiscountAmount
(
cartGoodsDetailDto
.
getOriginalPrice
().
intValue
()*
cartGoodsDetailDto
.
getQty
());
}
else
{
ProductActivityDiscountsDto
.
setDiscountAmount
(
cartGoodsDetailDto
.
getTotalDiscountAmount
());
}
cartGoodsDetailDto
.
setActivityDiscountsDtos
(
Arrays
.
asList
(
ProductActivityDiscountsDto
));
}
//设置活动级别的均摊
boolean
type230
=
false
;
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendActivity
:
sendActivities
)
{
if
(
ActivityTypeEnum
.
TYPE_230
.
getCode
().
toString
().
equals
(
sendActivity
.
getActivityCode
()))
{
type230
=
true
;
}
//设置优惠活动
Integer
totalDiscountAmount
=
sendGoodsList
.
stream
().
filter
(
sendGoods
->
ObjectUtils
.
equals
(
sendActivity
.
getActivityCode
(),
sendGoods
.
getNodeId
())).
mapToInt
(
sendGoods
->
sendGoods
.
getTotalDiscountAmount
()).
sum
();
Integer
totalDiscountAmount
=
sendGoodsList
.
stream
()
.
filter
(
sendGoods
->
ObjectUtils
.
equals
(
sendActivity
.
getActivityCode
(),
sendGoods
.
getNodeId
()))
.
mapToInt
(
sendGoods
->
sendGoods
.
getTotalDiscountAmount
())
.
sum
();
Long
totalDiscountOriginalAmount
=
sendGoodsList
.
stream
()
.
filter
(
sendGoods
->
ObjectUtils
.
equals
(
sendActivity
.
getActivityCode
(),
sendGoods
.
getNodeId
()))
.
mapToLong
(
sendGoods
->
sendGoods
.
getOriginalPrice
()*
sendGoods
.
getQty
())
.
sum
();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
sendActivity
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
sendActivity
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
sendActivity
.
getActivityType
());
activityDiscountsDto
.
setDiscountAmount
(
0
-
totalDiscountAmount
);
activityDiscountsDto
.
setDiscountAmount
(
type230
?
0
-
totalDiscountOriginalAmount
.
intValue
()
:
0
-
totalDiscountAmount
);
activityDiscountsDtos
.
add
(
activityDiscountsDto
);
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuySendPromotionService.java
View file @
5728124a
...
...
@@ -145,11 +145,20 @@ public class BuySendPromotionService implements IPromotionService {
return
;
}
//添加促销活动
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendGoods1
=
calculationDiscountResult
.
getSendGoods
()
==
null
?
new
ArrayList
<>()
:
calculationDiscountResult
.
getSendGoods
().
stream
().
filter
(
t
->
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_6
.
getCode
(),
t
.
getActivityType
())
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_61
.
getCode
(),
t
.
getActivityType
())).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendGoods1
=
calculationDiscountResult
.
getSendGoods
()
==
null
?
new
ArrayList
<>()
:
calculationDiscountResult
.
getSendGoods
().
stream
()
.
filter
(
t
->
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_6
.
getCode
(),
t
.
getActivityType
())
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_61
.
getCode
(),
t
.
getActivityType
()))
.
collect
(
Collectors
.
toList
()
);
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
if
(
CollectionUtils
.
isNotEmpty
(
sendGoods1
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendActivity
=
sendGoods1
.
get
(
0
);
Integer
discountAmount
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
product
->
ObjectUtils
.
equals
(
product
.
getActivityType
(),
sendActivity
.
getActivityType
())).
mapToInt
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
::
getTotalDiscountAmount
).
sum
();
Integer
discountAmount
=
shoppingCartGoodsDto
.
getProducts
()
.
stream
()
.
filter
(
product
->
ObjectUtils
.
equals
(
product
.
getActivityType
(),
sendActivity
.
getActivityType
()))
.
mapToInt
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
::
getTotalDiscountAmount
)
.
sum
();
//设置优惠活动
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
sendActivity
.
getActivityCode
());
...
...
@@ -159,7 +168,10 @@ public class BuySendPromotionService implements IPromotionService {
activityDiscountsDtos
.
add
(
activityDiscountsDto
);
// 设置商品行优惠明细
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
buyAndSendProducts
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
product
->
ObjectUtils
.
equals
(
product
.
getActivityType
(),
sendActivity
.
getActivityType
())).
collect
(
Collectors
.
toList
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
buyAndSendProducts
=
shoppingCartGoodsDto
.
getProducts
()
.
stream
()
.
filter
(
product
->
ObjectUtils
.
equals
(
product
.
getActivityType
(),
sendActivity
.
getActivityType
()))
.
collect
(
Collectors
.
toList
());
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
:
buyAndSendProducts
)
{
List
<
ActivityDiscountsDto
>
activityDiscountsDtoList
=
cartGoodsDetailDto
.
getActivityDiscountsDtos
()
==
null
?
new
ArrayList
<>()
:
cartGoodsDetailDto
.
getActivityDiscountsDtos
();
ActivityDiscountsDto
ProductActivityDiscountsDto
=
new
ActivityDiscountsDto
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullPromotionService.java
View file @
5728124a
...
...
@@ -6,10 +6,12 @@ import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.utils.WebUtil
;
import
com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService
;
import
lombok.experimental.var
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -54,6 +56,7 @@ public class FullPromotionService implements IPromotionService {
List
<
ActivityTypeEnum
>
activityTypeEnums
=
new
LinkedList
<>();
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_11
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_12
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_230
);
//调用促销统一活动查询
//过滤出参与的满减(目前只有每满减和阶梯满减)
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
...
...
@@ -80,12 +83,14 @@ public class FullPromotionService implements IPromotionService {
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
//调用没有加入购物车的提示语的方法
setMessageNotInShoppingCart
(
messageBuilder
,
activityResponseDto
,
benefitBeanDtos
,
benefitBeanDto
,
activityList
);
}
else
{
}
else
{
//促销返回满减提示语
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList1
=
calculationDiscountResult
.
getDiscounts
();
//构建提示语
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
)){
// 还差多少提示
setMessageSatisfyCart
(
messageBuilder
,
activityPrompts
,
activityResponseDto
,
activityList
);
}
else
{
setMessageNoSatisfyCart
(
messageBuilder
,
discountList1
,
activityList
);
...
...
@@ -145,7 +150,7 @@ public class FullPromotionService implements IPromotionService {
.
append
(
"</span> 元"
);
//满足 x 元 减 Y 元 ,最高 减 Z元
cn
.
freemud
.
entities
.
vo
.
ActivityList
notInShopping
=
new
ActivityList
();
ActivityList
notInShopping
=
new
ActivityList
();
notInShopping
.
setTipType
(
1
);
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
notInShopping
.
setDeduct
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getDiscountAmount
()
*
1.00
/
100
).
toString
());
...
...
@@ -174,6 +179,34 @@ public class FullPromotionService implements IPromotionService {
activityList
.
add
(
notInShopping
);
}
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
ActivityList
notInShopping
=
new
ActivityList
();
// 规则:满5赠奶茶2件,炸鸡1件,满10赠布丁3件,牛奶1份,鸡翅2份,
// 提示语:满5元可获赠奶茶*2,炸鸡*1
//阶梯满赠
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
if
(
GiftTypeEnum
.
TYPE_1
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
7
);
}
//int len = benefitBeanDto.getSendGoodsList().size();
Collections
.
sort
(
benefitBeanDtos
);
BenefitBeanDto
dto
=
benefitBeanDtos
.
get
(
0
);
int
len
=
dto
.
getSendGoodsList
().
size
();
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
dto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
ActivityList
.
SendGoods
goods
=
new
ActivityList
.
SendGoods
();
goods
.
setQty
(
dto
.
getSendGoodsList
().
get
(
i
).
getSendNumber
());
goods
.
setGoodsName
(
dto
.
getSendGoodsList
().
get
(
i
).
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
activityList
.
add
(
notInShopping
);
}
}
/**
...
...
@@ -188,40 +221,71 @@ public class FullPromotionService implements IPromotionService {
ActivityList
satisfyList
=
new
ActivityList
();
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
activityPrompt
=
activityPrompts
.
get
(
0
);
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
))
.
append
(
"</span> "
)
.
append
(
"还差 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元"
);
// 满足 X 元 减 Y 元 还差 Z元
satisfyList
.
setTipType
(
3
);
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
))
.
append
(
"</span> "
)
.
append
(
"还差 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元"
);
// 满足 X 元 减 Y 元 还差 Z元
satisfyList
.
setTipType
(
3
);
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
).
toString
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
Long
toDiscountAmout
;
//每满减
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
())
&&
CollectionUtils
.
isNotEmpty
(
activityPrompt
.
getSendGoods
()))
{
satisfyList
.
setTipType
(
10
);
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendGoods
sendGood
:
activityPrompt
.
getSendGoods
())
{
ActivityList
.
SendGoods
send
=
new
ActivityList
.
SendGoods
();
send
.
setGoodsName
(
sendGood
.
getGoodsName
());
send
.
setQty
(
sendGood
.
getSendNumber
());
sends
.
add
(
send
);
}
satisfyList
.
setSends
(
sends
);
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
).
toString
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
if
(
GiftTypeEnum
.
TYPE_1
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
satisfyList
.
setTipType
(
8
);
}
else
{
satisfyList
.
setTipType
(
9
);
}
if
(
activityPrompt
.
getTotalAmount
()>=
activityPrompt
.
getThresholdAmount
())
{
if
(
GiftTypeEnum
.
TYPE_1
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
satisfyList
.
setTipType
(
6
);
}
else
{
satisfyList
.
setTipType
(
6
);
}
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
activityList
.
add
(
satisfyList
);
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullSubtractionActivityServiceImpl.java
View file @
5728124a
...
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.vo.ActivityList
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.WebUtil
;
...
...
@@ -14,10 +15,7 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -192,7 +190,7 @@ public class FullSubtractionActivityServiceImpl {
public
PromotionMessageDto
getFullPromotionActivityInfo
(
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ArrayList
<
ActivityList
>
activityList
)
{
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_11
,
ActivityTypeEnum
.
TYPE_12
),
null
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_11
,
ActivityTypeEnum
.
TYPE_12
,
ActivityTypeEnum
.
TYPE_230
),
null
);
if
(
activityQueryResponseDto
==
null
)
{
return
null
;
}
...
...
@@ -204,7 +202,8 @@ public class FullSubtractionActivityServiceImpl {
activityQueryDtoList
=
activityQueryDtoList
.
parallelStream
().
filter
(
k
->
{
Integer
activityType
=
k
.
getActivityType
();
return
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityType
)
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
activityType
);
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
activityType
)
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityType
);
}).
limit
(
1
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
activityQueryDtoList
))
{
return
promotionMessageDto
;
...
...
@@ -214,12 +213,14 @@ public class FullSubtractionActivityServiceImpl {
promotionMessageDto
.
setActivityName
(
activityResponseDto
.
getActivityName
());
promotionMessageDto
.
setActivityType
(
activityResponseDto
.
getActivityType
());
promotionMessageDto
.
setPromotionAmount
(
0L
);
//没有加入购物车
//
没有加入购物车
if
(
calculationDiscountResult
==
null
)
{
List
<
BenefitBeanDto
>
benefitBeanDtos
=
activityResponseDto
.
getBenefits
();
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
//BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0);
BenefitBeanDto
benefitBeanDto
=
null
;
// 每满减
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
messageBuilder
.
append
(
"每满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
...
...
@@ -237,6 +238,7 @@ public class FullSubtractionActivityServiceImpl {
activityList
.
add
(
notInShopping
);
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
int
len
=
benefitBeanDtos
.
size
();
// // 购物车中无商品或者存在与满减互斥的活动
for
(
int
i
=
len
-
1
,
j
=
0
;
i
>=
0
&&
j
<
2
;
i
--,
j
++)
{
...
...
@@ -258,15 +260,48 @@ public class FullSubtractionActivityServiceImpl {
activityList
.
add
(
notInShopping
);
}
}
}
else
{
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
Collections
.
sort
(
benefitBeanDtos
);
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
ActivityList
notInShopping
=
new
ActivityList
();
// 规则:满5赠奶茶2件,炸鸡1件,满10赠布丁3件,牛奶1份,鸡翅2份,
// 提示语:满5元可获赠奶茶*2,炸鸡*1
//阶梯满赠
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
if
(
GiftTypeEnum
.
TYPE_1
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
7
);
}
for
(
BenefitBeanDto
beanDto
:
benefitBeanDtos
)
{
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
beanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
int
len
=
beanDto
.
getSendGoodsList
().
size
();
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
ActivityList
.
SendGoods
goods
=
new
ActivityList
.
SendGoods
();
goods
.
setQty
(
beanDto
.
getSendGoodsList
().
get
(
i
).
getSendNumber
());
goods
.
setGoodsName
(
beanDto
.
getSendGoodsList
().
get
(
i
).
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
break
;
}
ArrayList
<
ActivityList
>
arrayList
=
new
ArrayList
();
arrayList
.
add
(
notInShopping
);
promotionMessageDto
.
setActivityList
(
arrayList
);
}
}
// 有商品在购物车
else
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList
=
calculationDiscountResult
.
getDiscounts
();
//加入商品满足购物车
//加入商品满足购物车
还差多少提示
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
activityPrompt
=
activityPrompts
.
get
(
0
);
ActivityList
satisfyList
=
new
ActivityList
();
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
...
...
@@ -280,27 +315,49 @@ public class FullSubtractionActivityServiceImpl {
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
).
toString
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
}
else
{
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
//每满减
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
())
&&
CollectionUtils
.
isNotEmpty
(
activityPrompt
.
getSendGoods
()))
{
satisfyList
.
setTipType
(
10
);
ActivityList
.
SendGoods
send
=
new
ActivityList
.
SendGoods
();
send
.
setQty
(
activityPrompt
.
getSendGoods
().
get
(
0
).
getSendNumber
());
send
.
setGoodsName
(
activityPrompt
.
getSendGoods
().
get
(
0
).
getGoodsName
());
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
sends
.
add
(
send
);
satisfyList
.
setSends
(
sends
);
if
(
GiftTypeEnum
.
TYPE_1
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
satisfyList
.
setTipType
(
8
);
}
else
{
satisfyList
.
setTipType
(
9
);
}
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
}
else
{
}
else
{
discountList
=
discountList
.
parallelStream
().
filter
(
k
->
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
k
.
getType
())
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
k
.
getType
()))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
discountList
))
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
5728124a
...
...
@@ -766,7 +766,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityTip
.
setActivityCode
(
promotionMessageDto
.
getActivityId
());
activityTip
.
setActivityType
(
promotionMessageDto
.
getActivityType
());
activityTip
.
setActivityName
(
promotionMessageDto
.
getPromotionMessage
());
activityTip
.
setActivityList
(
activityList
);
activityTip
.
setActivityList
(
promotionMessageDto
.
getActivityList
()
);
}
shoppingCartGoodsResponseVo
.
setActivityTip
(
activityTip
);
shoppingCartGoodsResponseVo
.
setProducts
(
new
ArrayList
<>());
...
...
@@ -1237,7 +1237,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityCalculationDiscountRequestDto
.
setDistributionFee
(
distributionFee
);
activityCalculationDiscountRequestDto
.
setIsMember
(
isMember
);
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
activityCalculationDiscountRequestDto
.
setProductChannel
(
"def"
.
toString
());
if
(
Objects
.
equals
(
orderType
,
CreateOrderType
.
COLLECT_GOODS
.
getCode
()))
{
activityCalculationDiscountRequestDto
.
setProductChannel
(
BusinessTypeEnum
.
SAAS_PICKUP
.
getCode
());
}
else
if
(
Objects
.
equals
(
orderType
,
CreateOrderType
.
TAKE_OUT
.
getCode
()))
{
activityCalculationDiscountRequestDto
.
setProductChannel
(
BusinessTypeEnum
.
SAAS_DELIVERY
.
getCode
());
}
try
{
log
.
info
(
"activityClient discount :{}"
,
JSON
.
toJSONString
(
activityCalculationDiscountRequestDto
));
activityCalculationDiscountResponseDto
=
activityClient
.
calculationDiscount
(
activityCalculationDiscountRequestDto
);
}
catch
(
Exception
ex
)
{
ErrorLog
.
printErrorLog
(
"calculation_discount_error"
,
"/calculation/discount"
,
activityCalculationDiscountRequestDto
,
ex
);
...
...
@@ -1376,7 +1385,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityChannelEnum
activityChannelEnum
=
PropertyConvertUtil
.
orderTypeConvert2ActivityChannel
(
orderType
);
if
(!
Objects
.
isNull
(
activityChannelEnum
))
{
activityCalculationDiscountRequestDto
.
setChannel
(
activityChannelEnum
.
getCode
());
}
return
activityCalculationDiscountRequestDto
;
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/FullSharingService.java
View file @
5728124a
package
cn
.
freemud
.
service
.
impl
.
calculate
.
promotion
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.ActivityResponseDto
;
import
cn.freemud.entities.dto.BenefitBeanDto
;
import
cn.freemud.entities.dto.PromotionMessageDto
;
...
...
@@ -11,6 +12,7 @@ import cn.freemud.entities.vo.ActivityTip;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.ShoppingCartGoodsResponseVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.utils.WebUtil
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -62,6 +64,7 @@ public class FullSharingService {
/**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_230
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
if
(
null
==
activityQueryResponseDto
||
CollectionUtils
.
isEmpty
(
activityQueryResponseDto
.
getResult
()))
{
return
;
...
...
@@ -96,7 +99,8 @@ public class FullSharingService {
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
discountResult
.
getDiscounts
();
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
fullDiscountsList
=
discounts
.
stream
()
.
filter
(
d
->
ActivityTypeEnum
.
TYPE_11
.
getCode
().
equals
(
d
.
getType
())
||
ActivityTypeEnum
.
TYPE_12
.
getCode
().
equals
(
d
.
getType
()))
.
filter
(
d
->
ActivityTypeEnum
.
TYPE_11
.
getCode
().
equals
(
d
.
getType
())
||
ActivityTypeEnum
.
TYPE_12
.
getCode
().
equals
(
d
.
getType
()))
.
collect
(
Collectors
.
toList
());
/**
* 设置到响应中 总的满减优惠金额
...
...
@@ -109,7 +113,6 @@ public class FullSharingService {
}
shoppingCartGoodsResponseVo
.
setActivityTip
(
new
ActivityTip
());
List
<
Integer
>
typeEnums
=
activityTypeEnums
.
stream
().
map
(
ActivityTypeEnum:
:
getCode
).
collect
(
Collectors
.
toList
());
/**
* 还原满减折扣到行记录上
...
...
@@ -131,7 +134,7 @@ public class FullSharingService {
//discount = discountMap.getDiscounts().stream().filter(d -> typeEnums.contains(d.getType())).findFirst().orElse(null);
sum
=
discountMap
.
getDiscounts
()
.
stream
()
.
filter
(
d
->
typeEnums
.
contains
(
d
.
getType
()))
.
filter
(
d
->
typeEnums
.
contains
(
d
.
getType
())
&&
!
d
.
getType
().
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
())
)
.
mapToLong
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
::
getDiscount
)
.
sum
();
cart
.
setAmount
(
cart
.
getAmount
()
+
sum
);
...
...
@@ -168,6 +171,7 @@ public class FullSharingService {
/**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_230
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
if
(
null
==
activityQueryResponseDto
||
CollectionUtils
.
isEmpty
(
activityQueryResponseDto
.
getResult
()))
{
return
;
...
...
@@ -248,7 +252,7 @@ public class FullSharingService {
notInShopping
.
setMaxDeduct
(
WebUtil
.
formatAmount
(
activityResponseDto
.
getMaxMoney
()
*
1.00
/
100
).
toString
());
activityList
.
add
(
notInShopping
);
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
else
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
int
len
=
benefitBeanDtos
.
size
();
// // 购物车中无商品或者存在与满减互斥的活动
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
...
...
@@ -270,6 +274,32 @@ public class FullSharingService {
activityList
.
add
(
notInShopping
);
}
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
ActivityList
notInShopping
=
new
ActivityList
();
// 规则:满5赠奶茶2件,炸鸡1件,满10赠布丁3件,牛奶1份,鸡翅2份,
// 提示语:满5元可获赠奶茶*2,炸鸡*1
//阶梯满赠
if
(
GiftTypeEnum
.
TYPE_1
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
7
);
}
Collections
.
sort
(
benefitBeanDtos
);
BenefitBeanDto
dto
=
benefitBeanDtos
.
get
(
0
);
int
len
=
dto
.
getSendGoodsList
().
size
();
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
dto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
ActivityList
.
SendGoods
goods
=
new
ActivityList
.
SendGoods
();
goods
.
setQty
(
dto
.
getSendGoodsList
().
get
(
i
).
getSendNumber
());
goods
.
setGoodsName
(
dto
.
getSendGoodsList
().
get
(
i
).
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
activityList
.
add
(
notInShopping
);
}
}
/**
...
...
@@ -284,40 +314,69 @@ public class FullSharingService {
ActivityList
satisfyList
=
new
ActivityList
();
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
activityPrompt
=
activityPrompts
.
get
(
0
);
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
))
.
append
(
"</span> "
)
.
append
(
"还差 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元"
);
// 满足 X 元 减 Y 元 还差 Z元
satisfyList
.
setTipType
(
3
);
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
))
.
append
(
"</span> "
)
.
append
(
"还差 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元"
);
// 满足 X 元 减 Y 元 还差 Z元
satisfyList
.
setTipType
(
3
);
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
).
toString
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
}
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
())
&&
CollectionUtils
.
isNotEmpty
(
activityPrompt
.
getSendGoods
()))
{
satisfyList
.
setTipType
(
10
);
List
<
ActivityList
.
SendGoods
>
sends
=
new
ArrayList
();
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
SendGoods
sendGood
:
activityPrompt
.
getSendGoods
())
{
ActivityList
.
SendGoods
send
=
new
ActivityList
.
SendGoods
();
send
.
setGoodsName
(
sendGood
.
getGoodsName
());
send
.
setQty
(
sendGood
.
getSendNumber
());
sends
.
add
(
send
);
}
satisfyList
.
setSends
(
sends
);
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
1.00
/
100
).
toString
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
if
(
GiftTypeEnum
.
TYPE_1
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
satisfyList
.
setTipType
(
8
);
}
else
{
satisfyList
.
setTipType
(
9
);
}
if
(
activityPrompt
.
getTotalAmount
()>=
activityPrompt
.
getThresholdAmount
())
{
if
(
GiftTypeEnum
.
TYPE_1
.
getType
().
equals
(
activityResponseDto
.
getActivitySubType
()))
{
satisfyList
.
setTipType
(
6
);
}
else
{
satisfyList
.
setTipType
(
6
);
}
}
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder
.
append
(
"已减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
))
.
append
(
"</span> 元 再买 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
))
.
append
(
"</span> 元减 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
))
.
append
(
"</span> 元"
);
satisfyList
.
setTipType
(
4
);
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getAlreadyDiscountAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
activityList
.
add
(
satisfyList
);
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/GiftSharingService.java
View file @
5728124a
...
...
@@ -218,7 +218,7 @@ public class GiftSharingService {
public
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discountInfo
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
)
{
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
()))
.
filter
(
g
->
ActivityTypeEnum
.
TYPE_63
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_62
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_61
.
getCode
().
equals
(
g
.
getType
())
||
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
g
.
getType
())
)
.
findFirst
()
.
get
();
return
discount
;
...
...
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