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
bdd1792b
Commit
bdd1792b
authored
Sep 28, 2020
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
麦咖啡加料与特制属性
parent
ee4ac3f0
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
314 additions
and
34 deletions
+314
-34
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
+10
-8
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+194
-8
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductSpecAttrValueGroupType.java
+27
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateSkuProductType.java
+3
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+3
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+21
-3
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+14
-6
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+30
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
+6
-6
No files found.
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
View file @
bdd1792b
...
...
@@ -121,7 +121,7 @@ public class CartGoods {
/**
* 麦咖啡定制属性
*/
private
List
<
CartGoodsExt
>
extra2
;
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 创建时间(mili)
...
...
@@ -205,19 +205,20 @@ public class CartGoods {
}
@Data
public
final
static
class
CartGoodsExt
{
public
final
static
class
SpecialExtra
{
/**
*
定制
属性Id
* 属性Id
*/
private
String
attributeId
;
/**
*
定制属性code
*
属性名
*/
private
String
attributeCode
;
private
String
attributeName
;
/**
*
定制属性名称
*
麦咖啡特定属性入机code
*/
private
String
attributeNam
e
;
private
String
specialCod
e
;
}
@Data
...
...
@@ -226,6 +227,7 @@ public class CartGoods {
* 单规格spuId,多规格skuId
*/
private
String
goodsId
;
private
String
spuId
;
private
String
skuId
;
private
String
skuName
;
/**
...
...
@@ -309,7 +311,7 @@ public class CartGoods {
/**
* 麦咖啡定制属性
*/
private
List
<
CartGoodsExt
>
extra2
;
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡套餐商品加料
...
...
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
bdd1792b
...
...
@@ -281,6 +281,22 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto
.
setUnit
(
comboxGoods
.
getUnit
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
cartGoodsExtras
=
BeanUtil
.
convertBeans
(
comboxGoods
.
getExtra
(),
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
::
new
);
cartGoodsDetailDto
.
setExtraList
(
cartGoodsExtras
);
cartGoodsDetailDto
.
setSpecialExtra
(
comboxGoods
.
getSpecialExtra
());
//小料
if
(
CollectionUtils
.
isNotEmpty
(
comboxGoods
.
getProductMaterialList
()))
{
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
MaterialGoods
>
materialList
=
new
ArrayList
<>(
0
);
for
(
CartGoods
.
MaterialGoods
materialGoods
:
comboxGoods
.
getProductMaterialList
())
{
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
MaterialGoods
goods
=
new
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
MaterialGoods
();
goods
.
setSpuId
(
materialGoods
.
getSpuId
());
goods
.
setSpuName
(
materialGoods
.
getSpuName
());
goods
.
setOriginalPrice
(
materialGoods
.
getOriginalPrice
());
goods
.
setSalePrice
(
materialGoods
.
getFinalPrice
());
goods
.
setQty
(
cartGoods
.
getQty
());
goods
.
setTotalDiscountAmount
(
0
);
materialList
.
add
(
goods
);
}
cartGoodsDetailDto
.
setMaterialList
(
materialList
);
}
//获取当前套餐固定商品的均摊价格
if
(
isFixed
)
{
if
(
size
--
==
1
)
{
...
...
@@ -517,7 +533,8 @@ public class ShoppingCartConvertAdapter {
if
(
CollectionUtils
.
isNotEmpty
(
productComboList
))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
:
productComboList
)
{
ValidateSkuProductType
validateSkuProductType
=
new
ValidateSkuProductType
();
validateSkuProductType
.
setProductId
(
comboxGoods
.
getGoodsId
());
validateSkuProductType
.
setProductId
(
comboxGoods
.
getSpuId
());
validateSkuProductType
.
setSkuId
(
comboxGoods
.
getSkuId
());
validateSkuProductType
.
setPrice
(
comboxGoods
.
getOriginalPrice
()
==
null
?
0
:
comboxGoods
.
getOriginalPrice
().
intValue
());
validateSkuProductType
.
setMarkUpPrice
(
comboxGoods
.
getFinalPrice
()
==
null
?
0
:
comboxGoods
.
getFinalPrice
().
intValue
());
validateSkuProductType
.
setQty
(
comboxGoods
.
getQty
());
...
...
@@ -576,17 +593,33 @@ public class ShoppingCartConvertAdapter {
//购物车小标题
cartGoods
.
setSubName
(
StringUtils
.
isNotEmpty
(
skuSpecName
)
&&
StringUtils
.
isNotEmpty
(
attributeName
)
?
skuSpecName
+
"/"
+
attributeName
:
skuSpecName
+
attributeName
);
if
(
isSetMealProduct
)
{
//套餐固定商品
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductComboList
()))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productCombo
:
cartGoods
.
getProductComboList
())
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productCombo
:
cartGoods
.
getProductComboList
()){
//套餐子商品多规格商品
if
(
productCombo
.
getSpuId
()
==
null
&&
!
productCombo
.
getSkuId
().
equals
(
productCombo
.
getSpuId
())
){
updateComboxGoodsInfoForMCoffee
(
productCombo
,
spuProduct
,
true
);
}
else
{
//套餐子商品为单品
updateComboxGoodsInfoForMCoffee
(
productCombo
,
spuProduct
,
true
);
}
}
}
//套餐可选商品
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductGroupList
()))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
:
cartGoods
.
getProductComboList
()){
//套餐子商品多规格商品
if
(
comboxGoods
.
getSpuId
()
==
null
&&
!
comboxGoods
.
getSkuId
().
equals
(
comboxGoods
.
getSpuId
())
){
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productGroup
:
cartGoods
.
getProductGroupList
())
{
updateComboxGoodsInfoForMCoffee
(
productGroup
,
spuProduct
,
false
);
}
}
else
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productGroup
:
cartGoods
.
getProductGroupList
())
{
updateComboxGoodsInfoForMCoffee
(
productGroup
,
spuProduct
,
false
);
}
}
}
}
}
//更新当前商品行价格
...
...
@@ -655,18 +688,15 @@ public class ShoppingCartConvertAdapter {
comboxGoods
.
setWeight
(
isComboxGoods
?
productComboType
.
getWeight
()
:
groupDetailType
.
getWeight
());
comboxGoods
.
setTax
(
isComboxGoods
?
productComboType
.
getTax
()
:
groupDetailType
.
getTax
());
comboxGoods
.
setTaxId
(
isComboxGoods
?
productComboType
.
getTaxId
()
:
groupDetailType
.
getTaxId
());
//套餐定制属性
List
<
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
CartGoodsExt
>
cartGoodsExts
=
new
ArrayList
<>();
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
CartGoodsExt
cartGoodsExt
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
CartGoodsExt
();
cartGoodsExts
.
add
(
cartGoodsExt
);
comboxGoods
.
setExtra2
(
cartGoodsExts
);
//套餐内商品加料
if
(
CollectionUtils
.
isNotEmpty
(
comboxGoods
.
getProductMaterialList
())){
List
<
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
>
productMaterialList
=
new
ArrayList
<>();
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
materialGoods
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
();
productMaterialList
.
add
(
materialGoods
);
comboxGoods
.
setProductMaterialList
(
productMaterialList
);
}
}
private
Map
<
String
,
String
>
getAttributesNew
(
List
<
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
CartGoodsExtra
>
extra
)
{
if
(
CollectionUtils
.
isEmpty
(
extra
))
{
...
...
@@ -733,4 +763,159 @@ public class ShoppingCartConvertAdapter {
cartGoods
.
setOriginalMaterialAmount
(
originalMaterAmount
);
}
public
void
updateCartGoodsInfo
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
ProductBeanDTO
spuProduct
,
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
)
{
try
{
//是否是sku商品
boolean
isSkuProduct
=
ObjectUtils
.
equals
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
SKU_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
());
// 如果是套餐商品,更新套餐内固定商品&可选商品的详细信息
boolean
isSetMealProduct
=
ObjectUtils
.
equals
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ProductType
.
SetMeal
.
getCode
(),
spuProduct
.
getType
())
||
ObjectUtils
.
equals
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ProductType
.
IncreasedPackage
.
getCode
(),
spuProduct
.
getType
());
ProductBeanDTO
.
SkuProductBean
skuProduct
=
isSkuProduct
?
spuProduct
.
getSkuList
().
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
cartGoods
.
getSkuId
(),
p
.
getSkuId
())).
findFirst
().
get
()
:
null
;
Map
<
String
,
String
>
attributes
=
getAttributesNew
(
cartGoods
.
getExtra
());
if
(!
"早餐啡常搭"
.
equals
(
cartGoods
.
getName
())
&&
!
"早餐啡常搭"
.
equals
(
cartGoods
.
getSkuName
())
&&
!
"早餐啡常搭"
.
equals
(
cartGoods
.
getSpuName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getSkuName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getSpuName
()))
{
cartGoods
.
setName
(
spuProduct
.
getName
());
cartGoods
.
setSpuName
(
spuProduct
.
getName
());
cartGoods
.
setSkuName
(
isSkuProduct
?
skuProduct
.
getProductName
()
:
spuProduct
.
getName
());
}
cartGoods
.
setSpecProductId
(
attributes
.
get
(
ATTRIBUTEID
));
cartGoods
.
setPic
(
spuProduct
.
getPicture
());
cartGoods
.
setPackPrice
(
isSkuProduct
?
skuProduct
.
getPackPrice
()
:
spuProduct
.
getPackPrice
());
cartGoods
.
setStockLimit
(
isSkuProduct
?
ObjectUtils
.
equals
(
1
,
skuProduct
.
getStockLimit
())
:
ObjectUtils
.
equals
(
1
,
spuProduct
.
getStockLimit
()));
cartGoods
.
setCustomerCode
(
isSkuProduct
?
skuProduct
.
getCustomerCode
()
:
spuProduct
.
getCustomerCode
());
cartGoods
.
setRiseSell
(
isSkuProduct
?
skuProduct
.
getRiseSell
()
:
spuProduct
.
getRiseSell
());
cartGoods
.
setMemberDiscount
(
spuProduct
.
getMemberDiscountResult
());
cartGoods
.
setClassificationId
(
spuProduct
.
getCategory
());
cartGoods
.
setClassificationName
(
spuProduct
.
getCategoryName
());
cartGoods
.
setTax
(
spuProduct
.
getTax
());
cartGoods
.
setTaxId
(
spuProduct
.
getTaxId
());
String
skuSpecName
=
""
;
if
(
isSkuProduct
&&
CollectionUtils
.
isNotEmpty
(
skuProduct
.
getSkuSpecValues
()))
{
List
<
String
>
skuSpecValus
=
skuProduct
.
getSkuSpecValues
().
stream
().
map
(
p
->
p
.
getSpecValue
()).
collect
(
Collectors
.
toList
());
skuSpecName
=
StringUtils
.
join
(
skuSpecValus
,
"/"
);
}
String
attributeName
=
attributes
.
get
(
ATTRIBUTENAME
)
==
null
?
""
:
attributes
.
get
(
ATTRIBUTENAME
);
//购物车小标题
cartGoods
.
setSubName
(
StringUtils
.
isNotEmpty
(
skuSpecName
)
&&
StringUtils
.
isNotEmpty
(
attributeName
)
?
skuSpecName
+
"/"
+
attributeName
:
skuSpecName
+
attributeName
);
if
(
isSetMealProduct
)
{
//套餐固定商品
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductComboList
()))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productCombo
:
cartGoods
.
getProductComboList
()){
//套餐子商品多规格商品
if
(
productCombo
.
getSpuId
()
!=
null
&&
!
productCombo
.
getSkuId
().
equals
(
productCombo
.
getSpuId
())
){
ProductBeanDTO
productBeanDTO
=
subProductTypeMap
.
get
(
productCombo
.
getSpuId
());
updateComboxGoodsInfoFor
(
productCombo
,
productBeanDTO
,
true
);
}
else
{
//套餐子商品为单品
updateComboxGoodsInfoForMCoffee
(
productCombo
,
spuProduct
,
true
);
}
}
}
//套餐可选商品
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductGroupList
()))
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
:
cartGoods
.
getProductGroupList
()){
//套餐子商品多规格商品
if
(
comboxGoods
.
getSpuId
()
!=
null
&&
!
comboxGoods
.
getSkuId
().
equals
(
comboxGoods
.
getSpuId
())
){
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productGroup
:
cartGoods
.
getProductGroupList
())
{
updateComboxGoodsInfoForMCoffee
(
productGroup
,
spuProduct
,
false
);
}
}
else
{
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
productGroup
:
cartGoods
.
getProductGroupList
())
{
updateComboxGoodsInfoForMCoffee
(
productGroup
,
spuProduct
,
false
);
}
}
}
}
}
//更新当前商品行价格
Long
newOrigOriginalPrice
=
0L
;
if
(
isSetMealProduct
)
{
newOrigOriginalPrice
+=
cartGoods
.
getProductComboList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
newOrigOriginalPrice
+=
cartGoods
.
getProductGroupList
().
stream
().
mapToLong
(
t
->
t
.
getOriginalAmount
()).
sum
();
}
else
{
newOrigOriginalPrice
=
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
()));
cartGoods
.
setMaterialAmount
(
0L
);
cartGoods
.
setOriginalMaterialAmount
(
0L
);
// todo 设置加料
this
.
checkMaterialProductForMCoffee
(
cartGoods
,
spuProduct
);
}
catch
(
Exception
ex
)
{
ErrorLog
.
infoConvertJson
(
this
.
getClass
(),
"updateCartGoodsInfoForMCoffee_Error"
,
ex
);
cartGoods
.
setCartGoodsUid
(
null
);
}
}
private
void
updateComboxGoodsInfoFor
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
ProductBeanDTO
productBeanDTO
,
boolean
isComboxGoods
)
{
if
(
CollectionUtils
.
isEmpty
(
productBeanDTO
.
getSkuList
())){
return
;
}
ProductBeanDTO
.
SkuProductBean
comboxGoodsSkuProductBean
=
null
;
for
(
ProductBeanDTO
.
SkuProductBean
skuProductBean
:
productBeanDTO
.
getSkuList
()){
if
(
comboxGoods
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
())){
comboxGoodsSkuProductBean
=
skuProductBean
;
break
;
}
}
if
(
comboxGoodsSkuProductBean
==
null
){
return
;
}
// 若是固定商品则取商品详情的FinalPrice,若是可选商品则取MarkUpPrice
Long
finalPrice
=
comboxGoodsSkuProductBean
.
getFinalPrice
();
// 设置商品详情
Map
<
String
,
String
>
attributes
=
getAttributesNew
(
comboxGoods
.
getExtra
());
comboxGoods
.
setName
(
comboxGoodsSkuProductBean
.
getProductName
());
comboxGoods
.
setSpuName
(
productBeanDTO
.
getName
());
comboxGoods
.
setSkuName
(
comboxGoodsSkuProductBean
.
getProductName
());
comboxGoods
.
setSpecProductId
(
attributes
.
get
(
ATTRIBUTEID
));
comboxGoods
.
setSubName
(
attributes
.
get
(
ATTRIBUTENAME
));
comboxGoods
.
setPic
(
productBeanDTO
.
getPicture
());
comboxGoods
.
setOriginalPrice
(
comboxGoodsSkuProductBean
.
getOriginalPrice
());
comboxGoods
.
setOriginalAmount
(
comboxGoods
.
getOriginalPrice
()
*
comboxGoods
.
getQty
());
comboxGoods
.
setAmount
(
finalPrice
*
comboxGoods
.
getQty
());
comboxGoods
.
setCustomerCode
(
comboxGoodsSkuProductBean
.
getCustomerCode
());
comboxGoods
.
setFinalPrice
(
finalPrice
);
comboxGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
productBeanDTO
.
getWeightType
()));
comboxGoods
.
setUnit
(
comboxGoodsSkuProductBean
.
getUnit
());
comboxGoods
.
setWeight
(
comboxGoodsSkuProductBean
.
getWeight
());
comboxGoods
.
setTax
(
comboxGoodsSkuProductBean
.
getTax
());
comboxGoods
.
setTaxId
(
comboxGoodsSkuProductBean
.
getTaxId
());
//套餐内商品加料
if
(
CollectionUtils
.
isNotEmpty
(
comboxGoods
.
getProductMaterialList
())){
if
(
CollectionUtils
.
isNotEmpty
(
productBeanDTO
.
getAdditionalGroupList
()))
{
List
<
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
productBeanDTO
.
getAdditionalGroupList
().
get
(
0
).
getGroupDetail
();
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType1
=
null
;
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
productMaterialList
:
comboxGoods
.
getProductMaterialList
()){
for
(
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
){
if
(
groupDetailType
.
getProductId
().
equals
(
productMaterialList
.
getSpuId
())){
groupDetailType1
=
groupDetailType
;
break
;
}
}
}
List
<
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
>
productMaterialList
=
new
ArrayList
<>();
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
materialGoods
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
();
materialGoods
.
setSpuId
(
comboxGoods
.
getSpuId
());
materialGoods
.
setAmount
(
groupDetailType1
.
getProductPrice
().
longValue
());
materialGoods
.
setFinalPrice
(
groupDetailType1
.
getProductFinalPrice
().
longValue
());
materialGoods
.
setOriginalAmount
(
groupDetailType1
.
getProductPrice
().
longValue
());
materialGoods
.
setOriginalPrice
(
groupDetailType1
.
getProductPrice
().
longValue
());
materialGoods
.
setSpuName
(
groupDetailType1
.
getProductName
());
productMaterialList
.
add
(
materialGoods
);
comboxGoods
.
setProductMaterialList
(
productMaterialList
);
}
}
}
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductSpecAttrValueGroupType.java
0 → 100644
View file @
bdd1792b
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ProductSpecAttrValueGroupType
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/27 10:54
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ProductSpecAttrValueGroupType
{
//规格小类id
private
String
specValueId
;
//规格小类属性名称
private
String
name
;
//规格小类属性编号
private
String
qty
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
View file @
bdd1792b
...
...
@@ -3,6 +3,8 @@ package cn.freemud.entities.dto.product;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
lombok.Data
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -25,4 +27,6 @@ public class ValiadShopProductResult {
private
ProductBeanDTO
productType
;
private
String
uuid
;
private
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateSkuProductType.java
View file @
bdd1792b
...
...
@@ -19,6 +19,7 @@ import java.util.List;
@Data
public
class
ValidateSkuProductType
{
private
String
skuId
;
private
String
productId
;
private
Integer
price
;
private
Integer
markUpPrice
;
...
...
@@ -26,4 +27,6 @@ public class ValidateSkuProductType {
private
Long
productGroupId
;
private
List
<
ProductAttributeValueType
>
attributeList
;
private
ProductSpecAttrValueGroupType
productSpecAttrValueGroupType
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
bdd1792b
...
...
@@ -3,6 +3,7 @@ package cn.freemud.entities.dto.shoppingCart;
import
cn.freemud.entities.dto.OrderProductAddInfo
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.SubtractStockVO
;
import
com.alibaba.fastjson.JSON
;
import
lombok.Builder
;
...
...
@@ -245,6 +246,8 @@ public class ShoppingCartGoodsDto {
*/
private
List
<
CartGoodsDetailDto
.
CartGoodsExtra
>
extraList
=
new
ArrayList
<>(
0
);
private
List
<
CartGoods
.
SpecialExtra
>
specialExtra
=
new
ArrayList
<>();
/**
* 当前商品享受的促销活动
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
bdd1792b
...
...
@@ -124,6 +124,11 @@ public class CartGoods {
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 创建时间(mili)
*/
private
long
createTimeMili
=
System
.
currentTimeMillis
();
...
...
@@ -193,13 +198,20 @@ public class CartGoods {
*/
private
List
<
MaterialGoods
>
productMaterialList
;
@Data
public
final
static
class
CartGoodsExtra
{
/**
* 麦咖啡特定属性入机code
* 属性Id
*/
private
String
specialCode
;
private
String
attributeId
;
/**
* 属性名
*/
private
String
attributeName
;
}
@Data
public
final
static
class
CartGoods
Extra
{
public
final
static
class
Special
Extra
{
/**
* 属性Id
*/
...
...
@@ -221,6 +233,7 @@ public class CartGoods {
* 单规格spuId,多规格skuId
*/
private
String
goodsId
;
private
String
spuId
;
private
String
skuId
;
private
String
skuName
;
/**
...
...
@@ -275,6 +288,11 @@ public class CartGoods {
* 配料或属性
*/
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡特定属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 1:称重菜
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
View file @
bdd1792b
...
...
@@ -35,6 +35,8 @@ public class ComboxGoodsRequestVo {
*/
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
List
<
CartGoods
.
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡多规格商品加料
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
bdd1792b
...
...
@@ -999,6 +999,7 @@ public class ShoppingCartMCoffeeServiceImpl {
}
cartGoods
.
setGoodsType
(
goodsType
);
cartGoods
.
setExtra
(
addShoppingCartGoodsRequestVo
.
getExtra
());
cartGoods
.
setSpecialExtra
(
addShoppingCartGoodsRequestVo
.
getSpecialExtra
());
cartGoods
.
setNodeId
(
addShoppingCartGoodsRequestVo
.
getNodeId
());
cartGoods
.
setCategoryName
(
addShoppingCartGoodsRequestVo
.
getCategoryName
());
List
<
CartGoods
.
ComboxGoods
>
productComboList
=
new
ArrayList
<>();
...
...
@@ -1009,8 +1010,10 @@ public class ShoppingCartMCoffeeServiceImpl {
CartGoods
.
ComboxGoods
productCombox
=
new
CartGoods
.
ComboxGoods
();
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setSpuId
(
vo
.
getSpuId
());
productCombox
.
setQty
(
vo
.
getQty
());
productCombox
.
setExtra
(
vo
.
getExtra
());
productCombox
.
setSpecialExtra
(
vo
.
getSpecialExtra
());
//加料商品集
if
(
CollectionUtils
.
isNotEmpty
(
vo
.
getProductMaterialList
()))
{
List
<
CartGoods
.
MaterialGoods
>
comboxMaterialGoodsList
=
new
ArrayList
<>();
...
...
@@ -1029,8 +1032,10 @@ public class ShoppingCartMCoffeeServiceImpl {
CartGoods
.
ComboxGoods
productCombox
=
new
CartGoods
.
ComboxGoods
();
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setSpuId
(
vo
.
getSpuId
());
productCombox
.
setQty
(
vo
.
getQty
());
productCombox
.
setExtra
(
vo
.
getExtra
());
productCombox
.
setSpecialExtra
(
vo
.
getSpecialExtra
());
productCombox
.
setProductGroupId
(
StringUtils
.
isEmpty
(
vo
.
getProductGroupId
())
?
null
:
Long
.
parseLong
(
vo
.
getProductGroupId
()));
//加料商品集
if
(
CollectionUtils
.
isNotEmpty
(
vo
.
getProductMaterialList
()))
{
...
...
@@ -1168,13 +1173,11 @@ public class ShoppingCartMCoffeeServiceImpl {
}
private
BaseResponse
<
CheckCartRequest
>
checkAllCartGoodsForMCoffee
(
CheckCartRequest
checkCartRequest
)
{
// ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class);
ProductService
productService
=
SDKCommonBaseContextWare
.
getBean
(
ProductService
.
class
);
try
{
ValidateShopProductRequest
validateShopProductRequest
=
shoppingCartConvertAdapter
.
getValidateShopProductRequest
(
checkCartRequest
);
ProductBaseResponse
<
ValiadShopProductResponse
>
valiadResponse
=
productClient
.
validateShopProductAboutReason
(
validateShopProductRequest
);
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getErrcode
())
||
valiadResponse
.
getData
()==
null
)
{
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getErrcode
()
.
toString
()
)
||
valiadResponse
.
getData
()==
null
)
{
checkCartRequest
.
getCartGoodsList
().
clear
();
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
...
...
@@ -1232,14 +1235,19 @@ public class ShoppingCartMCoffeeServiceImpl {
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
}
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getSuccessList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
continue
;
}
shoppingCartConvertAdapter
.
updateCartGoodsInfoForMCoffee
(
cartGoods
,
productList
);
for
(
ValiadShopProductResult
valiadShopProductResult
:
validateResult
.
getSuccessList
()){
ProductBeanDTO
productType
=
valiadShopProductResult
.
getProductType
();
if
(
ObjectUtils
.
equals
(
productType
.
getPid
(),
cartGoods
.
getSpuId
())){
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
=
valiadShopProductResult
.
getSubProductTypeMap
();
shoppingCartConvertAdapter
.
updateCartGoodsInfo
(
cartGoods
,
productType
,
subProductTypeMap
);
break
;
}
}
}
//校验商品券是否有当前点餐方式
// cartGoodsStates = updateSpqCartGoodsInfo(checkCartRequest.getCartGoodsList(), checkCartRequest.getOrderWay(), checkCartRequest.getPartnerId(), checkCartRequest.getTrackingNo(), cartGoodsStates
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
bdd1792b
...
...
@@ -372,10 +372,9 @@ public class CalculationServiceImpl {
calculationDiscountGoods
.
setOriginalPrice
(
originalPrice
);
calculationDiscountGoods
.
setMemberDiscount
(
memberDiscount
);
ArrayList
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
>
materials
=
new
ArrayList
<>();
//可选搭配
if
(
cartGoods
!=
null
&&
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductGroupList
()))
{
ArrayList
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
>
materials
=
new
ArrayList
<>();
for
(
CartGoods
.
ComboxGoods
materialGoods
:
cartGoods
.
getProductGroupList
())
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
material
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
();
material
.
setType
(
2
);
...
...
@@ -384,9 +383,37 @@ public class CalculationServiceImpl {
material
.
setOriginalPrice
(
materialGoods
.
getFinalPrice
());
materials
.
add
(
material
);
}
calculationDiscountGoods
.
setSmallMaterial
(
materials
);
}
//固定商品
if
(
cartGoods
!=
null
&&
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductComboList
()))
{
for
(
CartGoods
.
ComboxGoods
materialGoods
:
cartGoods
.
getProductComboList
())
{
//加料
if
(
CollectionUtils
.
isNotEmpty
(
materialGoods
.
getProductMaterialList
()))
{
for
(
CartGoods
.
MaterialGoods
materialGoods2
:
materialGoods
.
getProductMaterialList
())
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
material
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
();
material
.
setType
(
1
);
material
.
setGoodsId
(
materialGoods2
.
getSpuId
());
material
.
setGoodsQuantity
(
cartGoods
.
getQty
());
material
.
setOriginalPrice
(
materialGoods2
.
getFinalPrice
());
materials
.
add
(
material
);
}
}
}
}
//加料
if
(
cartGoods
!=
null
&&
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductMaterialList
()))
{
for
(
CartGoods
.
MaterialGoods
materialGoods
:
cartGoods
.
getProductMaterialList
())
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
material
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
.
Material
();
material
.
setType
(
1
);
material
.
setGoodsId
(
materialGoods
.
getSpuId
());
material
.
setGoodsQuantity
(
cartGoods
.
getQty
());
material
.
setOriginalPrice
(
materialGoods
.
getFinalPrice
());
materials
.
add
(
material
);
}
}
calculationDiscountGoods
.
setSmallMaterial
(
materials
);
calculationDiscountGoodsList
.
add
(
calculationDiscountGoods
);
// //累加需加入计算的商品
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
View file @
bdd1792b
...
...
@@ -60,10 +60,6 @@ public class MCoffeeAddGoodsRequestVo {
private
String
spuId
;
private
String
skuId
;
/**
* 商品额外的属性
*/
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
String
version
;
...
...
@@ -76,6 +72,10 @@ public class MCoffeeAddGoodsRequestVo {
*/
private
String
categoryName
;
/**
* 商品额外的属性
*/
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
/**
* 套餐固定商品
*/
private
List
<
ComboxGoodsRequestVo
>
productComboList
;
...
...
@@ -90,9 +90,9 @@ public class MCoffeeAddGoodsRequestVo {
private
List
<
MaterialRequestVo
>
productMaterialList
;
/**
* 麦咖啡
特定属性入机code
* 麦咖啡
定制属性
*/
private
String
specialCode
;
private
List
<
CartGoods
.
SpecialExtra
>
specialExtra
;
private
String
appType
;
...
...
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