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
4faa71f8
Commit
4faa71f8
authored
Jun 05, 2020
by
dingkai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
围餐
parent
b9e3d252
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
322 additions
and
58 deletions
+322
-58
assortment-ordercenter-sdk/pom.xml
+1
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+6
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/AssortmentGroupUpdateOrderRequest.java
+5
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/AssortmentSdkUpdateOrderProductInfoRequest.java
+5
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+27
-44
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+11
-3
order-application-service/src/main/java/cn/freemud/adapter/PromotionAdapter.java
+15
-5
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/ShoppingCartGoodsResponse.java
+4
-0
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/PreviewOrderInfoVo.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/impl/ActivityCalculationDiscountService.java
+24
-2
order-application-service/src/main/java/cn/freemud/service/impl/DefaultPromotionService.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+3
-2
order-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
+125
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/GroupOrderUpdateReq.java
+3
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMealServiceImpl.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionForWcService.java
+88
-0
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
4faa71f8
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
<dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
<artifactId>
ordercenter-sdk
</artifactId>
<artifactId>
ordercenter-sdk
</artifactId>
<version>
1.2.
2
.RELEASE
</version>
<version>
1.2.
3
.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
4faa71f8
...
@@ -2406,6 +2406,8 @@ public class OrderSdkAdapter {
...
@@ -2406,6 +2406,8 @@ public class OrderSdkAdapter {
originalAmount
=
updateOrderItemsAndSettlements
(
orderItemList
,
orderSettlementCreateReqList
,
orderCostCreateReqs
,
products
,
requestVO
.
getAccounts
(),
requestVO
.
getCompanyId
());
originalAmount
=
updateOrderItemsAndSettlements
(
orderItemList
,
orderSettlementCreateReqList
,
orderCostCreateReqs
,
products
,
requestVO
.
getAccounts
(),
requestVO
.
getCompanyId
());
//订单原始金额,单位分
//订单原始金额,单位分
request
.
setOriginalAmount
(
originalAmount
);
request
.
setOriginalAmount
(
originalAmount
);
//商品优惠信息赋值
request
.
setOrderSettlementDetailList
(
orderSettlementCreateReqList
);
//如果是围餐订单,本次上线将用户的实际支付金额,用户界面上看到的实际现金金额更新为订单原始计算金额
//如果是围餐订单,本次上线将用户的实际支付金额,用户界面上看到的实际现金金额更新为订单原始计算金额
if
(
OrderClientType
.
WAI_MEAL
.
getIndex
().
equals
(
requestVO
.
getOrderClient
()))
{
if
(
OrderClientType
.
WAI_MEAL
.
getIndex
().
equals
(
requestVO
.
getOrderClient
()))
{
/*Long tempAmount = originalAmount/100;
/*Long tempAmount = originalAmount/100;
...
@@ -2666,6 +2668,8 @@ public class OrderSdkAdapter {
...
@@ -2666,6 +2668,8 @@ public class OrderSdkAdapter {
assortmentGroupUpdateOrderRequest
.
setUserId
(
updateOrderProductInfoRequest
.
getUserId
());
assortmentGroupUpdateOrderRequest
.
setUserId
(
updateOrderProductInfoRequest
.
getUserId
());
assortmentGroupUpdateOrderRequest
.
setUserName
(
updateOrderProductInfoRequest
.
getUserName
());
assortmentGroupUpdateOrderRequest
.
setUserName
(
updateOrderProductInfoRequest
.
getUserName
());
assortmentGroupUpdateOrderRequest
.
setOperator
(
updateOrderProductInfoRequest
.
getUserName
());
assortmentGroupUpdateOrderRequest
.
setOperator
(
updateOrderProductInfoRequest
.
getUserName
());
assortmentGroupUpdateOrderRequest
.
setAccounts
(
updateOrderProductInfoRequest
.
getAccounts
());
assortmentGroupUpdateOrderRequest
.
setUpdateAccounts
(
updateOrderProductInfoRequest
.
isUpdateAccounts
());
return
assortmentGroupUpdateOrderRequest
;
return
assortmentGroupUpdateOrderRequest
;
}
}
...
@@ -2678,6 +2682,8 @@ public class OrderSdkAdapter {
...
@@ -2678,6 +2682,8 @@ public class OrderSdkAdapter {
createOrderProductRequest
.
setTrackingNo
(
trackingNo
);
createOrderProductRequest
.
setTrackingNo
(
trackingNo
);
createOrderProductRequest
.
setAddInfo
(
productBean
.
getAddInfo
());
createOrderProductRequest
.
setAddInfo
(
productBean
.
getAddInfo
());
createOrderProductRequest
.
setProductId
(
productBean
.
getProductId
());
createOrderProductRequest
.
setProductId
(
productBean
.
getProductId
());
createOrderProductRequest
.
setSpecification
(
productBean
.
getSpecification
());
createOrderProductRequest
.
setSpecificationName
(
productBean
.
getSpecificationName
());
createOrderProductRequest
.
setCustomerCode
(
productBean
.
getCustomerCode
());
createOrderProductRequest
.
setCustomerCode
(
productBean
.
getCustomerCode
());
createOrderProductRequest
.
setSequence
(
productBean
.
getSequence
());
createOrderProductRequest
.
setSequence
(
productBean
.
getSequence
());
createOrderProductRequest
.
setPrice
(
productBean
.
getPrice
());
createOrderProductRequest
.
setPrice
(
productBean
.
getPrice
());
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/AssortmentGroupUpdateOrderRequest.java
View file @
4faa71f8
...
@@ -58,5 +58,10 @@ public class AssortmentGroupUpdateOrderRequest extends AssortmentGroupCreateOrde
...
@@ -58,5 +58,10 @@ public class AssortmentGroupUpdateOrderRequest extends AssortmentGroupCreateOrde
//操作人
//操作人
private
String
operator
;
private
String
operator
;
/**
* 是否更新结算
*/
private
boolean
updateAccounts
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/AssortmentSdkUpdateOrderProductInfoRequest.java
View file @
4faa71f8
...
@@ -102,4 +102,9 @@ public class AssortmentSdkUpdateOrderProductInfoRequest extends BaseConfig {
...
@@ -102,4 +102,9 @@ public class AssortmentSdkUpdateOrderProductInfoRequest extends BaseConfig {
public
ActivityUpdateStockRequest
activityUpdateStockRequest
;
public
ActivityUpdateStockRequest
activityUpdateStockRequest
;
private
String
menuType
;
private
String
menuType
;
/**
* 是否更新结算信息
*/
private
boolean
updateAccounts
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
4faa71f8
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
4faa71f8
...
@@ -2459,7 +2459,7 @@ public class OrderAdapter {
...
@@ -2459,7 +2459,7 @@ public class OrderAdapter {
* 购物车信息转换
* 购物车信息转换
*/
*/
public
AssortmentSdkUpdateOrderProductInfoRequest
conventShoppingCartGoodsDtoByUpdate
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
public
AssortmentSdkUpdateOrderProductInfoRequest
conventShoppingCartGoodsDtoByUpdate
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
String
orderId
,
Integer
dinersNumber
,
String
nickName
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
String
orderId
,
Integer
dinersNumber
,
String
nickName
,
boolean
isUpdateAccounts
)
{
AssortmentSdkUpdateOrderProductInfoRequest
orderProductInfoRequest
=
new
AssortmentSdkUpdateOrderProductInfoRequest
();
AssortmentSdkUpdateOrderProductInfoRequest
orderProductInfoRequest
=
new
AssortmentSdkUpdateOrderProductInfoRequest
();
orderProductInfoRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
orderProductInfoRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
orderProductInfoRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
orderProductInfoRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
...
@@ -2480,6 +2480,7 @@ public class OrderAdapter {
...
@@ -2480,6 +2480,7 @@ public class OrderAdapter {
orderProductInfoRequest
.
setOrderItemList
(
createOrderProductRequests
);
orderProductInfoRequest
.
setOrderItemList
(
createOrderProductRequests
);
orderProductInfoRequest
.
setOperator
(
nickName
);
orderProductInfoRequest
.
setOperator
(
nickName
);
orderProductInfoRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
orderProductInfoRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
orderProductInfoRequest
.
setUpdateAccounts
(
isUpdateAccounts
);
return
orderProductInfoRequest
;
return
orderProductInfoRequest
;
}
}
...
@@ -2490,7 +2491,8 @@ public class OrderAdapter {
...
@@ -2490,7 +2491,8 @@ public class OrderAdapter {
* @param queryOrderByIdResponse
* @param queryOrderByIdResponse
* @return
* @return
*/
*/
public
AssortmentSdkUpdateOrderProductInfoRequest
conventShoppingPromotionInfo
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
QueryOrderByIdResponse
queryOrderByIdResponse
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
)
{
public
AssortmentSdkUpdateOrderProductInfoRequest
conventShoppingPromotionInfo
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
QueryOrderByIdResponse
queryOrderByIdResponse
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
boolean
isUpdateAccounts
)
{
AssortmentSdkUpdateOrderProductInfoRequest
sdkUpdateOrderProductInfoRequest
=
new
AssortmentSdkUpdateOrderProductInfoRequest
();
AssortmentSdkUpdateOrderProductInfoRequest
sdkUpdateOrderProductInfoRequest
=
new
AssortmentSdkUpdateOrderProductInfoRequest
();
sdkUpdateOrderProductInfoRequest
.
setStoreId
(
queryOrderByIdResponse
.
getData
().
getShopId
());
sdkUpdateOrderProductInfoRequest
.
setStoreId
(
queryOrderByIdResponse
.
getData
().
getShopId
());
sdkUpdateOrderProductInfoRequest
.
setPartnerId
(
queryOrderByIdResponse
.
getData
().
getCompanyId
());
sdkUpdateOrderProductInfoRequest
.
setPartnerId
(
queryOrderByIdResponse
.
getData
().
getCompanyId
());
...
@@ -2505,6 +2507,7 @@ public class OrderAdapter {
...
@@ -2505,6 +2507,7 @@ public class OrderAdapter {
sdkUpdateOrderProductInfoRequest
.
setUserName
(
assortmentCustomerInfoVo
.
getNickName
());
sdkUpdateOrderProductInfoRequest
.
setUserName
(
assortmentCustomerInfoVo
.
getNickName
());
sdkUpdateOrderProductInfoRequest
.
setOperator
(
assortmentCustomerInfoVo
.
getNickName
());
sdkUpdateOrderProductInfoRequest
.
setOperator
(
assortmentCustomerInfoVo
.
getNickName
());
sdkUpdateOrderProductInfoRequest
.
setAccounts
(
new
ArrayList
<>());
sdkUpdateOrderProductInfoRequest
.
setAccounts
(
new
ArrayList
<>());
sdkUpdateOrderProductInfoRequest
.
setUpdateAccounts
(
isUpdateAccounts
);
sdkUpdateOrderProductInfoRequest
.
setMenuType
(
BusinessTypeEnum
.
SAAS_WC
.
getCode
());
sdkUpdateOrderProductInfoRequest
.
setMenuType
(
BusinessTypeEnum
.
SAAS_WC
.
getCode
());
MqMessageRequest
mqMessageRequest
=
new
MqMessageRequest
();
MqMessageRequest
mqMessageRequest
=
new
MqMessageRequest
();
mqMessageRequest
.
setBackOrdersNotifyActivityExchange
(
backOrdersNotifyActivityExchange
);
mqMessageRequest
.
setBackOrdersNotifyActivityExchange
(
backOrdersNotifyActivityExchange
);
...
@@ -2534,7 +2537,7 @@ public class OrderAdapter {
...
@@ -2534,7 +2537,7 @@ public class OrderAdapter {
for
(
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
:
cartGoodsDetailDtos
)
{
for
(
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
:
cartGoodsDetailDtos
)
{
Integer
qty
=
cartGoodsDetailDto
.
getQty
();
Integer
qty
=
cartGoodsDetailDto
.
getQty
();
if
(
qty
>
0
)
{
if
(
qty
>
0
)
{
CreateOrderProductRequest
createOrderProductRequest
=
createOrderProductRequests
.
stream
().
filter
(
t
->
Objects
.
equals
(
t
.
getId
(),
cartGoodsDetailDto
.
getProductId
())
&&
Objects
.
equals
(
t
.
getSequence
(),
cartGoodsDetailDto
.
getSequence
())).
findFirst
().
orElse
(
null
);
CreateOrderProductRequest
createOrderProductRequest
=
createOrderProductRequests
.
stream
().
filter
(
t
->
Objects
.
equals
(
t
.
get
Product
Id
(),
cartGoodsDetailDto
.
getProductId
())
&&
Objects
.
equals
(
t
.
getSequence
(),
cartGoodsDetailDto
.
getSequence
())).
findFirst
().
orElse
(
null
);
if
(
createOrderProductRequest
!=
null
)
{
if
(
createOrderProductRequest
!=
null
)
{
createOrderProductRequest
.
setIgnoreProductPrice
(
1
);
createOrderProductRequest
.
setIgnoreProductPrice
(
1
);
}
}
...
@@ -2623,7 +2626,12 @@ public class OrderAdapter {
...
@@ -2623,7 +2626,12 @@ public class OrderAdapter {
private
CreateOrderProductRequest
conventOrderInfoAndCarInfoByUpdate
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
productBean
,
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
)
{
private
CreateOrderProductRequest
conventOrderInfoAndCarInfoByUpdate
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
productBean
,
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
)
{
CreateOrderProductRequest
createOrderProductRequest
=
new
CreateOrderProductRequest
();
CreateOrderProductRequest
createOrderProductRequest
=
new
CreateOrderProductRequest
();
createOrderProductRequest
.
setId
(
productBean
.
getId
());
createOrderProductRequest
.
setId
(
productBean
.
getId
());
createOrderProductRequest
.
setProductId
(
productBean
.
getProductId
());
createOrderProductRequest
.
setProductName
(
productBean
.
getProductName
());
createOrderProductRequest
.
setSpecification
(
productBean
.
getSpecification
());
createOrderProductRequest
.
setSequence
(
productBean
.
getSequence
());
createOrderProductRequest
.
setSequence
(
productBean
.
getSequence
());
createOrderProductRequest
.
setSpecificationName
(
productBean
.
getSpecificationName
());
createOrderProductRequest
.
setNumber
(
productBean
.
getNumber
());
createOrderProductRequest
.
setTotalDiscountAmount
(
cartGoodsDetailDto
.
getTotalDiscountAmount
().
longValue
());
createOrderProductRequest
.
setTotalDiscountAmount
(
cartGoodsDetailDto
.
getTotalDiscountAmount
().
longValue
());
createOrderProductRequest
.
setSalePrice
((
productBean
.
getPrice
()
*
productBean
.
getNumber
())
-
cartGoodsDetailDto
.
getTotalDiscountAmount
());
createOrderProductRequest
.
setSalePrice
((
productBean
.
getPrice
()
*
productBean
.
getNumber
())
-
cartGoodsDetailDto
.
getTotalDiscountAmount
());
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getComboProduct
())
&&
CollectionUtils
.
isNotEmpty
(
cartGoodsDetailDto
.
getComboList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getComboProduct
())
&&
CollectionUtils
.
isNotEmpty
(
cartGoodsDetailDto
.
getComboList
()))
{
...
...
order-application-service/src/main/java/cn/freemud/adapter/PromotionAdapter.java
View file @
4faa71f8
...
@@ -128,6 +128,16 @@ public class PromotionAdapter {
...
@@ -128,6 +128,16 @@ public class PromotionAdapter {
return
cartGoodsDetailDto
;
return
cartGoodsDetailDto
;
}
}
public
static
void
updateCartGoodsDetail
(
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
,
int
totalDiscountAmount
)
{
cartGoodsDetailDto
.
setTotalDiscountAmount
(
totalDiscountAmount
);
cartGoodsDetailDto
.
setSettlementPrice
(
cartGoodsDetailDto
.
getOriginalTotalAmount
()
-
totalDiscountAmount
);
if
(
Objects
.
equals
(
cartGoodsDetailDto
.
getProductType
(),
ProductTypeEnum
.
WEIGHT_PRODUCT
.
getCode
()))
{
cartGoodsDetailDto
.
setFinalPrice
(
cartGoodsDetailDto
.
getSettlementPrice
());
}
else
{
cartGoodsDetailDto
.
setFinalPrice
(
cartGoodsDetailDto
.
getSettlementPrice
()
/
cartGoodsDetailDto
.
getQty
());
}
}
private
static
void
setActivityDiscounts
(
List
<
CalculationApportionGoodsDto
>
apportionGoodsList
,
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
)
{
private
static
void
setActivityDiscounts
(
List
<
CalculationApportionGoodsDto
>
apportionGoodsList
,
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoodsDetailDto
)
{
if
(
CollectionUtils
.
isEmpty
(
apportionGoodsList
))
{
if
(
CollectionUtils
.
isEmpty
(
apportionGoodsList
))
{
return
;
return
;
...
@@ -176,12 +186,12 @@ public class PromotionAdapter {
...
@@ -176,12 +186,12 @@ public class PromotionAdapter {
//activityCalculationDiscountRequestDto.setIsShowGoodsActivity(1);
//activityCalculationDiscountRequestDto.setIsShowGoodsActivity(1);
activityCalculationDiscountRequestDto
.
setUserId
(
userId
);
activityCalculationDiscountRequestDto
.
setUserId
(
userId
);
activityCalculationDiscountRequestDto
.
setVer
(
1
);
activityCalculationDiscountRequestDto
.
setVer
(
1
);
//
activityCalculationDiscountRequestDto.setAppId(appId);
activityCalculationDiscountRequestDto
.
setAppId
(
appId
);
activityCalculationDiscountRequestDto
.
setApplication
(
"isaas"
);
activityCalculationDiscountRequestDto
.
setApplication
(
"isaas"
);
ActivityChannelEnum
activityChannelEnum
=
orderTypeConvert2ActivityChannel
(
orderType
);
//
ActivityChannelEnum activityChannelEnum = orderTypeConvert2ActivityChannel(orderType);
if
(!
Objects
.
isNull
(
activityChannelEnum
))
{
//
if (!Objects.isNull(activityChannelEnum)) {
activityCalculationDiscountRequestDto
.
setChannel
(
activityChannelEnum
.
getCode
());
//
activityCalculationDiscountRequestDto.setChannel(activityChannelEnum.getCode());
}
//
}
return
activityCalculationDiscountRequestDto
;
return
activityCalculationDiscountRequestDto
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/ShoppingCartGoodsResponse.java
View file @
4faa71f8
...
@@ -77,6 +77,10 @@ public class ShoppingCartGoodsResponse {
...
@@ -77,6 +77,10 @@ public class ShoppingCartGoodsResponse {
* 满减折扣
* 满减折扣
*/
*/
private
Long
fullDiscount
;
private
Long
fullDiscount
;
/**
* 前端用来提示的信息
*/
private
String
toastMsg
;
@Data
@Data
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/PreviewOrderInfoVo.java
View file @
4faa71f8
...
@@ -107,5 +107,9 @@ public class PreviewOrderInfoVo {
...
@@ -107,5 +107,9 @@ public class PreviewOrderInfoVo {
* 优惠券折扣
* 优惠券折扣
*/
*/
private
Long
couponDiscount
;
private
Long
couponDiscount
;
/**
* 前端用来提示的信息
*/
private
String
toastMsg
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/ActivityCalculationDiscountService.java
View file @
4faa71f8
...
@@ -42,6 +42,8 @@ import java.util.Objects;
...
@@ -42,6 +42,8 @@ import java.util.Objects;
@Service
@Service
public
class
ActivityCalculationDiscountService
{
public
class
ActivityCalculationDiscountService
{
private
final
static
String
RESPONSE_SUCCESS_STR
=
"100"
;
@Autowired
@Autowired
private
PromotionDiscountClient
promotionDiscountClient
;
private
PromotionDiscountClient
promotionDiscountClient
;
@Autowired
@Autowired
...
@@ -54,7 +56,8 @@ public class ActivityCalculationDiscountService {
...
@@ -54,7 +56,8 @@ public class ActivityCalculationDiscountService {
private
CouponPromotionService
couponPromotionService
;
private
CouponPromotionService
couponPromotionService
;
@Autowired
@Autowired
private
FullPromotionService
fullPromotionService
;
private
FullPromotionService
fullPromotionService
;
private
final
static
String
RESPONSE_SUCCESS_STR
=
"100"
;
@Autowired
private
TimeSalePromotionService
timeSalePromotionService
;
public
ShoppingCartGoodsResponse
updateDiscountApportion
(
OrderBeanRequest
request
,
CouponPromotionDto
couponPromotionDto
)
{
public
ShoppingCartGoodsResponse
updateDiscountApportion
(
OrderBeanRequest
request
,
CouponPromotionDto
couponPromotionDto
)
{
...
@@ -77,6 +80,8 @@ public class ActivityCalculationDiscountService {
...
@@ -77,6 +80,8 @@ public class ActivityCalculationDiscountService {
couponPromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
);
couponPromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
);
// 满减
// 满减
fullPromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
);
fullPromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
);
// 限时特价
timeSalePromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
);
return
shoppingCartGoodsResponse
;
return
shoppingCartGoodsResponse
;
}
}
...
@@ -86,7 +91,7 @@ public class ActivityCalculationDiscountService {
...
@@ -86,7 +91,7 @@ public class ActivityCalculationDiscountService {
List
<
CalculationDiscountGoodsDto
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
List
<
CalculationDiscountGoodsDto
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
for
(
OrderBeanRequest
.
ProductBean
orderProductBean
:
request
.
getProductList
())
{
for
(
OrderBeanRequest
.
ProductBean
orderProductBean
:
request
.
getProductList
())
{
if
(
isWeightProduct
NoWeight
(
orderProductBean
))
{
if
(
isWeightProduct
(
orderProductBean
))
{
continue
;
continue
;
}
}
if
(
ProductTypeEnum
.
SETMEAL_PRODUCT
.
getCode
().
equals
(
orderProductBean
.
getProductType
())
||
ProductTypeEnum
.
SETMEAL_UPPRICE_PRODUCT
.
getCode
().
equals
(
orderProductBean
.
getProductType
()))
{
if
(
ProductTypeEnum
.
SETMEAL_PRODUCT
.
getCode
().
equals
(
orderProductBean
.
getProductType
())
||
ProductTypeEnum
.
SETMEAL_UPPRICE_PRODUCT
.
getCode
().
equals
(
orderProductBean
.
getProductType
()))
{
...
@@ -147,6 +152,22 @@ public class ActivityCalculationDiscountService {
...
@@ -147,6 +152,22 @@ public class ActivityCalculationDiscountService {
return
false
;
return
false
;
}
}
private
boolean
isWeightProduct
(
OrderBeanRequest
.
ProductBean
orderProductBean
)
{
if
(
Objects
.
equals
(
orderProductBean
.
getProductType
(),
ProductTypeEnum
.
WEIGHT_PRODUCT
.
getCode
()))
{
return
true
;
}
if
(
Objects
.
equals
(
orderProductBean
.
getProductType
(),
ProductTypeEnum
.
SETMEAL_PRODUCT
.
getCode
())
||
Objects
.
equals
(
orderProductBean
.
getProductType
(),
ProductTypeEnum
.
SETMEAL_UPPRICE_PRODUCT
.
getCode
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
orderProductBean
.
getComboProduct
()))
{
for
(
OrderBeanRequest
.
ProductBean
productBean
:
orderProductBean
.
getComboProduct
())
{
if
(
Objects
.
equals
(
productBean
.
getProductType
(),
ProductTypeEnum
.
WEIGHT_PRODUCT
.
getCode
()))
{
return
true
;
}
}
}
}
return
false
;
}
public
void
updatePreviewOrderInfoVo
(
PreviewOrderInfoVo
previewOrderInfoVo
,
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
)
{
public
void
updatePreviewOrderInfoVo
(
PreviewOrderInfoVo
previewOrderInfoVo
,
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
)
{
if
(
shoppingCartGoodsResponse
==
null
)
{
if
(
shoppingCartGoodsResponse
==
null
)
{
return
;
return
;
...
@@ -157,6 +178,7 @@ public class ActivityCalculationDiscountService {
...
@@ -157,6 +178,7 @@ public class ActivityCalculationDiscountService {
previewOrderInfoVo
.
setAvailableCoupon
(
shoppingCartGoodsResponse
.
getAvailableCoupon
());
previewOrderInfoVo
.
setAvailableCoupon
(
shoppingCartGoodsResponse
.
getAvailableCoupon
());
previewOrderInfoVo
.
setFullDiscount
(
shoppingCartGoodsResponse
.
getFullDiscount
());
previewOrderInfoVo
.
setFullDiscount
(
shoppingCartGoodsResponse
.
getFullDiscount
());
previewOrderInfoVo
.
setCouponDiscount
(
shoppingCartGoodsResponse
.
getCouponDiscount
());
previewOrderInfoVo
.
setCouponDiscount
(
shoppingCartGoodsResponse
.
getCouponDiscount
());
previewOrderInfoVo
.
setToastMsg
(
shoppingCartGoodsResponse
.
getToastMsg
());
//循环促销计算商品信息,保存订单金额信息
//循环促销计算商品信息,保存订单金额信息
if
(
CollectionUtils
.
isNotEmpty
(
previewOrderInfoVo
.
getProducts
())){
if
(
CollectionUtils
.
isNotEmpty
(
previewOrderInfoVo
.
getProducts
())){
for
(
ProductVo
productVo
:
previewOrderInfoVo
.
getProducts
())
{
for
(
ProductVo
productVo
:
previewOrderInfoVo
.
getProducts
())
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/DefaultPromotionService.java
View file @
4faa71f8
...
@@ -54,7 +54,7 @@ public class DefaultPromotionService implements IPromotionService {
...
@@ -54,7 +54,7 @@ public class DefaultPromotionService implements IPromotionService {
List
<
OrderBeanRequest
.
ProductBean
>
productBeanList
=
request
.
getProductList
().
stream
().
filter
(
productBean
->
{
List
<
OrderBeanRequest
.
ProductBean
>
productBeanList
=
request
.
getProductList
().
stream
().
filter
(
productBean
->
{
if
(
ProductTypeEnum
.
WEIGHT_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
())
&&
new
BigDecimal
(
"0"
).
compareTo
(
productBean
.
getWeight
())
>=
0
)
{
if
(
ProductTypeEnum
.
WEIGHT_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
()))
{
return
false
;
return
false
;
}
}
if
(
ProductTypeEnum
.
SETMEAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
())
||
ProductTypeEnum
.
SETMEAL_UPPRICE_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
()))
{
if
(
ProductTypeEnum
.
SETMEAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
())
||
ProductTypeEnum
.
SETMEAL_UPPRICE_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
()))
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
4faa71f8
...
@@ -312,7 +312,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -312,7 +312,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
}
}
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
apportionResponse
.
getResult
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
apportionResponse
.
getResult
();
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingCartGoodsDtoByUpdate
(
shoppingCartGoodsDto
,
assortmentCustomerInfoVo
,
orderId
,
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingCartGoodsDtoByUpdate
(
shoppingCartGoodsDto
,
assortmentCustomerInfoVo
,
orderId
,
createReserveOrderVo
.
getRepastNumber
(),
assortmentCustomerInfoVo
.
getNickName
());
createReserveOrderVo
.
getRepastNumber
(),
assortmentCustomerInfoVo
.
getNickName
()
,
false
);
//修改订单信息
//修改订单信息
OrderDetailResponse
baseOrderResponse
=
orderCenterSdkService
.
updateOrderItem
(
request
);
OrderDetailResponse
baseOrderResponse
=
orderCenterSdkService
.
updateOrderItem
(
request
);
//根据购物车version调用购物车sdk删除购物车版本缓存信息
//根据购物车version调用购物车sdk删除购物车版本缓存信息
...
@@ -439,7 +439,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -439,7 +439,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
CouponPromotionDto
couponPromotionDto
=
couponAdapter
.
getCouponPromotionDto
(
orderBeanRequest
,
createReserveOrderVo
.
getCouponCode
(),
createReserveOrderVo
.
getActivityCode
(),
CouponFlag
.
YES
.
getCode
());
CouponPromotionDto
couponPromotionDto
=
couponAdapter
.
getCouponPromotionDto
(
orderBeanRequest
,
createReserveOrderVo
.
getCouponCode
(),
createReserveOrderVo
.
getActivityCode
(),
CouponFlag
.
YES
.
getCode
());
shoppingCartGoodsResponse
=
calculationDiscountService
.
updateDiscountApportion
(
orderBeanRequest
,
couponPromotionDto
);
shoppingCartGoodsResponse
=
calculationDiscountService
.
updateDiscountApportion
(
orderBeanRequest
,
couponPromotionDto
);
}
}
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingPromotionInfo
(
shoppingCartGoodsResponse
,
queryOrderByIdResponse
,
assortmentCustomerInfoVo
);
boolean
isUpdateAccounts
=
CollectionUtils
.
isEmpty
(
queryOrderByIdResponse
.
getData
().
getAccountList
());
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingPromotionInfo
(
shoppingCartGoodsResponse
,
queryOrderByIdResponse
,
assortmentCustomerInfoVo
,
isUpdateAccounts
);
//修改订单信息
//修改订单信息
OrderDetailResponse
baseOrderResponse
=
orderCenterSdkService
.
updateOrderItem
(
request
);
OrderDetailResponse
baseOrderResponse
=
orderCenterSdkService
.
updateOrderItem
(
request
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
baseOrderResponse
.
getErrcode
(),
RESPONSE_SUCCESS_CODE
)){
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
baseOrderResponse
.
getErrcode
(),
RESPONSE_SUCCESS_CODE
)){
...
...
order-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
0 → 100644
View file @
4faa71f8
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.PromotionAdapter
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.promotion.*
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.service.IPromotionService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: TimeSalePromotionService
* @Package cn.freemud.service.impl
* @Description:
* @author: jiaxin.liu
* @date: 2019/4/18 10:58
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
TimeSalePromotionService
implements
IPromotionService
{
@Override
public
void
updateDiscountApportion
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
OrderBeanRequest
request
,
CalculationDiscountResultDto
calculationDiscountResult
,
CouponPromotionDto
couponPromotionDto
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
CollectionUtils
.
isEmpty
(
shoppingCartGoodsResponse
.
getProducts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
())))
{
return
;
}
List
<
CalculationDiscountGoodsDto
>
goodsList
=
calculationDiscountResult
.
getGoods
();
if
(
CollectionUtils
.
isEmpty
(
goodsList
))
{
return
;
}
Map
<
String
,
CalculationDiscountGoodsDto
>
goodsMap
=
goodsList
.
parallelStream
()
.
collect
(
Collectors
.
toMap
(
CalculationDiscountGoodsDto:
:
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
List
<
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
>
products
=
shoppingCartGoodsResponse
.
getProducts
();
this
.
setToastMsg
(
shoppingCartGoodsResponse
,
products
,
goodsMap
);
for
(
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
product
:
products
)
{
CalculationDiscountGoodsDto
goods
;
if
((
goods
=
goodsMap
.
get
(
product
.
getProductId
()))
==
null
)
{
continue
;
}
CalculationGoodsActivityDto
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
ActivityTypeEnum
.
TYPE_2
);
if
(
goodsDiscount
==
null
)
{
continue
;
}
if
(
numberMap
.
get
(
product
.
getProductId
())
==
null
)
{
numberMap
.
put
(
product
.
getProductId
(),
goods
.
getActualGoodsNumber
());
}
Integer
actualGoodsNumber
=
numberMap
.
get
(
product
.
getProductId
());
if
(
actualGoodsNumber
>
0
)
{
Integer
totalDiscountAmount
=
product
.
getQty
()
>
actualGoodsNumber
?
goods
.
getDiscountAmount
()
*
actualGoodsNumber
/
goods
.
getActualGoodsNumber
()
:
goods
.
getDiscountAmount
()
*
product
.
getQty
()
/
goods
.
getActualGoodsNumber
();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
goodsDiscount
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
goodsDiscount
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_2
.
getCode
());
activityDiscountsDto
.
setDiscountAmount
(
totalDiscountAmount
);
product
.
getActivityDiscountsDtos
().
add
(
activityDiscountsDto
);
PromotionAdapter
.
updateCartGoodsDetail
(
product
,
product
.
getTotalDiscountAmount
()
+
totalDiscountAmount
);
numberMap
.
put
(
product
.
getProductId
(),
actualGoodsNumber
-
product
.
getQty
());
}
}
}
public
void
setToastMsg
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
List
<
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
>
products
,
Map
<
String
,
CalculationDiscountGoodsDto
>
goodsMap
)
{
String
toastMsg
=
null
;
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
for
(
ShoppingCartGoodsResponse
.
CartGoodsDetailDto
cartGoods
:
products
)
{
CalculationDiscountGoodsDto
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getProductId
()))
==
null
)
{
continue
;
}
CalculationGoodsActivityDto
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
ActivityTypeEnum
.
TYPE_2
);
if
(
goodsDiscount
==
null
)
{
continue
;
}
if
(
goodsDiscount
.
getActualGoodsNumber
()
<
cartGoods
.
getQty
())
{
if
(
StringUtils
.
isEmpty
(
toastMsg
))
{
toastMsg
=
"该商品限"
+
goodsDiscount
.
getActualGoodsNumber
()
+
"份优惠 超出按照原价计算哦"
;
}
}
}
if
(
StringUtils
.
isNotBlank
(
toastMsg
))
{
shoppingCartGoodsResponse
.
setToastMsg
(
toastMsg
);
}
}
/**
* 获取指定促销类型的GoodsDiscount
*
* @param goodsDiscountList
* @param type
* @return
*/
private
CalculationGoodsActivityDto
getGoodsDiscount
(
List
<
CalculationGoodsActivityDto
>
goodsDiscountList
,
ActivityTypeEnum
type
)
{
if
(
CollectionUtils
.
isEmpty
(
goodsDiscountList
))
{
return
null
;
}
for
(
CalculationGoodsActivityDto
goodsDiscount
:
goodsDiscountList
)
{
if
(
Objects
.
equals
(
goodsDiscount
.
getType
(),
type
.
getCode
()))
{
return
goodsDiscount
;
}
}
return
null
;
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/GroupOrderUpdateReq.java
View file @
4faa71f8
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
;
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -90,4 +91,6 @@ public class GroupOrderUpdateReq {
...
@@ -90,4 +91,6 @@ public class GroupOrderUpdateReq {
//操作人
//操作人
private
String
operator
;
private
String
operator
;
List
<
OrderSettlementCreateReq
>
orderSettlementDetailList
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMealServiceImpl.java
View file @
4faa71f8
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionForWcService.java
0 → 100644
View file @
4faa71f8
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.ShoppingCartGoodsMealResponseVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
public
class
TimeSalePromotionForWcService
{
public
void
updateShoppingCartGoodsDiscount
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsMealResponseVo
shoppingCartGoodsResponseVo
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
getDiscounts
().
stream
().
anyMatch
(
discount
->
ActivityTypeEnum
.
TYPE_2
.
getCode
().
equals
(
discount
.
getType
())))
{
return
;
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
if
(
CollectionUtils
.
isEmpty
(
goodsList
))
{
return
;
}
String
toastMsg
=
null
;
Map
<
String
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsMap
=
goodsList
.
parallelStream
()
.
collect
(
Collectors
.
toMap
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
::
getGoodsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
continue
;
}
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
getGoodsDiscount
(
goods
.
getDiscounts
(),
ActivityTypeEnum
.
TYPE_2
);
if
(
goodsDiscount
==
null
)
{
continue
;
}
// 享受限时特价折扣的商品数量
Integer
specialActualGoodsNumber
=
null
;
// 商品现价
Long
goodsNowPrice
=
cartGoods
.
getOriginalPrice
()
-
goodsDiscount
.
getDiscount
()
/
goodsDiscount
.
getActualGoodsNumber
();
// numberMap用于暂存当前商品行可享受限时特价折扣的商品数量
if
((
specialActualGoodsNumber
=
numberMap
.
get
(
goods
.
getGoodsId
()))
==
null
)
{
numberMap
.
put
(
goods
.
getGoodsId
(),
specialActualGoodsNumber
=
goodsDiscount
.
getActualGoodsNumber
());
}
//若可享受数量>=当前商品行的商品数量
if
(
specialActualGoodsNumber
-
cartGoods
.
getQty
()
>=
0
)
{
cartGoods
.
setAmount
(
goodsNowPrice
*
cartGoods
.
getQty
());
}
else
{
//总价=可享受数量*优惠后单价+(当前商品行的商品数量-可享受数量)*商品原价
cartGoods
.
setAmount
(
specialActualGoodsNumber
>
0
?
specialActualGoodsNumber
*
goodsNowPrice
+
(
cartGoods
.
getQty
()
-
specialActualGoodsNumber
)
*
cartGoods
.
getOriginalPrice
()
:
goods
.
getOriginalPrice
()
*
cartGoods
.
getQty
());
if
(
StringUtils
.
isEmpty
(
toastMsg
))
{
toastMsg
=
"该商品限"
+
goodsDiscount
.
getActualGoodsNumber
()
+
"份优惠 超出按照原价计算哦"
;
}
}
numberMap
.
put
(
goods
.
getGoodsId
(),
specialActualGoodsNumber
-
cartGoods
.
getQty
());
}
if
(
StringUtils
.
isNotBlank
(
toastMsg
))
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
toastMsg
);
}
}
/**
* 获取指定促销类型的GoodsDiscount
*
* @param goodsDiscountList
* @param type
* @return
*/
private
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
getGoodsDiscount
(
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
goodsDiscountList
,
ActivityTypeEnum
type
)
{
if
(
CollectionUtils
.
isEmpty
(
goodsDiscountList
))
{
return
null
;
}
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
:
goodsDiscountList
)
{
if
(
Objects
.
equals
(
goodsDiscount
.
getType
(),
type
.
getCode
()))
{
return
goodsDiscount
;
}
}
return
null
;
}
}
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