Commit c5a1c9b1 by shuhu.hou@freemud.cn

orderManager 新增接单接口

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