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
jenkins
order-group
Commits
fb1ec4c5
Commit
fb1ec4c5
authored
Mar 09, 2020
by
姜海波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
购物车接口 计算满额减配送费 并返回结果
parent
650a7edc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
172 additions
and
16 deletions
+172
-16
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+19
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+22
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
+26
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/ShoppingCartNewService.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+101
-15
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
fb1ec4c5
...
@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountRequestDto {
...
@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountRequestDto {
*/
*/
private
List
<
CalculationDiscountGoods
>
goods
;
private
List
<
CalculationDiscountGoods
>
goods
;
private
Long
distributionFee
;
@Data
@Data
public
static
class
CalculationDiscountCoupon
{
public
static
class
CalculationDiscountCoupon
{
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
fb1ec4c5
...
@@ -22,6 +22,11 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -22,6 +22,11 @@ public class ActivityCalculationDiscountResponseDto {
private
String
msg
;
private
String
msg
;
/**
/**
* 优惠后运费
*/
private
Long
distributionFee
;
/**
* 集合外的为系统按照优先级计算出来的优惠信息
* 集合外的为系统按照优先级计算出来的优惠信息
* ,calculationResults集合中的为多种优惠方案
* ,calculationResults集合中的为多种优惠方案
* 计算出来的优惠信息列表,并按优惠力度倒序排列
* 计算出来的优惠信息列表,并按优惠力度倒序排列
...
@@ -84,6 +89,17 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -84,6 +89,17 @@ public class ActivityCalculationDiscountResponseDto {
*/
*/
private
List
<
SubtractStockVO
>
stocks
;
private
List
<
SubtractStockVO
>
stocks
;
/**
* 配送费
*/
private
Long
deliveryAmount
;
/**
* 优惠后 配送费
*/
private
Long
distributionFee
;
@Data
@Data
public
static
class
ActivityPrompt
{
public
static
class
ActivityPrompt
{
...
@@ -120,6 +136,7 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -120,6 +136,7 @@ public class ActivityCalculationDiscountResponseDto {
* 11-每满减
* 11-每满减
* 12-阶梯满减
* 12-阶梯满减
* 2-单品特价
* 2-单品特价
* 14-满额减配送费
* 21-单品折扣
* 21-单品折扣
* 3-优惠券
* 3-优惠券
* 5-整单满金额折
* 5-整单满金额折
...
@@ -134,6 +151,8 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -134,6 +151,8 @@ public class ActivityCalculationDiscountResponseDto {
* 83-整单满数量打折
* 83-整单满数量打折
*/
*/
private
Integer
type
;
private
Integer
type
;
private
Long
thresholdAmount
;
}
}
@Data
@Data
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
fb1ec4c5
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.vo.SubtractStockVO
;
import
cn.freemud.entities.vo.SubtractStockVO
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
...
@@ -93,6 +94,27 @@ public class ShoppingCartGoodsDto {
...
@@ -93,6 +94,27 @@ public class ShoppingCartGoodsDto {
*/
*/
private
List
<
SubtractStockVO
>
stocks
;
private
List
<
SubtractStockVO
>
stocks
;
/**
* 配送费
*/
private
Long
deliveryAmount
;
/**
* 减免后配送费
*/
private
Long
discountDeliveryAmount
;
/**
* 满多少额度 减免
*/
private
Long
thresholdAmount
;
/**
* 是否参加满额减免
*/
@Builder
.
Default
private
Boolean
isDiscountDelivery
=
false
;
@Data
@Data
public
static
class
CartGoodsDetailDto
{
public
static
class
CartGoodsDetailDto
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
View file @
fb1ec4c5
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
*/
*/
package
cn
.
freemud
.
entities
.
vo
;
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -91,4 +92,29 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
...
@@ -91,4 +92,29 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
* 会员卡优惠金额
* 会员卡优惠金额
*/
*/
private
Integer
cardDiscountAmount
;
private
Integer
cardDiscountAmount
;
/**
* 配送费
*/
private
Long
deliveryAmount
;
/**
* 减免后配送费
*/
private
Long
discountDeliveryAmount
;
/**
* 满多少额度 减免
*/
private
Long
thresholdAmount
;
/**
* 是否参加满额减免
*/
@Builder
.
Default
private
Boolean
isDiscountDelivery
=
false
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
View file @
fb1ec4c5
...
@@ -17,6 +17,7 @@ public enum ActivityTypeEnum {
...
@@ -17,6 +17,7 @@ public enum ActivityTypeEnum {
TYPE_11
(
11
,
"每满减"
),
TYPE_11
(
11
,
"每满减"
),
TYPE_12
(
12
,
"阶梯满减"
),
TYPE_12
(
12
,
"阶梯满减"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_13
(
13
,
"新用户立减"
),
TYPE_14
(
14
,
"满额减配送费"
),
TYPE_104
(
104
,
"x件y折"
),
TYPE_104
(
104
,
"x件y折"
),
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/ShoppingCartNewService.java
View file @
fb1ec4c5
...
@@ -95,7 +95,7 @@ public interface ShoppingCartNewService {
...
@@ -95,7 +95,7 @@ public interface ShoppingCartNewService {
Integer
orderType
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
menuType
);
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
menuType
,
Long
distributionFee
);
List
<
CartGoods
>
updateCartGoodsLegal
(
CartGoods
cartGoods
,
String
userId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
List
<
CartGoods
>
oldAllCartGoodsList
);
List
<
CartGoods
>
updateCartGoodsLegal
(
CartGoods
cartGoods
,
String
userId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
List
<
CartGoods
>
oldAllCartGoodsList
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
fb1ec4c5
...
@@ -215,6 +215,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -215,6 +215,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String
spuId
=
addShoppingCartGoodsRequestVo
.
getSpuId
();
String
spuId
=
addShoppingCartGoodsRequestVo
.
getSpuId
();
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
goodsId
=
StringUtils
.
isEmpty
(
skuId
)
?
spuId
:
skuId
;
String
goodsId
=
StringUtils
.
isEmpty
(
skuId
)
?
spuId
:
skuId
;
String
menuType
=
addShoppingCartGoodsRequestVo
.
getMenuType
();
Integer
orderType
=
addShoppingCartGoodsRequestVo
.
getOrderType
();
CartGoods
cartGoods
=
ShoppingCartConvertAdapter
.
convent2CartGoods
(
addShoppingCartGoodsRequestVo
);
CartGoods
cartGoods
=
ShoppingCartConvertAdapter
.
convent2CartGoods
(
addShoppingCartGoodsRequestVo
);
List
<
Long
>
productIds
=
new
ArrayList
<>();
List
<
Long
>
productIds
=
new
ArrayList
<>();
...
@@ -238,6 +240,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -238,6 +240,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
Integer
checkQty
=
allCartGoodsList
.
indexOf
(
cartGoods
)
!=
-
1
?
Integer
checkQty
=
allCartGoodsList
.
indexOf
(
cartGoods
)
!=
-
1
?
allCartGoodsList
.
get
(
allCartGoodsList
.
indexOf
(
cartGoods
)).
getQty
()
+
cartGoods
.
getQty
()
:
cartGoods
.
getQty
();
allCartGoodsList
.
get
(
allCartGoodsList
.
indexOf
(
cartGoods
)).
getQty
()
+
cartGoods
.
getQty
()
:
cartGoods
.
getQty
();
//查询多个商品库存信息
//查询多个商品库存信息
queryManyGoodsStocks
(
addShoppingCartGoodsRequestVo
,
productIds
,
productBeanListSpuClass
,
skuId
,
checkQty
);
queryManyGoodsStocks
(
addShoppingCartGoodsRequestVo
,
productIds
,
productBeanListSpuClass
,
skuId
,
checkQty
);
...
@@ -253,7 +256,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -253,7 +256,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
// 获取优惠信息
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
addShoppingCartGoodsRequestVo
.
getOrderType
(),
allCartGoodsList
,
BusinessTypeEnum
.
getByType
(
addShoppingCartGoodsRequestVo
.
getMenuType
()).
getCode
());
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
allCartGoodsList
,
new
ArrayList
(),
new
ArrayList
<>());
// 当商品数量被设为0时
// 当商品数量被设为0时
if
(
Objects
.
equals
(
cartGoods
.
getQty
(),
0
))
{
if
(
Objects
.
equals
(
cartGoods
.
getQty
(),
0
))
{
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoods
.
getCartGoodsUid
(),
0
,
""
,
shoppingCartBaseService
);
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoods
.
getCartGoodsUid
(),
0
,
""
,
shoppingCartBaseService
);
...
@@ -314,6 +320,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -314,6 +320,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String
appId
=
updateShoppingCartGoodsQtyRequestVo
.
getAppId
();
String
appId
=
updateShoppingCartGoodsQtyRequestVo
.
getAppId
();
String
cartGoodsUid
=
updateShoppingCartGoodsQtyRequestVo
.
getCartGoodsUid
();
String
cartGoodsUid
=
updateShoppingCartGoodsQtyRequestVo
.
getCartGoodsUid
();
Integer
qty
=
updateShoppingCartGoodsQtyRequestVo
.
getQty
();
Integer
qty
=
updateShoppingCartGoodsQtyRequestVo
.
getQty
();
String
menuType
=
updateShoppingCartGoodsQtyRequestVo
.
getMenuType
();
Integer
orderType
=
updateShoppingCartGoodsQtyRequestVo
.
getOrderType
();
// 先验证商品是否存在
// 先验证商品是否存在
CartGoods
cartGoods
=
assortmentSdkService
.
getCartGoodsBySdk
(
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
""
,
shoppingCartBaseService
);
CartGoods
cartGoods
=
assortmentSdkService
.
getCartGoodsBySdk
(
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
""
,
shoppingCartBaseService
);
if
(
cartGoods
==
null
)
{
if
(
cartGoods
==
null
)
{
...
@@ -336,7 +345,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -336,7 +345,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
(),
""
,
shoppingCartBaseService
);
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
(),
""
,
shoppingCartBaseService
);
// 获取优惠信息
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
updateShoppingCartGoodsQtyRequestVo
.
getOrderType
(),
cartGoodsList
,
BusinessTypeEnum
.
getByType
(
updateShoppingCartGoodsQtyRequestVo
.
getMenuType
()).
getCode
());
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
cartGoodsList
,
new
ArrayList
(),
new
ArrayList
<>());
if
(
calculationDiscountResult
==
null
)
{
if
(
calculationDiscountResult
==
null
)
{
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
// return shoppingCartGoodsResponseVo;
// return shoppingCartGoodsResponseVo;
...
@@ -409,6 +419,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -409,6 +419,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String
appId
=
shoppingCartInfoRequestVo
.
getAppId
();
String
appId
=
shoppingCartInfoRequestVo
.
getAppId
();
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
// 获取购物车商品
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
...
@@ -431,8 +443,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -431,8 +443,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupon
.
setActivityCode
(
activityCode
);
coupon
.
setActivityCode
(
activityCode
);
coupons
.
add
(
coupon
);
coupons
.
add
(
coupon
);
}
}
// 获取优惠信息
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
(),
cartGoodsList
,
coupons
,
null
,
BusinessTypeEnum
.
getByType
(
shoppingCartInfoRequestVo
.
getMenuType
()).
getCode
());
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
cartGoodsList
,
coupons
,
null
);
if
(
calculationDiscountResult
==
null
)
{
if
(
calculationDiscountResult
==
null
)
{
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
}
}
...
@@ -530,6 +544,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -530,6 +544,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
tableNumber
=
assortmentCustomerInfoVo
.
getTableNumber
();
String
tableNumber
=
assortmentCustomerInfoVo
.
getTableNumber
();
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
...
@@ -591,7 +607,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -591,7 +607,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
}
}
// 获取优惠信息
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
(),
cartGoodsList
,
coupons
,
sendGoodsList
,
BusinessTypeEnum
.
getByType
(
shoppingCartInfoRequestVo
.
getMenuType
()).
getCode
()
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
userLoginInfoDto
.
getWxAppid
(),
orderType
,
cartGoodsList
,
coupons
,
sendGoodsList
);
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
());
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
());
...
@@ -611,6 +627,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -611,6 +627,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsDto.getTotalAmount() - packAmount);
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsDto.getTotalAmount() - packAmount);
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsDto.getOriginalTotalAmount() - packAmount);
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsDto.getOriginalTotalAmount() - packAmount);
shoppingCartGoodsDto.setPackageAmount(packAmount);*/
shoppingCartGoodsDto.setPackageAmount(packAmount);*/
shoppingCartGoodsDto
.
setDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDeliveryAmount
());
shoppingCartGoodsDto
.
setDiscountDeliveryAmount
(
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
());
shoppingCartGoodsDto
.
setThresholdAmount
(
shoppingCartGoodsResponseVo
.
getThresholdAmount
());
shoppingCartGoodsDto
.
setIsDiscountDelivery
(
shoppingCartGoodsResponseVo
.
getIsDiscountDelivery
());
return
ResponseUtil
.
success
(
shoppingCartGoodsDto
);
return
ResponseUtil
.
success
(
shoppingCartGoodsDto
);
}
}
...
@@ -671,8 +691,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -671,8 +691,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* @return
* @return
*/
*/
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
String
partnerId
,
String
storeId
,
String
userId
,
String
wxAppid
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
String
menuType
)
{
String
partnerId
,
String
storeId
,
String
userId
,
String
wxAppid
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
String
menuType
,
Long
distributionFee
)
{
return
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
wxAppid
,
orderType
,
cartGoodsList
,
new
ArrayList
<>(),
new
ArrayList
<>(),
menuType
);
return
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
wxAppid
,
orderType
,
cartGoodsList
,
new
ArrayList
<>(),
new
ArrayList
<>(),
menuType
,
distributionFee
);
}
}
/**
/**
...
@@ -687,15 +707,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -687,15 +707,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
menuType
)
{
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
menuType
,
Long
distributionFee
)
{
// 当购物车中只有商品券并且未使用折扣券时,不调用接口计算
// if (cartGoodsList.size() == 1
// && coupons.size() == 0) {
// if (cartGoodsList.get(0).getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) {
// return null;
// }
// }
//cartGoodsList = cartGoodsList.stream().filter(goods -> ObjectUtils.notEqual(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), goods.getGoodsType())).collect(Collectors.toList());
ActivityCalculationDiscountRequestDto
activityCalculationDiscountRequestDto
=
getActivityCalculationDiscountRequestDto
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
);
ActivityCalculationDiscountRequestDto
activityCalculationDiscountRequestDto
=
getActivityCalculationDiscountRequestDto
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
);
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
// 校验后有效的商品券map
// 校验后有效的商品券map
...
@@ -746,6 +759,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -746,6 +759,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityCalculationDiscountRequestDto
.
setGoods
(
calculationDiscountGoodsList
);
activityCalculationDiscountRequestDto
.
setGoods
(
calculationDiscountGoodsList
);
activityCalculationDiscountRequestDto
.
setCoupons
(
coupons
);
activityCalculationDiscountRequestDto
.
setCoupons
(
coupons
);
activityCalculationDiscountRequestDto
.
setOrgIds
(
commonService
.
getOrgIds
(
partnerId
,
storeId
));
activityCalculationDiscountRequestDto
.
setOrgIds
(
commonService
.
getOrgIds
(
partnerId
,
storeId
));
activityCalculationDiscountRequestDto
.
setDistributionFee
(
distributionFee
);
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
try
{
try
{
activityCalculationDiscountResponseDto
=
activityClient
.
calculationDiscount
(
activityCalculationDiscountRequestDto
);
activityCalculationDiscountResponseDto
=
activityClient
.
calculationDiscount
(
activityCalculationDiscountRequestDto
);
...
@@ -757,6 +771,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -757,6 +771,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if
(
activityCalculationDiscountResponseDto
!=
null
&&
StringUtils
.
equals
(
activityCalculationDiscountResponseDto
.
getStatusCode
(),
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
))
{
if
(
activityCalculationDiscountResponseDto
!=
null
&&
StringUtils
.
equals
(
activityCalculationDiscountResponseDto
.
getStatusCode
(),
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
result
=
activityCalculationDiscountResponseDto
.
getResult
();
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
result
=
activityCalculationDiscountResponseDto
.
getResult
();
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setValidCouponMap
(
validCouponMap
);
result
.
setDeliveryAmount
(
distributionFee
);
result
.
setDistributionFee
(
result
.
getDistributionFee
());
return
result
;
return
result
;
}
}
throw
new
ServiceException
(
ResponseResult
.
OPERATE_TOO_OFTEN
);
throw
new
ServiceException
(
ResponseResult
.
OPERATE_TOO_OFTEN
);
...
@@ -804,6 +820,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -804,6 +820,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
activityCalculationDiscountRequestDto
;
return
activityCalculationDiscountRequestDto
;
}
}
/**
* * 构建 ActivityCalculationDiscountRequestDto
*
* @param partnerId
* @param storeId
* @param userId
* @param appId
* @param orderType
* @param distributionFee
* @return
*/
private
ActivityCalculationDiscountRequestDto
getActivityCalculationDiscountRequestDto
(
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
Long
distributionFee
)
{
ActivityCalculationDiscountRequestDto
activityCalculationDiscountRequestDto
=
new
ActivityCalculationDiscountRequestDto
();
activityCalculationDiscountRequestDto
.
setPartnerCode
(
partnerId
);
activityCalculationDiscountRequestDto
.
setStoreId
(
storeId
);
activityCalculationDiscountRequestDto
.
setIsShowGoodsActivity
(
1
);
activityCalculationDiscountRequestDto
.
setUserId
(
userId
);
activityCalculationDiscountRequestDto
.
setVer
(
1
);
activityCalculationDiscountRequestDto
.
setAppId
(
appId
);
activityCalculationDiscountRequestDto
.
setDistributionFee
(
distributionFee
);
ActivityChannelEnum
activityChannelEnum
=
PropertyConvertUtil
.
orderTypeConvert2ActivityChannel
(
orderType
);
if
(!
Objects
.
isNull
(
activityChannelEnum
))
{
activityCalculationDiscountRequestDto
.
setChannel
(
activityChannelEnum
.
getCode
());
}
return
activityCalculationDiscountRequestDto
;
}
/**
/**
* 累加需加入计算的商品
* 累加需加入计算的商品
...
@@ -943,6 +986,24 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -943,6 +986,24 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService
buyAndGiftsPromotionService
=(
BuyAndGiftsPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
BUY_GIFTS
);
BuyAndGiftsPromotionService
buyAndGiftsPromotionService
=(
BuyAndGiftsPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
BUY_GIFTS
);
buyAndGiftsPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
buyAndGiftsPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
/**
* 满额减配送费
*/
if
(
calculationDiscountResult
!=
null
&&
CollectionUtils
.
isNotEmpty
(
calculationDiscountResult
.
getDiscounts
()))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
discount
=
calculationDiscountResult
.
getDiscounts
().
stream
()
.
filter
(
discount1
->
{
return
discount1
.
getType
().
equals
(
ActivityTypeEnum
.
TYPE_14
.
getCode
());})
.
findFirst
().
get
();
if
(
discount
!=
null
)
{
shoppingCartGoodsResponseVo
.
setDeliveryAmount
(
calculationDiscountResult
.
getDeliveryAmount
());
shoppingCartGoodsResponseVo
.
setDiscountDeliveryAmount
(
calculationDiscountResult
.
getDistributionFee
());
shoppingCartGoodsResponseVo
.
setThresholdAmount
(
discount
.
getThresholdAmount
());
shoppingCartGoodsResponseVo
.
setIsDiscountDelivery
(
true
);
}
}
}
}
/**
/**
...
@@ -1341,4 +1402,29 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1341,4 +1402,29 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
point2DList
;
return
point2DList
;
}
}
/**
* 获取优惠
*/
private
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getCalculationDiscountResult
(
String
menuType
,
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
String
wxappid
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
){
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
null
;
//外卖场景下 查询门店配送信息
if
(
BusinessTypeEnum
.
SAAS_DELIVERY
.
getCode
().
equals
(
menuType
)){
//TODO 查询门店信息
StoreResponseDto
storeResponseDto
=
storeService
.
getStoreInfo
(
partnerId
,
storeId
);
//TODO 查询门店外卖信息
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
storeService
.
getStoreDeliveryInfo
(
storeResponseDto
,
wxappid
);
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
cartGoodsList
,
coupons
,
sendGoodsList
,
BusinessTypeEnum
.
getByType
(
menuType
).
getCode
(),
storeDeliveryInfoDto
.
getDeliveryAmount
());
}
else
{
calculationDiscountResult
=
this
.
getActivityCalculationDiscountResponse
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
cartGoodsList
,
coupons
,
sendGoodsList
,
BusinessTypeEnum
.
getByType
(
menuType
).
getCode
(),
null
);
}
return
calculationDiscountResult
;
}
}
}
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