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
3030cee3
Commit
3030cee3
authored
May 27, 2021
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
查询最近一单数据
parent
c3f45d59
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
927 additions
and
565 deletions
+927
-565
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/vo/mccafe/RecentGoodsInfoVo.java
+160
-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/impl/MCCafeOrderServiceImpl.java
+624
-54
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+0
-419
No files found.
order-application-service/src/main/java/cn/freemud/aop/WebAspect.java
View file @
3030cee3
...
...
@@ -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 @
3030cee3
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 @
3030cee3
...
...
@@ -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/vo/mccafe/RecentGoodsInfoVo.java
0 → 100644
View file @
3030cee3
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
;
/**
* 操作类型 1= 添加商品券 2=加价购
*/
private
Integer
operationType
;
/**
* 套餐名称
*/
private
String
groupName
;
/**
* 1.6.0 版本增加 分类名
*/
private
String
categoryName
;
/**
* 商品额外的属性
*/
private
List
<
CartGoodsExtra
>
extra
;
/**
* 套餐固定商品
*/
private
List
<
ComboxGoodsVo
>
productComboList
;
/**
* 套餐可选商品
*/
private
List
<
ComboxGoodsVo
>
productGroupList
;
/**
* 加料
*/
private
List
<
MaterialGoodsVo
>
productMaterialList
;
/**
* 麦咖啡定制属性
*/
private
List
<
SpecialExtra
>
specialExtra
;
@Data
public
final
static
class
ComboxGoodsVo
{
/**
* 麦咖啡多规格商品spuid
*/
private
String
spuId
;
private
String
skuId
;
private
Integer
qty
;
/**
* 商品组Id
*/
private
String
productGroupId
;
/**
* 麦咖啡空键位
*/
private
String
emptyKey
;
/**
* 商品额外的属性
*/
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
List
<
SpecialExtra
>
specialExtra
;
/**
* 麦咖啡多规格商品加料
*/
private
List
<
MaterialGoodsVo
>
productMaterialList
;
}
@Data
public
final
static
class
MaterialGoodsVo
{
/**
* 加料商品ID
*/
private
String
spuId
;
/**
* 加料商品组ID
*/
private
String
groupId
;
/**
* 数量
*/
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
;
}
@Data
public
final
static
class
CartGoodsExtra
{
/**
* 属性Id
*/
private
String
attributeId
;
/**
* 属性名
*/
private
String
attributeName
;
private
String
attributeForeignName
;
}
}
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
View file @
3030cee3
...
...
@@ -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 @
3030cee3
...
...
@@ -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/impl/MCCafeOrderServiceImpl.java
View file @
3030cee3
...
...
@@ -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
;
...
...
@@ -39,6 +40,7 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
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.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
...
...
@@ -50,15 +52,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
;
...
...
@@ -83,7 +83,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
;
...
...
@@ -94,6 +96,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.*
;
...
...
@@ -117,6 +120,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
;
...
...
@@ -148,6 +153,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
;
...
...
@@ -160,8 +167,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
OrderServiceImpl
orderService
;
@Autowired
private
PromotionActivityClient
promotionActivityClient
;
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
@Autowired
private
CustomerApplicationClient
customerApplicationClient
;
...
...
@@ -170,17 +175,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
;
...
...
@@ -192,8 +189,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
StoreCenterService
storeCenterService
;
@Autowired
private
DeliveryService
deliveryService
;
@Autowired
private
MQService
mqService
;
@Autowired
@Qualifier
(
"messageTemplatePushOrderService"
)
...
...
@@ -201,8 +196,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
CheckMCCafeOrder
checkMCCafeOrder
;
...
...
@@ -213,12 +206,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
;
...
...
@@ -235,7 +224,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
();
...
...
@@ -1369,6 +1358,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"
);
}
/**
* 取消配送
*
...
...
@@ -1573,36 +1982,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
*/
...
...
@@ -1849,4 +2228,195 @@ 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
);
}
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
(),
"查询订单结束时间格式不正确"
);
}
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
.
setPageNumber
(
1
);
queryOrderVo
.
setPageSize
(
1
);
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
());
}
//用户无订单数据
if
(
queryOrderResponse
.
getData
()
==
null
||
queryOrderResponse
.
getData
().
getCount
()
==
0
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
return
ResponseUtil
.
success
(
queryOrderResponse
.
getData
().
getOrders
().
get
(
0
).
getOid
());
}
/**
* 历史判断围餐是从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 @
3030cee3
...
...
@@ -269,8 +269,6 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
CheckOrder
checkOrder
;
...
...
@@ -1117,206 +1115,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
)
{
...
...
@@ -1701,157 +1499,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"
);
}
/**
* 如果有第三方配送,返回值添加第三方配送信息
*/
...
...
@@ -3817,72 +3464,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
))
{
...
...
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