Commit c5a1c9b1 by shuhu.hou@freemud.cn

orderManager 新增接单接口

parent 928ba739
...@@ -38,6 +38,11 @@ ...@@ -38,6 +38,11 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>takeawaycenter-sdk</artifactId>
<version>1.2.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>1.3.0-SNAPSHOT</version>
......
...@@ -38,6 +38,9 @@ public class MessagePushAdapter { ...@@ -38,6 +38,9 @@ public class MessagePushAdapter {
public MessageTemplateRequest<MessagePushOrderTemplateRequest> convent2MessageTemplateRequest(QueryOrdersResponse.DataBean.OrderBean order, String reason, OperateType opType) { public MessageTemplateRequest<MessagePushOrderTemplateRequest> convent2MessageTemplateRequest(QueryOrdersResponse.DataBean.OrderBean order, String reason, OperateType opType) {
OrderExtInfoDto extInfo = JSONObject.parseObject(order.getExtInfo(), OrderExtInfoDto.class); OrderExtInfoDto extInfo = JSONObject.parseObject(order.getExtInfo(), OrderExtInfoDto.class);
if (extInfo==null){
return null;
}
MessageTemplateRequest<MessagePushOrderTemplateRequest> messageTemplateRequest = new MessageTemplateRequest<>(); MessageTemplateRequest<MessagePushOrderTemplateRequest> messageTemplateRequest = new MessageTemplateRequest<>();
messageTemplateRequest.setAppId(extInfo.getAppid()); messageTemplateRequest.setAppId(extInfo.getAppid());
messageTemplateRequest.setPartnerId(order.getCompanyId()); messageTemplateRequest.setPartnerId(order.getCompanyId());
...@@ -79,9 +82,6 @@ public class MessagePushAdapter { ...@@ -79,9 +82,6 @@ public class MessagePushAdapter {
case ORDER_REJECT_REFUND: case ORDER_REJECT_REFUND:
messageEventType = MessageEventType.REFUNDREJECTORDER; messageEventType = MessageEventType.REFUNDREJECTORDER;
break; break;
case ORDER_AGREE_REFUND:
messageEventType = MessageEventType.REJECTORDER;
break;
default: default:
messageEventType = null; messageEventType = null;
} }
......
...@@ -2,6 +2,7 @@ package cn.freemud.management.controller; ...@@ -2,6 +2,7 @@ package cn.freemud.management.controller;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.adapter.OrderManagerAdapter; import cn.freemud.management.service.adapter.OrderManagerAdapter;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
...@@ -39,8 +40,11 @@ public class OrderManagerController { ...@@ -39,8 +40,11 @@ public class OrderManagerController {
@ApiOperation(value = "订单履单", notes = "订单履单", produces = "application/json") @ApiOperation(value = "订单履单", notes = "订单履单", produces = "application/json")
@PostMapping("/statusOperate") @PostMapping("/statusOperate")
public BaseResponse deliveryCreate(@Validated @LogParams @RequestBody OrderManagerRequest request) { public BaseResponse deliveryCreate(@Validated @LogParams @RequestBody OrderManagerRequest request) {
OperateType byOpType = OperateType.getByOpType(request.getOperateType());
switch (request.getOperateType()) { if (byOpType==null){
return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE);
}
switch (byOpType) {
case ORDER_CONFIRM: case ORDER_CONFIRM:
return orderManagerAdapter.orderConfirmTake(request); return orderManagerAdapter.orderConfirmTake(request);
case ORDER_REJECT: case ORDER_REJECT:
......
...@@ -31,8 +31,10 @@ public class OrderManagerRequest { ...@@ -31,8 +31,10 @@ public class OrderManagerRequest {
/** /**
* 订单操作类型 * 订单操作类型
* @see OperateType
*/ */
private OperateType operateType; @NotEmpty(message = "操作类型不能为空")
private String operateType;
/** /**
* 操作人 * 操作人
...@@ -41,5 +43,6 @@ public class OrderManagerRequest { ...@@ -41,5 +43,6 @@ public class OrderManagerRequest {
* 小助手 * 小助手
* 系统自动履单 * 系统自动履单
*/ */
@NotEmpty(message = "操作人不能为空")
private String operator; private String operator;
} }
package cn.freemud.management.enums; package cn.freemud.management.enums;
import org.apache.commons.lang.StringUtils;
public enum OperateType { public enum OperateType {
ORDER_CONFIRM("orderConfirm","接单"), ORDER_CONFIRM("orderConfirm","接单"),
...@@ -21,8 +23,8 @@ public enum OperateType { ...@@ -21,8 +23,8 @@ public enum OperateType {
private String opName; private String opName;
OperateType(String opType, String opName) { OperateType(String opType, String opName) {
opType = opType; this.opType = opType;
opName = opName; this.opName = opName;
} }
public String getOpType() { public String getOpType() {
...@@ -40,4 +42,17 @@ public enum OperateType { ...@@ -40,4 +42,17 @@ public enum OperateType {
public void setOpName(String opName) { public void setOpName(String opName) {
this.opName = opName; this.opName = opName;
} }
public static OperateType getByOpType(String opType){
if (StringUtils.isEmpty(opType)) {
return null;
}
for (OperateType operateType : values()) {
if (operateType.getOpType().equals(opType)) {
return operateType;
}
}
return null;
}
} }
...@@ -67,13 +67,14 @@ public class OrderBaseService { ...@@ -67,13 +67,14 @@ public class OrderBaseService {
MessageTemplateRequest<MessagePushOrderTemplateRequest> messageTemplateRequest = null; MessageTemplateRequest<MessagePushOrderTemplateRequest> messageTemplateRequest = null;
try { try {
messageTemplateRequest = messagePushAdapter.convent2MessageTemplateRequest(orderBean, reason, opType); messageTemplateRequest = messagePushAdapter.convent2MessageTemplateRequest(orderBean, reason, opType);
if (messageTemplateRequest.getMessageEventType() != null) { if (messageTemplateRequest!=null && messageTemplateRequest.getMessageEventType() != null) {
this.messageTemplatePushService.sendTemplateMsg(messageTemplateRequest); this.messageTemplatePushService.sendTemplateMsg(messageTemplateRequest);
} }
} catch (Exception e) { } catch (Exception e) {
ErrorLog.printErrorLog("sendTemplateMsgError", "", messageTemplateRequest, e); ErrorLog.printErrorLog("sendTemplateMsgError", "", messageTemplateRequest, e);
} }
} }
/** /**
......
...@@ -3,7 +3,7 @@ package cn.freemud.management.service.adapter; ...@@ -3,7 +3,7 @@ package cn.freemud.management.service.adapter;
import cn.freemud.management.enums.OrderSource; import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.impl.SaasOrderMangerServiceImpl; import cn.freemud.management.service.impl.SaasOrderMangerServiceImpl;
import cn.freemud.management.service.impl.TakeawayOrderMangerServiceImpl; import cn.freemud.management.service.impl.WaimaiOrderMangerServiceImpl;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
...@@ -22,7 +22,7 @@ public class OrderBeanFactory { ...@@ -22,7 +22,7 @@ public class OrderBeanFactory {
String source = orderBean.getSource(); String source = orderBean.getSource();
if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source) if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
|| OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)){ || OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)){
return applicationContext.getBean(TakeawayOrderMangerServiceImpl.class); return applicationContext.getBean(WaimaiOrderMangerServiceImpl.class);
} }
return applicationContext.getBean(SaasOrderMangerServiceImpl.class); return applicationContext.getBean(SaasOrderMangerServiceImpl.class);
} }
......
...@@ -71,13 +71,12 @@ public class OrderDeliveryService { ...@@ -71,13 +71,12 @@ public class OrderDeliveryService {
public Pair<Boolean, String> createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean,StoreResponse storeInfo, String operator) { public Pair<Boolean, String> createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean,StoreResponse storeInfo, String operator) {
Pair<Boolean, String> pair = checkOrderOfDelivery(orderBean); Pair<Boolean, String> pair = checkOrderOfDelivery(orderBean);
if (!pair.getKey()) { if (!pair.getKey()) {
return new Pair<>(false, "无需创建配送单"); return new Pair<>(true, "该订单不是外卖类型订单,无需创建配送单");
} }
if (storeInfo==null){ if (storeInfo==null){
StoreInfoRequest storeInfoRequestDto = new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()); storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogTreadLocal.getTrackingNo());
storeInfo = storeCenterService.getStoreInfo(storeInfoRequestDto, LogTreadLocal.getTrackingNo());
if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) { if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) {
return new Pair<>(false, "该订单不是外卖类型订单"); return new Pair<>(false, "获取门店信息失败");
} }
} }
// 调用配送系统创建配送单 // 调用配送系统创建配送单
...@@ -91,7 +90,7 @@ public class OrderDeliveryService { ...@@ -91,7 +90,7 @@ public class OrderDeliveryService {
if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) { if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : ""; String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator); orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator);
return new Pair<>(false, "创建配送单信息失败,配送状态更新为配送异常"); return new Pair<>(true, "创建配送单信息失败,配送状态更新为配送异常");
} }
// 创建配送单成功 // 创建配送单成功
orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), operator); orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), operator);
......
...@@ -32,7 +32,7 @@ public class OrderVerifyService { ...@@ -32,7 +32,7 @@ public class OrderVerifyService {
*/ */
public BaseResponse orderConfirmTakeVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request){ public BaseResponse orderConfirmTakeVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request){
if (orderBean==null){ if (orderBean==null){
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
if (!OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) { if (!OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_CANNOT_CONFIRM); return ResponseUtil.error(ResponseResult.ORDER_CANNOT_CONFIRM);
......
...@@ -77,7 +77,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -77,7 +77,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED); return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED);
} }
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_AFFIRM,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason());
return ResponseUtil.success(new OrderConfirmResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect())); return ResponseUtil.success(new OrderConfirmResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect()));
} }
} }
package cn.freemud.management.service.impl; package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderConfirmResponse; import cn.freemud.management.entities.dto.response.order.OrderConfirmResponse;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.takeaway.request.order.PlatformOrderRequest;
import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -21,10 +28,24 @@ import org.springframework.stereotype.Service; ...@@ -21,10 +28,24 @@ import org.springframework.stereotype.Service;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ */
@Service @Service
public class TakeawayOrderMangerServiceImpl implements OrderManagerService { public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private WaimaiOrderService waimaiOrderService;
@Override @Override
public BaseResponse<OrderConfirmResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderConfirmResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
return null; PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest();
platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder());
platformOrderRequest.setChannel(orderBean.getSource());
platformOrderRequest.setCompanyId(orderBean.getCompanyId());
platformOrderRequest.setOrderId(orderBean.getOid());
platformOrderRequest.setShopId(orderBean.getShopId());
platformOrderRequest.setOperator(request.getOperator());
com.freemud.application.sdk.api.base.BaseResponse waimaiBaseResponse = waimaiOrderService.confirm(platformOrderRequest, LogTreadLocal.getTrackingNo());
if(ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),waimaiBaseResponse.getCode())){
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
}
return ResponseUtil.success();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment