Commit 2f5edd23 by huiyang.chen

创建配送单

parent 4f2e0986
...@@ -586,8 +586,8 @@ public class CouponAdapter { ...@@ -586,8 +586,8 @@ public class CouponAdapter {
mcCafeProductRedeemVo.setPid(pid); mcCafeProductRedeemVo.setPid(pid);
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode()); mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode()); mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1); mcCafeProductRedeemVo.setSeq(i + 1);
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
products.add(mcCafeProductRedeemVo); products.add(mcCafeProductRedeemVo);
} }
} }
......
package cn.freemud.adapter; package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.CreateDeliveryVo;
import cn.freemud.entities.vo.ProductInfo;
import cn.freemud.enums.DeliveryChannelEnum; import cn.freemud.enums.DeliveryChannelEnum;
import cn.freemud.enums.OrderType;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto; import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class DeliveryAdapter { public class DeliveryAdapter {
public CreateDeliveryOrderRequestDto convertToWeixinDeliveryOrderRequestDto(QueryOrdersResponseDto.DataBean.OrderBean orderBean, StoreResponse storeInfo, String accessToken, String deliveryCallBackUrl) { public CreateDeliveryOrderRequestDto convertToWeixinDeliveryOrderRequestDto(QueryOrdersResponseDto.DataBean.OrderBean orderBean, StoreResponse storeInfo, String accessToken, String deliveryCallBackUrl) {
CreateDeliveryOrderRequestDto deliveryOrderRequestDto = new CreateDeliveryOrderRequestDto(); CreateDeliveryOrderRequestDto deliveryOrderRequestDto = new CreateDeliveryOrderRequestDto();
...@@ -74,6 +84,97 @@ public class DeliveryAdapter { ...@@ -74,6 +84,97 @@ public class DeliveryAdapter {
return deliveryOrderRequestDto; return deliveryOrderRequestDto;
} }
/**
* 创建配送单请求对象
*
* @param order
* @param storeInfo
* @return
*/
public CreateDeliveryVo buildDeliveryOrderRequestDto(QueryOrdersResponseDto.DataBean.OrderBean order
, StoreResponse storeInfo, String deliveryCallBackUrl, String displayOrderId ) {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
CreateDeliveryVo deliveryOrderRequestDto = new CreateDeliveryVo();
deliveryOrderRequestDto.setDepatchWeight(new BigDecimal(1));
deliveryOrderRequestDto.setSerialNumber(order.getOtherCode());
deliveryOrderRequestDto.setOrderId(order.getOid());
deliveryOrderRequestDto.setOrderRemark(order.getRemark());
deliveryOrderRequestDto.setOrderTotalAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setOrderActualAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setPartnerId(order.getCompanyId());
deliveryOrderRequestDto.setOrderChannel(order.getSource());
deliveryOrderRequestDto.setStoreId(storeInfo.getBizVO().getStoreId());
deliveryOrderRequestDto.setStoreCode(storeInfo.getBizVO().getStoreCode());
StringBuffer address = new StringBuffer(storeInfo.getBizVO().getCity())
.append(storeInfo.getBizVO().getProvince())
.append(storeInfo.getBizVO().getRegion())
.append(storeInfo.getBizVO().getAddress());
deliveryOrderRequestDto.setStoreAddress(address.toString());
deliveryOrderRequestDto.setStoreLng(new BigDecimal(storeInfo.getBizVO().getLongitude()));
deliveryOrderRequestDto.setStoreLat(new BigDecimal(storeInfo.getBizVO().getLatitude()));
deliveryOrderRequestDto.setStorePhone(storeInfo.getBizVO().getPhone());
deliveryOrderRequestDto.setStoreName(order.getShopName());
deliveryOrderRequestDto.setCityName(storeInfo.getBizVO().getCity());
deliveryOrderRequestDto.setReceiverName(order.getUserName());
deliveryOrderRequestDto.setReceiverPrimaryPhone(order.getPhone());
deliveryOrderRequestDto.setReceiverAddress(order.getAddress());
deliveryOrderRequestDto.setReceiverLng(new BigDecimal(order.getLongitude()));
deliveryOrderRequestDto.setReceiverLat(new BigDecimal(order.getLatitude()));
deliveryOrderRequestDto.setOrderTime(new Date(order.getGmtCreate()));
deliveryOrderRequestDto.setCallbackUrl(deliveryCallBackUrl);
// 预约单预计送到时间
if (order.getGmtExpect() != null && order.getGmtExpect() != 0) {
deliveryOrderRequestDto.setExpectTime(new Date(order.getGmtExpect()));
}
deliveryOrderRequestDto.setIsPre(order.getType() == OrderType.PRE_ORDER.getCode() ? 1 : 0);
//---麦咖啡餐道专用---
deliveryOrderRequestDto.setDisplayOrderId(displayOrderId);
deliveryOrderRequestDto.setTaxFlag(0);
if (CollectionUtils.isNotEmpty(order.getAccountList())) {
List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> collect = order.getAccountList().stream().filter(type -> type != null && !type.equals(1)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(collect)) {
//配送费
deliveryOrderRequestDto.setDeliveryTotal(collect.get(0).getPrice().intValue());
}
}
deliveryOrderRequestDto.setIsPayed(1);
deliveryOrderRequestDto.setTenderType("WeChat");
deliveryOrderRequestDto.setIsLargeOrder(0);
if (deliveryOrderRequestDto.getIsPre()== 1 && deliveryOrderRequestDto.getExpectTime() !=null){
deliveryOrderRequestDto.setIsImmediateDelivery(0);
deliveryOrderRequestDto.setExpectDeliveryTimeByUTC(simpleDateFormat.format(deliveryOrderRequestDto.getExpectTime()));
}else {
deliveryOrderRequestDto.setIsImmediateDelivery(1);
String expectDeliveryTimeByUTC = order.getGmtCreate() !=null ? simpleDateFormat.format(DateUtil.addMinutes(new Date(order.getGmtCreate()),30)) :null;
deliveryOrderRequestDto.setExpectDeliveryTimeByUTC(expectDeliveryTimeByUTC);
}
//---麦咖啡餐道专用---
List<ProductInfo> productInfos = new ArrayList<>();
order.getProductList().forEach(productList -> {
if (productList.getPrice() > 0) {
ProductInfo deliveryProductInfo = new ProductInfo();
deliveryProductInfo.setProductCode(productList.getProductId());
deliveryProductInfo.setProductName(productList.getProductName());
deliveryProductInfo.setProductNumber(productList.getNumber());
deliveryProductInfo.setProductPrice(productList.getPrice().intValue());
//餐道使用
deliveryProductInfo.setCumulatedTotal(productList.getNumber() * productList.getPrice().intValue());
deliveryProductInfo.setTaxId(10);
deliveryProductInfo.setTaxRate(6);
deliveryProductInfo.setParentCode(Long.valueOf(productList.getParentProductId()));
productInfos.add(deliveryProductInfo);
}
});
deliveryOrderRequestDto.setProductInfos(productInfos);
return deliveryOrderRequestDto;
}
} }
package cn.freemud.entities.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class CreateDeliveryVo {
/**
* 商品信息
* productInfos不能为空
*/
private List<ProductInfo> productInfos;
/**
* 取餐号
* serialNumber不能为空
*/
private String serialNumber;
/**
* 订单编号
* orderId不能为空
*/
private String orderId;
/**
* 订单备注
*/
private String orderRemark;
/**
* 订单来源 美团 ,饿了么,百度,口碑 等(中文)
*/
private String orderSource;
/**
* 订单总金额(分)
* orderTotalAmount不能为空
* orderTotalAmount不能小于1
*/
private Integer orderTotalAmount;
/**
* 订单实付金额(分)
* orderActualAmount不能为空
* orderActualAmount不能小于1
*/
private Integer orderActualAmount;
/**
* 订单重量(kg)
*/
private BigDecimal depatchWeight;
/**
* 发票抬头
*/
private String invoiceTitle;
/**
* 商户id
*/
private String partnerId;
/**
* 商户信息备注
*/
private String partnerRemark;
/**
* 订单渠道
*/
private String orderChannel;
/**
* 配送渠道
*/
private String deliveryChannel;
/**
* 是否预约单 0否 1是
* isPre不能为空
*
*/
private Integer isPre;
/**
* 门店id(非码)
* storeId不能为空
*/
private String storeId;
/**
* 第三方门店id
* storeCode不能为空
*/
private String storeCode;
/**
* 门店名称
* storeName不能为空
*/
private String storeName;
/**
* 门店地址
* storeAddress不能为空
*/
private String storeAddress;
// "门店所在区"
private String storeArea;
// "门店所在市"
private String storeCity;
// "门店所在省"
private String storeProvince;
/**
* 门店经度
* storeLng不能为空
*/
private BigDecimal storeLng;
/**
* 门店纬度
* storeLat不能为空
*/
private BigDecimal storeLat;
/**
* 门店电话
* storePhone不能为空
*/
private String storePhone;
/**
* 门店联系人
*/
private String storeContact;
/**
* 收货人姓名
* receiverName不能为空
*/
private String receiverName;
/**
* 收货人联系方式
* receiverPrimaryPhone不能为空
*/
private String receiverPrimaryPhone;
/**
* 收货人备用联系方式
*/
private String receiverSecondPhone;
/**
* 收货人地址
* receiverAddress不能为空
*/
private String receiverAddress;
/**
* 收货人经度
* receiverLng不能为空
*/
private BigDecimal receiverLng;
/**
* 收货人纬度
* receiverLat不能为空
*/
private BigDecimal receiverLat;
/**
* 所在城市
* cityName不能为空
*/
private String cityName;
//"所在省份"
private String provinceName;
//"所在区"
private String areaName;
/**
* 配送服务代码(飞速达:4002;快速达:4011;及时达:4012;集中送:4013)
*/
private Integer deliveryServiceCode;
/**
* 商品类型 1送餐; 2送药; 3百货;4脏衣收; 5干净衣派;6生鲜; 7保单;8饮品;9现场勘查;99其他
*/
private Integer productType;
private String callbackUrl;
/**
* 用户下单时间
* orderTime不能为空
*/
private Date orderTime;
//用户期望送达时间"
private Date expectTime;
// "微信token 渠道为微信物流时必传"
private String accessToken;
//"小程序openid 渠道为微信物流时必传"
private String openId;
// "商家小程序的路径,建议为订单页面 渠道为微信物流时必传")
private String wxaPath;
// "小程序appId 渠道为微信物流时必传")
private String wxAppId;
//"微信物流公司id")
private String wxCompanyId;
//"微信物流公司快递编码")
private String wxBizId;
//"微信物流公司服务类型ID")
private Integer serviceType;
// "微信物流公司服务类型名称")
private String serviceName;
//"非码运单号")
private String deliveryId;
//"是否大订单 : 0-否 , 1-是")
private Integer isLargeOrder;
// "是否实时送达: 0-否 , 1-是")
private Integer isImmediateDelivery;
// "预计送达时间-UTC 时间")
private String expectDeliveryTimeByUTC;
// "餐品总额(单位:分)")
private Integer productTotal;
// "是否支付: 0-否 , 1-是 ")
private Integer isPayed;
// "付款类型")
private String tenderType;
//"启用新版税率规则计算开票:0-关闭,1-开启")
private Integer taxFlag;
//"配送费(单位:分)"
private Integer deliveryTotal;
// "订单显示ID(餐道专用)")
private String displayOrderId;
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class ProductInfo {
/**
* 商品编号
* productCode不能为空
*/
private String productCode;
/**
* 归属餐品 ID(一般套餐或者特殊要求时,该 ID 指向主餐品 ID) 0或者-1代表一级餐品数据; 一份餐品数据存在多级(麦咖啡餐道专用)
*/
private Long parentCode;
/**
* "税率代码:10-餐品费用,13-非餐品费用;仅 taxFlag=1 改字段生效,具体税率代码参考麦 中定义")(麦咖啡餐道专用)
*
*/
private Integer taxId;
/**
* 税率:餐品费用-6,非餐品费用-13;仅 taxFlag=1 改字段生效,具体税率值参考麦中 定义 (麦咖啡餐道专用)
*/
private Integer taxRate;
/**
* "优惠金额 单位:分"
*/
private Long discountAmount;
// ---
/**
* 商品名称
* productName不能为空
*/
private String productName;
/**
* 商品数量
* productNumber不能为空
* productNumber不能小于1
*/
private Integer productNumber;
/**
* 商品价格(分)
* productPrice不能为空
*/
private Integer productPrice;
/**
* 商品尺寸
*/
private Integer productSize;
/**
* 商品图片 微信物流必传
*/
private String productImg;
/**
* 商品备注
*/
private String productRemark;
/**
* 小计(单位分)(麦咖啡餐道专用)
*/
private Integer cumulatedTotal;
/**
* "分组名称,如果订单采用分组形式,该参数为比传" (麦咖啡餐道专用)
*/
private String GroupName;
}
...@@ -56,6 +56,7 @@ import com.freemud.application.sdk.api.constant.ResponseConstant; ...@@ -56,6 +56,7 @@ import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService; import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.ApiLog; import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
...@@ -68,6 +69,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun ...@@ -68,6 +69,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun
import com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse;
import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto; import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
...@@ -114,7 +116,6 @@ import java.util.function.Function; ...@@ -114,7 +116,6 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND; import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR;
@Service @Service
@Slf4j @Slf4j
...@@ -134,8 +135,14 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -134,8 +135,14 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private String cloudPrintQueue; private String cloudPrintQueue;
@Value("${mq.cloud_print_exchange}") @Value("${mq.cloud_print_exchange}")
private String cloud_print_exchange; private String cloud_print_exchange;
@Value("${saas.order.delivery.callBackUrl}")
private String deliveryCallBackUrl;
@Autowired @Autowired
private DeliveryFeiginClient deliveryFeiginClient;
@Autowired
private DeliveryAdapter deliveryAdapter;
@Autowired
private AssortmentCloudPrinterManager cloudPrinterManager; private AssortmentCloudPrinterManager cloudPrinterManager;
@Autowired @Autowired
private FMAssistantCloudPrintClient fmAssistantCloudPrintClient; private FMAssistantCloudPrintClient fmAssistantCloudPrintClient;
...@@ -821,6 +828,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -821,6 +828,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return null; return null;
} }
@Override @Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) { public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode()); OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
...@@ -960,11 +968,46 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -960,11 +968,46 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
requestDto.setOpenId(orderExtInfoDto != null ? orderExtInfoDto.getOpenid() : ""); requestDto.setOpenId(orderExtInfoDto != null ? orderExtInfoDto.getOpenid() : "");
buriedPointService.BuriedPointPayment(requestDto, orderBean); buriedPointService.BuriedPointPayment(requestDto, orderBean);
//获取门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), "");
if (storeInfo == null || ObjectUtils.notEqual(cn.freemud.management.enums.ResponseResult.SUCCESS.getCode(), storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) {
return sendPaySuccessNoticeMessage();
}
CreateDeliveryVo createDeliveryVo = deliveryAdapter.buildDeliveryOrderRequestDto(orderBean, storeInfo, deliveryCallBackUrl,null);
//创建配送单
CreateDeliveryOrderResponseDto deliveryResponse = deliveryFeiginClient.deliveryOrderAdd(createDeliveryVo);
//创建配送单失败,更新订单为异常单
if (deliveryResponse == null || RESPONSE_SUCCESS_CODE != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
String operator = "系统" ;
updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator);
return sendPaySuccessNoticeMessage();
}
//支付回掉成功标记 //支付回掉成功标记
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES); redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
/**
* 创建配送单一车 -> 更新订单为异常单
*
* @param partnerId
* @param orderCode
* @param deliveryId
*/
public void updateDeliveryAbnormal(String partnerId, String orderCode, String deliveryId, String operator) {
AssortmentUpdateDeliveryAbnormalRequest request = AssortmentUpdateDeliveryAbnormalRequest.builder()
.abnormalDesc("配送异常")
.deliveryId(deliveryId)
.orderCode(orderCode)
.partnerId(partnerId)
.operator(StringUtils.isNotBlank(operator) ? operator : "sys")
.build();
orderCenterSdkService.updateDeliveryAbnormal(request);
}
@Override @Override
public BaseResponse orderRefund(OrderRefundVo orderRefundVo) { public BaseResponse orderRefund(OrderRefundVo orderRefundVo) {
if (StringUtils.isEmpty(orderRefundVo.getReason())) { if (StringUtils.isEmpty(orderRefundVo.getReason())) {
......
...@@ -2,6 +2,8 @@ package cn.freemud.service.thirdparty; ...@@ -2,6 +2,8 @@ package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto; import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto; import cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto;
import cn.freemud.entities.vo.CreateDeliveryVo;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -11,4 +13,9 @@ public interface DeliveryFeiginClient { ...@@ -11,4 +13,9 @@ public interface DeliveryFeiginClient {
@PostMapping("/deliveryLogisticsAmount/queryDeliveryAmount") @PostMapping("/deliveryLogisticsAmount/queryDeliveryAmount")
QueryDeliveryAmountResponseDto queryDeliveryAmount(@RequestBody QueryDeliveryAmountRequestDto request); QueryDeliveryAmountResponseDto queryDeliveryAmount(@RequestBody QueryDeliveryAmountRequestDto request);
@PostMapping("/delivery/create")
CreateDeliveryOrderResponseDto deliveryOrderAdd(@RequestBody CreateDeliveryVo request);
} }
package cn.freemud.service.impl; package cn.freemud.service.impl;
import cn.freemud.adapter.DeliveryAdapter;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.CreateDeliveryVo;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo; import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.EmptyTableNumberVo; import cn.freemud.entities.vo.encircle.EmptyTableNumberVo;
import cn.freemud.enums.OrderBeanType;
import cn.freemud.service.EncircleOrderService; import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import org.apache.commons.lang.ObjectUtils;
import org.junit.Test; import org.junit.Test;
import org.junit.Before; import org.junit.Before;
import org.junit.After; import org.junit.After;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import java.util.Map;
/** /**
* EncircleOrderServiceImpl Tester. * EncircleOrderServiceImpl Tester.
* *
...@@ -32,6 +45,18 @@ public class EncircleOrderServiceImplTest { ...@@ -32,6 +45,18 @@ public class EncircleOrderServiceImplTest {
@Autowired @Autowired
private EncircleOrderService encircleOrderService; private EncircleOrderService encircleOrderService;
@Autowired
private OrderServiceImpl orderService;
@Autowired
private StoreCenterService storeCenterService;
@Value("${saas.order.delivery.callBackUrl}")
private String deliveryCallBackUrl;
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
@Autowired
private DeliveryAdapter deliveryAdapter;
@Before @Before
public void before() throws Exception { public void before() throws Exception {
} }
...@@ -55,6 +80,28 @@ public class EncircleOrderServiceImplTest { ...@@ -55,6 +80,28 @@ public class EncircleOrderServiceImplTest {
System.out.println(JSON.toJSONString(encircleOrderService.createReserveOrder(createOrderVo))); System.out.println(JSON.toJSONString(encircleOrderService.createReserveOrder(createOrderVo)));
} }
@Test
public void testd() throws Exception {
Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans = orderService.getOrderBeanByOrderId("18550453673517366500002");
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
//获取门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), "");
if (storeInfo == null || ObjectUtils.notEqual(cn.freemud.management.enums.ResponseResult.SUCCESS.getCode(), storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) {
//return sendPaySuccessNoticeMessage();
}
CreateDeliveryVo createDeliveryVo = deliveryAdapter.buildDeliveryOrderRequestDto(orderBean, storeInfo, deliveryCallBackUrl,"");
//创建配送单
CreateDeliveryOrderResponseDto deliveryResponse = deliveryFeiginClient.deliveryOrderAdd(createDeliveryVo);
//创建配送单失败,更新订单为异常单
if (deliveryResponse == null || 100 != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
String operator = "系统" ;
//updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator);
// return sendPaySuccessNoticeMessage();
}
}
/** /**
* Method: updateReserveOrder(CreateReserveOrderVo createReserveOrderVo) * Method: updateReserveOrder(CreateReserveOrderVo createReserveOrderVo)
*/ */
......
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