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
96a8ce97
Commit
96a8ce97
authored
Jun 10, 2021
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/xukang_20210527_麦咖啡p6v9一键下单'
parents
91b6c184
2bac8396
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1106 additions
and
691 deletions
+1106
-691
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+3
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
+2
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
+2
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+2
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/ShoppingCartGoodsResponseVo.java
+7
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+0
-110
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+1
-0
order-application-service/src/main/java/cn/freemud/aop/WebAspect.java
+2
-1
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
+127
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+0
-81
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+1
-0
order-application-service/src/main/java/cn/freemud/entities/vo/mccafe/RecentGoodsInfoVo.java
+131
-0
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
+14
-0
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+0
-10
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
+2
-10
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+714
-54
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+2
-419
order-application-service/src/main/java/cn/freemud/utils/ExceptionUtils.java
+14
-0
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartMccafeAdapter.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/constant/ShoppingCartConstant.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsBaseResponseVo.java
+8
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+70
-6
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
96a8ce97
...
...
@@ -3162,6 +3162,9 @@ public class OrderSdkAdapter {
if
(
StringUtils
.
isNotBlank
(
product
.
getSplitIndex
())){
extInfo
.
setSplitIndex
(
product
.
getSplitIndex
());
}
if
(
null
!=
product
.
getProductGroupId
())
{
extInfo
.
setProductGroupId
(
product
.
getProductGroupId
());
}
extInfo
.
setStapleFood
(
product
.
getStapleFood
());
extInfo
.
setOriginalGoodsUid
(
product
.
getOriginalGoodsUid
());
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
View file @
96a8ce97
...
...
@@ -133,6 +133,8 @@ public class CreateOrderProductRequest extends BaseConfig {
*/
private
Boolean
isFixedProduct
;
private
Long
productGroupId
;
/**
* 套餐--6
*/
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
View file @
96a8ce97
...
...
@@ -97,6 +97,8 @@ public class OrderProductAddInfoDto extends BaseConfig {
*/
private
String
splitIndex
;
private
Long
productGroupId
;
/**
* 虚拟商品发券id
*/
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
96a8ce97
...
...
@@ -61,6 +61,8 @@ public class ShoppingCartConstant {
public
static
final
int
PRODUCT_GROUP_EMPTY
=
109
;
public
static
final
String
CART_PRODUCT_GROUP_EMPTY_STATE
=
"您选择的【$spuName】商品有未选商品"
;
public
static
final
String
CART_PRODUCT_NOT_MET_CONDITIONS
=
"您选择的【$spuName】不满足购买条件"
;
/**
* 可选商品价格校验失败
*/
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/ShoppingCartGoodsResponseVo.java
View file @
96a8ce97
...
...
@@ -14,7 +14,9 @@ package com.freemud.sdk.api.assortment.shoppingcart.domain;
import
lombok.Data
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
ShoppingCartGoodsResponseVo
{
...
...
@@ -63,6 +65,11 @@ public class ShoppingCartGoodsResponseVo {
* 前端用来提示的信息
*/
private
String
toastMsg
;
/**
* 前端用来提示的信息
*/
Map
<
String
,
List
<
String
>>
toastMsgMap
=
new
HashMap
<>();
/**
* 购物车中商品价格或有效性是否发生变化
*/
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
View file @
96a8ce97
...
...
@@ -252,116 +252,6 @@ 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
++)
{
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
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
());
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
);
}
}
/**
* 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架)
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
96a8ce97
...
...
@@ -2769,6 +2769,7 @@ public class OrderAdapter {
createOrderProductDemoDto
.
setClassificationId
(
cartGoodsDetailDto
.
getClassificationId
());
createOrderProductDemoDto
.
setClassificationName
(
cartGoodsDetailDto
.
getClassificationName
());
createOrderProductDemoDto
.
setSplitIndex
(
cartGoodsDetailDto
.
getSplitIndex
());
createOrderProductDemoDto
.
setProductGroupId
(
cartGoodsDetailDto
.
getProductGroupId
());
if
(
CollectionUtils
.
isNotEmpty
(
cartGoodsDetailDto
.
getSpecialExtra
()))
{
createOrderProductDemoDto
.
setSpecialAttrs
(
new
ArrayList
<>());
cartGoodsDetailDto
.
getSpecialExtra
().
stream
().
forEach
(
o
->
{
...
...
order-application-service/src/main/java/cn/freemud/aop/WebAspect.java
View file @
96a8ce97
...
...
@@ -98,7 +98,8 @@ public class WebAspect {
}
List
<
String
>
unauthorizedUrls
=
Arrays
.
asList
(
getNotFilterUrl
(
CommonRedisKeyConstant
.
SAAS_NOT_AUTHORIZED_URL
,
NOT_AUTHORIZED_KEY
).
split
(
","
));
List
<
String
>
mcCafeUnauthorizedUrls
=
Arrays
.
asList
(
"/MCoffee/mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
,
"/MCoffee/mcCafeRefund"
,
"/maCafeQueryOrders"
,
"/mcCafeQueryOrderById"
,
"/reminder"
,
"/listFreeRider"
,
"/mcCafePollingPickUpCode"
,
"/mcCafe/statusOperate"
,
"/MCoffee/mcCafeRefundNotifyCallback"
);
"/maCafeQueryOrders"
,
"/mcCafeQueryOrderById"
,
"/reminder"
,
"/listFreeRider"
,
"/mcCafePollingPickUpCode"
,
"/mcCafe/statusOperate"
,
"/MCoffee/mcCafeRefundNotifyCallback"
,
"mcCafeQueryRecentOrder"
);
if
(!
unauthorizedUrls
.
contains
(
requestUrl
)
&&
StringUtils
.
isEmpty
(
userInfo
.
getUnionId
())
&&
mcCafeUnauthorizedUrls
.
stream
().
noneMatch
(
o
->
requestUrl
.
contains
(
o
)))
{
throw
new
CommonServiceException
(
CommonResponseResult
.
USER_UNAUTHORIZED
);
...
...
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
0 → 100644
View file @
96a8ce97
package
cn
.
freemud
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.service.MCCafeOrderService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.Orderservice
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@RequestMapping
(
"/order"
)
@RestController
@Validated
public
class
McCafeController
{
@Autowired
private
Orderservice
orderservice
;
@Autowired
private
MCCafeOrderService
mcCafeOrderService
;
@Autowired
private
OrderAdapterService
orderAdapterService
;
/**
* 麦咖啡创建订单
*/
@ApiAnnotation
(
logMessage
=
"createMCCafeOrder"
)
@PostMapping
(
"/MCoffee/createMCCafeOrder"
)
public
BaseResponse
createOrderMCCafe
(
@Validated
@LogParams
@RequestBody
CreateOrderVo
createOrderVo
)
{
return
orderAdapterService
.
createMCCafeOrder
(
createOrderVo
);
}
/**
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafePaySuccessCallback"
)
@PostMapping
({
"/MCoffee/mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
})
public
String
mcCafePaySuccessCallback
(
@LogParams
@RequestBody
NewPaysuccessNoticeMessage
message
)
{
return
mcCafeOrderService
.
mcCafePaySuccessCallback
(
message
);
}
/**
* 查询麦咖啡订单列表
*/
@ApiAnnotation
(
logMessage
=
"maCafeQueryOrders"
)
@PostMapping
(
"/maCafeQueryOrders"
)
public
BaseResponse
maCafeQueryOrders
(
@Validated
@LogParams
@RequestBody
McCafeQueryOrderVo
queryOrderVo
)
{
return
mcCafeOrderService
.
mcCafeQueryOrders
(
queryOrderVo
);
}
/**
* 麦咖啡 获取订单详情
*/
@ApiAnnotation
(
logMessage
=
"mcCafeQueryOrderById"
)
@PostMapping
(
"/mcCafeQueryOrderById"
)
public
BaseResponse
mcCafeQueryOrderById
(
@Validated
@LogParams
@RequestBody
MaCafeQueryOrderVo
queryOrderVo
)
{
return
mcCafeOrderService
.
mcCafeQueryOrderById
(
queryOrderVo
);
}
/**
* 麦咖啡用户申请退款
*/
@ApiAnnotation
(
logMessage
=
"mcCafeRefund"
)
@PostMapping
(
"/MCoffee/mcCafeRefund"
)
public
BaseResponse
mcCafeRefund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
orderRefundVo
)
{
return
mcCafeOrderService
.
orderRefund
(
orderRefundVo
);
}
/**
* 退款回掉通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafeRefundNotifyCallback"
)
@PostMapping
(
"/MCoffee/mcCafeRefundNotifyCallback"
)
public
String
mcCafeRefundNotifyCallback
(
@LogParams
@RequestBody
RefundNotifyCallbackRequestVo
requestVo
)
{
return
mcCafeOrderService
.
mcCafeRefundNotifyCallback
(
requestVo
);
}
/**
* 根据订单号查询订单状态和取餐码
*/
@ApiAnnotation
(
logMessage
=
"mcCafePollingPickUpCode"
)
@PostMapping
(
"/mcCafePollingPickUpCode"
)
public
BaseResponse
mcCafePollingPickUpCode
(
@Validated
@LogParams
@RequestBody
MaCafeQueryOrderVo
vo
)
{
return
mcCafeOrderService
.
mcCafePollingPickUpCode
(
vo
);
}
/**
* 麦咖啡催单
*/
@ApiAnnotation
(
logMessage
=
"reminder"
)
@PostMapping
(
"/reminder"
)
public
BaseResponse
reminder
(
@Validated
@LogParams
@RequestBody
ReminderVo
reminderVo
)
{
return
mcCafeOrderService
.
reminder
(
reminderVo
);
}
/**
* 麦咖啡根据订单号查询骑手位置
*/
@ApiAnnotation
(
logMessage
=
"listFreeRider"
)
@PostMapping
(
"/listFreeRider"
)
public
BaseResponse
listFreeRider
(
@Validated
@LogParams
@RequestBody
FreeRiderPositionVo
vo
)
{
return
mcCafeOrderService
.
listFreeRider
(
vo
);
}
/**
* 查询麦咖啡最近已完成的一单
*/
@ApiAnnotation
(
logMessage
=
"mcCafeQueryRecentOrder"
)
@PostMapping
(
"/mcCafeQueryRecentOrder"
)
public
BaseResponse
mcCafeQueryRecentOrder
(
@Validated
@LogParams
@RequestBody
McCafeQueryOrderVo
queryOrderVo
)
{
return
mcCafeOrderService
.
mcCafeQueryRecentOrder
(
queryOrderVo
);
}
}
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
96a8ce97
...
...
@@ -97,15 +97,6 @@ public class OrderController {
}
/**
* 麦咖啡创建订单
*/
@ApiAnnotation
(
logMessage
=
"createMCCafeOrder"
)
@PostMapping
(
"/MCoffee/createMCCafeOrder"
)
public
BaseResponse
createOrderMCCafe
(
@Validated
@LogParams
@RequestBody
CreateOrderVo
createOrderVo
)
{
return
orderAdapterService
.
createMCCafeOrder
(
createOrderVo
);
}
/**
* 扫脸支付下单
*/
@ApiAnnotation
(
logMessage
=
"scanFaceCreateOrder"
)
...
...
@@ -142,15 +133,6 @@ public class OrderController {
}
/**
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafePaySuccessCallback"
)
@PostMapping
({
"/MCoffee/mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
})
public
String
mcCafePaySuccessCallback
(
@LogParams
@RequestBody
NewPaysuccessNoticeMessage
message
)
{
return
mcCafeOrderService
.
mcCafePaySuccessCallback
(
message
);
}
/**
* 退款回掉通知
*/
@ApiAnnotation
(
logMessage
=
"refundNotifyCallback"
)
...
...
@@ -169,15 +151,6 @@ public class OrderController {
}
/**
* 查询麦咖啡订单列表
*/
@ApiAnnotation
(
logMessage
=
"maCafeQueryOrders"
)
@PostMapping
(
"/maCafeQueryOrders"
)
public
BaseResponse
maCafeQueryOrders
(
@Validated
@LogParams
@RequestBody
McCafeQueryOrderVo
queryOrderVo
)
{
return
orderservice
.
mcCafeQueryOrders
(
queryOrderVo
);
}
/**
* 围餐-预览订单
* @param queryOrderVo
* @return
...
...
@@ -224,15 +197,6 @@ public class OrderController {
/**
* 麦咖啡 获取订单详情
*/
@ApiAnnotation
(
logMessage
=
"mcCafeQueryOrderById"
)
@PostMapping
(
"/mcCafeQueryOrderById"
)
public
BaseResponse
mcCafeQueryOrderById
(
@Validated
@LogParams
@RequestBody
MaCafeQueryOrderVo
queryOrderVo
)
{
return
orderservice
.
mcCafeQueryOrderById
(
queryOrderVo
);
}
/**
* 取消支付订单
*/
@ApiAnnotation
(
logMessage
=
"cancelPayOrder"
)
...
...
@@ -270,24 +234,6 @@ public class OrderController {
}
/**
* 麦咖啡用户申请退款
*/
@ApiAnnotation
(
logMessage
=
"mcCafeRefund"
)
@PostMapping
(
"/MCoffee/mcCafeRefund"
)
public
BaseResponse
mcCafeRefund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
orderRefundVo
)
{
return
mcCafeOrderService
.
orderRefund
(
orderRefundVo
);
}
/**
* 退款回掉通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafeRefundNotifyCallback"
)
@PostMapping
(
"/MCoffee/mcCafeRefundNotifyCallback"
)
public
String
mcCafeRefundNotifyCallback
(
@LogParams
@RequestBody
RefundNotifyCallbackRequestVo
requestVo
)
{
return
mcCafeOrderService
.
mcCafeRefundNotifyCallback
(
requestVo
);
}
/**
* 获取订单排队号
*/
@ApiAnnotation
(
logMessage
=
"queueIndex"
)
...
...
@@ -373,33 +319,6 @@ public class OrderController {
}
/**
* 麦咖啡催单
*/
@ApiAnnotation
(
logMessage
=
"reminder"
)
@PostMapping
(
"/reminder"
)
public
BaseResponse
reminder
(
@Validated
@LogParams
@RequestBody
ReminderVo
reminderVo
)
{
return
orderservice
.
reminder
(
reminderVo
);
}
/**
* 麦咖啡根据订单号查询骑手位置
*/
@ApiAnnotation
(
logMessage
=
"listFreeRider"
)
@PostMapping
(
"/listFreeRider"
)
public
BaseResponse
listFreeRider
(
@Validated
@LogParams
@RequestBody
FreeRiderPositionVo
vo
)
{
return
orderservice
.
listFreeRider
(
vo
);
}
/**
* 根据订单号查询订单状态和取餐码
*/
@ApiAnnotation
(
logMessage
=
"mcCafePollingPickUpCode"
)
@PostMapping
(
"/mcCafePollingPickUpCode"
)
public
BaseResponse
mcCafePollingPickUpCode
(
@Validated
@LogParams
@RequestBody
MaCafeQueryOrderVo
vo
)
{
return
orderservice
.
mcCafePollingPickUpCode
(
vo
);
}
/**
* timeOutRefund
* @param timeOutOrderVo
* @return
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
96a8ce97
...
...
@@ -186,6 +186,7 @@ public class ShoppingCartGoodsDto {
* 是否是套餐内固定商品
*/
private
Boolean
isFixedProduct
;
private
Long
productGroupId
;
/**
* 三方商品编号
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/mccafe/RecentGoodsInfoVo.java
0 → 100644
View file @
96a8ce97
package
cn
.
freemud
.
entities
.
vo
.
mccafe
;
import
cn.freemud.entities.vo.CartGoods
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2021-01-26 09:50:21
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public
class
RecentGoodsInfoVo
{
@NotEmpty
(
message
=
"spuId不能为空"
)
private
String
spuId
;
private
String
skuId
;
/**
* 数量
*/
@NotNull
(
message
=
"商品数量不可为空"
)
private
Integer
qty
;
/**
* 商品的spuName
*/
private
String
spuName
;
/**
* 商品的skuName
*/
private
String
skuName
;
/**
* 套餐固定商品
*/
private
List
<
ComboGoodsVo
>
productComboList
;
/**
* 套餐可选商品
*/
private
List
<
ComboGoodsVo
>
productGroupList
;
/**
* 加料
*/
private
List
<
MaterialGoodsVo
>
productMaterialList
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
@Data
public
final
static
class
ComboGoodsVo
{
/**
* 麦咖啡多规格商品spuid
*/
private
String
spuId
;
private
String
skuId
;
private
String
productGroupId
;
/**
* 商品的spuName
*/
private
String
spuName
;
/**
* 商品的skuName
*/
private
String
skuName
;
private
Integer
qty
;
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡多规格商品加料
*/
private
List
<
MaterialGoodsVo
>
productMaterialList
;
}
@Data
public
final
static
class
MaterialGoodsVo
{
/**
* 加料商品ID
*/
private
String
spuId
;
private
String
spuName
;
/**
* 数量
*/
private
Integer
qty
;
/**
* 麦咖啡入机键位
*/
private
String
customerCode
;
}
@Data
public
final
static
class
SpecialExtra
{
/**
* 属性Id
*/
private
String
attributeId
;
/**
* 属性名
*/
private
String
attributeName
;
private
String
attributeForeignName
;
/**
* 麦咖啡特定属性入机code
*/
private
String
specialCode
;
}
}
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
View file @
96a8ce97
...
...
@@ -40,5 +40,19 @@ public interface MCCafeOrderService {
*/
String
mcCafeRefundNotifyCallback
(
RefundNotifyCallbackRequestVo
message
);
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafeQueryOrders
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafePollingPickUpCode
(
MaCafeQueryOrderVo
vo
);
BaseResponse
reminder
(
ReminderVo
reminderVo
);
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
);
/**
* 查询麦咖啡最近已完成的一单
*/
BaseResponse
mcCafeQueryRecentOrder
(
McCafeQueryOrderVo
queryOrderVo
);
}
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
96a8ce97
...
...
@@ -127,16 +127,6 @@ public interface Orderservice {
*/
BaseResponse
queryOrderByConditions
(
QueryOrderByConditionsRequestVo
queryOrderByConditionsRequestVo
);
BaseResponse
reminder
(
ReminderVo
reminderVo
);
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
);
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafeQueryOrders
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafePollingPickUpCode
(
MaCafeQueryOrderVo
vo
);
/**
* 通过订单号查询订单详情
*
...
...
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
View file @
96a8ce97
...
...
@@ -21,6 +21,7 @@ import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.PosClient
;
import
cn.freemud.utils.DateTimeUtil
;
import
cn.freemud.utils.ExceptionUtils
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -462,19 +463,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
}
ecologyAdminApplicationClient
.
subscribeMessage
(
request
);
}
catch
(
Exception
e
)
{
ApiLog
.
info
(
"麦咖啡订阅消息推送失败"
+
orderId
+
getExceptionInfo
(
e
));
ApiLog
.
info
(
"麦咖啡订阅消息推送失败"
+
orderId
+
ExceptionUtils
.
getExceptionInfo
(
e
));
}
}
private
String
getExceptionInfo
(
Exception
e
)
{
StringBuilder
sb
=
new
StringBuilder
();
StackTraceElement
[]
trace
=
e
.
getStackTrace
();
for
(
StackTraceElement
traceElement
:
trace
)
{
sb
.
append
(
"\tat "
+
traceElement
);
}
return
sb
.
toString
();
}
/**
* 配送消息推送
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
96a8ce97
...
...
@@ -23,10 +23,11 @@ import cn.freemud.base.log.LogTreadLocal;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean
;
import
cn.freemud.entities.dto.delivery.
CancelDeliveryResponseDto
;
import
cn.freemud.entities.dto.delivery.
*
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.product.AttributeValue
;
...
...
@@ -40,6 +41,8 @@ import cn.freemud.entities.dto.user.OrderInfoRequest;
import
cn.freemud.entities.dto.user.SendCouponForqujiaDtoResponseDto
;
import
cn.freemud.entities.dto.user.SendCouponForqujiaRequestDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.mccafe.RecentGoodsInfoVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
...
...
@@ -51,15 +54,13 @@ import cn.freemud.redis.RedisCache;
import
cn.freemud.service.*
;
import
cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ValidationCode
;
import
cn.freemud.utils.*
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.*
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.manager.*
;
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
...
...
@@ -85,7 +86,9 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResp
import
com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.GetListByCodesResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig
;
...
...
@@ -96,6 +99,7 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
...
...
@@ -119,6 +123,8 @@ import ma.glasnost.orika.impl.DefaultMapperFactory;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.joda.time.DateTime
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -131,6 +137,7 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
MCCafeOrderServiceImpl
implements
MCCafeOrderService
{
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
...
...
@@ -151,6 +158,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private
String
cloud_print_exchange
;
@Value
(
"${saas.order.delivery.mcCafe.callBackUrl}"
)
private
String
deliveryCallBackUrl
;
@Value
(
"${mcCafe.quickOrder.interval}"
)
private
String
quickOrderInterval
;
@Autowired
private
DeliveryFeiginClient
deliveryFeiginClient
;
...
...
@@ -163,8 +172,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
OrderServiceImpl
orderService
;
@Autowired
private
PromotionActivityClient
promotionActivityClient
;
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
@Autowired
private
CustomerApplicationClient
customerApplicationClient
;
...
...
@@ -173,17 +180,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
BuriedPointService
buriedPointService
;
@Autowired
private
CouponActivityService
couponActivityService
;
@Autowired
private
MessageNoticeAdapter
messageNoticeAdapter
;
@Autowired
private
OrderAdapter
orderAdapter
;
@Autowired
private
ActivityAdapter
activityAdapter
;
@Autowired
private
CouponAdapter
couponAdapter
;
@Autowired
private
MealCacheManager
mealCacheManager
;
//聚合订单服务
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
...
...
@@ -195,8 +194,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
StoreCenterService
storeCenterService
;
@Autowired
private
DeliveryService
deliveryService
;
@Autowired
private
MQService
mqService
;
@Autowired
@Qualifier
(
"messageTemplatePushOrderService"
)
...
...
@@ -204,8 +201,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
CheckMCCafeOrder
checkMCCafeOrder
;
...
...
@@ -216,12 +211,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
ActivityApplicationClient
activityApplicationClient
;
@Autowired
private
AssortmentOpenPlatformWxappAuthorizerManager
wxappAuthorizerManager
;
@Autowired
private
CacheOpenPlatformPartnerWxappConfigManager
cacheOpenPlatformPartnerWxappConfigManager
;
@Autowired
private
OrderAdapterService
orderAdapterService
;
@Autowired
private
AssortmentOpenPlatformPartnerManager
assortmentOpenPlatformPartnerManager
;
...
...
@@ -238,7 +229,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
CustomerExtendClient
customerExtendClient
;
@Autowired
private
CacheOpenApiEncryptManager
cacheOpenApiEncrypt
Manager
;
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfig
Manager
;
private
static
MapperFacade
mapper
=
new
DefaultMapperFactory
.
Builder
().
build
().
getMapperFacade
();
...
...
@@ -1393,6 +1384,426 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
newSendPaySuccessNoticeMessage
();
}
/**
* 麦咖啡查询订单详情
*
* @param queryOrderVo
* @return
*/
@Override
public
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userInfo
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userInfo
==
null
||
StringUtils
.
isEmpty
(
userInfo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
oid
=
queryOrderVo
.
getOid
();
if
(
StringUtils
.
isBlank
(
oid
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
oid
);
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryMCCafeOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
String
storeId
=
orderBean
.
getShopId
();
StoreInfoRequest
request
=
new
StoreInfoRequest
();
request
.
setPartnerId
(
queryOrderVo
.
getPartnerId
());
request
.
setStoreCode
(
storeId
);
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
request
,
LogTreadLocal
.
getTrackingNo
());
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
)
{
StoreResponse
.
BizVO
storeResponseDto
=
storeInfo
.
getBizVO
();
orderBean
.
setShopAddress
(
storeResponseDto
.
getAddress
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setShopImageUrl
(
storeResponseDto
.
getLogoUrl
());
//默认骑手头像显示为门店首页图片
orderBean
.
setRiderPhoto
(
storeResponseDto
.
getLogoUrl
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setLatitude
(
Double
.
valueOf
(
storeResponseDto
.
getLatitude
()));
orderBean
.
setLongitude
(
Double
.
valueOf
(
storeResponseDto
.
getLongitude
()));
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response1
=
new
QueryOrderQueueIndexResponse
();
response1
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response1
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response1
.
getErrcode
()))
{
String
queueIndex
=
response1
.
getData
()
==
null
?
""
:
response1
.
getData
().
toString
();
orderBean
.
setQueueIndex
(
queueIndex
);
}
// 获取订单运单号,如果有运单则是第三方外卖单
if
(
orderBean
.
getAddInfo
()
!=
null
&&
StringUtils
.
isNotEmpty
(
orderBean
.
getAddInfo
().
getDeliveryId
()))
{
hasThirdDelivery
(
orderBean
);
}
// 查询订单的操作状态
OrderStatusTrackingInfoResponse
statusTrackingInfoByOid
=
orderCenterSdkService
.
getOrderStatusTrackingInfoByOid
(
var1
);
String
string2
=
JSONObject
.
toJSONString
(
statusTrackingInfoByOid
);
JSONObject
jsonObject2
=
JSONObject
.
parseObject
(
string2
);
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
=
jsonObject2
.
toJavaObject
(
OrderStatusTrackingInfoDto
.
class
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
orderStatusTrackingInfoByOid
.
getErrcode
()))
{
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
List
<
QueryOrderResponseVo
>
queryOrderResponseVos
=
orderAdapter
.
convent2QueryOrderResponseVos
(
Collections
.
singletonList
(
orderBean
),
userInfo
.
getWxAppId
(),
userInfo
.
getIappId
());
if
(
CollectionUtils
.
isEmpty
(
queryOrderResponseVos
))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrderResponseVo
queryOrderResponseVo
=
queryOrderResponseVos
.
get
(
0
);
Optional
<
ProductVo
>
productVoOptional
=
queryOrderResponseVo
.
getProducts
().
stream
()
.
filter
(
o
->
StringUtils
.
isNotBlank
(
o
.
getSplitIndex
()))
.
findFirst
();
Map
<
String
,
Integer
>
existMap
=
new
HashMap
<>();
if
(
productVoOptional
.
isPresent
())
{
int
size
=
queryOrderResponseVo
.
getProducts
().
size
();
List
<
ProductVo
>
productVoList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
ProductVo
productVo
=
queryOrderResponseVo
.
getProducts
().
get
(
i
);
if
(
StringUtils
.
isBlank
(
productVo
.
getSplitIndex
()))
{
productVoList
.
add
(
productVo
);
}
else
{
if
(
existMap
.
get
(
productVo
.
getSplitIndex
())
==
null
)
{
existMap
.
put
(
productVo
.
getSplitIndex
(),
productVoList
.
size
());
productVoList
.
add
(
productVo
);
}
else
{
ProductVo
productVoExists
=
productVoList
.
get
(
existMap
.
get
(
productVo
.
getSplitIndex
()));
productVoExists
.
setOriginalTotalAmount
(
productVoExists
.
getOriginalTotalAmount
()
+
productVo
.
getOriginalTotalAmount
());
productVoExists
.
setSaleTotalAmount
(
productVoExists
.
getSaleTotalAmount
()
+
productVo
.
getSaleTotalAmount
());
productVoExists
.
setQty
(
productVoExists
.
getQty
()
+
productVo
.
getQty
());
}
}
}
queryOrderResponseVo
.
setProducts
(
productVoList
);
}
//麦咖啡 预约外卖单重新封装取餐时间
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderType
())
&&
StringUtils
.
isNotEmpty
(
queryOrderResponseVo
.
getReserveDeliveryTime
()))
{
Date
reserveDeliveryTime
=
DateUtil
.
convert2Date
(
queryOrderResponseVo
.
getReserveDeliveryTime
(),
"yyyy-MM-dd HH:mm:ss"
);
queryOrderResponseVo
.
setReserveDeliveryTime
(
formatSpecialDate
(
reserveDeliveryTime
));
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
()))
{
queryOrderResponseVo
.
setTakeCode
(
""
);
}
queryOrderResponseVo
.
setOrderTypeDesc
(
Optional
.
ofNullable
(
McCafeOrderTypeGather
.
getByCode
(
queryOrderResponseVo
.
getOrderType
()))
.
map
(
McCafeOrderTypeGather:
:
getDesc
).
orElse
(
""
));
queryOrderResponseVo
.
setIsCouponOrder
(
queryOrderResponseVo
.
getProducts
().
stream
()
.
filter
(
o
->
!
ProductTypeEnum
.
getVirtualProductType
().
contains
(
o
.
getProductType
())).
findAny
().
isPresent
()
?
0
:
1
);
//48小时自动退款描述
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
==
1
)
{
Integer
automaticRefund
=
storeInfo
.
getBizVO
().
getStoreConfig
().
getAutomaticRefund
();
if
(
automaticRefund
!=
null
&&
automaticRefund
==
1
)
{
queryOrderResponseVo
.
setRefundTips
(
"若48小时内未成功退款,请联系商家人工处理"
);
}
else
{
queryOrderResponseVo
.
setRefundTips
(
"若48小时内未成功退款,请联系商家人工处理"
);
}
}
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
}
@Override
public
BaseResponse
mcCafeQueryOrders
(
McCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
if
(
StringUtils
.
isBlank
(
queryOrderVo
.
getStartDate
()))
{
queryOrderVo
.
setStartDate
(
DateUtil
.
convert2String
(
DateUtil
.
addMonths
(
new
Date
(),
-
1
),
"yyyy-MM-dd"
));
}
if
(
StringUtils
.
isBlank
(
queryOrderVo
.
getEndDate
()))
{
queryOrderVo
.
setEndDate
(
DateUtil
.
convert2String
(
new
Date
(),
"yyyy-MM-dd"
));
}
if
(
CollectionUtils
.
isEmpty
(
queryOrderVo
.
getQueryOrderStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"查询订单状态不能为空"
);
}
if
(
CollectionUtils
.
isNotEmpty
(
queryOrderVo
.
getQueryOrderType
()))
{
if
(
CollectionUtils
.
isEmpty
(
OrderType
.
getByCode
(
queryOrderVo
.
getQueryOrderType
())))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"查询订单类型不存在"
);
}
}
String
partnerId
=
queryOrderVo
.
getPartnerId
();
String
startDateStr
=
queryOrderVo
.
getStartDate
()
+
" 00:00:00"
;
String
endDateStr
=
queryOrderVo
.
getEndDate
()
+
" 23:59:59"
;
Date
startDate
=
DateUtil
.
convert2Date
(
startDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
startDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单开始时间格式不正确"
);
}
Date
endDate
=
DateUtil
.
convert2Date
(
endDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
endDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单结束时间格式不正确"
);
}
if
(
startDate
.
getTime
()
<
DateUtil
.
addMonths
(
new
Date
(),
-
3
).
getTime
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"只能查询3个月内的订单信息"
);
}
String
userId
=
userLoginInfoDto
.
getMemberId
();
queryOrderVo
.
setStartDate
(
startDateStr
);
queryOrderVo
.
setEndDate
(
endDateStr
);
QueryOrderVo
vo
=
new
QueryOrderVo
();
BeanUtils
.
copyProperties
(
queryOrderVo
,
vo
);
String
channelType
=
this
.
getQueryOrderChannelType
(
vo
,
userLoginInfoDto
);
QueryOrdersDto
queryOrdersDto
=
orderAdapter
.
convent2QueryOrdersDtoMcCafe
(
queryOrderVo
,
userId
,
channelType
);
QueryOrdersResponse
queryOrderResponse
;
try
{
QueryOrdersRequest
queryOrdersRequest2
=
new
QueryOrdersRequest
();
BeanUtil
.
convertBean
(
queryOrdersDto
,
queryOrdersRequest2
);
queryOrdersRequest2
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
queryOrderResponse
=
orderCenterSdkService
.
queryMCCafeOrders
(
queryOrdersRequest2
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"queryOrders_error"
,
gson
.
toJson
(
queryOrdersDto
),
e
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
if
(
queryOrderResponse
==
null
||
!
RESPONSE_SUCCESS_CODE
.
equals
(
queryOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
());
}
Map
<
String
,
Object
>
responseMap
=
Maps
.
newTreeMap
();
//用户无订单数据
if
(
queryOrderResponse
.
getData
()
==
null
||
queryOrderResponse
.
getData
().
getCount
()
==
0
)
{
responseMap
.
put
(
"count"
,
0
);
responseMap
.
put
(
"list"
,
new
ArrayList
<
QueryOrderResponseVo
>());
return
ResponseUtil
.
success
(
responseMap
);
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
orders
=
queryOrderResponse
.
getData
().
getOrders
();
Set
<
String
>
shopIds
=
new
HashSet
<>();
// 过滤待支付订单
if
(
CollectionUtils
.
isNotEmpty
(
orders
))
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
:
orders
)
{
if
(!(
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())))
{
shopIds
.
add
(
orderBean
.
getShopId
());
}
}
}
String
storeCodes
=
""
;
for
(
String
shopId
:
shopIds
)
{
storeCodes
=
shopId
+
","
+
storeCodes
;
}
GetListByCodesRequest
request
=
new
GetListByCodesRequest
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCodes
(
storeCodes
);
// 查询多个门店信息
GetListByCodesResponse
storeInfoResponse
=
storeCenterService
.
getListByCodes
(
request
,
LogTreadLocal
.
getTrackingNo
());
Map
<
String
,
StoreResponse
.
BizVO
>
storeMap
=
new
HashMap
<>();
if
(
storeInfoResponse
!=
null
&&
storeInfoResponse
.
getBizVO
()
!=
null
&&
storeInfoResponse
.
getBizVO
().
getList
()
!=
null
)
{
for
(
StoreResponse
.
BizVO
bizVO
:
storeInfoResponse
.
getBizVO
().
getList
())
{
storeMap
.
put
(
bizVO
.
getStoreCode
(),
bizVO
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
orders
))
{
orders
.
forEach
(
orderBean
->
{
StoreResponse
.
BizVO
storeResponseDto
=
storeMap
.
get
(
orderBean
.
getShopId
());
if
(
storeResponseDto
!=
null
)
{
orderBean
.
setShopAddress
(
storeResponseDto
.
getAddress
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setShopImageUrl
(
storeResponseDto
.
getLogoUrl
());
//默认骑手头像显示为门店首页图片
orderBean
.
setRiderPhoto
(
storeResponseDto
.
getLogoUrl
());
orderBean
.
setLatitude
(
Double
.
valueOf
(
storeResponseDto
.
getLatitude
()));
orderBean
.
setLongitude
(
Double
.
valueOf
(
storeResponseDto
.
getLongitude
()));
}
// 获取订单运单号,如果有运单则是第三方外卖单
if
(
orderBean
.
getAddInfo
()
!=
null
&&
StringUtils
.
isNotEmpty
(
orderBean
.
getAddInfo
().
getDeliveryId
()))
{
hasThirdDelivery
(
orderBean
);
}
orderBean
.
setQueueIndex
(
""
);
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录
if
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
// 查询订单的排队人数
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response
=
new
QueryOrderQueueIndexResponse
();
response
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
response
.
setData
(
baseOrderResponse
.
getData
()
==
null
?
0
:
Integer
.
parseInt
(
baseOrderResponse
.
getData
()));
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
()))
{
String
queueIndex
=
response
.
getData
()
==
null
?
""
:
response
.
getData
().
toString
();
orderBean
.
setQueueIndex
(
queueIndex
);
}
// 查询订单的操作状态
BaseQueryOrderRequest
var2
=
new
BaseQueryOrderRequest
();
var2
.
setOrderId
(
orderBean
.
getOid
());
var2
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
OrderStatusTrackingInfoResponse
orderStatusTrackingInfoResponse
=
orderCenterSdkService
.
getOrderStatusTrackingInfoByOid
(
var2
);
String
string
=
JSONObject
.
toJSONString
(
orderStatusTrackingInfoResponse
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
string
);
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
=
jsonObject
.
toJavaObject
(
OrderStatusTrackingInfoDto
.
class
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
orderStatusTrackingInfoByOid
.
getErrcode
()))
{
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
orderBean
.
setOtherCode
(
""
);
}
});
}
List
<
QueryOrderResponseVo
>
queryOrderResponseVos
=
orderAdapter
.
convent2QueryOrderResponseVos
(
orders
,
userLoginInfoDto
.
getWxAppId
(),
userLoginInfoDto
.
getIappId
());
responseMap
.
put
(
"count"
,
queryOrderResponse
.
getData
()
==
null
?
0
:
queryOrderResponse
.
getData
().
getCount
());
responseMap
.
put
(
"list"
,
queryOrderResponseVos
);
//只有有订单时才显示用户自定义取餐信息
if
(
CollectionUtils
.
isNotEmpty
(
queryOrderResponseVos
))
{
responseMap
.
put
(
"definitionMsg"
,
getDefinitionMsg
(
queryOrderVo
.
getPartnerId
()));
}
return
ResponseUtil
.
success
(
responseMap
);
}
/**
* 获取商户自定义提示信息配置
*
* @param partnerId
* @return
*/
public
String
getDefinitionMsg
(
String
partnerId
)
{
String
definitionMsgKey
=
"partner_definition_msg"
;
AssortmentOpenPlatformPartnerConfig
partnerConfig
=
openPlatformPartnerConfigManager
.
selectPartnerConfigByPartnerKey
(
partnerId
,
definitionMsgKey
,
1
);
if
(
partnerConfig
==
null
)
{
return
null
;
}
return
partnerConfig
.
getPartnerValue
();
}
/**
* 如果有第三方配送,返回值添加第三方配送信息
*/
private
void
hasThirdDelivery
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
String
deliveryId
=
orderBean
.
getAddInfo
().
getDeliveryId
();
if
(
"0"
.
equals
(
deliveryId
))
{
return
;
}
// String trackingNo = LogTreadLocal.getTrackingNo();
QueryDeliveryBaseRequest
queryDeliveryBaseRequest
=
new
QueryDeliveryBaseRequest
();
queryDeliveryBaseRequest
.
setDeliveryId
(
deliveryId
);
queryDeliveryBaseRequest
.
setOpenDistance
(
1
);
//变更查询配送信息换新接口 wanghanghang 20210129
//【ID1021981】C端小程序配送显示骑手、商家坐标地图、配送距离以及骑手姓名电话,支持直接拨打
DeliveryBaseResponse
<
DeliveryStatusAndRiderPositionDto
>
deliveryBaseResponse
=
deliveryFeiginClient
.
getDeliveryStatusAndRiderPosition
(
queryDeliveryBaseRequest
);
// DeliveryResponseDto<DeliveryInfoDto> delivery = deliveryService.deliveryOrderOne(deliveryId, trackingNo);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
deliveryBaseResponse
.
getCode
())
&&
deliveryBaseResponse
.
getData
()
!=
null
)
{
DeliveryStatusAndRiderPositionDto
result
=
deliveryBaseResponse
.
getData
();
orderBean
.
setDeliverStatus
(
result
.
getDevlieryStatus
());
orderBean
.
setRiderName
(
result
.
getRiderName
());
orderBean
.
setRiderPhone
(
result
.
getRiderPhone
());
orderBean
.
setReceiveTime
(
result
.
getReceiveTime
());
orderBean
.
setDepatchTime
(
result
.
getDepatchTime
());
orderBean
.
setArriveShopTime
(
result
.
getArriveShopTime
());
orderBean
.
setSendTime
(
result
.
getSendTime
());
orderBean
.
setCompleteTime
(
result
.
getCompleteTime
());
/** 只有配送状态是2 3 4 5时,返回三方坐标信息
* 此处如果是外卖单,则需要返回门店经纬度/用户经纬度/骑手经纬度
* 门店经纬度 = 配送返回信息为准,外卖单独新增门店经纬度字段,和配送信息接口统一 /queryOrderRider
* wanghanghang 20210129
*/
if
(
result
.
getDevlieryStatus
().
equals
(
DeliveryStatus
.
ALLOTRIDER
.
getCode
())
||
result
.
getDevlieryStatus
().
equals
(
DeliveryStatus
.
RIDERARRIVESTORE
.
getCode
())
||
result
.
getDevlieryStatus
().
equals
(
DeliveryStatus
.
RIDERGETMEAL
.
getCode
())
||
result
.
getDevlieryStatus
().
equals
(
DeliveryStatus
.
RIDERSTARTDELIVERY
.
getCode
())
)
{
orderBean
.
getAddInfo
().
setDeliverStatus
(
result
.
getDevlieryStatus
());
orderBean
.
getAddInfo
().
setDistance
(
deliveryBaseResponse
.
getData
().
getDistance
());
orderBean
.
getAddInfo
().
setDuration
(
deliveryBaseResponse
.
getData
().
getDuration
());
orderBean
.
getAddInfo
().
setStoreDistance
(
deliveryBaseResponse
.
getData
().
getStoreDistance
());
orderBean
.
getAddInfo
().
setStoreDuration
(
deliveryBaseResponse
.
getData
().
getStoreDuration
());
orderBean
.
getAddInfo
().
setRiderName
(
result
.
getRiderName
());
orderBean
.
getAddInfo
().
setRiderPhone
(
result
.
getRiderPhone
());
orderBean
.
getAddInfo
().
setOrderId
(
orderBean
.
getOid
());
orderBean
.
getAddInfo
().
setStorePhone
(
result
.
getStorePhone
());
//门店经纬度
if
(
deliveryBaseResponse
.
getData
().
getStorePoint
()
!=
null
)
{
String
[]
storePoint
=
deliveryBaseResponse
.
getData
().
getStorePoint
().
split
(
","
);
orderBean
.
getAddInfo
().
setShopLongitude
(
storePoint
[
0
]);
orderBean
.
getAddInfo
().
setShopLatitude
(
storePoint
[
1
]);
}
//骑手经纬度
if
(
deliveryBaseResponse
.
getData
().
getCurrentPoint
()
!=
null
)
{
String
[]
currentPoint
=
deliveryBaseResponse
.
getData
().
getCurrentPoint
().
split
(
","
);
orderBean
.
getAddInfo
().
setRiderLongitude
(
currentPoint
[
0
]);
orderBean
.
getAddInfo
().
setRiderLatitude
(
currentPoint
[
1
]);
}
//用户经纬度
if
(
deliveryBaseResponse
.
getData
().
getDestPoint
()
!=
null
)
{
String
[]
destPoint
=
deliveryBaseResponse
.
getData
().
getDestPoint
().
split
(
","
);
orderBean
.
getAddInfo
().
setDestLongitude
(
destPoint
[
0
]);
orderBean
.
getAddInfo
().
setDestLatitude
(
destPoint
[
1
]);
}
}
}
}
private
void
orderStatusTracking
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
)
{
List
<
OrderStatusTrackingInfoDto
.
OrderStatusTrackingInfo
>
data
=
orderStatusTrackingInfoByOid
.
getData
();
if
(
CollectionUtils
.
isNotEmpty
(
data
))
{
for
(
OrderStatusTrackingInfoDto
.
OrderStatusTrackingInfo
orderStatusTrackingInfo
:
data
)
{
Integer
status
=
orderStatusTrackingInfo
.
getStatus
();
String
statusTime
=
orderStatusTrackingInfo
.
getStatusTime
();
switch
(
status
)
{
case
1
:
orderBean
.
setOperateTakeOrderTime
(
statusTime
);
break
;
case
2
:
orderBean
.
setOperateWaitPayTime
(
statusTime
);
break
;
case
3
:
orderBean
.
setOperateReceiptTime
(
statusTime
);
break
;
case
4
:
orderBean
.
setOperateDistributionTime
(
statusTime
);
break
;
case
5
:
orderBean
.
setOperateCompleteTime
(
statusTime
);
break
;
case
6
:
orderBean
.
setOperateCalcelTime
(
statusTime
);
break
;
case
7
:
orderBean
.
setOperatePefuseTime
(
statusTime
);
break
;
case
31
:
orderBean
.
setOperateCompleteMakeTime
(
statusTime
);
break
;
default
:
break
;
}
}
}
}
public
static
String
formatSpecialDate
(
Date
date
)
{
if
(
date
==
null
)
{
return
null
;
}
DateTime
now
=
new
DateTime
();
DateTime
today_start
=
new
DateTime
(
now
.
getYear
(),
now
.
getMonthOfYear
(),
now
.
getDayOfMonth
(),
0
,
0
,
0
);
DateTime
today_end
=
today_start
.
plusDays
(
1
);
DateTime
tomorrow_start
=
today_start
.
plusDays
(
2
);
if
(
date
.
after
(
today_start
.
toDate
())
&&
date
.
before
(
today_end
.
toDate
()))
{
return
String
.
format
(
"%s"
,
new
DateTime
(
date
).
toString
(
"HH:mm"
));
}
else
if
(
date
.
after
(
today_end
.
toDate
())
&&
date
.
before
(
tomorrow_start
.
toDate
()))
{
return
String
.
format
(
"明天%s%s"
,
DateUtils
.
getDayWeek
(
date
),
new
DateTime
(
date
).
toString
(
"HH:mm"
));
}
return
new
DateTime
(
date
).
toString
(
"yyyy-MM-dd"
)
+
DateUtils
.
getDayWeek
(
date
)
+
new
DateTime
(
date
).
toString
(
"HH:mm"
);
}
/**
* 取消配送
*
...
...
@@ -1597,36 +2008,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
/**
* 开通会员卡
*
* @param partnerId 商户号
* @param ruleId 会员规则ID
* @param oid 订单号
* @param userId 用户ID
*/
private
void
activateMemberCard
(
String
partnerId
,
String
ruleId
,
String
oid
,
String
userId
)
{
PurchasePaidRequestDto
purchasePaidRequestDto
=
new
PurchasePaidRequestDto
();
purchasePaidRequestDto
.
setPartnerId
(
partnerId
);
purchasePaidRequestDto
.
setOperatorType
(
0
);
purchasePaidRequestDto
.
setRuleId
(
ruleId
);
purchasePaidRequestDto
.
setOrderId
(
oid
);
purchasePaidRequestDto
.
setMemberId
(
userId
);
// 尝试三次开通会员卡,中途成功则跳出
int
count
=
3
;
for
(
int
i
=
1
;
i
<=
count
;
i
++)
{
BaseResponse
baseResponse
=
customerApplicationClient
.
purchasePaid
(
purchasePaidRequestDto
);
// 不以响应码为判断是否开通会员卡成功的标准
if
(
baseResponse
!=
null
&&
"SUCCESS"
.
equals
(
baseResponse
.
getResult
()))
{
break
;
}
// 尝试开通会员卡失败三次
if
(
i
>=
count
)
{
LogUtil
.
error
(
"尝试开通会员卡失败"
+
count
+
"次"
,
JSON
.
toJSONString
(
purchasePaidRequestDto
),
JSON
.
toJSONString
(
baseResponse
));
}
}
}
/**
* 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean
*/
...
...
@@ -1873,4 +2254,283 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
true
;
}
@Override
public
BaseResponse
mcCafePollingPickUpCode
(
MaCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
oid
=
queryOrderVo
.
getOid
();
if
(
StringUtils
.
isBlank
(
oid
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
oid
);
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
OrderViewStatusDto
orderViewStatusDesc
=
orderAdapter
.
getOrderViewStatusDesc
(
orderBean
,
userLoginInfoDto
.
getWxAppId
());
Map
<
String
,
Object
>
responseMap
=
Maps
.
newTreeMap
();
responseMap
.
put
(
"orderStatus"
,
orderViewStatusDesc
.
getOrderStatus
());
responseMap
.
put
(
"takeCode"
,
""
);
responseMap
.
put
(
"queueIndex"
,
""
);
String
extInfo
=
orderBean
.
getExtInfo
();
OrderExtInfoDto
orderExtInfoDto
=
null
;
if
(
StringUtils
.
isNotBlank
(
extInfo
))
{
orderExtInfoDto
=
gson
.
fromJson
(
extInfo
,
OrderExtInfoDto
.
class
);
}
responseMap
.
put
(
"payVoucher"
,
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getPayTransId
()
:
""
);
//非外卖单才获取取餐码和排队人数
if
(!
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
if
(!(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())))
{
responseMap
.
put
(
"takeCode"
,
orderBean
.
getOtherCode
());
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response1
=
new
QueryOrderQueueIndexResponse
();
response1
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response1
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response1
.
getErrcode
()))
{
String
queueIndex
=
response1
.
getData
()
==
null
?
""
:
response1
.
getData
().
toString
();
responseMap
.
put
(
"queueIndex"
,
queueIndex
);
}
}
return
ResponseUtil
.
success
(
responseMap
);
}
/**
* 催单
*
* @param reminderVo
* @return
*/
@Override
public
BaseResponse
reminder
(
ReminderVo
reminderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
reminderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
reminderVo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
//判断订单状态
if
(!
cn
.
freemud
.
management
.
enums
.
OrderStatus
.
DISTRIBUTION
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_REMINDER_ORDER_ERROR
);
}
//调用配送服务进行催单
OrderRemindRequestDto
dto
=
new
OrderRemindRequestDto
();
dto
.
setOrderKey
(
reminderVo
.
getOid
());
dto
.
setStoreId
(
orderBean
.
getShopId
());
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setDisplayOrderId
(
orderBean
.
getDownstreamThirdOrderCode
());
if
(
orderBean
.
getAddInfo
()
!=
null
)
{
dto
.
setDeliveryId
(
orderBean
.
getAddInfo
().
getDeliveryId
());
}
QueryDeliveryAmountResponseDto
responseDto
=
deliveryFeiginClient
.
orderRemind
(
dto
);
if
(
null
!=
responseDto
&&
120
==
responseDto
.
getCode
())
{
return
ResponseUtil
.
error
(
"120"
,
responseDto
.
getMsg
());
}
if
(
responseDto
==
null
||
RESPONSE_SUCCESS_CODE
!=
responseDto
.
getCode
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_REMINDER_ERROR
);
}
return
ResponseUtil
.
success
();
}
/**
* 查询骑手位置
*
* @param vo
* @return
*/
@Override
public
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
vo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
QueryLocusRiderTrackDto
dto
=
new
QueryLocusRiderTrackDto
();
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setOrderId
(
vo
.
getOid
());
MCCafeDeliveryBaseResponse
<
ResRiderTrackDto
>
responses
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
if
(
responses
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
responses
.
getCode
())
||
responses
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_ERROR
);
}
return
ResponseUtil
.
success
(
responses
.
getData
());
}
@Override
public
BaseResponse
mcCafeQueryRecentOrder
(
McCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
List
<
RecentGoodsInfoVo
>
recentGoodsInfoVoList
=
new
ArrayList
<>();
if
(
null
==
quickOrderInterval
||
"0"
.
equals
(
quickOrderInterval
))
{
return
ResponseUtil
.
success
(
recentGoodsInfoVoList
);
}
queryOrderVo
.
setStartDate
(
DateUtil
.
convert2String
(
DateUtil
.
addDays
(
new
Date
(),
-
Integer
.
valueOf
(
quickOrderInterval
)),
"yyyy-MM-dd"
));
queryOrderVo
.
setEndDate
(
DateUtil
.
convert2String
(
new
Date
(),
"yyyy-MM-dd"
));
queryOrderVo
.
setQueryOrderStatus
(
Arrays
.
asList
(
OldOrderStatus
.
COMPLETE
.
getCode
()));
queryOrderVo
.
setQueryOrderType
(
Arrays
.
asList
(
OldOrderType
.
TAKE_OUT
.
getCode
(),
OldOrderType
.
COLLECT_GOODS
.
getCode
(),
OldOrderType
.
EAT_IN
.
getCode
()));
queryOrderVo
.
setPartnerId
(
queryOrderVo
.
getPartnerId
());
String
startDateStr
=
queryOrderVo
.
getStartDate
()
+
" 00:00:00"
;
String
endDateStr
=
queryOrderVo
.
getEndDate
()
+
" 23:59:59"
;
Date
startDate
=
DateUtil
.
convert2Date
(
startDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
startDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单开始时间格式不正确"
);
}
Date
endDate
=
DateUtil
.
convert2Date
(
endDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
endDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单结束时间格式不正确"
);
}
QueryOrdersRequest
queryOrdersRequest
=
new
QueryOrdersRequest
();
queryOrdersRequest
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
queryOrdersRequest
.
setCompanyId
(
queryOrderVo
.
getPartnerId
());
queryOrdersRequest
.
setPageSize
(
1
);
queryOrdersRequest
.
setPageNumber
(
1
);
queryOrdersRequest
.
setStartDate
(
startDateStr
);
queryOrdersRequest
.
setEndDate
(
endDateStr
);
queryOrdersRequest
.
setSource
(
new
String
[]{
OrderChannelType
.
SAAS
.
getCode
()});
queryOrdersRequest
.
setPayStatus
(
new
Integer
[]{
PayStatus
.
HAVE_PAID
.
getCode
(),
PayStatus
.
HAVE_REFUND
.
getCode
(),
PayStatus
.
COMPLETE
.
getCode
()});
queryOrdersRequest
.
setStatus
(
new
Integer
[]{
OrderStatus
.
COMPLETE
.
getCode
()});
queryOrdersRequest
.
setType
(
new
Integer
[]{
OrderType
.
COLLECT_GOODS
.
getCode
(),
OrderType
.
EAT_IN
.
getCode
(),
OrderType
.
TAKE_OUT
.
getCode
()});
//商品订单和卖券订单
queryOrdersRequest
.
setBizTypes
(
Arrays
.
asList
(
1
,
6
));
queryOrdersRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrdersResponse
queryOrderResponse
=
null
;
try
{
queryOrderResponse
=
orderCenterSdkService
.
queryMCCafeOrders
(
queryOrdersRequest
);
}
catch
(
Exception
e
)
{
log
.
error
(
"queryRecentOrders_error : "
+
ExceptionUtils
.
getExceptionInfo
(
e
));
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单异常"
);
}
if
(
queryOrderResponse
==
null
||
!
RESPONSE_SUCCESS_CODE
.
equals
(
queryOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单失败"
);
}
//用户无订单数据
if
(
queryOrderResponse
.
getData
()
==
null
||
queryOrderResponse
.
getData
().
getCount
()
==
0
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
SUCCESS
.
getCode
(),
"查询订单数量为0"
);
}
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
o
:
queryOrderResponse
.
getData
().
getOrders
().
get
(
0
).
getProductList
())
{
if
(
ProductTypeEnum
.
getVirtualProductType
().
contains
(
o
.
getProductType
()))
{
continue
;
}
if
(
CollectionUtils
.
isNotEmpty
(
o
.
getDiscountList
())
&&
o
.
getDiscountList
().
stream
()
.
filter
(
p
->
OldOrderAccountType
.
PRODUCT_COUPON
.
getCode
().
equals
(
p
.
getDiscountType
())
||
OldOrderAccountType
.
EVM_PRODUCT_COUPON
.
getCode
().
equals
(
p
.
getDiscountType
())).
findAny
().
isPresent
())
{
continue
;
}
RecentGoodsInfoVo
recentGoodsInfoVo
=
new
RecentGoodsInfoVo
();
recentGoodsInfoVo
.
setSpuId
(
o
.
getProductId
());
recentGoodsInfoVo
.
setSpuName
(
o
.
getProductName
());
recentGoodsInfoVo
.
setSkuId
(
o
.
getSpecification
());
recentGoodsInfoVo
.
setSkuName
(
o
.
getSpecificationName
());
recentGoodsInfoVo
.
setQty
(
o
.
getNumber
());
if
(
StringUtils
.
isNotBlank
(
o
.
getExtInfo
()))
{
OrderProductAddInfoDto
orderProductAddInfoDto
=
JSON
.
parseObject
(
o
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
null
!=
orderProductAddInfoDto
)
{
recentGoodsInfoVo
.
setSpecialExtra
(
JSON
.
parseArray
(
JSON
.
toJSONString
(
orderProductAddInfoDto
.
getSpecialAttrs
()),
RecentGoodsInfoVo
.
SpecialExtra
.
class
));
}
}
if
(
CollectionUtils
.
isNotEmpty
(
o
.
getComboProduct
()))
{
recentGoodsInfoVo
.
setProductComboList
(
new
ArrayList
<
RecentGoodsInfoVo
.
ComboGoodsVo
>());
recentGoodsInfoVo
.
setProductGroupList
(
new
ArrayList
<
RecentGoodsInfoVo
.
ComboGoodsVo
>());
o
.
getComboProduct
().
forEach
(
p
->
{
RecentGoodsInfoVo
.
ComboGoodsVo
comboGoodsVo
=
new
RecentGoodsInfoVo
.
ComboGoodsVo
();
comboGoodsVo
.
setSpuId
(
p
.
getProductId
());
comboGoodsVo
.
setSpuName
(
p
.
getProductName
());
comboGoodsVo
.
setSkuId
(
p
.
getSpecification
());
comboGoodsVo
.
setSkuName
(
p
.
getSpecificationName
());
if
(
StringUtils
.
isNotBlank
(
p
.
getExtInfo
()))
{
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
p
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
comboGoodsVo
.
setProductGroupId
(
extInfo
.
getProductGroupId
()+
""
);
}
comboGoodsVo
.
setQty
(
p
.
getNumber
());
OrderProductAddInfoDto
orderProductAddInfoDto
=
JSON
.
parseObject
(
p
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
if
(
null
!=
orderProductAddInfoDto
)
{
comboGoodsVo
.
setSpecialExtra
(
JSON
.
parseArray
(
JSON
.
toJSONString
(
orderProductAddInfoDto
.
getSpecialAttrs
()),
RecentGoodsInfoVo
.
SpecialExtra
.
class
));
}
if
(
CollectionUtils
.
isNotEmpty
(
p
.
getMaterialProduct
()))
{
comboGoodsVo
.
setProductMaterialList
(
new
ArrayList
<
RecentGoodsInfoVo
.
MaterialGoodsVo
>());
p
.
getMaterialProduct
().
forEach
(
q
->
{
RecentGoodsInfoVo
.
MaterialGoodsVo
materialGoodsVo
=
new
RecentGoodsInfoVo
.
MaterialGoodsVo
();
materialGoodsVo
.
setSpuId
(
q
.
getProductId
());
materialGoodsVo
.
setSpuName
(
q
.
getProductName
());
materialGoodsVo
.
setQty
(
q
.
getNumber
());
materialGoodsVo
.
setCustomerCode
(
q
.
getProductCode
());
comboGoodsVo
.
getProductMaterialList
().
add
(
materialGoodsVo
);
});
}
if
(
orderProductAddInfoDto
.
getIsFixedProduct
())
{
recentGoodsInfoVo
.
getProductComboList
().
add
(
comboGoodsVo
);
}
else
{
recentGoodsInfoVo
.
getProductGroupList
().
add
(
comboGoodsVo
);
}
});
}
if
(
CollectionUtils
.
isNotEmpty
(
o
.
getMaterialProduct
()))
{
recentGoodsInfoVo
.
setProductMaterialList
(
new
ArrayList
<
RecentGoodsInfoVo
.
MaterialGoodsVo
>());
o
.
getMaterialProduct
().
forEach
(
p
->
{
RecentGoodsInfoVo
.
MaterialGoodsVo
materialGoodsVo
=
new
RecentGoodsInfoVo
.
MaterialGoodsVo
();
materialGoodsVo
.
setSpuId
(
p
.
getProductId
());
materialGoodsVo
.
setSpuName
(
p
.
getProductName
());
materialGoodsVo
.
setQty
(
p
.
getNumber
());
materialGoodsVo
.
setCustomerCode
(
p
.
getProductCode
());
recentGoodsInfoVo
.
getProductMaterialList
().
add
(
materialGoodsVo
);
});
}
recentGoodsInfoVoList
.
add
(
recentGoodsInfoVo
);
}
return
ResponseUtil
.
success
(
recentGoodsInfoVoList
);
}
/**
* 历史判断围餐是从userLoginInfoDto判断iappid的。
* 商城订单从前端传channelType区分,
* 默认点餐
*/
private
String
getQueryOrderChannelType
(
QueryOrderVo
queryOrderVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
)
{
String
channelType
=
OrderChannelType
.
SAAS
.
getCode
();
if
(
IappIdType
.
WC_XCX
.
getCode
().
equals
(
userLoginInfoDto
.
getIappId
()))
{
channelType
=
OrderChannelType
.
IWC
.
getCode
();
}
else
if
(
OrderChannelType
.
SAASMALL
.
getCode
().
equals
(
queryOrderVo
.
getChannelType
()))
{
channelType
=
OrderChannelType
.
SAASMALL
.
getCode
();
}
else
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
()))
{
channelType
=
OrderChannelType
.
APP
.
getCode
();
}
else
if
(
OrderChannelType
.
BEAUTIFUL
.
getCode
().
equals
(
queryOrderVo
.
getChannelType
()))
{
channelType
=
OrderChannelType
.
BEAUTIFUL
.
getCode
();
}
return
channelType
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
96a8ce97
...
...
@@ -270,8 +270,6 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
CheckOrder
checkOrder
;
...
...
@@ -321,6 +319,8 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private
SvcComPayClient
svcComPayClient
;
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
private
OrderRelationFactory
orderRelationFactory
;
...
...
@@ -1125,206 +1125,6 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
responseMap
);
}
@Override
public
BaseResponse
mcCafeQueryOrders
(
McCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
if
(
StringUtils
.
isBlank
(
queryOrderVo
.
getStartDate
()))
{
queryOrderVo
.
setStartDate
(
DateUtil
.
convert2String
(
DateUtil
.
addMonths
(
new
Date
(),
-
1
),
"yyyy-MM-dd"
));
}
if
(
StringUtils
.
isBlank
(
queryOrderVo
.
getEndDate
()))
{
queryOrderVo
.
setEndDate
(
DateUtil
.
convert2String
(
new
Date
(),
"yyyy-MM-dd"
));
}
if
(
CollectionUtils
.
isEmpty
(
queryOrderVo
.
getQueryOrderStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"查询订单状态不能为空"
);
}
if
(
CollectionUtils
.
isNotEmpty
(
queryOrderVo
.
getQueryOrderType
()))
{
if
(
CollectionUtils
.
isEmpty
(
OrderType
.
getByCode
(
queryOrderVo
.
getQueryOrderType
())))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"查询订单类型不存在"
);
}
}
String
partnerId
=
queryOrderVo
.
getPartnerId
();
String
startDateStr
=
queryOrderVo
.
getStartDate
()
+
" 00:00:00"
;
String
endDateStr
=
queryOrderVo
.
getEndDate
()
+
" 23:59:59"
;
Date
startDate
=
DateUtil
.
convert2Date
(
startDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
startDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单开始时间格式不正确"
);
}
Date
endDate
=
DateUtil
.
convert2Date
(
endDateStr
,
"yyyy-MM-dd HH:mm:ss"
);
if
(
endDate
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"查询订单结束时间格式不正确"
);
}
if
(
startDate
.
getTime
()
<
DateUtil
.
addMonths
(
new
Date
(),
-
3
).
getTime
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"只能查询3个月内的订单信息"
);
}
String
userId
=
userLoginInfoDto
.
getMemberId
();
queryOrderVo
.
setStartDate
(
startDateStr
);
queryOrderVo
.
setEndDate
(
endDateStr
);
QueryOrderVo
vo
=
new
QueryOrderVo
();
BeanUtils
.
copyProperties
(
queryOrderVo
,
vo
);
String
channelType
=
this
.
getQueryOrderChannelType
(
vo
,
userLoginInfoDto
);
QueryOrdersDto
queryOrdersDto
=
orderAdapter
.
convent2QueryOrdersDtoMcCafe
(
queryOrderVo
,
userId
,
channelType
);
QueryOrdersResponse
queryOrderResponse
;
try
{
QueryOrdersRequest
queryOrdersRequest2
=
new
QueryOrdersRequest
();
BeanUtil
.
convertBean
(
queryOrdersDto
,
queryOrdersRequest2
);
queryOrdersRequest2
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
queryOrderResponse
=
orderCenterSdkService
.
queryMCCafeOrders
(
queryOrdersRequest2
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"queryOrders_error"
,
gson
.
toJson
(
queryOrdersDto
),
e
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
if
(
queryOrderResponse
==
null
||
!
RESPONSE_SUCCESS_CODE
.
equals
(
queryOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
());
}
Map
<
String
,
Object
>
responseMap
=
Maps
.
newTreeMap
();
//用户无订单数据
if
(
queryOrderResponse
.
getData
()
==
null
||
queryOrderResponse
.
getData
().
getCount
()
==
0
)
{
responseMap
.
put
(
"count"
,
0
);
responseMap
.
put
(
"list"
,
new
ArrayList
<
QueryOrderResponseVo
>());
return
ResponseUtil
.
success
(
responseMap
);
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
orders
=
queryOrderResponse
.
getData
().
getOrders
();
Set
<
String
>
shopIds
=
new
HashSet
<>();
// 过滤待支付订单
if
(
CollectionUtils
.
isNotEmpty
(
orders
))
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
:
orders
)
{
if
(!(
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())))
{
shopIds
.
add
(
orderBean
.
getShopId
());
}
}
}
String
storeCodes
=
""
;
for
(
String
shopId
:
shopIds
)
{
storeCodes
=
shopId
+
","
+
storeCodes
;
}
GetListByCodesRequest
request
=
new
GetListByCodesRequest
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCodes
(
storeCodes
);
// 查询多个门店信息
GetListByCodesResponse
storeInfoResponse
=
storeCenterService
.
getListByCodes
(
request
,
LogTreadLocal
.
getTrackingNo
());
Map
<
String
,
StoreResponse
.
BizVO
>
storeMap
=
new
HashMap
<>();
if
(
storeInfoResponse
!=
null
&&
storeInfoResponse
.
getBizVO
()
!=
null
&&
storeInfoResponse
.
getBizVO
().
getList
()
!=
null
)
{
for
(
StoreResponse
.
BizVO
bizVO
:
storeInfoResponse
.
getBizVO
().
getList
())
{
storeMap
.
put
(
bizVO
.
getStoreCode
(),
bizVO
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
orders
))
{
orders
.
forEach
(
orderBean
->
{
StoreResponse
.
BizVO
storeResponseDto
=
storeMap
.
get
(
orderBean
.
getShopId
());
if
(
storeResponseDto
!=
null
)
{
orderBean
.
setShopAddress
(
storeResponseDto
.
getAddress
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setShopImageUrl
(
storeResponseDto
.
getLogoUrl
());
//默认骑手头像显示为门店首页图片
orderBean
.
setRiderPhoto
(
storeResponseDto
.
getLogoUrl
());
orderBean
.
setLatitude
(
Double
.
valueOf
(
storeResponseDto
.
getLatitude
()));
orderBean
.
setLongitude
(
Double
.
valueOf
(
storeResponseDto
.
getLongitude
()));
}
// 获取订单运单号,如果有运单则是第三方外卖单
if
(
orderBean
.
getAddInfo
()
!=
null
&&
StringUtils
.
isNotEmpty
(
orderBean
.
getAddInfo
().
getDeliveryId
()))
{
hasThirdDelivery
(
orderBean
);
}
orderBean
.
setQueueIndex
(
""
);
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录
if
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
// 查询订单的排队人数
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response
=
new
QueryOrderQueueIndexResponse
();
response
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
response
.
setData
(
baseOrderResponse
.
getData
()
==
null
?
0
:
Integer
.
parseInt
(
baseOrderResponse
.
getData
()));
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
()))
{
String
queueIndex
=
response
.
getData
()
==
null
?
""
:
response
.
getData
().
toString
();
orderBean
.
setQueueIndex
(
queueIndex
);
}
// 查询订单的操作状态
BaseQueryOrderRequest
var2
=
new
BaseQueryOrderRequest
();
var2
.
setOrderId
(
orderBean
.
getOid
());
var2
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
OrderStatusTrackingInfoResponse
orderStatusTrackingInfoResponse
=
orderCenterSdkService
.
getOrderStatusTrackingInfoByOid
(
var2
);
String
string
=
JSONObject
.
toJSONString
(
orderStatusTrackingInfoResponse
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
string
);
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
=
jsonObject
.
toJavaObject
(
OrderStatusTrackingInfoDto
.
class
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
orderStatusTrackingInfoByOid
.
getErrcode
()))
{
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
orderBean
.
setOtherCode
(
""
);
}
});
}
List
<
QueryOrderResponseVo
>
queryOrderResponseVos
=
orderAdapter
.
convent2QueryOrderResponseVos
(
orders
,
userLoginInfoDto
.
getWxAppId
(),
userLoginInfoDto
.
getIappId
());
responseMap
.
put
(
"count"
,
queryOrderResponse
.
getData
()
==
null
?
0
:
queryOrderResponse
.
getData
().
getCount
());
responseMap
.
put
(
"list"
,
queryOrderResponseVos
);
//只有有订单时才显示用户自定义取餐信息
if
(
CollectionUtils
.
isNotEmpty
(
queryOrderResponseVos
))
{
responseMap
.
put
(
"definitionMsg"
,
getDefinitionMsg
(
queryOrderVo
.
getPartnerId
()));
}
return
ResponseUtil
.
success
(
responseMap
);
}
@Override
public
BaseResponse
mcCafePollingPickUpCode
(
MaCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
oid
=
queryOrderVo
.
getOid
();
if
(
StringUtils
.
isBlank
(
oid
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
oid
);
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
OrderViewStatusDto
orderViewStatusDesc
=
orderAdapter
.
getOrderViewStatusDesc
(
orderBean
,
userLoginInfoDto
.
getWxAppId
());
Map
<
String
,
Object
>
responseMap
=
Maps
.
newTreeMap
();
responseMap
.
put
(
"orderStatus"
,
orderViewStatusDesc
.
getOrderStatus
());
responseMap
.
put
(
"takeCode"
,
""
);
responseMap
.
put
(
"queueIndex"
,
""
);
String
extInfo
=
orderBean
.
getExtInfo
();
OrderExtInfoDto
orderExtInfoDto
=
null
;
if
(
StringUtils
.
isNotBlank
(
extInfo
))
{
orderExtInfoDto
=
gson
.
fromJson
(
extInfo
,
OrderExtInfoDto
.
class
);
}
responseMap
.
put
(
"payVoucher"
,
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getPayTransId
()
:
""
);
//非外卖单才获取取餐码和排队人数
if
(!
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
if
(!(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())))
{
responseMap
.
put
(
"takeCode"
,
orderBean
.
getOtherCode
());
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response1
=
new
QueryOrderQueueIndexResponse
();
response1
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response1
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response1
.
getErrcode
()))
{
String
queueIndex
=
response1
.
getData
()
==
null
?
""
:
response1
.
getData
().
toString
();
responseMap
.
put
(
"queueIndex"
,
queueIndex
);
}
}
return
ResponseUtil
.
success
(
responseMap
);
}
@Override
public
BaseResponse
queryCollageOrderById
(
Integer
operation
,
String
sessionId
,
String
oid
,
String
partnerId
,
String
channel
)
{
...
...
@@ -1709,157 +1509,6 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
}
/**
* 麦咖啡查询订单详情
*
* @param queryOrderVo
* @return
*/
@Override
public
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userInfo
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userInfo
==
null
||
StringUtils
.
isEmpty
(
userInfo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
oid
=
queryOrderVo
.
getOid
();
if
(
StringUtils
.
isBlank
(
oid
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
oid
);
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryMCCafeOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
String
storeId
=
orderBean
.
getShopId
();
StoreInfoRequest
request
=
new
StoreInfoRequest
();
request
.
setPartnerId
(
queryOrderVo
.
getPartnerId
());
request
.
setStoreCode
(
storeId
);
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
request
,
LogTreadLocal
.
getTrackingNo
());
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
)
{
StoreResponse
.
BizVO
storeResponseDto
=
storeInfo
.
getBizVO
();
orderBean
.
setShopAddress
(
storeResponseDto
.
getAddress
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setShopImageUrl
(
storeResponseDto
.
getLogoUrl
());
//默认骑手头像显示为门店首页图片
orderBean
.
setRiderPhoto
(
storeResponseDto
.
getLogoUrl
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setLatitude
(
Double
.
valueOf
(
storeResponseDto
.
getLatitude
()));
orderBean
.
setLongitude
(
Double
.
valueOf
(
storeResponseDto
.
getLongitude
()));
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response1
=
new
QueryOrderQueueIndexResponse
();
response1
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response1
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response1
.
getErrcode
()))
{
String
queueIndex
=
response1
.
getData
()
==
null
?
""
:
response1
.
getData
().
toString
();
orderBean
.
setQueueIndex
(
queueIndex
);
}
// 获取订单运单号,如果有运单则是第三方外卖单
if
(
orderBean
.
getAddInfo
()
!=
null
&&
StringUtils
.
isNotEmpty
(
orderBean
.
getAddInfo
().
getDeliveryId
()))
{
hasThirdDelivery
(
orderBean
);
}
// 查询订单的操作状态
OrderStatusTrackingInfoResponse
statusTrackingInfoByOid
=
orderCenterSdkService
.
getOrderStatusTrackingInfoByOid
(
var1
);
String
string2
=
JSONObject
.
toJSONString
(
statusTrackingInfoByOid
);
JSONObject
jsonObject2
=
JSONObject
.
parseObject
(
string2
);
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
=
jsonObject2
.
toJavaObject
(
OrderStatusTrackingInfoDto
.
class
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
orderStatusTrackingInfoByOid
.
getErrcode
()))
{
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
List
<
QueryOrderResponseVo
>
queryOrderResponseVos
=
orderAdapter
.
convent2QueryOrderResponseVos
(
Collections
.
singletonList
(
orderBean
),
userInfo
.
getWxAppId
(),
userInfo
.
getIappId
());
if
(
CollectionUtils
.
isEmpty
(
queryOrderResponseVos
))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrderResponseVo
queryOrderResponseVo
=
queryOrderResponseVos
.
get
(
0
);
Optional
<
ProductVo
>
productVoOptional
=
queryOrderResponseVo
.
getProducts
().
stream
()
.
filter
(
o
->
StringUtils
.
isNotBlank
(
o
.
getSplitIndex
()))
.
findFirst
();
Map
<
String
,
Integer
>
existMap
=
new
HashMap
<>();
if
(
productVoOptional
.
isPresent
())
{
int
size
=
queryOrderResponseVo
.
getProducts
().
size
();
List
<
ProductVo
>
productVoList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
ProductVo
productVo
=
queryOrderResponseVo
.
getProducts
().
get
(
i
);
if
(
StringUtils
.
isBlank
(
productVo
.
getSplitIndex
()))
{
productVoList
.
add
(
productVo
);
}
else
{
if
(
existMap
.
get
(
productVo
.
getSplitIndex
())
==
null
)
{
existMap
.
put
(
productVo
.
getSplitIndex
(),
productVoList
.
size
());
productVoList
.
add
(
productVo
);
}
else
{
ProductVo
productVoExists
=
productVoList
.
get
(
existMap
.
get
(
productVo
.
getSplitIndex
()));
productVoExists
.
setOriginalTotalAmount
(
productVoExists
.
getOriginalTotalAmount
()
+
productVo
.
getOriginalTotalAmount
());
productVoExists
.
setSaleTotalAmount
(
productVoExists
.
getSaleTotalAmount
()
+
productVo
.
getSaleTotalAmount
());
productVoExists
.
setQty
(
productVoExists
.
getQty
()
+
productVo
.
getQty
());
}
}
}
queryOrderResponseVo
.
setProducts
(
productVoList
);
}
//麦咖啡 预约外卖单重新封装取餐时间
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderType
())
&&
StringUtils
.
isNotEmpty
(
queryOrderResponseVo
.
getReserveDeliveryTime
()))
{
Date
reserveDeliveryTime
=
DateUtil
.
convert2Date
(
queryOrderResponseVo
.
getReserveDeliveryTime
(),
"yyyy-MM-dd HH:mm:ss"
);
queryOrderResponseVo
.
setReserveDeliveryTime
(
formatSpecialDate
(
reserveDeliveryTime
));
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
()))
{
queryOrderResponseVo
.
setTakeCode
(
""
);
}
queryOrderResponseVo
.
setOrderTypeDesc
(
Optional
.
ofNullable
(
McCafeOrderTypeGather
.
getByCode
(
queryOrderResponseVo
.
getOrderType
()))
.
map
(
McCafeOrderTypeGather:
:
getDesc
).
orElse
(
""
));
queryOrderResponseVo
.
setIsCouponOrder
(
queryOrderResponseVo
.
getProducts
().
stream
()
.
filter
(
o
->
!
ProductTypeEnum
.
getVirtualProductType
().
contains
(
o
.
getProductType
())).
findAny
().
isPresent
()
?
0
:
1
);
//48小时自动退款描述
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
==
1
)
{
Integer
automaticRefund
=
storeInfo
.
getBizVO
().
getStoreConfig
().
getAutomaticRefund
();
if
(
automaticRefund
!=
null
&&
automaticRefund
==
1
)
{
queryOrderResponseVo
.
setRefundTips
(
"若48小时内未成功退款,请联系商家人工处理"
);
}
else
{
queryOrderResponseVo
.
setRefundTips
(
"若48小时内未成功退款,请联系商家人工处理"
);
}
}
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
}
public
static
String
formatSpecialDate
(
Date
date
)
{
if
(
date
==
null
)
{
return
null
;
}
System
.
out
.
println
(
new
DateTime
(
date
).
toString
(
"yyyy-MM-dd HH:mm"
));
DateTime
now
=
new
DateTime
();
DateTime
today_start
=
new
DateTime
(
now
.
getYear
(),
now
.
getMonthOfYear
(),
now
.
getDayOfMonth
(),
0
,
0
,
0
);
DateTime
today_end
=
today_start
.
plusDays
(
1
);
System
.
out
.
println
(
new
DateTime
(
today_end
).
toString
(
"yyyy-MM-dd HH:mm"
));
DateTime
tomorrow_start
=
today_start
.
plusDays
(
2
);
System
.
out
.
println
(
new
DateTime
(
tomorrow_start
).
toString
(
"yyyy-MM-dd HH:mm"
));
if
(
date
.
after
(
today_start
.
toDate
())
&&
date
.
before
(
today_end
.
toDate
()))
{
return
String
.
format
(
"%s"
,
new
DateTime
(
date
).
toString
(
"HH:mm"
));
}
else
if
(
date
.
after
(
today_end
.
toDate
())
&&
date
.
before
(
tomorrow_start
.
toDate
()))
{
return
String
.
format
(
"明天%s%s"
,
DateUtils
.
getDayWeek
(
date
),
new
DateTime
(
date
).
toString
(
"HH:mm"
));
}
return
new
DateTime
(
date
).
toString
(
"yyyy-MM-dd"
)
+
DateUtils
.
getDayWeek
(
date
)
+
new
DateTime
(
date
).
toString
(
"HH:mm"
);
}
/**
* 如果有第三方配送,返回值添加第三方配送信息
*/
...
...
@@ -3825,72 +3474,6 @@ public class OrderServiceImpl implements Orderservice {
}).
getPartnerValue
();
}
/**
* 催单
*
* @param reminderVo
* @return
*/
@Override
public
BaseResponse
reminder
(
ReminderVo
reminderVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
reminderVo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
reminderVo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
//判断订单状态
if
(!
cn
.
freemud
.
management
.
enums
.
OrderStatus
.
DISTRIBUTION
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_REMINDER_ORDER_ERROR
);
}
//调用配送服务进行催单
OrderRemindRequestDto
dto
=
new
OrderRemindRequestDto
();
dto
.
setOrderKey
(
reminderVo
.
getOid
());
dto
.
setStoreId
(
orderBean
.
getShopId
());
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setDisplayOrderId
(
orderBean
.
getDownstreamThirdOrderCode
());
if
(
orderBean
.
getAddInfo
()
!=
null
)
{
dto
.
setDeliveryId
(
orderBean
.
getAddInfo
().
getDeliveryId
());
}
QueryDeliveryAmountResponseDto
responseDto
=
deliveryFeiginClient
.
orderRemind
(
dto
);
if
(
null
!=
responseDto
&&
120
==
responseDto
.
getCode
())
{
return
ResponseUtil
.
error
(
"120"
,
responseDto
.
getMsg
());
}
if
(
responseDto
==
null
||
RESPONSE_SUCCESS_CODE
!=
responseDto
.
getCode
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_REMINDER_ERROR
);
}
return
ResponseUtil
.
success
();
}
/**
* 查询骑手位置
*
* @param vo
* @return
*/
@Override
public
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
vo
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
QueryLocusRiderTrackDto
dto
=
new
QueryLocusRiderTrackDto
();
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setOrderId
(
vo
.
getOid
());
MCCafeDeliveryBaseResponse
<
ResRiderTrackDto
>
responses
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
if
(
responses
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
responses
.
getCode
())
||
responses
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_ERROR
);
}
return
ResponseUtil
.
success
(
responses
.
getData
());
}
public
void
buildQueryOrderResponseVo
(
QueryOrderResponseVo
queryOrderResponseVo
,
QueryOrderByIdResponse
response
,
String
partnerId
)
{
if
(
null
==
response
||
response
.
getData
()
==
null
||
!
ObjectUtils
.
equals
(
response
.
getErrcode
(),
RESPONSE_SUCCESS_CODE
))
{
...
...
order-application-service/src/main/java/cn/freemud/utils/ExceptionUtils.java
0 → 100644
View file @
96a8ce97
package
cn
.
freemud
.
utils
;
public
class
ExceptionUtils
{
public
static
String
getExceptionInfo
(
Exception
e
)
{
StringBuilder
sb
=
new
StringBuilder
();
StackTraceElement
[]
trace
=
e
.
getStackTrace
();
for
(
StackTraceElement
traceElement
:
trace
)
{
sb
.
append
(
"\tat "
+
traceElement
);
}
return
sb
.
toString
();
}
}
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartMccafeAdapter.java
View file @
96a8ce97
...
...
@@ -84,6 +84,7 @@ public class ShoppingCartMccafeAdapter {
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
cartGoodsExtras
=
BeanUtil
.
convertBeans
(
comboxGoods
.
getExtra
(),
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
::
new
);
cartGoodsDetailDto
.
setExtraList
(
cartGoodsExtras
);
cartGoodsDetailDto
.
setSpecialExtra
(
comboxGoods
.
getSpecialExtra
());
cartGoodsDetailDto
.
setProductGroupId
(
comboxGoods
.
getProductGroupId
());
//小料
if
(
CollectionUtils
.
isNotEmpty
(
comboxGoods
.
getProductMaterialList
()))
{
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
MaterialGoods
>
materialList
=
new
ArrayList
<>(
0
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/constant/ShoppingCartConstant.java
View file @
96a8ce97
...
...
@@ -18,6 +18,8 @@ public class ShoppingCartConstant {
public
final
static
String
SHOPPING_CART_INVALIAD_GOODS
=
"因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品"
;
public
final
static
String
SHOPPING_CART_EMPTY_GOODS_LIST
=
"因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品"
;
public
final
static
String
SHOPPING_CART_GOODS_CHANGE
=
"因商家变更了商品,导致选购失效,请刷新门店后重新尝试选购商品"
;
public
final
static
String
SHOPPING_CART_INVALID_GOODS_EXIST
=
"有商品不在售卖状态,请重新提交结算"
;
public
final
static
String
SHOPPING_CART_ACTIVITY_CHANGE
=
"商品价格有变动,将按照最新活动价格计算哦"
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
96a8ce97
...
...
@@ -259,6 +259,7 @@ public class ShoppingCartGoodsDto {
* 是否是套餐内固定商品
*/
private
Boolean
isFixedProduct
;
private
Long
productGroupId
;
/**
* 是否限制库存
* 用于创建订单时,是否扣减库存
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsBaseResponseVo.java
View file @
96a8ce97
...
...
@@ -2,6 +2,10 @@ package cn.freemud.entities.vo;
import
lombok.Data
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.com
*
...
...
@@ -22,6 +26,10 @@ public class ShoppingCartGoodsBaseResponseVo {
*/
private
String
toastMsg
;
/**
* 前端用来提示的信息
*/
Map
<
String
,
List
<
String
>>
toastMsgMap
=
new
HashMap
<>();
/**
* 购物车中商品价格或有效性是否发生变化
*/
private
Boolean
changed
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
96a8ce97
...
...
@@ -252,11 +252,63 @@ public class ShoppingCartMCoffeeServiceImpl {
return
ResponseUtil
.
error
(
ResponseResult
.
SHOPPING_CART_ADD_INVAILD
);
}
BaseResponse
baseResponse
=
null
;
ShoppingCartGoodsResponseVo
result
=
new
ShoppingCartGoodsResponseVo
();
Map
<
String
,
List
<
String
>>
allToastMsgMap
=
new
HashMap
<>();
String
toastMsg
=
""
;
for
(
BatchGoodsInfoVo
goodsInfo
:
requestVo
.
getGoodsInfos
())
{
baseResponse
=
addGoods
(
convertBatchAdd2SingleAdd
(
goodsInfo
,
requestVo
));
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
baseResponse
.
getCode
())){
return
baseResponse
;
}
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
(
ShoppingCartGoodsResponseVo
)
baseResponse
.
getResult
();
if
(
null
!=
shoppingCartGoodsResponseVo
&&
null
!=
shoppingCartGoodsResponseVo
.
getChanged
()
&&
shoppingCartGoodsResponseVo
.
getChanged
())
{
result
.
setChanged
(
true
);
if
(
StringUtils
.
isNotBlank
(
shoppingCartGoodsResponseVo
.
getToastMsg
())
&&
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
.
equals
(
shoppingCartGoodsResponseVo
.
getToastMsg
()))
{
allToastMsgMap
.
put
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
,
Arrays
.
asList
(
"1"
));
}
if
(
StringUtils
.
isNotBlank
(
shoppingCartGoodsResponseVo
.
getToastMsg
())
&&
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
.
equals
(
shoppingCartGoodsResponseVo
.
getToastMsg
()))
{
allToastMsgMap
.
put
(
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
,
Arrays
.
asList
(
"1"
));
}
if
(
null
!=
shoppingCartGoodsResponseVo
.
getToastMsgMap
()
&&
shoppingCartGoodsResponseVo
.
getToastMsgMap
().
size
()
>
0
)
{
shoppingCartGoodsResponseVo
.
getToastMsgMap
().
entrySet
().
stream
().
forEach
(
o
->
{
if
(
allToastMsgMap
.
get
(
o
.
getKey
())
!=
null
)
{
allToastMsgMap
.
get
(
o
.
getKey
()).
addAll
(
o
.
getValue
());
}
else
{
allToastMsgMap
.
put
(
o
.
getKey
(),
o
.
getValue
());
}
});
}
}
}
if
(
null
!=
allToastMsgMap
&&
allToastMsgMap
.
size
()
>
0
)
{
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
CART_PRODUCT_INVALID_STATE
))){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
allToastMsgMap
.
get
(
CART_PRODUCT_INVALID_STATE
),
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
CART_PRODUCT_NOT_FOUND
))){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
StringUtils
.
join
(
allToastMsgMap
.
get
(
CART_PRODUCT_NOT_FOUND
),
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
CART_PRODUCT_PRICE_CHANGE
))){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
allToastMsgMap
.
get
(
CART_PRODUCT_PRICE_CHANGE
),
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
CART_PRODUCT_NOT_MET_CONDITIONS
))){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_MET_CONDITIONS
.
replace
(
"$spuName"
,
StringUtils
.
join
(
allToastMsgMap
.
get
(
CART_PRODUCT_NOT_MET_CONDITIONS
),
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
COUPON_IS_DISABLE
))){
toastMsg
=
toastMsg
.
concat
(
COUPON_IS_DISABLE
.
replace
(
"$couponName"
,
StringUtils
.
join
(
allToastMsgMap
.
get
(
COUPON_IS_DISABLE
),
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
)))
{
toastMsg
=
toastMsg
.
concat
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
}
if
(
CollectionUtils
.
isNotEmpty
(
allToastMsgMap
.
get
(
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
)))
{
toastMsg
=
toastMsg
.
concat
(
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
}
result
.
setToastMsg
(
toastMsg
);
result
.
setToastMsgMap
(
allToastMsgMap
);
return
ResponseUtil
.
success
(
result
);
}
return
baseResponse
;
}
...
...
@@ -1632,7 +1684,7 @@ public class ShoppingCartMCoffeeServiceImpl {
}
//套餐商品赋值
if
(
ObjectUtils
.
equals
(
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
())){
else
if
(
ObjectUtils
.
equals
(
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
())){
// cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice());
// cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice());
// cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice());
...
...
@@ -1683,6 +1735,10 @@ public class ShoppingCartMCoffeeServiceImpl {
// }
// }
// }
}
else
{
cartGoods
.
setName
(
productBeanListSpuClass
.
get
(
0
).
getName
());
cartGoods
.
setSpuName
(
productBeanListSpuClass
.
get
(
0
).
getName
());
cartGoods
.
setSkuName
(
productBeanListSpuClass
.
get
(
0
).
getName
());
}
}
...
...
@@ -1826,6 +1882,7 @@ public class ShoppingCartMCoffeeServiceImpl {
storeId
,
shoppingCartGoodsResponseVo
,
orderType
,
sessionId
,
menuType
,
shoppingCartBaseService
);
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
());
shoppingCartGoodsResponseVo
.
setToastMsgMap
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsgMap
());
shoppingCartGoodsResponseVo
.
setChanged
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getChanged
());
}
allCartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
...
...
@@ -1971,7 +2028,7 @@ public class ShoppingCartMCoffeeServiceImpl {
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getErrcode
().
toString
())
||
valiadResponse
.
getData
()==
null
)
{
checkCartRequest
.
getCartGoodsList
().
clear
();
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
return
CartResponseUtil
.
error
(
valiadResponse
.
getErrmsg
(),
checkCartRequest
);
}
ValiadShopProductResponse
validateResult
=
valiadResponse
.
getData
();
...
...
@@ -1980,6 +2037,7 @@ public class ShoppingCartMCoffeeServiceImpl {
String
toastMsg
=
""
;
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if
(
CollectionUtils
.
isNotEmpty
(
validateResult
.
getFailureList
())){
Map
<
String
,
List
<
String
>>
toastMsgMap
=
new
HashMap
<>();
List
<
String
>
invalidSpu
=
new
ArrayList
<>();
List
<
String
>
notFoundSpu
=
new
ArrayList
<>();
List
<
String
>
numErrorSpu
=
new
ArrayList
<>();
...
...
@@ -2041,25 +2099,31 @@ public class ShoppingCartMCoffeeServiceImpl {
if
(
CollectionUtils
.
isNotEmpty
(
invalidSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
invalidSpu
,
","
)));
toastMsgMap
.
put
(
CART_PRODUCT_INVALID_STATE
,
invalidSpu
);
}
if
(
CollectionUtils
.
isNotEmpty
(
notFoundSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
StringUtils
.
join
(
notFoundSpu
,
","
)));
toastMsgMap
.
put
(
CART_PRODUCT_NOT_FOUND
,
notFoundSpu
);
}
if
(
CollectionUtils
.
isNotEmpty
(
changePriceSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
changePriceSpu
,
","
)));
toastMsgMap
.
put
(
CART_PRODUCT_PRICE_CHANGE
,
changePriceSpu
);
}
if
(
CollectionUtils
.
isNotEmpty
(
numErrorSpu
)){
toastMsg
=
toastMsg
.
concat
(
"您选择的【$spuName】不满足购买条件"
.
replace
(
"$spuName"
,
StringUtils
.
join
(
numErrorSpu
,
","
)));
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_MET_CONDITIONS
.
replace
(
"$spuName"
,
StringUtils
.
join
(
numErrorSpu
,
","
)));
toastMsgMap
.
put
(
CART_PRODUCT_NOT_MET_CONDITIONS
,
numErrorSpu
);
}
if
(
CollectionUtils
.
isNotEmpty
(
disableCoupon
)){
toastMsg
=
toastMsg
.
concat
(
COUPON_IS_DISABLE
.
replace
(
"$couponName"
,
StringUtils
.
join
(
disableCoupon
,
","
)));
toastMsgMap
.
put
(
COUPON_IS_DISABLE
,
disableCoupon
);
}
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
toastMsg
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsgMap
(
toastMsgMap
);
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
}
for
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
...
...
@@ -2095,7 +2159,7 @@ public class ShoppingCartMCoffeeServiceImpl {
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
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
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()));
...
...
@@ -2106,7 +2170,7 @@ public class ShoppingCartMCoffeeServiceImpl {
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
checkCartRequest
.
getTrackingNo
(),
e
.
getMessage
(),
"checkAllCartGoods"
,
checkCartRequest
,
e
,
Level
.
ERROR
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
return
CartResponseUtil
.
error
(
e
.
getMessage
(),
checkCartRequest
);
}
}
...
...
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