package com.xiaopeng.itinerary.utils;
|
|
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpResponse;
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson2.JSON;
|
import com.xiaopeng.api.feignClient.operation.XpOfficialPartnerClient;
|
import com.xiaopeng.api.model.operation.XpOfficialPartner;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.vo.operation.OfficialPartnerResult;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.exception.ServiceException;
|
import com.xiaopeng.itinerary.vo.UpdateEndAddressVo;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 合作商工具类
|
*/
|
@Component
|
public class OfficialPartnerUtil {
|
|
@Resource
|
private XpOfficialPartnerClient xpOfficialPartnerClient;
|
|
|
/**
|
* 推送修改订单数据
|
*
|
* @param officialPartnerId
|
* @return
|
*/
|
public R<?> pushUpdateEndAddress(Integer officialPartnerId, XpOrder xpOrder) {
|
XpOfficialPartner xpOfficialPartner = xpOfficialPartnerClient.getOfficialPartner(officialPartnerId).getData();
|
String changeDestinationUrl = xpOfficialPartner.getChangeDestinationUrl();
|
HttpRequest post = HttpUtil.createPost(changeDestinationUrl);
|
UpdateEndAddressVo updateEndAddressVo = new UpdateEndAddressVo();
|
updateEndAddressVo.setOrderId(xpOrder.getId());
|
updateEndAddressVo.setEndAddress(xpOrder.getEndAddress());
|
updateEndAddressVo.setEndLat(xpOrder.getEndLat());
|
updateEndAddressVo.setEndLon(xpOrder.getEndLon());
|
post.body(JSON.toJSONString(updateEndAddressVo));
|
HttpResponse execute = post.execute();
|
if (!execute.isOk()) {
|
throw new ServiceException("[" + xpOfficialPartner.getName() + "]调用合作商接口失败-修改目的地接口");
|
}
|
OfficialPartnerResult officialPartnerResult = JSON.parseObject(execute.body(), OfficialPartnerResult.class);
|
if (0 == officialPartnerResult.getCode()) {
|
return R.ok();
|
}
|
throw new ServiceException("[" + xpOfficialPartner.getName() + "]" + officialPartnerResult.getMsg());
|
}
|
|
|
}
|