Commit 4c20835f by 邓杰

Merge branch '20201127_coco配送进程' into develop

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/Orderservice.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 8744ebac 9ec4ebd6
...@@ -1039,7 +1039,9 @@ public class OrderSdkAdapter { ...@@ -1039,7 +1039,9 @@ public class OrderSdkAdapter {
*/ */
public QueryOrdersResponse.DataBean.OrderBean convent2NEWOrderInfo(OrderInfoReqs orderInfoReqs) { public QueryOrdersResponse.DataBean.OrderBean convent2NEWOrderInfo(OrderInfoReqs orderInfoReqs) {
QueryOrdersResponse.DataBean.OrderBean data = new QueryOrdersResponse.DataBean.OrderBean(); QueryOrdersResponse.DataBean.OrderBean data = new QueryOrdersResponse.DataBean.OrderBean();
if(Objects.nonNull(orderInfoReqs.getEstimateDeliveryCompleteTime())){
data.setEstimateDeliveryCompleteTime(Long.parseLong(orderInfoReqs.getEstimateDeliveryCompleteTime()));
}
data.setOrderClient(orderInfoReqs.getOrderClient().toString()); data.setOrderClient(orderInfoReqs.getOrderClient().toString());
data.setCompanyId(orderInfoReqs.getPartnerId()); data.setCompanyId(orderInfoReqs.getPartnerId());
data.setShopId(orderInfoReqs.getStoreId()); data.setShopId(orderInfoReqs.getStoreId());
......
...@@ -427,6 +427,9 @@ public class QueryOrdersResponse { ...@@ -427,6 +427,9 @@ public class QueryOrdersResponse {
private List<OrderPayItem> orderPayItem; private List<OrderPayItem> orderPayItem;
// 预计到达时间
private Long estimateDeliveryCompleteTime;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class AddDeliveryInfo { public static class AddDeliveryInfo {
...@@ -722,7 +725,7 @@ public class QueryOrdersResponse { ...@@ -722,7 +725,7 @@ public class QueryOrdersResponse {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class OperationHistory { public static class OperationHistory {
private Long createTime; private String createTime;
private String operationDesc; private String operationDesc;
private String operationMethod; private String operationMethod;
private String orderCode; private String orderCode;
......
...@@ -87,8 +87,8 @@ ...@@ -87,8 +87,8 @@
<!-- 商户门店sdk --> <!-- 商户门店sdk -->
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>3.3.5-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
<version>3.2.1.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
package cn.freemud.constant; package cn.freemud.constant;
import cn.freemud.utils.DateTimeUtil;
public class RedisKeyConstant { public class RedisKeyConstant {
/** /**
* userInfoMap的redisKey前缀 * userInfoMap的redisKey前缀
...@@ -67,4 +69,24 @@ public class RedisKeyConstant { ...@@ -67,4 +69,24 @@ public class RedisKeyConstant {
*/ */
public final static String KGD_SENDPOINT_ORDERID = "kgd:sendpoint:orderid:"; public final static String KGD_SENDPOINT_ORDERID = "kgd:sendpoint:orderid:";
private final static String REDIS_KEY_SEP = ":";
/**
* cocoNotMadeGoods:商户号:门店号:yyyy-MM-dd
*
* @param partnerId
* @param storeId
* @return
*/
public static String notMadeGoodsNumber(String partnerId, String storeId) {
StringBuilder sb = new StringBuilder("cocoNotMadeGoods");
sb.append(REDIS_KEY_SEP);
sb.append(partnerId).append(REDIS_KEY_SEP);
sb.append(storeId).append(REDIS_KEY_SEP);
sb.append(DateTimeUtil.getCurrentDateStr());
return sb.toString();
}
} }
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.TakeMealNoticesVO;
import cn.freemud.service.CallerService;
import cn.freemud.utils.ResponseUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 叫号器
*/
@Slf4j
@RequestMapping("/caller")
@RestController
@Validated
public class CallerController {
private CallerService callerService;
public CallerController(CallerService callerService) {
this.callerService = callerService;
}
/**
* 取餐通知
* @return
*/
public BaseResponse takeMealNotices(TakeMealNoticesVO vo){
return callerService.takeMealNotices(vo);
}
}
...@@ -366,5 +366,15 @@ public class OrderController { ...@@ -366,5 +366,15 @@ public class OrderController {
return orderservice.mcCafePollingPickUpCode(vo); return orderservice.mcCafePollingPickUpCode(vo);
} }
/**
* 根据订单号查询配送操作日志及骑手位置
* @param requestVo
* @return
*/
@ApiAnnotation(logMessage = "queryOrderRider")
@PostMapping("/queryOrderRider")
public BaseResponse<OrderRiderResponseVo> queryOrderRider(@Validated @LogParams @RequestBody OrderRiderRequestVo requestVo){
return orderservice.queryOrderRider(requestVo);
}
} }
package cn.freemud.entities.dto.delivery;
import lombok.Data;
@Data
public class DeliveryBaseResponse<T> {
private Integer code;
private String msg;
private T data;
}
package cn.freemud.entities.dto.delivery;
import lombok.Data;
@Data
public class DeliveryStatusAndRiderPositionDto {
/**
* 订单号
*/
private String orderId;
/**
* 配送号
*/
private String deliveryId;
/**
* 经纬度
*/
private String currentPoint;
/**
* 配送状态
*/
private Integer devlieryStatus;
/**
* 距离
*/
private Integer distance;
}
package cn.freemud.entities.dto.delivery;
import lombok.Data;
@Data
public class QueryDeliveryBaseRequest {
private String deliveryId;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class BookingOrderPayedScene {
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 取单号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
/**
* 预计取单时间
*/
private String takeOrderTime;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class DeliveryErrorReminder {
/**
* 配送地址
*/
private String address;
/**
* 下单时间
*/
private String createTime;
/**
* 客户电话
*/
private String customerPhone;
/**
* 订单号
*/
private String orderId;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class GroupBuyingStatusReminder {
/**
* 温馨提示
*/
private String friendlyTips;
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 完成点单人数
*/
private String peopleNumber;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class InstantOrderPayedScene {
/**
* 温馨提示
*/
private String friendlyTips;
/**
* 商户地址
*/
private String merchantAddress;
/**
* 商户名
*/
private String merchantName;
/**
* 订单号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class OrderDeliveryScene {
/**
* 配送地址
*/
private String address;
/**
* 预计达到时间
*/
private String estimateArrivalTime;
/**
* 商户电话
*/
private String merchantPhone;
/**
* 订单编号
*/
private String orderNo;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneCouponRequest {
/**
* 券名称,
*/
private String couponName;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneInviteGiftRequest {
/**
* 活动id,
*/
private String activityId;
/**
* 被邀请人
*/
private String inviteeName;
/**
* 通过时间,
*/
private String passTime;
/**
* relationId,
*/
private String relationId;
/**
* remark,
*/
private String 备注;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneMemberCardExpiredRequest {
/**
* 到期时间
*/
private Integer expiredAt;
/**
* 备注说明 / 温馨提示
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneMemberLevelChangedRequest {
/**
* 等级变更时间
*/
private Integer changedAt;
/**
* 备注
*/
private String remark;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SceneOrderPayedRequest {
/**
* 地址
*/
private String address;
/**
* 金额
*/
private Integer amount;
/**
* 序号 必填
*/
private Integer daySeq;
/**
* 备注
*/
private String formId;
/**
* 创建时间
*/
private Long gmtCreate;
/**
* 预约时间
*/
private Long gmtExpect;
/**
* 订单号
*/
private String orderId;
/**
* 订单类型
*/
private String orderType;
/**
* 取餐码
*/
private String otherCode;
/**
* prepayId
*/
private String prepayId;
/**
* 积分变动
*/
private String scoreChangedNum;
/**
* 积分变动原因
*/
private String scoreChangedReason;
/**
* 门店名称
*/
private String shopName;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class SelfDeliveryOrderPayedScene {
/**
* 配送地址
*/
private String address;
/**
* 预计达到时间
*/
private String estimateArrivalTime;
/**
* 商户电话
*/
private String merchantPhone;
/**
* 订单编号
*/
private String orderNo;
/**
* 订单类型
*/
private String orderType;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Setter
@Getter
public class SubscribeMessageRequest {
private BookingOrderPayedScene bookingOrderPayedScene;
private BookingOrderPayedScene bookingOrderTakeReminderScene;
/**
* 渠道
*/
private Integer channel;
private DeliveryErrorReminder deliveryErrorReminder;
private GroupBuyingStatusReminder groupBuyingStatusReminder;
private InstantOrderPayedScene instantOrderPayedScene;
private InstantOrderPayedScene instantOrderTakeReminderScene;
private String messageEventType;
/**
* 小程序id
*/
private String miniAppId;
/**
* 小程序集合
*/
private List<String> openIdList;
private OrderDeliveryScene orderDeliveryScene;
private SceneCouponRequest sceneCouponExpiredRequest;
private SceneCouponRequest sceneCouponReceiveRequest;
private SceneInviteGiftRequest sceneInviteGiftRequest;
private SceneMemberCardExpiredRequest sceneMemberCardExpiredRequest;
private SceneMemberLevelChangedRequest sceneMemberLevelChangedRequest;
private SceneOrderPayedRequest sceneOrderPayedRequest;
private SelfDeliveryOrderPayedScene selfDeliveryOrderPayedScene;
}
package cn.freemud.entities.dto.ecology;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class SubscribeMessageResponse {
private Integer code;
private String message;
private String subMsg;
private String ver;
}
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class OrderRiderRequestVo {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
@NotEmpty(message = "订单ID 不能为空")
private String oid;
}
package cn.freemud.entities.vo;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import lombok.Data;
import org.omg.PortableInterceptor.INACTIVE;
import java.util.List;
@Data
public class OrderRiderResponseVo {
/**
* 订单号
*/
private String orderId;
/**
* 配送号
*/
private String deliveryId;
/**
* 经纬度
*/
private String currentPoint;
/**
* 配送状态
*/
private Integer devlieryStatus;
/**
* 距离
*/
private Integer distance;
/**
* 操作日志
*/
private List<Operation> operationList;
@Data
public static class Operation{
private String createTime;
private String operationDesc;
private String operationMethod;
private String operator;
}
}
package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author freemud
*/
@Getter
@Setter
public class TakeMealNoticesVO {
@ApiModelProperty(value = "商户Id")
private String partnerId;
@ApiModelProperty(value = "门店id")
private String storeCode;
@ApiModelProperty(value = "订单数量")
private Integer orderTotalNum;
@ApiModelProperty(value = "待制作杯数")
private Integer cupTotalNum;
@ApiModelProperty(value = "订单")
private String[] orders;
}
...@@ -163,6 +163,9 @@ public enum ResponseResult { ...@@ -163,6 +163,9 @@ public enum ResponseResult {
ORDER_NOT_CREATE_ERROR("45065", "请不要重复创建订单"), ORDER_NOT_CREATE_ERROR("45065", "请不要重复创建订单"),
MULTIORDER__ERRORREFUND("45005", "订单申请退款失败"), MULTIORDER__ERRORREFUND("45005", "订单申请退款失败"),
ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"),
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
/** /**
* 支付 * 支付
...@@ -210,6 +213,7 @@ public enum ResponseResult { ...@@ -210,6 +213,7 @@ public enum ResponseResult {
DELIVERY_QUERY_RIDER_STATUS_ERROR("53014", "订单状态不是配送中,不能查询骑手位置"), DELIVERY_QUERY_RIDER_STATUS_ERROR("53014", "订单状态不是配送中,不能查询骑手位置"),
DELIVERY_REMINDER_ERROR("53015","催单失败"), DELIVERY_REMINDER_ERROR("53015","催单失败"),
DELIVERY_QUERY_RIDER_ERROR("53016","查询骑手位置失败"), DELIVERY_QUERY_RIDER_ERROR("53016","查询骑手位置失败"),
DELIVERY_NOT_EXIST("53017","当前订单不是没有配送单"),
/** /**
* 配送信息 * 配送信息
......
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.vo.TakeMealNoticesVO;
import cn.freemud.utils.ResponseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
@Service
public class CallerService {
@Autowired
private RedisTemplate redisTemplate;
/**
* 缓存 待制作杯数量
* @param vo
*/
private void cacheTakeMealNotices(TakeMealNoticesVO vo){
String redisKey = RedisKeyConstant.notMadeGoodsNumber(vo.getPartnerId(), vo.getStoreCode());
redisTemplate.boundValueOps(redisKey).set(vo.getCupTotalNum(),1, TimeUnit.DAYS);
}
public BaseResponse takeMealNotices(TakeMealNoticesVO vo){
cacheTakeMealNotices(vo);
//发送取餐通知消息 cc 生态
return ResponseUtil.success();
}
}
...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import com.freemud.sdk.api.assortment.order.enums.OrderSdkType;
import java.util.Map; import java.util.Map;
...@@ -130,13 +131,4 @@ public interface Orderservice { ...@@ -130,13 +131,4 @@ public interface Orderservice {
BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo); BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo ); BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo );
/**
* 通过订单号查询订单详情
*
* @param sessionId 用户会话ID
* @param oid 订单ID
* @return
*/
BaseResponse queryCollageOrderById(Integer operation,String sessionId, String oid, String partnerId,String channel);
} }
...@@ -5,6 +5,7 @@ import cn.freemud.amp.service.ProduceMQService; ...@@ -5,6 +5,7 @@ import cn.freemud.amp.service.ProduceMQService;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.entities.dto.delivery.*; import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.ecology.SubscribeMessageRequest;
import cn.freemud.entities.dto.pos.PosBaseRequestDto; import cn.freemud.entities.dto.pos.PosBaseRequestDto;
import cn.freemud.entities.vo.delivery.DeliveryAmountVo; import cn.freemud.entities.vo.delivery.DeliveryAmountVo;
import cn.freemud.enums.DeliveryReviewStatus; import cn.freemud.enums.DeliveryReviewStatus;
...@@ -18,6 +19,7 @@ import cn.freemud.management.service.adapter.OrderManagerAdapter; ...@@ -18,6 +19,7 @@ import cn.freemud.management.service.adapter.OrderManagerAdapter;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import cn.freemud.service.ThirdDeliveryService; import cn.freemud.service.ThirdDeliveryService;
import cn.freemud.service.thirdparty.DeliveryFeiginClient; import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.PosClient; import cn.freemud.service.thirdparty.PosClient;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
...@@ -33,8 +35,11 @@ import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; ...@@ -33,8 +35,11 @@ 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.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient; 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.AssortmentUpdateDeliveryAbnormalRequest;
import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.UpdateDeliveryInfoByIdRequest; 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.response.order.OrderBaseResponse;
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.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -42,6 +47,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -42,6 +47,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -80,6 +86,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -80,6 +86,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
private MessageNoticeAdapter messageNoticeAdapter; private MessageNoticeAdapter messageNoticeAdapter;
@Autowired @Autowired
private MessageCenterClient messageNoticeClient; private MessageCenterClient messageNoticeClient;
@Value("${delivery.micro.message.partner}")
private String deliveryMicroMessagePartner;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
@Override @Override
public BaseResponse callbackUrl(CallbackUrlRequestDto request) { public BaseResponse callbackUrl(CallbackUrlRequestDto request) {
...@@ -102,6 +112,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -102,6 +112,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
requestDto.setExpressChannelName(request.getChannelName()); requestDto.setExpressChannelName(request.getChannelName());
requestDto.setExpressNo(request.getChannelDeliveryId()); requestDto.setExpressNo(request.getChannelDeliveryId());
requestDto.setOrderSubState(deliveryStatus); requestDto.setOrderSubState(deliveryStatus);
requestDto.setRemark(request.getRemark());
if (StringUtils.isNotBlank(request.getRemark())) if (StringUtils.isNotBlank(request.getRemark()))
{ {
requestDto.setRemark("配送:"+request.getRemark()); requestDto.setRemark("配送:"+request.getRemark());
...@@ -123,9 +134,11 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -123,9 +134,11 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
posBaseRequestDto.setDelivery_status(DeliveryStatus.ALLOTRIDER.getCode()); posBaseRequestDto.setDelivery_status(DeliveryStatus.ALLOTRIDER.getCode());
posBaseRequestDto.setPartner_id(partnerId); posBaseRequestDto.setPartner_id(partnerId);
sendPosService(deliveryStatus,posBaseRequestDto); sendPosService(deliveryStatus,posBaseRequestDto);
sendMicroMessage(partnerId,request.getOrderId());
} else if (deliveryStatus == DeliveryStatus.RIDERGETMEAL.getCode() || deliveryStatus == DeliveryStatus.RIDERSTARTDELIVERY.getCode()) { } else if (deliveryStatus == DeliveryStatus.RIDERGETMEAL.getCode() || deliveryStatus == DeliveryStatus.RIDERSTARTDELIVERY.getCode()) {
// 订单配送 // 订单配送
sendPosService(deliveryStatus,posBaseRequestDto); sendPosService(deliveryStatus,posBaseRequestDto);
sendMicroMessage(partnerId,request.getOrderId());
} else if (deliveryStatus == DeliveryStatus.DELIVERYARRIVED.getCode()) { } else if (deliveryStatus == DeliveryStatus.DELIVERYARRIVED.getCode()) {
// 订单已完成 // 订单已完成
sendPosService(deliveryStatus,posBaseRequestDto); sendPosService(deliveryStatus,posBaseRequestDto);
...@@ -137,6 +150,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -137,6 +150,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
sendPosDeliveryStatus = 81; sendPosDeliveryStatus = 81;
} }
sendPosMessage(partnerId, storeCode, request.getOrderId(), sendPosDeliveryStatus, request.getRemark()); sendPosMessage(partnerId, storeCode, request.getOrderId(), sendPosDeliveryStatus, request.getRemark());
sendMicroMessage(partnerId,request.getOrderId());
// 取消外卖中台配送单 订单异常 // 取消外卖中台配送单 订单异常
// 如果 "配送单异常并且顾客更改配送地址" 不取消配送单 // 如果 "配送单异常并且顾客更改配送地址" 不取消配送单
...@@ -154,6 +168,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -154,6 +168,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
produceMQService.sendOfDeliveryInfo(request); produceMQService.sendOfDeliveryInfo(request);
produceMQService.sendRocketMqOfDeliveryInfo(request); produceMQService.sendRocketMqOfDeliveryInfo(request);
} }
// else { // else {
// return ResponseUtil.error(ResponseResult.SYSTEM_ERROR.getCode(), "订单回调状态有误"); // return ResponseUtil.error(ResponseResult.SYSTEM_ERROR.getCode(), "订单回调状态有误");
// } // }
...@@ -352,5 +367,23 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -352,5 +367,23 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
messageNoticeClient.createMessage(pushMessageNoticeDto, LogThreadLocal.getTrackingNo()); messageNoticeClient.createMessage(pushMessageNoticeDto, LogThreadLocal.getTrackingNo());
} }
/**
* 配送消息推送
*/
public void sendMicroMessage(String partnerId, String orderId){
//如果商户配置了配送订阅消息推送
if(deliveryMicroMessagePartner.contains(partnerId)){
try {
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(orderId);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
QueryOrdersResponse.DataBean.OrderBean orderBean = response.getData();
SubscribeMessageRequest request = new SubscribeMessageRequest();
ecologyAdminApplicationClient.subscribeMessage(request);
}catch (Exception e){
log.error("配送订阅消息推送失败:{},失败原因:{}",orderId,e.getMessage());
}
}
}
} }
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.BaseResponseDto;
import cn.freemud.entities.dto.MCCafeDeliveryBaseResponse; import cn.freemud.entities.dto.MCCafeDeliveryBaseResponse;
import cn.freemud.entities.dto.delivery.*; import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto; import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto;
...@@ -28,5 +26,7 @@ public interface DeliveryFeiginClient { ...@@ -28,5 +26,7 @@ public interface DeliveryFeiginClient {
MCCafeDeliveryBaseResponse<ResRiderTrackDto> listFreeRider(@RequestBody QueryLocusRiderTrackDto request); MCCafeDeliveryBaseResponse<ResRiderTrackDto> listFreeRider(@RequestBody QueryLocusRiderTrackDto request);
@PostMapping("/delivery/getDeliveryStatusAndRiderPosition")
DeliveryBaseResponse<DeliveryStatusAndRiderPositionDto> queryDeliveryStatusAndRiderPosition(@RequestBody QueryDeliveryBaseRequest queryDeliveryBaseRequest);
} }
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ecology.SubscribeMessageRequest;
import cn.freemud.entities.dto.ecology.SubscribeMessageResponse;
import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse; import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse;
import cn.freemud.entities.dto.ecology.VirtualStoreRequest; import cn.freemud.entities.dto.ecology.VirtualStoreRequest;
import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto; import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
...@@ -28,4 +30,7 @@ public interface EcologyAdminApplicationClient { ...@@ -28,4 +30,7 @@ public interface EcologyAdminApplicationClient {
@PostMapping(value = "/ecology/api/getAuthorizerAccessToken") @PostMapping(value = "/ecology/api/getAuthorizerAccessToken")
GetTokenResponseDto getAuthorizerAccessToken(@RequestBody GetAuthorizerRequestDto request); GetTokenResponseDto getAuthorizerAccessToken(@RequestBody GetAuthorizerRequestDto request);
@PostMapping(value = "/ecology/api/subscribeMessage/send")
SubscribeMessageResponse subscribeMessage(SubscribeMessageRequest request);
} }
...@@ -17,7 +17,7 @@ import lombok.Data; ...@@ -17,7 +17,7 @@ import lombok.Data;
@Data @Data
public class OrderOperationHistoryResp { public class OrderOperationHistoryResp {
private Long createTime; private String createTime;
//操作描述 //操作描述
private String operationDesc; private String operationDesc;
//操作方法 //操作方法
......
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