Commit 9a5883d7 by 徐康

发订阅消息

parent 02975631
package cn.freemud.entities.dto.ecology;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Data
@Builder
public class MccafeCompleteOrder {
/**
......
package cn.freemud.entities.dto.ecology;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Data
@Builder
public class MccafeDeliveryOrder {
/**
......
package cn.freemud.entities.dto.ecology;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Data
@Builder
public class MccafePickupFood {
/**
......
package cn.freemud.entities.dto.ecology;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
@Data
@Builder
public class MccafeTransactionReminder {
/**
......
......@@ -4,15 +4,12 @@ import cn.freemud.adapter.MessageNoticeAdapter;
import cn.freemud.amp.service.ProduceMQService;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.ecology.DeliveryErrorReminder;
import cn.freemud.entities.dto.ecology.OrderDeliveryScene;
import cn.freemud.entities.dto.ecology.SubscribeMessageRequest;
import cn.freemud.entities.dto.ecology.*;
import cn.freemud.entities.dto.pos.PosBaseRequestDto;
import cn.freemud.entities.vo.delivery.DeliveryAmountVo;
import cn.freemud.enums.DeliveryReviewStatus;
import cn.freemud.enums.DeliveryStatus;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
......@@ -26,6 +23,7 @@ import cn.freemud.service.thirdparty.PosClient;
import cn.freemud.utils.DateTimeUtil;
import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.freemud.application.sdk.api.constant.ResponseConstant;
......@@ -34,6 +32,7 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryInfoDto;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.request.OrderCollectReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
......@@ -60,6 +59,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......@@ -99,6 +99,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
private MessageCenterClient messageNoticeClient;
@Value("${delivery.micro.message.partner}")
private String deliveryMicroMessagePartner;
@Value("${mccafe.partner.id}")
private String mcCafePartnerId;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
@Autowired
......@@ -247,6 +249,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
updateDeliveryStatus(request);
return ResponseUtil.success();
}
sendMcCafeMicroMessage(request.getPartnerId(), request.getOrderId(), request.getDeliveryStatus());
return ResponseUtil.error(ResponseResult.ORDER_DELIVERY_CALL_BACK_FAILED);
}
......@@ -384,6 +387,64 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
}
/**
* 麦咖啡配送消息推送
*/
public void sendMcCafeMicroMessage(String partnerId,String orderId,int deliveryStatus) {
if(!mcCafePartnerId.equals(partnerId)) {
return;
}
try {
SubscribeMessageRequest request = new SubscribeMessageRequest();
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(orderId);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
if(!ResponseConstant.SUCCESS_RESPONSE_CODE.equals(response.getErrcode())) {
log.error("麦咖啡订阅消息推送失败,查询订单信息失败:"+JSON.toJSONString(response));
}
QueryOrdersResponse.DataBean.OrderBean orderBean = response.getData();
if(OrderClientType.WE_CHAT.getIndex().equals(orderBean.getOrderClient())) {
request.setChannel(1);
} else {
return;
}
OrderExtInfoDto extInfoDto = JSONObject.parseObject(orderBean.getExtInfo(), new TypeReference<OrderExtInfoDto>() {});
request.setMiniAppId(extInfoDto.getAppid());
List<String> userList = new ArrayList<>();
userList.add(extInfoDto.getOpenid());
request.setOpenIdList(userList);
if(deliveryStatus == DeliveryStatus.RIDERSTARTDELIVERY.getCode()) {
request.setMessageEventType(MessageEventTypeEnum.MCCAFE_DELIVERY_ORDER.getType());
request.setScene(MessageSceneEnum.MCCAFE_DELIVERY_ORDER.getDesc());
request.setMccafeDeliveryOrder(MccafeDeliveryOrder
.builder()
.orderId(orderBean.getOid())
.address(orderBean.getAddress())
.productName("")
.build());
ecologyAdminApplicationClient.subscribeMessage(request);
} else if(deliveryStatus == DeliveryStatus.DELIVERYARRIVED.getCode()) {
request.setMessageEventType(MessageEventTypeEnum.MCCAFE_COMPLETE_ORDER.getType());
request.setScene(MessageSceneEnum.MCCAFE_COMPLETE_ORDER.getDesc());
request.setMccafeCompleteOrder(MccafeCompleteOrder
.builder()
.orderId(orderBean.getOid())
.orderAmount(orderBean.getActualPayAmount().toString())
.utcTime(cn.freemud.base.util.DateUtil.convert2String(new Date(), "yyyy-MM-dd HH:mm:ss"))
.build());
ecologyAdminApplicationClient.subscribeMessage(request);
}
}catch (Exception e){
log.error("麦咖啡订阅消息推送失败:"+orderId, e);
}
}
/**
* 配送消息推送
*/
public void sendMicroMessage(String partnerId,String orderId,int deliveryStatus){
......
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