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
629732ff
Commit
629732ff
authored
Sep 29, 2020
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
eece253b
7084609a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
467 additions
and
60 deletions
+467
-60
assortment-shoppingcart-sdk/pom.xml
+1
-2
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
+6
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+3
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
+33
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+58
-32
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductAttributeValueType.java
+23
-0
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/ValiadShopProductResponse.java
+25
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
+32
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateShopProductRequest.java
+27
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateShopProductType.java
+34
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateSkuProductType.java
+32
-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
+47
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
+12
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
+19
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/GoodsTypeEnum.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+3
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
+4
-5
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.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
+40
-7
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+12
-6
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/TimeSaleCalculation.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CouponProductVo.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
+15
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/ProductClient.java
+6
-0
No files found.
assortment-shoppingcart-sdk/pom.xml
View file @
629732ff
...
...
@@ -67,4 +67,4 @@
</dependencies>
</project>
\ No newline at end of file
</project>
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
View file @
629732ff
package
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
adapter
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ProductAttributeValueType
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
...
...
@@ -11,6 +14,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoodsStates
;
import
com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest
;
import
com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
...
...
@@ -32,6 +36,7 @@ import java.util.stream.Collectors;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
@Component
@Slf4j
public
class
ShoppingCartAdapter
{
private
static
final
String
ATTRIBUTEID
=
"attributeId"
;
private
static
final
String
ATTRIBUTENAME
=
"attributeName"
;
...
...
@@ -258,6 +263,7 @@ public class ShoppingCartAdapter {
* @param productBeans 购物车中所有的productId对应的商品详情
*/
public
void
updateCartGoodsInfoNew
(
CartGoods
cartGoods
,
List
<
ProductBeanDTO
>
productBeans
)
{
log
.
info
(
"【updateCartGoodsInfoNew】: cartGoods: {}, productBeans: {} ,trackingNo:{}"
,
JSONObject
.
toJSONString
(
cartGoods
),
JSONObject
.
toJSONString
(
productBeans
),
LogThreadLocal
.
getTrackingNo
());
try
{
Optional
<
ProductBeanDTO
>
firstProduct
=
productBeans
.
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
p
.
getPid
(),
cartGoods
.
getSpuId
())).
findFirst
();
if
(!
firstProduct
.
isPresent
())
{
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
629732ff
...
...
@@ -37,15 +37,18 @@ public class ShoppingCartConstant {
* 商品价格校验失败
*/
public
static
final
int
PRODUCT_PRICE_CHANGE
=
102
;
public
static
final
String
CART_PRODUCT_PRICE_CHANGE
=
"您选择的【$spuName】商品价格将发生变化;"
;
/**
* 商品不存在
*/
public
static
final
int
PRODUCT_NOTFOUND
=
103
;
public
static
final
String
CART_PRODUCT_NOT_FOUND
=
"您选择的【$spuName】商品不在当前门店菜单中;"
;
/**
* 商品状态校验失败
*/
public
static
final
int
PRODUCT_DOWN
=
104
;
public
static
final
String
CART_PRODUCT_INVALID_STATE
=
"您选择的【$spuName】商品已失效;"
;
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
View file @
629732ff
...
...
@@ -119,6 +119,11 @@ public class CartGoods {
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 创建时间(mili)
*/
private
long
createTimeMili
=
System
.
currentTimeMillis
();
...
...
@@ -200,11 +205,29 @@ public class CartGoods {
}
@Data
public
final
static
class
SpecialExtra
{
/**
* 属性Id
*/
private
String
attributeId
;
/**
* 属性名
*/
private
String
attributeName
;
/**
* 麦咖啡特定属性入机code
*/
private
String
specialCode
;
}
@Data
public
final
static
class
ComboxGoods
{
/**
* 单规格spuId,多规格skuId
*/
private
String
goodsId
;
private
String
spuId
;
private
String
skuId
;
private
String
skuName
;
/**
...
...
@@ -286,6 +309,16 @@ public class CartGoods {
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡套餐商品加料
*/
private
List
<
MaterialGoods
>
productMaterialList
;
/**
* 税率
*/
private
Double
tax
;
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
View file @
629732ff
...
...
@@ -38,6 +38,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import
com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest
;
import
com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil
;
import
com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -231,7 +232,6 @@ public interface ShoppingCartBaseService {
ValidateShopProductRequest
validateShopProductRequest
=
shoppingCartAdapter
.
getValidateShopProductRequest
(
checkCartRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
ValiadShopProductResponse
>
valiadResponse
=
productService
.
validateShopProductAboutReason
(
validateShopProductRequest
);
//TODO 疑问
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getCode
())
||
valiadResponse
.
getData
()==
null
)
{
checkCartRequest
.
getCartGoodsList
().
clear
();
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
...
...
@@ -239,37 +239,67 @@ public interface ShoppingCartBaseService {
return
CartResponseUtil
.
error
(
valiadResponse
.
getMessage
(),
checkCartRequest
);
}
ValiadShopProductResponse
validateResult
=
valiadResponse
.
getData
();
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if
(
CollectionUtils
.
isNotEmpty
(
validateResult
.
getFailureList
())){
List
<
String
>
invalidSpu
=
new
ArrayList
<>();
List
<
String
>
notFoundSpu
=
new
ArrayList
<>();
List
<
String
>
changePriceSpu
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
validateResult
.
getFailureList
().
size
();
i
++)
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
switch
(
validateResult
.
getFailureList
().
get
(
i
).
getCode
()){
case
PRODUCT_PRICE_CHANGE
:
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_ACTIVITY_CHANGE
);
break
;
case
PRODUCT_NOTFOUND:
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_EMPTY_GOODS_LIST
);
break
;
case
PRODUCT_DOWN:
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALID_GOODS_EXIST
);
break
;
default
:
break
;
}
// return CartResponseUtil.error(valiadResponse.getMessage(),checkCartRequest);
}
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
if
(
validateResult
.
getFailureList
().
stream
().
anyMatch
(
f
->
cartGoods
.
getCartGoodsUid
().
equals
(
f
.
getUuid
()))){
cartGoods
.
setCartGoodsUid
(
null
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
if
(
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
()))
{
String
spuName
=
null
==
validaProduct
.
getProductType
()
?
(
StringUtils
.
isNotEmpty
(
cartGoods
.
getSkuName
())
?
cartGoods
.
getSkuName
()
:
StringUtils
.
isNotEmpty
(
cartGoods
.
getName
())
?
cartGoods
.
getName
()
:
""
)
:
validaProduct
.
getProductType
().
getName
();
if
(
PRODUCT_DOWN
==
validaProduct
.
getCode
())
{
if
(
StringUtils
.
isNotEmpty
(
spuName
)){
invalidSpu
.
add
(
spuName
);
}
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_NOTFOUND
==
validaProduct
.
getCode
())
{
if
(
StringUtils
.
isNotEmpty
(
spuName
))
{
notFoundSpu
.
add
(
spuName
);
}
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_PRICE_CHANGE
==
validaProduct
.
getCode
())
{
if
(
StringUtils
.
isNotEmpty
(
spuName
))
{
changePriceSpu
.
add
(
spuName
);
}
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
filter
(
f
->
f
.
getCode
()
==
PRODUCT_PRICE_CHANGE
).
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
break
;
}
}
}
}
String
toastMsg
=
""
;
if
(
CollectionUtils
.
isNotEmpty
(
invalidSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
invalidSpu
,
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
notFoundSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
StringUtils
.
join
(
notFoundSpu
,
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
changePriceSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
changePriceSpu
,
","
)));
}
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
toastMsg
);
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
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
());
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
...
...
@@ -291,12 +321,11 @@ public interface ShoppingCartBaseService {
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
}
//todo 小料
if
(
checkCartRequest
.
getCartGoodsList
().
stream
().
anyMatch
(
cart
->
cart
.
getGoodsType
().
equals
(
GoodsTypeEnum
.
EXCEPTION_GOODS
.
getGoodsType
())))
{
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
k
.
getGoodsType
().
equals
(
GoodsTypeEnum
.
EXCEPTION_GOODS
.
getGoodsType
()));
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_MATERIAL_ERROR
);
}
// if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) {
// checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()));
// checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
// checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_MATERIAL_ERROR);
// }
return
CartResponseUtil
.
success
(
checkCartRequest
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
checkCartRequest
.
getTrackingNo
(),
e
.
getMessage
(),
"checkAllCartGoods"
,
checkCartRequest
,
e
,
Level
.
ERROR
);
...
...
@@ -306,8 +335,6 @@ public interface ShoppingCartBaseService {
}
}
/**
* 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架)
...
...
@@ -1009,5 +1036,4 @@ public interface ShoppingCartBaseService {
}
return
null
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
629732ff
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductAttributeValueType.java
0 → 100644
View file @
629732ff
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ProductAttributeValueType
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:03
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ProductAttributeValueType
{
private
String
attributeId
;
private
String
attributeValue
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ProductSpecAttrValueGroupType.java
0 → 100644
View file @
629732ff
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/ValiadShopProductResponse.java
0 → 100644
View file @
629732ff
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ValiadShopProductResponse
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:05
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ValiadShopProductResponse
{
private
List
<
ValiadShopProductResult
>
failureList
;
private
List
<
ValiadShopProductResult
>
successList
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValiadShopProductResult.java
0 → 100644
View file @
629732ff
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
*
* @version V1.0
* @Title: ValiadShopProductResult
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:05
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ValiadShopProductResult
{
private
int
code
;
private
String
message
;
private
String
skuId
;
private
String
spuId
;
private
ProductBeanDTO
productType
;
private
String
uuid
;
private
Map
<
String
,
ProductBeanDTO
>
subProductTypeMap
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateShopProductRequest.java
0 → 100644
View file @
629732ff
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ValidateShopProductRequest
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ValidateShopProductRequest
{
private
String
partnerId
;
private
String
storeId
;
private
String
channel
;
private
List
<
ValidateShopProductType
>
productTypeList
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateShopProductType.java
0 → 100644
View file @
629732ff
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ValidateShopProductType
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ValidateShopProductType
{
private
String
uuid
;
private
String
spuId
;
private
String
skuId
;
private
List
<
ValidateSkuProductType
>
comboProductTypeList
;
private
List
<
ValidateSkuProductType
>
productGroupTypeList
;
private
Integer
price
;
private
Integer
memberDiscount
;
private
List
<
ProductAttributeValueType
>
attributeList
;
private
List
<
Integer
>
validateStatuses
;
private
Integer
validatePrice
=
1
;
private
Integer
validateAttribute
=
1
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/product/ValidateSkuProductType.java
0 → 100644
View file @
629732ff
package
cn
.
freemud
.
entities
.
dto
.
product
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ValidateSkuProductType
* @Package cn.freemud.entities.dto.product
* @Description:
* @author: ping1.wu
* @date: 2020/9/26 20:02
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
ValidateSkuProductType
{
private
String
skuId
;
private
String
productId
;
private
Integer
price
;
private
Integer
markUpPrice
;
private
Integer
qty
;
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 @
629732ff
...
...
@@ -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 @
629732ff
...
...
@@ -124,6 +124,11 @@ public class CartGoods {
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 创建时间(mili)
*/
private
long
createTimeMili
=
System
.
currentTimeMillis
();
...
...
@@ -206,11 +211,29 @@ public class CartGoods {
}
@Data
public
final
static
class
SpecialExtra
{
/**
* 属性Id
*/
private
String
attributeId
;
/**
* 属性名
*/
private
String
attributeName
;
/**
* 麦咖啡特定属性入机code
*/
private
String
specialCode
;
}
@Data
public
final
static
class
ComboxGoods
{
/**
* 单规格spuId,多规格skuId
*/
private
String
goodsId
;
private
String
spuId
;
private
String
skuId
;
private
String
skuName
;
/**
...
...
@@ -265,6 +288,11 @@ public class CartGoods {
* 配料或属性
*/
private
List
<
CartGoodsExtra
>
extra
;
/**
* 麦咖啡特定属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 1:称重菜
*/
...
...
@@ -295,6 +323,10 @@ public class CartGoods {
* 费率代码
*/
private
String
taxId
;
/**
* 商品原始加料数据
*/
private
List
<
MaterialGoods
>
productMaterialList
;
@Override
public
int
hashCode
()
{
...
...
@@ -313,6 +345,9 @@ public class CartGoods {
if
(
CollectionUtils
.
isNotEmpty
(
extra
))
{
extra
.
stream
().
sorted
(
Comparator
.
comparing
(
CartGoodsExtra:
:
getAttributeId
)).
forEach
(
e
->
sb
.
append
(
e
.
getAttributeId
()));
}
if
(
CollectionUtils
.
isNotEmpty
(
specialExtra
))
{
specialExtra
.
stream
().
sorted
(
Comparator
.
comparing
(
SpecialExtra:
:
getAttributeId
)).
forEach
(
e
->
sb
.
append
(
e
.
getAttributeId
()));
}
return
sb
.
toString
();
}
}
...
...
@@ -334,6 +369,9 @@ public class CartGoods {
if
(
CollectionUtils
.
isNotEmpty
(
productComboList
))
{
for
(
ComboxGoods
goods
:
productComboList
)
{
originalString
.
append
(
goods
.
toString
());
if
(
CollectionUtils
.
isNotEmpty
(
goods
.
getSpecialExtra
()))
{
goods
.
getSpecialExtra
().
stream
().
sorted
(
Comparator
.
comparing
(
SpecialExtra:
:
getAttributeId
)).
forEach
(
e
->
originalString
.
append
(
e
.
getAttributeId
()));
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
productGroupList
))
{
...
...
@@ -344,6 +382,9 @@ public class CartGoods {
if
(
CollectionUtils
.
isNotEmpty
(
productMaterialList
))
{
productMaterialList
.
stream
().
sorted
(
Comparator
.
comparing
(
MaterialGoods:
:
getSpuId
)).
forEach
(
e
->
originalString
.
append
(
e
.
getSpuId
()));
}
if
(
CollectionUtils
.
isNotEmpty
(
specialExtra
))
{
specialExtra
.
stream
().
sorted
(
Comparator
.
comparing
(
SpecialExtra:
:
getAttributeId
)).
forEach
(
e
->
originalString
.
append
(
e
.
getAttributeId
()));
}
//当前字符串
CartGoods
cartGoods
=
(
CartGoods
)
o
;
...
...
@@ -356,6 +397,9 @@ public class CartGoods {
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductComboList
()))
{
for
(
ComboxGoods
goods
:
cartGoods
.
getProductComboList
())
{
currentString
.
append
(
goods
.
toString
());
if
(
CollectionUtils
.
isNotEmpty
(
goods
.
getSpecialExtra
()))
{
goods
.
getSpecialExtra
().
stream
().
sorted
(
Comparator
.
comparing
(
SpecialExtra:
:
getAttributeId
)).
forEach
(
e
->
currentString
.
append
(
e
.
getAttributeId
()));
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductGroupList
()))
{
...
...
@@ -366,6 +410,9 @@ public class CartGoods {
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductMaterialList
()))
{
cartGoods
.
getProductMaterialList
().
stream
().
sorted
(
Comparator
.
comparing
(
MaterialGoods:
:
getSpuId
)).
forEach
(
e
->
currentString
.
append
(
e
.
getSpuId
()));
}
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getSpecialExtra
()))
{
cartGoods
.
getSpecialExtra
().
stream
().
sorted
(
Comparator
.
comparing
(
SpecialExtra:
:
getAttributeId
)).
forEach
(
e
->
currentString
.
append
(
e
.
getAttributeId
()));
}
return
StringUtils
.
equals
(
originalString
.
toString
(),
currentString
.
toString
());
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ComboxGoodsRequestVo.java
View file @
629732ff
...
...
@@ -19,6 +19,11 @@ import java.util.List;
@Data
public
class
ComboxGoodsRequestVo
{
/**
* 麦咖啡多规格商品spuid
*/
private
String
spuId
;
private
String
skuId
;
private
Integer
qty
;
/**
...
...
@@ -30,4 +35,11 @@ public class ComboxGoodsRequestVo {
*/
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
List
<
CartGoods
.
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡多规格商品加料
*/
private
List
<
MaterialRequestVo
>
productMaterialList
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
View file @
629732ff
...
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -27,4 +28,21 @@ public class QueryCartInfoRequestVo {
@ApiModelProperty
(
value
=
"门店id"
,
required
=
true
)
@NotEmpty
(
message
=
"门店id不可为空"
)
private
String
storeId
;
@ApiModelProperty
(
value
=
"sessionId"
,
required
=
true
)
@NotEmpty
(
message
=
"用户sessionId不可为空"
)
private
String
sessionId
;
@ApiModelProperty
(
value
=
"appId"
,
required
=
true
)
@NotEmpty
(
message
=
"appId不可为空"
)
private
String
appId
;
@ApiModelProperty
(
value
=
"menuType"
,
notes
=
"业务类型: 0 : 自提 1:外卖 2:微商城"
,
required
=
true
)
@NotEmpty
(
message
=
"业务类型不可为空"
)
private
String
menuType
;
@ApiModelProperty
(
value
=
"订单类型"
)
@NotNull
(
message
=
"订单类型不可为空"
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"收货地址id"
,
notes
=
"svc卡支付外卖订单必传"
)
private
String
receiveId
;
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/enums/GoodsTypeEnum.java
View file @
629732ff
...
...
@@ -20,7 +20,7 @@ public enum GoodsTypeEnum {
SET_MEAL_GOODS
(
3
,
"套餐商品"
),
SKU_GOODS
(
4
,
"sku商品"
),
SPU_GOODS
(
5
,
"spu商品"
),
REDUCE_PRICE_GOODS
(
6
,
"
加价
购商品"
),
REDUCE_PRICE_GOODS
(
6
,
"
超值加
购商品"
),
MATERIAL
(
88
,
"有加料的商品"
),
EXCEPTION_GOODS
(
99
,
"异常商品:商品菜单变化导致和购物车不商品匹配"
);
private
Integer
goodsType
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
629732ff
...
...
@@ -87,9 +87,12 @@ public enum ResponseResult {
SHOPPING_CART_SEAT_EMPTY
(
"44020"
,
"键位为空"
),
SHOPPING_CART_COUPON_USED
(
"44021"
,
"优惠券已加入餐盘"
),
SHOPPING_CART_GOODS_COUPON_CAN_NOT_USE
(
"44022"
,
"已加入同样优惠券,第二张暂不可用"
),
SHOPPING_CART_LIMIT_ADD
(
"44025"
,
"加购数量超过限制"
),
SHOPPING_CART_GOODS_CHECK_ERROR
(
"44023"
,
"当前餐盘中没有可用券的饮品"
),
SHOPPING_CART_PRODUCT_CAN_NOT_USE
(
"44023"
,
"商品不可用"
),
SHOPPING_CART_COUPON_CAN_NOT_USE
(
"44024"
,
"商品券不可用"
),
/**
* 订单状态码
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
View file @
629732ff
...
...
@@ -213,7 +213,7 @@ public class AssortmentSdkService {
checkCartRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
checkCartRequest
.
setMenuType
(
BusinessTypeEnum
.
getByType
(
menuType
).
getCode
());
BaseResponse
<
CheckCartRequest
>
baseResponse
;
baseResponse
=
shoppingCartService
.
checkAllCartGoods
ForMCoffee
(
checkCartRequest
);
baseResponse
=
shoppingCartService
.
checkAllCartGoods
New
(
checkCartRequest
);
if
(
baseResponse
==
null
)
{
return
null
;
}
...
...
@@ -221,7 +221,7 @@ public class AssortmentSdkService {
}
/**
* 调用SDK校验购物车
*
【麦咖啡】
调用SDK校验购物车
*
* @param oldAllCartGoodsList
* @param partnerId
...
...
@@ -229,8 +229,7 @@ public class AssortmentSdkService {
* @param shoppingCartGoodsResponseVo
* @param orderType
*/
public
CheckCartRequest
checkShoppingCartSdkForMCoffee
(
List
<
CartGoods
>
oldAllCartGoodsList
,
String
partnerId
,
String
storeId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
public
CheckCartRequest
checkShoppingCartSdkForMCoffee
(
List
<
CartGoods
>
oldAllCartGoodsList
,
String
partnerId
,
String
storeId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
Integer
orderType
,
String
tableNumber
,
String
menuType
,
ShoppingCartBaseService
shoppingCartService
)
{
CheckCartRequest
checkCartRequest
=
new
CheckCartRequest
();
checkCartRequest
.
setCartGoodsList
(
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
oldAllCartGoodsList
),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
class
));
...
...
@@ -242,7 +241,7 @@ public class AssortmentSdkService {
checkCartRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
checkCartRequest
.
setMenuType
(
BusinessTypeEnum
.
getByType
(
menuType
).
getCode
());
BaseResponse
<
CheckCartRequest
>
baseResponse
;
baseResponse
=
shoppingCartService
.
checkAllCartGoods
New
(
checkCartRequest
);
baseResponse
=
shoppingCartService
.
checkAllCartGoods
ForMCoffee
(
checkCartRequest
);
if
(
baseResponse
==
null
)
{
return
null
;
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
629732ff
...
...
@@ -359,7 +359,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
// 检查购物车商品库存数量
checkUpdateStock
(
updateShoppingCartGoodsQtyRequestVo
,
cartGoods
);
Integer
oldQty
=
cartGoods
.
getQty
();
// 更新购物车中数量
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
qty
<
0
?
0
:
qty
,
""
,
shoppingCartBaseService
);
...
...
@@ -383,7 +383,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
// return shoppingCartGoodsResponseVo;
}
sendGoodsQtyCheckForUpdate
(
cartGoodsList
,
cartGoods
.
getQty
()
,
appId
,
partnerId
,
userId
,
storeId
,
null
,
cartGoodsUid
,
shoppingCartBaseService
,
calculationDiscountResult
.
getSendGoods
());
sendGoodsQtyCheckForUpdate
(
cartGoodsList
,
oldQty
,
appId
,
partnerId
,
userId
,
storeId
,
null
,
cartGoodsUid
,
shoppingCartBaseService
,
calculationDiscountResult
.
getSendGoods
());
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
updateShoppingCartGoodsQtyRequestVo
.
getOrderType
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
629732ff
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 @
629732ff
...
...
@@ -115,7 +115,13 @@ public class CalculationServiceImpl {
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
cartGoods
.
getCustomerCode
(),
cartGoods
.
getGoodsId
(),
cartGoods
.
getQty
(),
cartGoods
.
getFinalPrice
(),
cartGoods
.
getMemberDiscount
(),
cartGoods
);
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
StringUtils
.
isNotEmpty
(
cartGoods
.
getCustomerCode
())
?
cartGoods
.
getCustomerCode
()
:
""
,
StringUtils
.
isNotEmpty
(
cartGoods
.
getGoodsId
())
?
cartGoods
.
getGoodsId
()
:
""
,
null
!=
cartGoods
.
getQty
()
?
cartGoods
.
getQty
()
:
0
,
null
!=
cartGoods
.
getFinalPrice
()
?
cartGoods
.
getFinalPrice
()
:
0
,
null
!=
cartGoods
.
getMemberDiscount
()
?
cartGoods
.
getMemberDiscount
()
:
0
,
cartGoods
);
}
// 当加价购商品不为空时
...
...
@@ -369,10 +375,9 @@ public class CalculationServiceImpl {
//新增咖啡月卡券券号
calculationDiscountGoods
.
setCouponCode
(
cartGoods
.
getCouponCode
());
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
);
...
...
@@ -381,9 +386,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
);
// //累加需加入计算的商品
...
...
@@ -404,9 +437,9 @@ public class CalculationServiceImpl {
long
totalPackgeAmount
=
0L
;
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
// 设置商品原价与商品现价的初始值
long
originalAmount
=
cartGoods
.
getOriginalPrice
()
*
cartGoods
.
getQty
()
;
long
amount
=
cartGoods
.
getOriginalPrice
()
*
cartGoods
.
getQty
()
;
long
packAmount
=
cartGoods
.
getPackPrice
()
*
cartGoods
.
getQty
()
;
long
originalAmount
=
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
;
long
amount
=
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
;
long
packAmount
=
null
!=
cartGoods
.
getPackPrice
()
?
cartGoods
.
getPackPrice
()
:
0
;
totalOriginalAmount
+=
originalAmount
;
totalAmount
+=
amount
;
totalPackgeAmount
+=
packAmount
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
View file @
629732ff
...
...
@@ -326,21 +326,28 @@ public class CouponDiscountCalculation {
}
public
List
<
CouponAvailableReq
>
buildAvailableCoupons
(
QueryCartInfoRequestVo
requestVo
,
List
<
CartGoods
>
cartGoods
){
public
List
<
CouponAvailableReq
>
buildAvailableCoupons
(
QueryCartInfoRequestVo
requestVo
,
List
<
CartGoods
>
cartGoods
,
String
moneyCoupon
){
List
<
CouponAvailableReq
>
resList
=
new
ArrayList
<>();
CouponAvailableReq
res
=
new
CouponAvailableReq
();
res
.
setProviderId
(
requestVo
.
getPartnerId
());
res
.
setMerchantId
(
requestVo
.
getPartnerId
());
res
.
setStoreId
(
requestVo
.
getStoreId
());
List
<
String
>
couponList
=
new
ArrayList
<>();
res
.
setChannelIdList
(
commonService
.
getOrgCodes
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
()));
List
<
CouponProductVo
>
productList
=
new
ArrayList
<>();
res
.
setCouponCodes
(
StringUtils
.
isNotEmpty
(
moneyCoupon
)
?
Arrays
.
asList
(
moneyCoupon
)
:
null
);
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
))
{
cartGoods
.
forEach
(
cartGood
->
{
if
(
StringUtils
.
isNotEmpty
(
cartGood
.
getCouponCode
()))
{
couponList
.
add
(
cartGood
.
getCouponCode
());
res
.
setCouponCodes
(
couponList
);
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
couponProductVo
.
setAmount
(
cartGood
.
getAmount
().
intValue
());
couponProductVo
.
setKeyProductCode
(
cartGood
.
getCustomerCode
());
couponProductVo
.
setQuantity
(
cartGood
.
getQty
());
couponProductVo
.
setProductId
(
cartGood
.
getGoodsId
());
couponProductVo
.
setCouponCode
(
cartGood
.
getCouponCode
());
couponProductVo
.
setCategoryCode
(
null
);
productList
.
add
(
couponProductVo
);
}
if
(
CollectionUtils
.
isNotEmpty
(
cartGood
.
getProductComboList
()))
{
cartGood
.
getProductComboList
().
forEach
(
comboxGoods
->
{
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
...
...
@@ -370,8 +377,7 @@ public class CouponDiscountCalculation {
resList
.
add
(
res
);
}
return
resList
;
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/TimeSaleCalculation.java
View file @
629732ff
...
...
@@ -58,6 +58,7 @@ public class TimeSaleCalculation {
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
List
<
Integer
>
discounts
=
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_2
.
getCode
(),
ActivityTypeEnum
.
TYPE_21
.
getCode
(),
ActivityTypeEnum
.
TYPE_23
.
getCode
());
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
cartGoods
.
setOriginalPrice
(
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
continue
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CouponProductVo.java
View file @
629732ff
...
...
@@ -22,6 +22,6 @@ public class CouponProductVo {
private
String
productId
;
private
Integer
amount
;
private
Integer
quantity
;
private
String
couponCode
;
private
String
categoryCode
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
View file @
629732ff
...
...
@@ -2,6 +2,7 @@ package cn.freemud.service.impl.mcoffee.entity;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.ComboxGoodsRequestVo
;
import
cn.freemud.entities.vo.MaterialRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
...
...
@@ -59,10 +60,6 @@ public class MCoffeeAddGoodsRequestVo {
private
String
spuId
;
private
String
skuId
;
/**
* 商品额外的属性
*/
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
String
version
;
...
...
@@ -75,6 +72,10 @@ public class MCoffeeAddGoodsRequestVo {
*/
private
String
categoryName
;
/**
* 商品额外的属性
*/
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
/**
* 套餐固定商品
*/
private
List
<
ComboxGoodsRequestVo
>
productComboList
;
...
...
@@ -83,6 +84,16 @@ public class MCoffeeAddGoodsRequestVo {
*/
private
List
<
ComboxGoodsRequestVo
>
productGroupList
;
/**
* 加料
*/
private
List
<
MaterialRequestVo
>
productMaterialList
;
/**
* 麦咖啡定制属性
*/
private
List
<
CartGoods
.
SpecialExtra
>
specialExtra
;
private
String
appType
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/ProductClient.java
View file @
629732ff
...
...
@@ -2,6 +2,8 @@ package cn.freemud.service.thirdparty;
import
cn.freemud.entities.dto.ProductBaseResponse
;
import
cn.freemud.entities.dto.RequiredProductRequest
;
import
cn.freemud.entities.dto.product.ValiadShopProductResponse
;
import
cn.freemud.entities.dto.product.ValidateShopProductRequest
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -29,4 +31,8 @@ public interface ProductClient {
@PostMapping
({
"/Shop/ListMenuMustProduct"
})
ProductBaseResponse
<
List
<
String
>>
getRequiredProductList
(
@RequestBody
RequiredProductRequest
request
);
@PostMapping
({
"/Shop/ValidateShopProduct/Reason"
})
ProductBaseResponse
<
ValiadShopProductResponse
>
validateShopProductAboutReason
(
@RequestBody
ValidateShopProductRequest
request
);
}
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