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
1ee962b0
Commit
1ee962b0
authored
Feb 23, 2021
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
满赠提示
parent
4e872244
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
342 additions
and
24 deletions
+342
-24
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
+81
-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/BuySendPromotionService.java
+9
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullPromotionService.java
+56
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullSubtractionActivityServiceImpl.java
+59
-10
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+2
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/FullSharingService.java
+48
-2
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
1ee962b0
...
@@ -114,13 +114,30 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -114,13 +114,30 @@ public class ActivityCalculationDiscountResponseDto {
@Data
@Data
public
static
class
ActivityPrompt
{
public
static
class
ActivityPrompt
{
/**
* 活动名称
*/
private
String
acitivityName
;
private
String
acitivityName
;
/**
* 活动号
*/
private
String
activityCode
;
private
String
activityCode
;
/**
* 活动类型
*/
private
Integer
activityType
;
private
Integer
activityType
;
private
Long
discountAmout
;
private
Long
discountAmout
;
/**
* 门槛金额
*/
private
Long
thresholdAmount
;
private
Long
thresholdAmount
;
private
Long
totalAmount
;
private
Long
totalAmount
;
/**
* 已经优惠金额
*/
private
Long
alreadyDiscountAmount
;
private
Long
alreadyDiscountAmount
;
private
Integer
activitySubType
;
private
List
<
SendGoods
>
sendGoods
;
}
}
@Data
@Data
...
@@ -512,6 +529,12 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -512,6 +529,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 @
1ee962b0
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
com.freemud.application.sdk.api.promotioncenter.domain.ActivityBenefitVO
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -126,7 +127,10 @@ public class ActivityResponseDto {
...
@@ -126,7 +127,10 @@ public class ActivityResponseDto {
private
String
creater
;
private
String
creater
;
private
String
updateor
;
private
String
updateor
;
/**
* 活动子类型 1 阶梯 2 每满
*/
private
Integer
activitySubType
;
/**
/**
* 优惠列表(单品促销不需要此字段,传入此字段则不允许保存。)
* 优惠列表(单品促销不需要此字段,传入此字段则不允许保存。)
*/
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/BenefitBeanDto.java
View file @
1ee962b0
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.Min
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
@Data
public
class
BenefitBeanDto
{
public
class
BenefitBeanDto
{
/**
/**
...
@@ -22,7 +27,82 @@ public class BenefitBeanDto {
...
@@ -22,7 +27,82 @@ public class BenefitBeanDto {
private
Integer
benefitSeq
;
private
Integer
benefitSeq
;
private
Integer
benefitType
;
private
Integer
benefitType
;
private
List
<
ActivitySendGoodsVO
>
sendGoodsList
;
@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/calculate/CalculationSharingDiscountResponseDto.java
View file @
1ee962b0
...
@@ -114,8 +114,15 @@ public class CalculationSharingDiscountResponseDto {
...
@@ -114,8 +114,15 @@ public class CalculationSharingDiscountResponseDto {
private
Long
thresholdAmount
;
private
Long
thresholdAmount
;
private
Long
totalAmount
;
private
Long
totalAmount
;
private
Long
alreadyDiscountAmount
;
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
@Data
public
static
class
Discount
{
public
static
class
Discount
{
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ActivityList.java
View file @
1ee962b0
...
@@ -2,6 +2,8 @@ package cn.freemud.entities.vo;
...
@@ -2,6 +2,8 @@ package cn.freemud.entities.vo;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
*
*
...
@@ -49,5 +51,12 @@ public class ActivityList {
...
@@ -49,5 +51,12 @@ public class ActivityList {
private
String
againBuy
;
private
String
againBuy
;
//在减
//在减
private
String
agianDeduct
;
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 @
1ee962b0
...
@@ -16,6 +16,7 @@ public enum ActivityTypeEnum {
...
@@ -16,6 +16,7 @@ public enum ActivityTypeEnum {
TYPE_1
(
1
,
"整单满减"
),
TYPE_1
(
1
,
"整单满减"
),
TYPE_11
(
11
,
"每满减"
),
TYPE_11
(
11
,
"每满减"
),
TYPE_12
(
12
,
"阶梯满减"
),
TYPE_12
(
12
,
"阶梯满减"
),
TYPE_230
(
230
,
"满赠"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_104
(
104
,
"x件y折"
),
TYPE_104
(
104
,
"x件y折"
),
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/GiftTypeEnum.java
0 → 100644
View file @
1ee962b0
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 @
1ee962b0
...
@@ -80,7 +80,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
...
@@ -80,7 +80,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
=
discountForGift
.
get
(
k
);
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
discount
=
goods
.
getDiscounts
()
.
stream
()
.
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
()
.
findFirst
()
.
get
();
.
get
();
CartGoods
cartGood
=
new
CartGoods
();
CartGoods
cartGood
=
new
CartGoods
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuySendPromotionService.java
View file @
1ee962b0
...
@@ -60,7 +60,8 @@ public class BuySendPromotionService implements IPromotionService {
...
@@ -60,7 +60,8 @@ public class BuySendPromotionService implements IPromotionService {
return
;
return
;
}
}
//Todo 获取多个赠品list
//Todo 获取多个赠品list
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivityLists
=
getSendActivityList
(
ActivityTypeEnum
.
TYPE_61
,
sendActivityList
);
List
<
Integer
>
integers
=
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_61
.
getCode
(),
ActivityTypeEnum
.
TYPE_230
.
getCode
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivityLists
=
getSendActivityList
(
integers
,
sendActivityList
);
//Todo 获取多个赠品list
//Todo 获取多个赠品list
if
(
sendActivityLists
.
size
()
==
0
)
{
if
(
sendActivityLists
.
size
()
==
0
)
{
...
@@ -145,7 +146,11 @@ public class BuySendPromotionService implements IPromotionService {
...
@@ -145,7 +146,11 @@ public class BuySendPromotionService implements IPromotionService {
return
;
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
())
||
ObjectUtils
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
t
.
getActivityType
()))
.
collect
(
Collectors
.
toList
()
);
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
()
==
null
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
if
(
CollectionUtils
.
isNotEmpty
(
sendGoods1
))
{
if
(
CollectionUtils
.
isNotEmpty
(
sendGoods1
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendActivity
=
sendGoods1
.
get
(
0
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
sendActivity
=
sendGoods1
.
get
(
0
);
...
@@ -199,9 +204,9 @@ public class BuySendPromotionService implements IPromotionService {
...
@@ -199,9 +204,9 @@ public class BuySendPromotionService implements IPromotionService {
* @param type
* @param type
* @return
* @return
*/
*/
private
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
getSendActivityList
(
ActivityTypeEnum
type
,
private
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
getSendActivityList
(
List
<
Integer
>
type
,
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivityList
)
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
sendActivityList
)
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
collect
=
sendActivityList
.
stream
().
filter
(
c
->
c
.
getActivityType
().
equals
(
type
.
getCod
e
())).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
SendActivity
>
collect
=
sendActivityList
.
stream
().
filter
(
c
->
type
.
contains
(
c
.
getActivityTyp
e
())).
collect
(
Collectors
.
toList
());
return
collect
;
return
collect
;
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullPromotionService.java
View file @
1ee962b0
...
@@ -6,10 +6,12 @@ import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
...
@@ -6,10 +6,12 @@ import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.utils.WebUtil
;
import
cn.freemud.utils.WebUtil
;
import
com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService
;
import
com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService
;
import
lombok.experimental.var
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -54,6 +56,7 @@ public class FullPromotionService implements IPromotionService {
...
@@ -54,6 +56,7 @@ public class FullPromotionService implements IPromotionService {
List
<
ActivityTypeEnum
>
activityTypeEnums
=
new
LinkedList
<>();
List
<
ActivityTypeEnum
>
activityTypeEnums
=
new
LinkedList
<>();
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_11
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_11
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_12
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_12
);
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_230
);
//调用促销统一活动查询
//调用促销统一活动查询
//过滤出参与的满减(目前只有每满减和阶梯满减)
//过滤出参与的满减(目前只有每满减和阶梯满减)
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
...
@@ -80,12 +83,14 @@ public class FullPromotionService implements IPromotionService {
...
@@ -80,12 +83,14 @@ public class FullPromotionService implements IPromotionService {
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
//调用没有加入购物车的提示语的方法
//调用没有加入购物车的提示语的方法
setMessageNotInShoppingCart
(
messageBuilder
,
activityResponseDto
,
benefitBeanDtos
,
benefitBeanDto
,
activityList
);
setMessageNotInShoppingCart
(
messageBuilder
,
activityResponseDto
,
benefitBeanDtos
,
benefitBeanDto
,
activityList
);
}
else
{
}
else
{
//促销返回满减提示语
//促销返回满减提示语
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList1
=
calculationDiscountResult
.
getDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList1
=
calculationDiscountResult
.
getDiscounts
();
//构建提示语
//构建提示语
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
)){
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
)){
// 还差多少提示
setMessageSatisfyCart
(
messageBuilder
,
activityPrompts
,
activityResponseDto
,
activityList
);
setMessageSatisfyCart
(
messageBuilder
,
activityPrompts
,
activityResponseDto
,
activityList
);
}
else
{
}
else
{
setMessageNoSatisfyCart
(
messageBuilder
,
discountList1
,
activityList
);
setMessageNoSatisfyCart
(
messageBuilder
,
discountList1
,
activityList
);
...
@@ -145,7 +150,7 @@ public class FullPromotionService implements IPromotionService {
...
@@ -145,7 +150,7 @@ public class FullPromotionService implements IPromotionService {
.
append
(
"</span> 元"
);
.
append
(
"</span> 元"
);
//满足 x 元 减 Y 元 ,最高 减 Z元
//满足 x 元 减 Y 元 ,最高 减 Z元
cn
.
freemud
.
entities
.
vo
.
ActivityList
notInShopping
=
new
ActivityList
();
ActivityList
notInShopping
=
new
ActivityList
();
notInShopping
.
setTipType
(
1
);
notInShopping
.
setTipType
(
1
);
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
notInShopping
.
setSatisfy
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
notInShopping
.
setDeduct
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getDiscountAmount
()
*
1.00
/
100
).
toString
());
notInShopping
.
setDeduct
(
WebUtil
.
formatAmount
(
benefitBeanDto
.
getDiscountAmount
()
*
1.00
/
100
).
toString
());
...
@@ -174,6 +179,32 @@ public class FullPromotionService implements IPromotionService {
...
@@ -174,6 +179,32 @@ public class FullPromotionService implements IPromotionService {
activityList
.
add
(
notInShopping
);
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
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
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
(
goods
.
getQty
());
goods
.
setGoodsName
(
goods
.
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
break
;
}
}
}
}
/**
/**
...
@@ -203,9 +234,13 @@ public class FullPromotionService implements IPromotionService {
...
@@ -203,9 +234,13 @@ public class FullPromotionService implements IPromotionService {
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
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
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
}
else
{
Long
toDiscountAmout
;
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
//每满减
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
())
&&
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
())))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
...
@@ -223,6 +258,23 @@ public class FullPromotionService implements IPromotionService {
...
@@ -223,6 +258,23 @@ public class FullPromotionService implements IPromotionService {
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
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
());
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
);
}
}
activityList
.
add
(
satisfyList
);
activityList
.
add
(
satisfyList
);
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/FullSubtractionActivityServiceImpl.java
View file @
1ee962b0
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto;
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.vo.ActivityList
;
import
cn.freemud.entities.vo.ActivityList
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.WebUtil
;
import
cn.freemud.utils.WebUtil
;
...
@@ -192,7 +193,7 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -192,7 +193,7 @@ public class FullSubtractionActivityServiceImpl {
public
PromotionMessageDto
getFullPromotionActivityInfo
(
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
public
PromotionMessageDto
getFullPromotionActivityInfo
(
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ArrayList
<
ActivityList
>
activityList
)
{
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
)
{
if
(
activityQueryResponseDto
==
null
)
{
return
null
;
return
null
;
}
}
...
@@ -204,7 +205,8 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -204,7 +205,8 @@ public class FullSubtractionActivityServiceImpl {
activityQueryDtoList
=
activityQueryDtoList
.
parallelStream
().
filter
(
k
->
{
activityQueryDtoList
=
activityQueryDtoList
.
parallelStream
().
filter
(
k
->
{
Integer
activityType
=
k
.
getActivityType
();
Integer
activityType
=
k
.
getActivityType
();
return
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityType
)
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
());
}).
limit
(
1
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
activityQueryDtoList
))
{
if
(
CollectionUtils
.
isEmpty
(
activityQueryDtoList
))
{
return
promotionMessageDto
;
return
promotionMessageDto
;
...
@@ -214,7 +216,7 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -214,7 +216,7 @@ public class FullSubtractionActivityServiceImpl {
promotionMessageDto
.
setActivityName
(
activityResponseDto
.
getActivityName
());
promotionMessageDto
.
setActivityName
(
activityResponseDto
.
getActivityName
());
promotionMessageDto
.
setActivityType
(
activityResponseDto
.
getActivityType
());
promotionMessageDto
.
setActivityType
(
activityResponseDto
.
getActivityType
());
promotionMessageDto
.
setPromotionAmount
(
0L
);
promotionMessageDto
.
setPromotionAmount
(
0L
);
//没有加入购物车
//
没有加入购物车
if
(
calculationDiscountResult
==
null
)
{
if
(
calculationDiscountResult
==
null
)
{
List
<
BenefitBeanDto
>
benefitBeanDtos
=
activityResponseDto
.
getBenefits
();
List
<
BenefitBeanDto
>
benefitBeanDtos
=
activityResponseDto
.
getBenefits
();
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
BenefitBeanDto
benefitBeanDto
=
benefitBeanDtos
.
get
(
0
);
...
@@ -258,15 +260,42 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -258,15 +260,42 @@ public class FullSubtractionActivityServiceImpl {
activityList
.
add
(
notInShopping
);
activityList
.
add
(
notInShopping
);
}
}
}
}
}
else
{
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
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
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
(
goods
.
getQty
());
goods
.
setGoodsName
(
goods
.
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
break
;
}
}
}
// 有商品在购物车
else
{
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
>
activityPrompts
=
calculationDiscountResult
.
getActivityPrompts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList
=
calculationDiscountResult
.
getDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discountList
=
calculationDiscountResult
.
getDiscounts
();
//加入商品满足购物车
//加入商品满足购物车
还差多少提示
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
))
{
if
(
CollectionUtils
.
isNotEmpty
(
activityPrompts
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
activityPrompt
=
activityPrompts
.
get
(
0
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
ActivityPrompt
activityPrompt
=
activityPrompts
.
get
(
0
);
ActivityList
satisfyList
=
new
ActivityList
();
ActivityList
satisfyList
=
new
ActivityList
();
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
if
(
activityPrompt
.
getAlreadyDiscountAmount
()
==
null
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
||
activityPrompt
.
getAlreadyDiscountAmount
()
==
0
)
{
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
messageBuilder
.
append
(
"满 <span style=\"color:#fa5555\">"
)
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
))
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
.
append
(
"</span> 减 <span style=\"color:#fa5555\">"
)
...
@@ -280,9 +309,12 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -280,9 +309,12 @@ public class FullSubtractionActivityServiceImpl {
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setSatisfy
(
WebUtil
.
formatAmount
(
activityPrompt
.
getThresholdAmount
()
*
1.00
/
100
).
toString
());
satisfyList
.
setDeduct
(
WebUtil
.
formatAmount
(
activityPrompt
.
getDiscountAmout
()
*
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
());
satisfyList
.
setMissing
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
1.00
/
100
).
toString
());
}
else
{
}
else
{
Long
toDiscountAmout
;
Long
toDiscountAmout
;
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
()))
{
//每满减
if
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
activityResponseDto
.
getActivityType
())
||
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_230
.
getCode
(),
activityResponseDto
.
getActivityType
())
&&
GiftTypeEnum
.
TYPE_2
.
equals
(
activityResponseDto
.
getActivitySubType
())))
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
()
+
activityPrompt
.
getAlreadyDiscountAmount
();
}
else
{
}
else
{
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
toDiscountAmout
=
activityPrompt
.
getDiscountAmout
();
...
@@ -300,7 +332,24 @@ public class FullSubtractionActivityServiceImpl {
...
@@ -300,7 +332,24 @@ public class FullSubtractionActivityServiceImpl {
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
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
());
satisfyList
.
setAgianDeduct
(
WebUtil
.
formatAmount
(
toDiscountAmout
*
1.00
/
100
).
toString
());
}
}
}
else
{
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
);
}
}
}
else
{
discountList
=
discountList
.
parallelStream
().
filter
(
k
->
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
k
.
getType
())
discountList
=
discountList
.
parallelStream
().
filter
(
k
->
(
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_11
.
getCode
(),
k
.
getType
())
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
k
.
getType
()))).
collect
(
Collectors
.
toList
());
||
Objects
.
equals
(
ActivityTypeEnum
.
TYPE_12
.
getCode
(),
k
.
getType
()))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
discountList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
discountList
))
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
1ee962b0
...
@@ -1445,7 +1445,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1445,7 +1445,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getSendGoods
()))
{
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getSendGoods
()))
{
if
(
calculationDiscountResult
.
getSendGoods
().
stream
()
if
(
calculationDiscountResult
.
getSendGoods
().
stream
()
.
anyMatch
(
sendActivity
->
Objects
.
equals
(
sendActivity
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_6
.
getCode
())
.
anyMatch
(
sendActivity
->
Objects
.
equals
(
sendActivity
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_6
.
getCode
())
||
Objects
.
equals
(
sendActivity
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_61
.
getCode
())))
{
||
Objects
.
equals
(
sendActivity
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_61
.
getCode
())
||
Objects
.
equals
(
sendActivity
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_230
.
getCode
())))
{
// 买赠
// 买赠
BuySendPromotionService
buySendPromotionService
=
(
BuySendPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
BUY_ONE_SEND
);
BuySendPromotionService
buySendPromotionService
=
(
BuySendPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
BUY_ONE_SEND
);
buySendPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
buySendPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/FullSharingService.java
View file @
1ee962b0
...
@@ -11,6 +11,7 @@ import cn.freemud.entities.vo.ActivityTip;
...
@@ -11,6 +11,7 @@ import cn.freemud.entities.vo.ActivityTip;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.ShoppingCartGoodsResponseVo
;
import
cn.freemud.entities.vo.ShoppingCartGoodsResponseVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GiftTypeEnum
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.service.ActivityService
;
import
cn.freemud.utils.WebUtil
;
import
cn.freemud.utils.WebUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -62,6 +63,7 @@ public class FullSharingService {
...
@@ -62,6 +63,7 @@ public class FullSharingService {
/**
/**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/
*/
activityTypeEnums
.
add
(
ActivityTypeEnum
.
TYPE_230
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
ActivityQueryResponseDto
activityQueryResponseDto
=
activityService
.
queryActivityByType
(
activityQueryDto
,
activityTypeEnums
,
null
);
if
(
null
==
activityQueryResponseDto
||
CollectionUtils
.
isEmpty
(
activityQueryResponseDto
.
getResult
()))
{
if
(
null
==
activityQueryResponseDto
||
CollectionUtils
.
isEmpty
(
activityQueryResponseDto
.
getResult
()))
{
return
;
return
;
...
@@ -96,7 +98,8 @@ public class FullSharingService {
...
@@ -96,7 +98,8 @@ public class FullSharingService {
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
discountResult
.
getDiscounts
();
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
discountResult
.
getDiscounts
();
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
fullDiscountsList
=
discounts
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
fullDiscountsList
=
discounts
.
stream
()
.
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
())
||
ActivityTypeEnum
.
TYPE_230
.
getCode
().
equals
(
d
.
getType
()))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
/**
/**
* 设置到响应中 总的满减优惠金额
* 设置到响应中 总的满减优惠金额
...
@@ -248,7 +251,7 @@ public class FullSharingService {
...
@@ -248,7 +251,7 @@ public class FullSharingService {
notInShopping
.
setMaxDeduct
(
WebUtil
.
formatAmount
(
activityResponseDto
.
getMaxMoney
()
*
1.00
/
100
).
toString
());
notInShopping
.
setMaxDeduct
(
WebUtil
.
formatAmount
(
activityResponseDto
.
getMaxMoney
()
*
1.00
/
100
).
toString
());
activityList
.
add
(
notInShopping
);
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
();
int
len
=
benefitBeanDtos
.
size
();
// // 购物车中无商品或者存在与满减互斥的活动
// // 购物车中无商品或者存在与满减互斥的活动
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
for
(
int
i
=
len
-
1
;
i
>=
0
;
i
--)
{
...
@@ -270,6 +273,32 @@ public class FullSharingService {
...
@@ -270,6 +273,32 @@ public class FullSharingService {
activityList
.
add
(
notInShopping
);
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
.
equals
(
activityResponseDto
.
getActivitySubType
()))
{
notInShopping
.
setTipType
(
6
);
}
//每满赠
else
if
(
GiftTypeEnum
.
TYPE_2
.
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
(
goods
.
getQty
());
goods
.
setGoodsName
(
goods
.
getGoodsName
());
sends
.
add
(
goods
);
}
notInShopping
.
setSends
(
sends
);
break
;
}
}
}
}
/**
/**
...
@@ -319,6 +348,23 @@ public class FullSharingService {
...
@@ -319,6 +348,23 @@ public class FullSharingService {
satisfyList
.
setAgainBuy
(
WebUtil
.
formatAmount
((
activityPrompt
.
getThresholdAmount
()
-
activityPrompt
.
getTotalAmount
())
*
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
());
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
);
}
}
activityList
.
add
(
satisfyList
);
activityList
.
add
(
satisfyList
);
}
}
...
...
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