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
7a2aa3b8
Commit
7a2aa3b8
authored
Oct 09, 2020
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
f5b59cd4
5a70722f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
179 additions
and
44 deletions
+179
-44
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+3
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
+2
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
+2
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderSpecialExtraAttrRequest.java
+23
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+7
-0
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
+31
-2
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+24
-2
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+20
-8
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ShoppingCartOperationType.java
+2
-2
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+4
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+37
-24
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/SetMealCalculation.java
+7
-5
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CopyShoppingCartRequestVo.java
+6
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
7a2aa3b8
...
...
@@ -2766,6 +2766,9 @@ public class OrderSdkAdapter {
if
(
CollectionUtils
.
isNotEmpty
(
product
.
getSpecialCodes
()))
{
extInfo
.
setSpecialCodes
(
product
.
getSpecialCodes
());
}
if
(
CollectionUtils
.
isNotEmpty
(
product
.
getSpecialAttrs
()))
{
extInfo
.
setSpecialAttrs
(
product
.
getSpecialAttrs
());
}
if
(
0
!=
product
.
getTax
()){
extInfo
.
setTax
(
product
.
getTax
());
}
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
View file @
7a2aa3b8
...
...
@@ -178,4 +178,6 @@ public class CreateOrderProductRequest extends BaseConfig {
private
String
taxId
;
private
List
<
String
>
specialCodes
;
private
List
<
OrderSpecialExtraAttrRequest
>
specialAttrs
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
View file @
7a2aa3b8
...
...
@@ -72,4 +72,6 @@ public class OrderProductAddInfoDto extends BaseConfig {
private
String
taxId
;
private
List
<
String
>
specialCodes
;
private
List
<
OrderSpecialExtraAttrRequest
>
specialAttrs
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderSpecialExtraAttrRequest.java
0 → 100644
View file @
7a2aa3b8
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
order
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
OrderSpecialExtraAttrRequest
{
/**
* 属性名
*/
private
String
attributeName
;
/**
* 入机code
*/
private
String
specialCode
;
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
7a2aa3b8
...
...
@@ -50,5 +50,12 @@ public class ShoppingCartConstant {
*/
public
static
final
int
PRODUCT_DOWN
=
104
;
public
static
final
String
CART_PRODUCT_INVALID_STATE
=
"您选择的【$spuName】商品已失效;"
;
/**
* 必选商品组无勾选商品
*/
public
static
final
int
PRODUCT_GROUP_EMPTY
=
109
;
public
static
final
String
CART_PRODUCT_GROUP_EMPTY_STATE
=
"您选择的【$spuName】商品有未选商品"
;
}
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
View file @
7a2aa3b8
...
...
@@ -17,6 +17,7 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderProductRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderSpecialExtraAttrRequest
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Component
;
...
...
@@ -184,7 +185,21 @@ public class DeliveryAdapter {
order
.
getProductList
().
forEach
(
productList
->
{
ProductInfo
deliveryProductInfo
=
new
ProductInfo
();
deliveryProductInfo
.
setProductCode
(
productList
.
getProductId
());
deliveryProductInfo
.
setProductName
(
productList
.
getProductName
());
String
productName
=
StringUtils
.
isBlank
(
productList
.
getSpecificationName
())
?
productList
.
getProductName
()
:
productList
.
getSpecificationName
();
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
productList
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
extInfo
.
getSpecialAttrs
()))
{
String
attr
=
""
;
for
(
OrderSpecialExtraAttrRequest
special
:
extInfo
.
getSpecialAttrs
())
{
if
(
special
.
getAttributeName
().
indexOf
(
"冰"
)
>=
0
)
{
attr
+=
special
.
getAttributeName
()+
","
;
}
}
if
(
attr
.
length
()
>
0
)
{
attr
=
attr
.
substring
(
0
,
attr
.
length
()-
1
);
productName
+=
"("
+
attr
+
")"
;
}
}
deliveryProductInfo
.
setProductName
(
productName
);
deliveryProductInfo
.
setProductNumber
(
productList
.
getNumber
());
deliveryProductInfo
.
setProductPrice
(
productList
.
getSalePrice
().
intValue
());
//餐道使用
...
...
@@ -200,7 +215,21 @@ public class DeliveryAdapter {
productList
.
getComboProduct
().
forEach
(
comboProduct
->
{
ProductInfo
deliveryComboProductInfo
=
new
ProductInfo
();
deliveryComboProductInfo
.
setProductCode
(
comboProduct
.
getProductId
());
deliveryComboProductInfo
.
setProductName
(
comboProduct
.
getProductName
());
String
productNameCombo
=
StringUtils
.
isBlank
(
comboProduct
.
getSpecificationName
())
?
comboProduct
.
getProductName
()
:
comboProduct
.
getSpecificationName
();
OrderProductAddInfoDto
extInfoCombo
=
JSON
.
parseObject
(
comboProduct
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
extInfoCombo
.
getSpecialAttrs
()))
{
String
attr
=
""
;
for
(
OrderSpecialExtraAttrRequest
special
:
extInfoCombo
.
getSpecialAttrs
())
{
if
(
special
.
getAttributeName
().
indexOf
(
"冰"
)
>=
0
)
{
attr
+=
special
.
getAttributeName
()+
","
;
}
}
if
(
attr
.
length
()
>
0
)
{
attr
=
attr
.
substring
(
0
,
attr
.
length
()-
1
);
productNameCombo
+=
"("
+
attr
+
")"
;
}
}
deliveryComboProductInfo
.
setProductName
(
productNameCombo
);
deliveryComboProductInfo
.
setProductNumber
(
comboProduct
.
getNumber
()/
productList
.
getNumber
());
deliveryComboProductInfo
.
setProductPrice
(
comboProduct
.
getSalePrice
().
intValue
());
//餐道使用
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
7a2aa3b8
...
...
@@ -41,6 +41,7 @@ import cn.freemud.request.wechat.dto.SignMessageBuilder;
import
cn.freemud.service.impl.OrderCommonService
;
import
cn.freemud.utils.*
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
...
...
@@ -1889,7 +1890,22 @@ public class OrderAdapter {
ProductVo
productVo
=
new
ProductVo
();
productVo
.
setId
(
productBean
.
getId
());
productVo
.
setPid
(
StringUtils
.
isBlank
(
productBean
.
getSpecification
())
?
productBean
.
getProductId
()
:
productBean
.
getSpecification
());
productVo
.
setName
(
StringUtils
.
isBlank
(
productBean
.
getSpecificationName
())
?
productBean
.
getProductName
()
:
productBean
.
getSpecificationName
());
String
productName
=
StringUtils
.
isBlank
(
productBean
.
getSpecificationName
())
?
productBean
.
getProductName
()
:
productBean
.
getSpecificationName
();
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
productBean
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
extInfo
.
getSpecialAttrs
()))
{
String
attr
=
""
;
for
(
OrderSpecialExtraAttrRequest
special
:
extInfo
.
getSpecialAttrs
())
{
if
(
special
.
getAttributeName
().
indexOf
(
"冰"
)
>=
0
)
{
attr
+=
special
.
getAttributeName
()+
","
;
}
}
if
(
attr
.
length
()
>
0
)
{
attr
=
attr
.
substring
(
0
,
attr
.
length
()-
1
);
productName
+=
"("
+
attr
+
")"
;
}
}
productVo
.
setName
(
productName
);
productVo
.
setSpuName
(
productBean
.
getProductName
());
productVo
.
setPicture
(
productBean
.
getPicture
());
productVo
.
setSequence
(
productBean
.
getSequence
());
...
...
@@ -2323,7 +2339,13 @@ public class OrderAdapter {
createOrderProductDemoDto
.
setClassificationId
(
cartGoodsDetailDto
.
getClassificationId
());
createOrderProductDemoDto
.
setClassificationName
(
cartGoodsDetailDto
.
getClassificationName
());
if
(
CollectionUtils
.
isNotEmpty
(
cartGoodsDetailDto
.
getSpecialExtra
()))
{
createOrderProductDemoDto
.
setSpecialCodes
(
cartGoodsDetailDto
.
getSpecialExtra
().
stream
().
map
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
::
getSpecialCode
).
collect
(
Collectors
.
toList
()));
// createOrderProductDemoDto.setSpecialCodes(cartGoodsDetailDto.getSpecialExtra().stream().map(ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::getSpecialCode).collect(Collectors.toList()));
createOrderProductDemoDto
.
setSpecialAttrs
(
new
ArrayList
<>());
createOrderProductDemoDto
.
setSpecialCodes
(
new
ArrayList
<>());
cartGoodsDetailDto
.
getSpecialExtra
().
stream
().
forEach
(
o
->
{
createOrderProductDemoDto
.
getSpecialAttrs
().
add
(
new
OrderSpecialExtraAttrRequest
(
o
.
getAttributeName
(),
o
.
getSpecialCode
()));
createOrderProductDemoDto
.
getSpecialCodes
().
add
(
o
.
getSpecialCode
());
});
}
return
createOrderProductDemoDto
;
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
View file @
7a2aa3b8
...
...
@@ -360,6 +360,8 @@ public class QueryOrdersResponseDto {
*/
private
String
addInfo
;
private
String
extInfo
;
/**
* 套餐--type:6
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
7a2aa3b8
...
...
@@ -533,6 +533,9 @@ public class ShoppingCartConvertAdapter {
List
<
ValidateSkuProductType
>
result
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
productComboList
))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
:
productComboList
)
{
if
(
"0"
.
equals
(
comboxGoods
.
getGoodsId
())){
continue
;
}
ValidateSkuProductType
validateSkuProductType
=
new
ValidateSkuProductType
();
validateSkuProductType
.
setProductId
(
StringUtils
.
isNotEmpty
(
comboxGoods
.
getSpuId
())
?
comboxGoods
.
getSpuId
()
:
comboxGoods
.
getSkuId
());
validateSkuProductType
.
setSkuId
(
comboxGoods
.
getSkuId
());
...
...
@@ -659,7 +662,9 @@ public class ShoppingCartConvertAdapter {
* @return
*/
private
void
updateComboxGoodsInfoForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
ProductBeanDTO
parentProductBean
,
boolean
isComboxGoods
)
{
if
(
"0"
.
equals
(
comboxGoods
.
getGoodsId
())){
return
;
}
ProductBeanDTO
.
ProductComboType
productComboType
=
new
ProductBeanDTO
.
ProductComboType
();
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
=
new
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
();
if
(
isComboxGoods
)
{
...
...
@@ -833,16 +838,23 @@ public class ShoppingCartConvertAdapter {
//更新当前商品行价格
Long
newOrigOriginalPrice
=
0L
;
if
(
isSetMealProduct
)
{
newOrigOriginalPrice
+=
cartGoods
.
getProductComboList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
newOrigOriginalPrice
+=
cartGoods
.
getProductGroupList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
Long
comboxGoodsOriginalPrice
=
cartGoods
.
getProductComboList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
Long
groupGoodsOriginalPrice
=
cartGoods
.
getProductGroupList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
Long
comboxGoodsFinalPrice
=
cartGoods
.
getProductComboList
().
stream
().
mapToLong
(
t
->
t
.
getFinalPrice
()).
sum
();
Long
groupGoodsFinalPrice
=
cartGoods
.
getProductGroupList
().
stream
().
mapToLong
(
t
->
t
.
getFinalPrice
()).
sum
();
cartGoods
.
setOriginalPrice
(
comboxGoodsOriginalPrice
);
cartGoods
.
setOriginalAmount
((
comboxGoodsOriginalPrice
+
groupGoodsOriginalPrice
)*
cartGoods
.
getQty
());
cartGoods
.
setAmount
((
comboxGoodsFinalPrice
+
groupGoodsFinalPrice
)
*
cartGoods
.
getQty
());
//咨询商品服务,套餐售价取originalPrice
cartGoods
.
setFinalPrice
(
comboxGoodsFinalPrice
);
}
else
{
newOrigOriginalPrice
=
isSkuProduct
?
skuProduct
.
getFinalPrice
()
:
spuProduct
.
getFinalPrice
();
cartGoods
.
setOriginalPrice
(
newOrigOriginalPrice
);
cartGoods
.
setOriginalAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
cartGoods
.
setAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
//咨询商品服务,套餐售价取originalPrice
cartGoods
.
setFinalPrice
(
isSkuProduct
?
skuProduct
.
getFinalPrice
()
:
spuProduct
.
getFinalPrice
());
}
cartGoods
.
setOriginalPrice
(
newOrigOriginalPrice
);
cartGoods
.
setOriginalAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
cartGoods
.
setAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
//咨询商品服务,套餐售价取originalPrice
cartGoods
.
setFinalPrice
(
isSetMealProduct
?
spuProduct
.
getOriginalPrice
()
:
isSkuProduct
?
skuProduct
.
getFinalPrice
()
:
spuProduct
.
getFinalPrice
());
cartGoods
.
setWeight
(
isSkuProduct
?
skuProduct
.
getWeight
()
:
spuProduct
.
getWeight
());
cartGoods
.
setUnit
(
isSkuProduct
?
skuProduct
.
getUnit
()
:
spuProduct
.
getUnit
());
cartGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
spuProduct
.
getWeightType
()));
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
7a2aa3b8
...
...
@@ -52,6 +52,10 @@ public class CartGoods {
* 商品券code
*/
private
String
couponCode
;
/**
* 商品券名称
*/
private
String
couponName
;
private
String
spuId
;
private
String
skuId
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
View file @
7a2aa3b8
...
...
@@ -30,6 +30,11 @@ public class ComboxGoodsRequestVo {
* 商品组Id
*/
private
String
productGroupId
;
/**
* 麦咖啡空键位
*/
private
String
emptyKey
;
/**
* 商品额外的属性
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ShoppingCartOperationType.java
View file @
7a2aa3b8
...
...
@@ -17,8 +17,8 @@ public enum ShoppingCartOperationType {
ADD_PRODUCT_COUPON
(
1
,
"增加商品券"
),
ADD_SUPER_PRICE_GOODS
(
2
,
"增加超值加购商品"
),
UPDATE3
(
3
,
"切换门店校验"
),
UPDATE4
(
4
,
"确认切换门店"
)
CHECK
(
3
,
"切换门店校验"
),
CONFIRM
(
4
,
"确认切换门店"
)
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
7a2aa3b8
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
7a2aa3b8
...
...
@@ -301,7 +301,7 @@ public class CalculationServiceImpl {
* 配送金额
*/
private
Long
calculateDeliveryAmount
(
String
receiveId
,
String
partnerId
,
String
storeId
,
String
menuType
)
{
Long
deliveryAmount
=
0
l
;
Long
deliveryAmount
=
100
0
l
;
if
(
StringUtils
.
isBlank
(
receiveId
)
||
!
BusinessTypeEnum
.
SAAS_DELIVERY
.
getCode
().
equals
(
menuType
))
{
return
deliveryAmount
;
}
...
...
@@ -379,6 +379,9 @@ public class CalculationServiceImpl {
//可选搭配
if
(
cartGoods
!=
null
&&
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductGroupList
()))
{
for
(
CartGoods
.
ComboxGoods
materialGoods
:
cartGoods
.
getProductGroupList
())
{
if
(
"0"
.
equals
(
materialGoods
.
getGoodsId
())){
continue
;
}
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
material
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
();
material
.
setType
(
2
);
material
.
setGoodsId
(
materialGoods
.
getGoodsId
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
View file @
7a2aa3b8
...
...
@@ -75,9 +75,9 @@ public class CouponDiscountCalculation {
*/
public
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
)
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
get
Coupon
Discounts
())
||
!
calculationDiscountResult
.
get
CouponDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getActivity
Type
())
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
get
ActivityType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getActivity
Type
()))
)))
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
get
Discounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
get
Type
())
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
get
Type
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
get
Type
()))
)))
{
return
;
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
...
...
@@ -109,33 +109,44 @@ public class CouponDiscountCalculation {
continue
;
}
cartGoods
.
setAmount
(
goodsMap
.
get
(
cartGoods
.
getGoodsId
()).
getRealAmount
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
>
discounts
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()).
getDiscounts
();
if
(
CollectionUtils
.
isNotEmpty
(
discounts
))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
goodsDiscount
=
discounts
.
stream
().
filter
(
t
->
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
t
.
getType
())).
findFirst
().
get
();
cartGoods
.
setCouponName
(
goodsDiscount
.
getActivityName
());
}
}
}
// 当couponCode不为空时,需计算优惠价格
long
couponDiscount
=
0
;
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponResultsList
=
calculationDiscountResult
.
getCouponDiscounts
();
if
(
CollectionUtils
.
isNotEmpty
(
couponResultsList
))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
couponResults
:
couponResultsList
)
{
couponDiscount
=
couponDiscount
+
(
couponResults
.
getDiscountAmount
()
==
null
?
0
:
couponResults
.
getDiscountAmount
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
calculationDiscountResult
.
getDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
couponDiscounts
=
discounts
.
stream
().
filter
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
())))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
couponDiscounts
))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
couponResults
:
couponDiscounts
)
{
couponDiscount
=
couponDiscount
+
(
couponResults
.
getDiscount
()
==
null
?
0
:
couponResults
.
getDiscount
());
}
}
shoppingCartGoodsResponseVo
.
setCouponDiscount
(
couponDiscount
);
}
/**
* 商品均摊
*/
public
void
updateShoppingCartGoodsApportion
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
){
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
get
Coupon
Discounts
())
||
!
calculationDiscountResult
.
get
CouponDiscounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getActivity
Type
())
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
get
ActivityType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getActivity
Type
()))
)))
{
if
(
calculationDiscountResult
==
null
||
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())
||
!
calculationDiscountResult
.
get
Discounts
().
stream
().
anyMatch
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
get
Type
())
||(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
get
Type
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
get
Type
()))
)))
{
return
;
}
//订单级别券优惠
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponDiscounts
=
calculationDiscountResult
.
getCouponDiscounts
();
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
couponDiscounts
=
calculationDiscountResult
.
getDiscounts
();
if
(
CollectionUtils
.
isEmpty
(
couponDiscounts
))
{
return
;
}
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
>
discounts
=
couponDiscounts
.
stream
().
filter
(
discount
->
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
discount
.
getType
())
||
(
ActivityTypeEnum
.
TYPE_31
.
getCode
().
equals
(
discount
.
getType
()))
||
(
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
discount
.
getType
())))).
collect
(
Collectors
.
toList
());
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
>
goodsList
=
calculationDiscountResult
.
getGoods
();
if
(
CollectionUtils
.
isEmpty
(
goodsList
))
{
...
...
@@ -149,18 +160,20 @@ public class CouponDiscountCalculation {
//商品券商品
if
(
StringUtils
.
isNotEmpty
(
cartGoods
.
getCouponCode
()))
{
List
<
ActivityDiscountsDto
>
productActivityDiscountsDtos
=
new
ArrayList
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
couponDiscount
:
couponDiscounts
)
{
if
(
couponDiscount
.
getCouponCode
().
equals
(
cartGoods
.
getCouponCode
())){
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
couponDiscount
.
getCouponCode
());
activityDiscountsDto
.
setActivityName
(
couponDiscount
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
couponDiscount
.
getActivityType
());
activityDiscountsDto
.
setDiscountAmount
(
0
-
couponDiscount
.
getDiscountAmount
());
productActivityDiscountsDtos
.
add
(
activityDiscountsDto
);
cartGoods
.
setTotalDiscountAmount
(-
activityDiscountsDto
.
getDiscountAmount
());
cartGoods
.
setSalePrice
(
0L
);
cartGoods
.
setActivityDiscountsDtos
(
productActivityDiscountsDtos
);
if
(
CollectionUtils
.
isNotEmpty
(
discounts
))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
couponDiscount
:
discounts
)
{
if
(
couponDiscount
.
getActivityCode
().
equals
(
cartGoods
.
getCouponCode
()))
{
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
couponDiscount
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
couponDiscount
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
couponDiscount
.
getType
());
activityDiscountsDto
.
setDiscountAmount
(
0
-
couponDiscount
.
getDiscount
());
productActivityDiscountsDtos
.
add
(
activityDiscountsDto
);
cartGoods
.
setTotalDiscountAmount
(-
activityDiscountsDto
.
getDiscountAmount
());
cartGoods
.
setSalePrice
(
0L
);
cartGoods
.
setActivityDiscountsDtos
(
productActivityDiscountsDtos
);
}
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/SetMealCalculation.java
View file @
7a2aa3b8
...
...
@@ -70,13 +70,15 @@ public class SetMealCalculation {
long
productComboTotalAmount
=
productComboAmount
*
cartGoods
.
getQty
();
cartGoods
.
setOriginalAmount
(
productGroupTotalAmount
+
productComboTotalAmount
);
cartGoods
.
setOriginalPrice
(
productGroupTotalAmount
+
productComboTotalAmount
);
cartGoods
.
setOriginalPrice
(
productComboTotalAmount
);
cartGoods
.
setAmount
(
productGroupTotalAmount
+
productComboTotalAmount
);
cartGoods
.
setFinalPrice
(
productComboTotalAmount
);
// 套餐(固定商品)现价
String
toastMsg
=
getTotalAmount
(
cartGoods
,
productGroupAmount
,
numberMap
,
goodsMap
);
if
(
StringUtils
.
isNotEmpty
(
toastMsg
))
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
toastMsg
);
}
//
String toastMsg = getTotalAmount(cartGoods, productGroupAmount, numberMap, goodsMap);
//
if (StringUtils.isNotEmpty(toastMsg)) {
//
shoppingCartGoodsResponseVo.setToastMsg(toastMsg);
//
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CopyShoppingCartRequestVo.java
View file @
7a2aa3b8
...
...
@@ -44,4 +44,10 @@ public class CopyShoppingCartRequestVo {
@NotEmpty
(
message
=
"orderId不能为空"
)
private
String
orderId
;
/**
* 操作类型 ShoppingCartOperationType 枚举
* 校验通过直接返回购物车商品数据
*/
private
Integer
operationType
;
}
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