Commit c0493117 by chongfu.liang

Merge branch 'feature/2.0.5-配送单异常或取消状态,通知pos'

parents b8c6416e d74b5f3f
package cn.freemud.entities.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class PushMessageNoticeDto {
/**
* 版本号 默认1
*/
private String ver;
/**
* 商户ID
*/
private String partnerId;
/**
* 门店ID
*/
private String storeId;
/**
* 推送目标 1 小程序 2 pos机
*/
private Integer targetType;
/**
* 推送目标 ID targetId
*/
private String targetId;
private Integer cmd;
private String data;
/**
* "ttl":30 过期时间(秒)
*/
private Integer ttl;
@Data
@NoArgsConstructor
public static class Message {
/**
* 1 表示新订单接单
*/
private Integer type;
private cn.freemud.entities.dto.PushMessageNoticeDto.Message.Content content;
@Data
@NoArgsConstructor
public static class Content {
@JsonProperty("take_code")
private String take_code;
private String queueIndex;
/**
* 订单号
*/
private String oid;
/**
* 订单状态
*/
private Integer deliveryStatus;
/**
* 下单appid
*/
private String fromAppId;
/**
* 取餐号
*/
private String pickUpGoodsNo;
/**
* 用户id
*/
private String userId;
/**
* 订单状态
*/
private Integer orderState;
/**
* 订单渠道
*/
private Integer orderClient;
/**
* 异常信息
*/
private String errorMsg;
}
}
}
package cn.freemud.service.delivery;
import cn.freemud.adapter.MessageNoticeAdapter;
import cn.freemud.amp.service.ProduceMQService;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
......@@ -29,11 +30,14 @@ import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.request.OrderCollectReq;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.order.request.order.AssortmentUpdateDeliveryAbnormalRequest;
import com.freemud.sdk.api.assortment.order.request.order.UpdateDeliveryInfoByIdRequest;
import com.freemud.sdk.api.assortment.order.response.order.OrderBaseResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
......@@ -72,6 +76,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
private OrderManagerAdapter orderManagerAdapter;
@Autowired
private OrderSdkService orderSdkService;
@Autowired
private MessageNoticeAdapter messageNoticeAdapter;
@Autowired
private MessageCenterClient messageNoticeClient;
@Override
public BaseResponse callbackUrl(CallbackUrlRequestDto request) {
......@@ -122,6 +130,13 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
// 订单已完成
sendPosService(deliveryStatus,posBaseRequestDto);
} else if (deliveryStatus == DeliveryStatus.DELIVERYERROR.getCode() || deliveryStatus == DeliveryStatus.DELIVERYCANCEL.getCode()) {
Integer sendPosDeliveryStatus;
if (deliveryStatus == DeliveryStatus.DELIVERYERROR.getCode()){
sendPosDeliveryStatus = 71;
} else {
sendPosDeliveryStatus = 81;
}
sendPosMessage(partnerId, storeCode, request.getOrderId(), sendPosDeliveryStatus, request.getRemark());
// 取消外卖中台配送单 订单异常
// 如果 "配送单异常并且顾客更改配送地址" 不取消配送单
......@@ -313,4 +328,29 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
orderCenterSdkService.updateDeliveryAbnormal(request);
}
/**
* 发送pos端消息
*/
public void sendPosMessage(String partnerId, String storeId, String orderId, Integer deliveryStatus, String errorMsg) {
PushMessageNoticeDto pushMessageNoticeDto = new PushMessageNoticeDto();
pushMessageNoticeDto.setPartnerId(partnerId);
pushMessageNoticeDto.setStoreId(storeId);
pushMessageNoticeDto.setTargetId(null);
pushMessageNoticeDto.setTargetType(2);
pushMessageNoticeDto.setCmd(11);
cn.freemud.entities.dto.PushMessageNoticeDto.Message message = new cn.freemud.entities.dto.PushMessageNoticeDto.Message();
message.setType(1);
cn.freemud.entities.dto.PushMessageNoticeDto.Message.Content content = new cn.freemud.entities.dto.PushMessageNoticeDto.Message.Content();
content.setOid(orderId);
content.setDeliveryStatus(deliveryStatus);
content.setErrorMsg(errorMsg);
message.setContent(content);
pushMessageNoticeDto.setData(new Gson().toJson(message));
messageNoticeClient.createMessage(pushMessageNoticeDto, LogThreadLocal.getTrackingNo());
}
}
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