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
a1f919f0
Commit
a1f919f0
authored
Sep 24, 2020
by
孙昱
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-yu.sun-20200915-new'
parents
a073bd0d
28b29250
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
326 additions
and
18 deletions
+326
-18
assortment-shoppingcart-sdk/pom.xml
+2
-3
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+16
-1
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+102
-1
shopping-cart-application-service/pom.xml
+9
-4
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
+50
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+2
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+85
-2
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+10
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+47
-0
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
No files found.
assortment-shoppingcart-sdk/pom.xml
View file @
a1f919f0
...
...
@@ -42,7 +42,7 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
3.
8.0.RELEASE
</version>
<version>
3.
7.6-SNAPSHOT
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
@@ -66,4 +66,4 @@
</dependencies>
</project>
\ No newline at end of file
</project>
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
a1f919f0
...
...
@@ -33,6 +33,21 @@ public class ShoppingCartConstant {
public
final
static
String
ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON
=
"一笔交易仅允许同时使用一张商品券"
;
public
final
static
String
ORDER_WAY_CHANGE
=
"切换点餐方式,商品库存和价格等可能会发生变化。"
;
/**
* 商品价格校验失败
*/
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/service/ShoppingCartBaseService.java
View file @
a1f919f0
...
...
@@ -48,6 +48,8 @@ import java.util.*;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.*;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -194,7 +196,107 @@ public interface ShoppingCartBaseService {
}
}
default
BaseResponse
<
CheckCartRequest
>
checkAllCartGoodsForMCoffee
(
CheckCartRequest
checkCartRequest
)
{
ShoppingCartAdapter
shoppingCartAdapter
=
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartAdapter
.
class
);
ProductService
productService
=
SDKCommonBaseContextWare
.
getBean
(
ProductService
.
class
);
try
{
ValidateShopProductRequest
validateShopProductRequest
=
shoppingCartAdapter
.
getValidateShopProductRequest
(
checkCartRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
ValiadShopProductResponse
>
valiadResponse
=
productService
.
validateShopProductAboutReason
(
validateShopProductRequest
);
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getCode
())
||
valiadResponse
.
getData
()==
null
)
{
checkCartRequest
.
getCartGoodsList
().
clear
();
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
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
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
if
(
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
()))
{
String
spuName
=
null
==
validaProduct
.
getProductType
()
?
cartGoods
.
getSpuName
()
:
validaProduct
.
getProductType
().
getName
();
if
(
PRODUCT_DOWN
==
validaProduct
.
getCode
())
{
invalidSpu
.
add
(
spuName
);
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_NOTFOUND
==
validaProduct
.
getCode
())
{
notFoundSpu
.
add
(
spuName
);
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_PRICE_CHANGE
==
validaProduct
.
getCode
())
{
changePriceSpu
.
add
(
spuName
);
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
}
}
}
}
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
());
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
continue
;
}
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
}
//校验商品券是否有当前点餐方式
cartGoodsStates
=
updateSpqCartGoodsInfo
(
checkCartRequest
.
getCartGoodsList
(),
checkCartRequest
.
getOrderWay
(),
checkCartRequest
.
getPartnerId
(),
checkCartRequest
.
getTrackingNo
(),
cartGoodsStates
,
checkCartRequest
.
getStoreId
());
// 点餐方式改变商品券发生变动
if
(
cartGoodsStates
!=
null
&&
cartGoodsStates
.
isOrderWayFlag
())
{
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
ORDER_WAY_CHANGE
);
}
//若商品详情赋值有异常,直接移除购物车
if
(
checkCartRequest
.
getCartGoodsList
().
stream
().
anyMatch
(
cart
->
StringUtils
.
isEmpty
(
cart
.
getCartGoodsUid
())))
{
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
}
// 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
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
return
CartResponseUtil
.
error
(
e
.
getMessage
(),
checkCartRequest
);
}
}
/**
* 更新购物车详细信息
...
...
@@ -897,5 +999,4 @@ public interface ShoppingCartBaseService {
}
return
null
;
}
}
shopping-cart-application-service/pom.xml
View file @
a1f919f0
...
...
@@ -35,7 +35,7 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
3.
8.0.RELEASE
</version>
<version>
3.
7.6-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
@@ -45,7 +45,7 @@
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-shoppingcart-sdk
</artifactId>
<version>
1.
1.5.RELEASE
</version>
<version>
1.
9.11-SNAPSHOT
</version>
</dependency>
<!-- 再来一单查询订单信息 -->
<dependency>
...
...
@@ -296,6 +296,12 @@
<groupId>
org.apache.skywalking
</groupId>
<artifactId>
apm-toolkit-logback-1.x
</artifactId>
</dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-shoppingcart-sdk
</artifactId>
<version>
1.1.5.RELEASE
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
@@ -373,4 +379,4 @@
</plugins>
</build>
</project>
\ No newline at end of file
</project>
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
0 → 100644
View file @
a1f919f0
package
cn
.
freemud
.
entities
.
vo
;
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
*
* @version V1.0
* @Title: QueryCartInfoRequestVo
* @Package cn.freemud.entities.vo
* @Description: 简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020/9/11 10:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
QueryCartInfoRequestVo
{
@ApiModelProperty
(
value
=
"用户Id"
,
required
=
true
)
@NotEmpty
(
message
=
"用户Id不可为空"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"商户Id"
,
required
=
true
)
@NotEmpty
(
message
=
"商户Id不可为空"
)
private
String
partnerId
;
@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/ResponseResult.java
View file @
a1f919f0
...
...
@@ -87,7 +87,8 @@ public enum ResponseResult {
SHOPPING_CART_SEAT_EMPTY
(
"44020"
,
"键位为空"
),
SHOPPING_CART_COUPON_USED
(
"44021"
,
"优惠券已加入餐盘"
),
SHOPPING_CART_GOODS_COUPON_CAN_NOT_USE
(
"44022"
,
"已加入同样优惠券,第二张暂不可用"
),
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 @
a1f919f0
...
...
@@ -151,7 +151,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/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
a1f919f0
...
...
@@ -326,6 +326,25 @@ public class ShoppingCartMCoffeeServiceImpl {
}
// /**
// * 券码用-查询购物车最新信息,计算优惠
// * @param requestVo
// * @return
// */
// public BaseResponse getCartInfoByUser(QueryCartInfoRequestVo requestVo){
// ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
// // 获取购物车商品?
// List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCartForCoupon(requestVo.getPartnerId(), requestVo.getStoreId(), requestVo.getUserId(), "", shoppingCartBaseService);
// // 当couponCode不为空时,需参与价格计算
// List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(null, null, cartGoodsList);
// // 促销活动的优惠金额计算
// calculationService.updateShoppingCartGoodsDiscount(requestVo.getPartnerId(), requestVo.getStoreId(), requestVo.getUserId(), requestVo.getAppId(), requestVo.getOrderType(), requestVo.isMemberPaid(), requestVo.getMenuType(), requestVo.getReceiveId(), null,
// cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo);
// List<CouponAvailableReq> resList = couponDiscountCalculation.buildAvailableCoupons(requestVo,cartGoodsList);
// return ResponseUtil.success(resList);
// }
/**
* 查询购物车可用券
*/
...
...
@@ -431,7 +450,32 @@ public class ShoppingCartMCoffeeServiceImpl {
}
// check购物车中所有商品
cartGoodsList
=
checkCartGoods
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
cartGoodsList
);
List
<
CartGoods
>
allCartGoodsList
=
new
ArrayList
<>();
CheckCartRequest
checkCartRequest
=
checkCartGoodsForToPay
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
cartGoodsList
);
if
(
null
!=
checkCartRequest
)
{
//商品不再售卖状态或价格变动,直接返回报错
if
(
null
!=
checkCartRequest
.
getShoppingCartGoodsResponseVo
())
{
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
ShoppingCartGoodsResponseVo
cartGoodsResponseVo
=
checkCartRequest
.
getShoppingCartGoodsResponseVo
();
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isHasInvalidGoods
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_ITEM_CHECK_INVAILD
);
}
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isPriceChanged
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
SHOPPING_CART_ACTIVITY_CHANGE
);
}
shoppingCartGoodsResponseVo
.
setToastMsg
(
cartGoodsResponseVo
.
getToastMsg
());
}
allCartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
}
//加价购商品
List
<
CartGoods
>
reduceGoods
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getGoodsType
()
==
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
()).
collect
(
Collectors
.
toList
());
//添加商品为加价购商品
if
(
CollectionUtils
.
isNotEmpty
(
reduceGoods
))
{
allCartGoodsList
.
addAll
(
reduceGoods
);
}
//恢复套餐商品空键位
// checkNewCartGoods(allCartGoodsList,2,map);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
sessionId
,
tableNumber
,
shoppingCartBaseService
);
...
...
@@ -484,7 +528,23 @@ public class ShoppingCartMCoffeeServiceImpl {
// 新门店check购物车中所有商品
cartGoodsList
=
checkCartGoods
(
partnerId
,
toStoreId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
cartGoodsList
);
if
(
requestVo
.
getOperationType
()
==
ShoppingCartOperationType
.
UPDATE3
.
getCode
())
{
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
if
(
StringUtils
.
isEmpty
(
shoppingCartGoodsResponseVo
.
getToastMsg
())){
// 重新存储新门店购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
toStoreId
,
userId
,
cartGoodsList
,
sessionId
,
""
,
shoppingCartBaseService
);
//清空商品券商品
clearCartCouponGoods
(
partnerId
,
toStoreId
,
userId
,
sessionId
,
cartGoodsList
);
// 当couponCode不为空时,需参与价格计算
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
getCoupon
(
couponCode
,
null
,
cartGoodsList
);
// 促销活动的优惠金额计算
calculationService
.
updateShoppingCartGoodsDiscount
(
partnerId
,
toStoreId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
menuType
,
receiveId
,
null
,
cartGoodsList
,
coupons
,
new
ArrayList
<>(),
shoppingCartGoodsResponseVo
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
(),
ShoppingCartConstant
.
QUERY_INFO
,
shoppingCartInfoRequestVo
);
shoppingCartGoodsResponseVo
.
setChanged
(
false
);
}
else
{
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
}
// 新门店check购物车中所有商品
if
(
requestVo
.
getOperationType
()
==
ShoppingCartOperationType
.
UPDATE4
.
getCode
())
{
...
...
@@ -995,6 +1055,29 @@ public class ShoppingCartMCoffeeServiceImpl {
}
/**
* 【去支付使用】购物车商品check,加购商品不在菜单不check
*/
private
CheckCartRequest
checkCartGoodsForToPay
(
String
partnerId
,
String
storeId
,
Integer
orderType
,
String
menuType
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
List
<
CartGoods
>
cartGoodsList
)
{
//去除套餐商品空键位
// Map<String, String> map = checkNewCartGoods(cartGoodsList,1,null);
//筛选数量不为0商品
cartGoodsList
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getQty
()
!=
0
).
collect
(
Collectors
.
toList
());
//筛选非加购商品--加价购商品不校验是否在菜单,不调用validateShopProduct
List
<
CartGoods
>
checkGoods
=
cartGoodsList
.
stream
().
filter
(
cartGoods
->
cartGoods
.
getGoodsType
()
!=
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
()).
collect
(
Collectors
.
toList
());
CheckCartRequest
checkCartRequest
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
checkGoods
))
{
//当商品全部添加完毕,校验购物车商品(是否合法,上下架,点餐方式,是否在当前菜单中...),并移除非法商品
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
checkGoods
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
orderType
,
""
,
menuType
,
shoppingCartBaseService
);
}
return
checkCartRequest
;
}
private
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
getCoupon
(
String
couponCode
,
String
activityCode
,
List
<
CartGoods
>
cartGoodsList
)
{
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
new
ArrayList
<>();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
a1f919f0
...
...
@@ -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
);
}
// 当加价购商品不为空时
...
...
@@ -401,9 +407,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 @
a1f919f0
...
...
@@ -326,6 +326,53 @@ public class CouponDiscountCalculation {
}
public
List
<
CouponAvailableReq
>
buildAvailableCoupons
(
QueryCartInfoRequestVo
requestVo
,
List
<
CartGoods
>
cartGoods
){
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
<>();
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
))
{
cartGoods
.
forEach
(
cartGood
->
{
// if (StringUtils.isNotEmpty(cartGood.getCouponCode())) {
// couponList.add(cartGood.getCouponCode());
// res.setCouponCodes(couponList);
// }
if
(
CollectionUtils
.
isNotEmpty
(
cartGood
.
getProductComboList
()))
{
cartGood
.
getProductComboList
().
forEach
(
comboxGoods
->
{
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
couponProductVo
.
setAmount
(
Integer
.
valueOf
(
comboxGoods
.
getAmount
().
toString
()));
couponProductVo
.
setKeyProductCode
(
comboxGoods
.
getCustomerCode
());
couponProductVo
.
setQuantity
(
comboxGoods
.
getQty
());
couponProductVo
.
setProductId
(
comboxGoods
.
getGoodsId
());
couponProductVo
.
setCouponCode
(
cartGood
.
getCouponCode
());
couponProductVo
.
setCategoryCode
(
null
);
productList
.
add
(
couponProductVo
);
});
}
if
(
CollectionUtils
.
isNotEmpty
(
cartGood
.
getProductGroupList
()))
{
cartGood
.
getProductGroupList
().
forEach
(
comboxGoods
->
{
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
couponProductVo
.
setAmount
(
Integer
.
valueOf
(
comboxGoods
.
getAmount
().
toString
()));
couponProductVo
.
setKeyProductCode
(
comboxGoods
.
getCustomerCode
());
couponProductVo
.
setQuantity
(
comboxGoods
.
getQty
());
couponProductVo
.
setProductId
(
comboxGoods
.
getGoodsId
());
couponProductVo
.
setCouponCode
(
cartGood
.
getCouponCode
());
couponProductVo
.
setCategoryCode
(
null
);
productList
.
add
(
couponProductVo
);
});
}
});
res
.
setProductList
(
productList
);
Long
totalAmount
=
createProductRequest
(
cartGoods
,
productList
);
res
.
setTotalAmount
(
Integer
.
valueOf
(
totalAmount
.
toString
()));
resList
.
add
(
res
);
}
return
resList
;
}
// public String getAppSecret(String partnerId) {
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/TimeSaleCalculation.java
View file @
a1f919f0
...
...
@@ -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 @
a1f919f0
...
...
@@ -22,6 +22,6 @@ public class CouponProductVo {
private
String
productId
;
private
Integer
amount
;
private
Integer
quantity
;
private
String
couponCode
;
private
String
categoryCode
;
}
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