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
e21da78e
Commit
e21da78e
authored
Nov 25, 2020
by
yu.sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sunyu::new function::about multipleSpec product add singleSpec product and material
parent
6f457559
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
377 additions
and
37 deletions
+377
-37
.gitignore
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+90
-31
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductTypeBeanDTO.java
+278
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
+3
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+5
-3
No files found.
.gitignore
View file @
e21da78e
# Created by .ignore support plugin (hsz.mobi)
.gitignore
.idea/
.DS_Store
assortment-ordercenter-sdk/assortment-ordercenter-sdk.iml
assortment-ordercenter-sdk/target/
assortment-shoppingcart-sdk/assortment-shoppingcart-sdk.iml
...
...
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
e21da78e
...
...
@@ -15,10 +15,7 @@ package cn.freemud.adapter;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.openplatform.WeixinProductRequestDto
;
import
cn.freemud.entities.dto.product.ProductAttributeValueType
;
import
cn.freemud.entities.dto.product.ValidateShopProductRequest
;
import
cn.freemud.entities.dto.product.ValidateShopProductType
;
import
cn.freemud.entities.dto.product.ValidateSkuProductType
;
import
cn.freemud.entities.dto.product.*
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityTypeEnum
;
...
...
@@ -565,18 +562,18 @@ public class ShoppingCartConvertAdapter {
* @param cartGoods 当前购物车商品行
* @param productBeans 购物车中所有的productId对应的商品详情
*/
public
void
updateCartGoodsInfoForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
List
<
ProductBeanDTO
>
productBeans
)
{
public
void
updateCartGoodsInfoForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
List
<
Product
Type
BeanDTO
>
productBeans
)
{
try
{
Optional
<
ProductBeanDTO
>
firstProduct
=
productBeans
.
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
p
.
getPid
(),
cartGoods
.
getSpuId
())).
findFirst
();
Optional
<
Product
Type
BeanDTO
>
firstProduct
=
productBeans
.
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
p
.
getPid
(),
cartGoods
.
getSpuId
())).
findFirst
();
if
(!
firstProduct
.
isPresent
())
{
return
;
}
ProductBeanDTO
spuProduct
=
firstProduct
.
get
();
Product
Type
BeanDTO
spuProduct
=
firstProduct
.
get
();
//是否是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
;
Product
Type
BeanDTO
.
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
())
...
...
@@ -669,16 +666,16 @@ public class ShoppingCartConvertAdapter {
* @param isComboxGoods 是否是固定商品
* @return
*/
private
void
updateComboxGoodsInfoForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
ProductBeanDTO
parentProductBean
,
boolean
isComboxGoods
)
{
private
void
updateComboxGoodsInfoForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
Product
Type
BeanDTO
parentProductBean
,
boolean
isComboxGoods
)
{
if
(
"0"
.
equals
(
comboxGoods
.
getGoodsId
())){
return
;
}
Product
BeanDTO
.
ProductComboType
productComboType
=
new
Product
BeanDTO
.
ProductComboType
();
Product
BeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
=
new
Product
BeanDTO
.
ProductGroupType
.
GroupDetailType
();
Product
TypeBeanDTO
.
ProductComboType
productComboType
=
new
ProductType
BeanDTO
.
ProductComboType
();
Product
TypeBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
=
new
ProductType
BeanDTO
.
ProductGroupType
.
GroupDetailType
();
if
(
isComboxGoods
)
{
productComboType
=
parentProductBean
.
getProductComboList
().
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
comboxGoods
.
getGoodsId
(),
p
.
getProductId
())).
findFirst
().
orElse
(
new
ProductBeanDTO
.
ProductComboType
());
productComboType
=
parentProductBean
.
getProductComboList
().
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
comboxGoods
.
getGoodsId
(),
p
.
getProductId
())).
findFirst
().
orElse
(
new
Product
Type
BeanDTO
.
ProductComboType
());
}
else
{
Map
<
String
,
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
>
map
=
new
HashMap
<>();
Map
<
String
,
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
>
map
=
new
HashMap
<>();
parentProductBean
.
getProductGroupList
().
stream
().
map
(
t
->
t
.
getGroupDetail
()).
forEach
(
group
->
group
.
forEach
(
detailType
->
map
.
put
(
detailType
.
getProductId
(),
detailType
)));
groupDetailType
=
map
.
get
(
comboxGoods
.
getGoodsId
());
}
...
...
@@ -725,23 +722,21 @@ public class ShoppingCartConvertAdapter {
return
result
;
}
private
void
checkMaterialProductForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
ProductBeanDTO
spuProduct
)
{
private
void
checkMaterialProductForMCoffee
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
Product
Type
BeanDTO
spuProduct
)
{
if
(
CollectionUtils
.
isEmpty
(
cartGoods
.
getProductMaterialList
()))
return
;
//加料信息为空
if
(
CollectionUtils
.
isEmpty
(
spuProduct
.
getAdditionalGroupList
()))
{
cartGoods
.
setGoodsType
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
EXCEPTION_GOODS
.
getGoodsType
());
cartGoods
.
setProductMaterialList
(
new
ArrayList
<>());
return
;
checkSkuMaterialProductForMccafe
(
cartGoods
,
spuProduct
);
}
//提取加料信息
List
<
String
>
materialSpu
=
new
ArrayList
<>();
List
<
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
new
ArrayList
<>();
for
(
ProductBeanDTO
.
ProductGroupType
productGroupType
:
spuProduct
.
getAdditionalGroupList
()){
List
<
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
new
ArrayList
<>();
for
(
Product
Type
BeanDTO
.
ProductGroupType
productGroupType
:
spuProduct
.
getAdditionalGroupList
()){
groupDetail
.
addAll
(
productGroupType
.
getGroupDetail
());
}
HashMap
<
String
,
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
>
materialHash
=
new
HashMap
<>();
for
(
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
)
{
HashMap
<
String
,
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
>
materialHash
=
new
HashMap
<>();
for
(
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
)
{
materialHash
.
put
(
groupDetailType
.
getProductId
(),
groupDetailType
);
materialSpu
.
add
(
groupDetailType
.
getProductId
());
}
...
...
@@ -756,7 +751,7 @@ public class ShoppingCartConvertAdapter {
Long
originalMaterAmount
=
0L
;
String
materialSubName
=
cartGoods
.
getSubName
();
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
materialGoods
:
cartGoods
.
getProductMaterialList
())
{
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
detail
=
materialHash
.
get
(
materialGoods
.
getSpuId
());
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
detail
=
materialHash
.
get
(
materialGoods
.
getSpuId
());
if
(
detail
==
null
)
continue
;
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
material
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
();
material
.
setSpuName
(
detail
.
getProductName
());
...
...
@@ -783,14 +778,14 @@ public class ShoppingCartConvertAdapter {
}
public
void
updateCartGoodsInfo
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
Product
BeanDTO
spuProduct
,
Map
<
String
,
Product
BeanDTO
>
subProductTypeMap
)
{
public
void
updateCartGoodsInfo
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
Product
TypeBeanDTO
spuProduct
,
Map
<
String
,
ProductType
BeanDTO
>
subProductTypeMap
)
{
try
{
//是否是sku商品
boolean
isSkuProduct
=
ObjectUtils
.
equals
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
SKU_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
())
||
!
ObjectUtils
.
equals
(
cartGoods
.
getSpuId
(),
cartGoods
.
getSkuId
());
// 如果是套餐商品,更新套餐内固定商品&可选商品的详细信息
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
;
Product
Type
BeanDTO
.
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
())
...
...
@@ -825,7 +820,7 @@ public class ShoppingCartConvertAdapter {
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
());
Product
Type
BeanDTO
productBeanDTO
=
subProductTypeMap
.
get
(
productCombo
.
getSpuId
());
updateComboxGoodsInfoFor
(
productCombo
,
productBeanDTO
,
true
);
}
else
{
//套餐子商品为单品
...
...
@@ -884,12 +879,12 @@ public class ShoppingCartConvertAdapter {
}
private
void
updateComboxGoodsInfoFor
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
ProductBeanDTO
productBeanDTO
,
boolean
isComboxGoods
)
{
private
void
updateComboxGoodsInfoFor
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
ComboxGoods
comboxGoods
,
Product
Type
BeanDTO
productBeanDTO
,
boolean
isComboxGoods
)
{
if
(
CollectionUtils
.
isEmpty
(
productBeanDTO
.
getSkuList
())){
return
;
}
ProductBeanDTO
.
SkuProductBean
comboxGoodsSkuProductBean
=
null
;
for
(
ProductBeanDTO
.
SkuProductBean
skuProductBean
:
productBeanDTO
.
getSkuList
()){
Product
Type
BeanDTO
.
SkuProductBean
comboxGoodsSkuProductBean
=
null
;
for
(
Product
Type
BeanDTO
.
SkuProductBean
skuProductBean
:
productBeanDTO
.
getSkuList
()){
if
(
comboxGoods
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
())){
comboxGoodsSkuProductBean
=
skuProductBean
;
break
;
...
...
@@ -921,12 +916,12 @@ public class ShoppingCartConvertAdapter {
//套餐内商品加料
if
(
CollectionUtils
.
isNotEmpty
(
comboxGoods
.
getProductMaterialList
())){
if
(
CollectionUtils
.
isNotEmpty
(
productBeanDTO
.
getAdditionalGroupList
()))
{
List
<
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
new
ArrayList
<>();
for
(
ProductBeanDTO
.
ProductGroupType
productGroupType
:
productBeanDTO
.
getAdditionalGroupList
()){
List
<
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
new
ArrayList
<>();
for
(
Product
Type
BeanDTO
.
ProductGroupType
productGroupType
:
productBeanDTO
.
getAdditionalGroupList
()){
groupDetail
.
addAll
(
productGroupType
.
getGroupDetail
());
}
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
productMaterial
:
comboxGoods
.
getProductMaterialList
()){
for
(
ProductBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
){
for
(
Product
Type
BeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
){
if
(
groupDetailType
.
getProductId
().
equals
(
productMaterial
.
getSpuId
())){
productMaterial
.
setSpuId
(
groupDetailType
.
getProductId
());
productMaterial
.
setAmount
(
groupDetailType
.
getProductFinalPrice
().
longValue
());
...
...
@@ -941,4 +936,68 @@ public class ShoppingCartConvertAdapter {
}
}
/**
* 多规格商品下添加单规格作为子商品,校验子商品的加料信息
* @param cartGoods
* @param spuProduct
*/
private
void
checkSkuMaterialProductForMccafe
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
,
ProductTypeBeanDTO
spuProduct
)
{
if
(
CollectionUtils
.
isNotEmpty
(
spuProduct
.
getSkuList
()))
{
for
(
ProductTypeBeanDTO
.
SkuProductBean
skuProductBean
:
spuProduct
.
getSkuList
())
{
if
(
CollectionUtils
.
isNotEmpty
(
skuProductBean
.
getAdditionalGroupList
()))
{
//提取加料信息
List
<
String
>
materialSpu
=
new
ArrayList
<>();
List
<
ProductTypeBeanDTO
.
ProductGroupType
.
GroupDetailType
>
groupDetail
=
new
ArrayList
<>();
for
(
ProductTypeBeanDTO
.
ProductGroupType
productGroupType
:
skuProductBean
.
getAdditionalGroupList
())
{
groupDetail
.
addAll
(
productGroupType
.
getGroupDetail
());
}
HashMap
<
String
,
ProductTypeBeanDTO
.
ProductGroupType
.
GroupDetailType
>
materialHash
=
new
HashMap
<>();
for
(
ProductTypeBeanDTO
.
ProductGroupType
.
GroupDetailType
groupDetailType
:
groupDetail
)
{
materialHash
.
put
(
groupDetailType
.
getProductId
(),
groupDetailType
);
materialSpu
.
add
(
groupDetailType
.
getProductId
());
}
//加车小料和商品小料没有交集则提示商品信息有异常
if
(
CollectionUtils
.
isEmpty
(
cartGoods
.
getProductMaterialList
().
stream
().
filter
(
e
->
materialSpu
.
contains
(
e
.
getSpuId
())).
collect
(
Collectors
.
toList
())))
{
cartGoods
.
setGoodsType
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
EXCEPTION_GOODS
.
getGoodsType
());
cartGoods
.
setProductMaterialList
(
new
ArrayList
<>());
return
;
}
ArrayList
<
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
>
materialGoodsList
=
new
ArrayList
<>();
Long
materialAmount
=
0L
;
Long
originalMaterAmount
=
0L
;
String
materialSubName
=
cartGoods
.
getSubName
();
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
materialGoods
:
cartGoods
.
getProductMaterialList
())
{
ProductTypeBeanDTO
.
ProductGroupType
.
GroupDetailType
detail
=
materialHash
.
get
(
materialGoods
.
getSpuId
());
if
(
detail
==
null
)
continue
;
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
material
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
MaterialGoods
();
material
.
setSpuName
(
detail
.
getProductName
());
material
.
setSpuId
(
detail
.
getProductId
());
//行单价 \ 行总价
material
.
setFinalPrice
(
detail
.
getProductFinalPrice
().
longValue
());
material
.
setAmount
(
detail
.
getProductFinalPrice
().
longValue
()
*
cartGoods
.
getQty
());
//原行单价*数量
material
.
setOriginalAmount
(
detail
.
getProductFinalPrice
().
longValue
()
*
cartGoods
.
getQty
());
material
.
setOriginalPrice
(
detail
.
getProductFinalPrice
().
longValue
());
material
.
setCustomerCode
(
materialGoods
.
getCustomerCode
());
materialGoodsList
.
add
(
material
);
materialAmount
+=
detail
.
getProductFinalPrice
().
longValue
()
*
cartGoods
.
getQty
();
originalMaterAmount
+=
detail
.
getProductFinalPrice
().
longValue
()
*
cartGoods
.
getQty
();
;
materialSubName
=
materialSubName
+
"/"
+
detail
.
getProductName
();
}
//设置购物车行记录
cartGoods
.
setProductMaterialList
(
materialGoodsList
);
//加料行记录现价总价
cartGoods
.
setMaterialAmount
(
materialAmount
);
//加料行记录原价总价
cartGoods
.
setOriginalMaterialAmount
(
originalMaterAmount
);
}
else
{
cartGoods
.
setGoodsType
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
GoodsTypeEnum
.
EXCEPTION_GOODS
.
getGoodsType
());
cartGoods
.
setProductMaterialList
(
new
ArrayList
<>());
return
;
}
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductTypeBeanDTO.java
0 → 100644
View file @
e21da78e
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.entities.dto.product
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020-11-25 11:51:44
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public
class
ProductTypeBeanDTO
{
private
String
businessNo
;
private
String
barcode
;
private
String
brandId
;
private
String
brandName
;
private
String
category
;
private
String
categoryName
;
private
String
companyId
;
private
String
customerCode
;
private
String
productCode
;
private
Long
finalPrice
;
private
Integer
isSkuProduct
;
private
String
name
;
private
Long
originalPrice
;
private
Long
packPrice
;
private
String
picture
;
private
String
pid
;
private
String
specification
;
private
Integer
status
;
private
Integer
stock
;
private
Integer
stockLimit
;
private
int
type
;
private
String
unit
;
private
Integer
riseSell
;
private
String
rawMaterial
;
private
Double
tax
;
private
String
taxId
;
private
Integer
openMemberDiscount
;
private
Integer
memberDiscount
;
private
List
<
ProductAttributeGroupListBean
>
productAttributeGroupList
;
private
List
<
ProductPictureListBean
>
productPictureList
;
private
List
<
SkuProductBean
>
skuList
;
private
List
<
ProductComboType
>
productComboList
;
private
List
<
ProductGroupType
>
productGroupList
;
private
List
<
SkuProductBean
.
SkuSpecValue
>
skuSpecValues
;
private
List
<
PackageProductTypeDto
>
packageProductTypes
;
private
List
<
ProductGroupType
>
additionalGroupList
;
private
List
<
ProductComboDetailTypeDto
>
productComboInfos
;
private
Integer
isDishware
;
private
Integer
weightType
;
private
Double
weight
;
public
Integer
getMemberDiscountResult
()
{
return
this
.
openMemberDiscount
!=
null
&&
this
.
openMemberDiscount
==
1
?
this
.
memberDiscount
:
100
;
}
public
ProductTypeBeanDTO
()
{
}
@Data
public
static
class
ProductComboDetailTypeDto
{
private
String
productId
;
private
Integer
quantity
;
private
Integer
sequence
;
public
ProductComboDetailTypeDto
()
{
}
}
@Data
public
static
class
ProductAttributeGroupListBean
{
private
String
attributeName
;
private
Integer
attributeType
;
private
List
<
AttributeValueBean
>
attributeValues
;
public
ProductAttributeGroupListBean
()
{
}
}
@Data
public
static
class
AttributeValueBean
{
private
String
attributeId
;
private
String
attributeValue
;
private
Long
id
;
private
Long
price
;
private
Integer
sequence
;
private
Integer
status
;
public
AttributeValueBean
()
{
}
}
@Data
public
static
class
PackageProductTypeDto
{
private
Long
groupId
;
private
Integer
sequence
;
public
PackageProductTypeDto
()
{
}
}
@Data
public
static
class
ProductGroupType
{
private
String
pgid
;
private
String
linkId
;
private
String
groupCode
;
private
String
options
;
private
String
name
;
private
Integer
must
;
private
Integer
allowRepeat
;
private
Integer
minNumber
;
private
Integer
maxNumber
;
private
String
remark
;
private
Integer
total
;
private
List
<
ProductGroupType
.
GroupDetailType
>
groupDetail
;
public
ProductGroupType
()
{
}
@Data
public
static
class
GroupDetailType
{
private
String
productId
;
private
String
productName
;
private
String
customerCode
;
private
Integer
productPrice
;
protected
Integer
productFinalPrice
;
protected
Integer
markUpPrice
;
private
String
picture
;
private
Integer
stockLimit
;
protected
String
unit
;
protected
String
productCode
;
private
Integer
weightType
;
private
Double
weight
;
private
Double
tax
;
private
String
taxId
;
}
}
@Data
public
static
class
ProductComboType
{
private
String
productId
;
private
String
productName
;
private
String
customerCode
;
private
Integer
originalPrice
;
protected
Integer
finalPrice
;
protected
Integer
packPrice
;
private
String
picture
;
protected
String
unit
;
protected
String
productCode
;
private
Integer
quantity
;
private
Integer
weightType
;
private
Double
weight
;
private
Double
tax
;
private
String
taxId
;
}
@Data
public
static
class
ProductPictureListBean
{
private
String
pictureId
;
private
String
productId
;
private
String
sequence
;
private
String
type
;
private
String
url
;
@Data
public
static
class
AttributeValueBean
{
private
String
attributeId
;
private
String
attributeValue
;
private
Long
id
;
private
Long
price
;
private
Integer
sequence
;
private
Integer
status
;
public
AttributeValueBean
()
{
}
}
}
@Data
public
static
class
ProductLabelNameListBean
{
private
String
id
;
private
String
name
;
private
String
partnerId
;
List
<?>
productList
;
private
String
storeId
;
private
String
type
;
public
ProductLabelNameListBean
()
{
}
}
@Data
public
static
class
SpecificationGroupBean
{
private
String
partnerId
;
private
Integer
sequence
;
private
String
specId
;
private
String
specName
;
private
List
<
SpecificationGroupBean
.
SpecValueVo
>
specValueVos
;
public
SpecificationGroupBean
()
{
}
@Data
public
static
class
SpecValueVo
{
private
Integer
sequence
;
private
String
specId
;
private
String
specValue
;
private
String
specValueId
;
public
SpecValueVo
()
{
}
}
}
@Data
public
static
class
SkuProductBean
{
private
String
customerCode
;
private
String
productCode
;
private
Long
finalPrice
;
private
Long
originalPrice
;
private
String
productName
;
private
Integer
productType
;
private
Integer
sequence
;
private
String
skuCode
;
private
String
skuId
;
private
Integer
status
;
private
Integer
stockLimit
;
private
Integer
stockQty
;
private
Long
packPrice
;
private
Integer
riseSell
;
private
String
rawMaterial
;
private
Double
tax
;
private
String
taxId
;
private
List
<
SkuProductBean
.
SkuSpecValue
>
skuSpecValues
;
private
List
<
ProductGroupType
>
additionalGroupList
;
private
Double
weight
;
protected
String
unit
;
private
Integer
openMemberDiscount
;
private
Integer
memberDiscount
;
public
Integer
getMemberDiscountResult
()
{
return
this
.
openMemberDiscount
!=
null
&&
this
.
openMemberDiscount
==
1
?
this
.
memberDiscount
:
100
;
}
public
SkuProductBean
()
{
}
@Data
public
static
class
SkuSpecValue
{
private
String
productId
;
private
Integer
sequence
;
private
String
specId
;
private
String
specName
;
private
String
specValue
;
private
String
specValueId
;
public
SkuSpecValue
()
{
}
}
@Data
public
static
class
PackageProductTypeDto
{
private
Long
groupId
;
private
Integer
sequence
;
public
PackageProductTypeDto
()
{
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
View file @
e21da78e
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
lombok.Data
;
import
java.util.Map
;
...
...
@@ -24,9 +24,9 @@ public class ValiadShopProductResult {
private
String
message
;
private
String
skuId
;
private
String
spuId
;
private
ProductBeanDTO
productType
;
private
Product
Type
BeanDTO
productType
;
private
String
uuid
;
private
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
;
private
Map
<
String
,
Product
Type
BeanDTO
>
subProductTypeMap
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
e21da78e
...
...
@@ -9,6 +9,7 @@ import cn.freemud.constant.ShoppingCartConstant;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.product.ProductTypeBeanDTO
;
import
cn.freemud.entities.dto.product.ValiadShopProductResponse
;
import
cn.freemud.entities.dto.product.ValiadShopProductResult
;
import
cn.freemud.entities.dto.product.ValidateShopProductRequest
;
...
...
@@ -1526,7 +1527,8 @@ public class ShoppingCartMCoffeeServiceImpl {
}
if
(
PRODUCT_PRICE_CHANGE
==
validaProduct
.
getCode
())
{
changePriceSpu
.
add
(
spuName
);
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
List
<
ProductTypeBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
shoppingCartConvertAdapter
.
updateCartGoodsInfoForMCoffee
(
cartGoods
,
productList
);
}
if
(
PRODUCT_GROUP_EMPTY
==
validaProduct
.
getCode
())
{
...
...
@@ -1565,9 +1567,9 @@ public class ShoppingCartMCoffeeServiceImpl {
continue
;
}
for
(
ValiadShopProductResult
valiadShopProductResult
:
validateResult
.
getSuccessList
()){
ProductBeanDTO
productType
=
valiadShopProductResult
.
getProductType
();
Product
Type
BeanDTO
productType
=
valiadShopProductResult
.
getProductType
();
if
(
ObjectUtils
.
equals
(
productType
.
getPid
(),
cartGoods
.
getSpuId
())){
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
=
valiadShopProductResult
.
getSubProductTypeMap
();
Map
<
String
,
Product
Type
BeanDTO
>
subProductTypeMap
=
valiadShopProductResult
.
getSubProductTypeMap
();
shoppingCartConvertAdapter
.
updateCartGoodsInfo
(
cartGoods
,
productType
,
subProductTypeMap
);
break
;
}
...
...
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