...
|
...
|
@@ -5,30 +5,20 @@ import com.alibaba.fastjson.JSONObject; |
|
|
import com.yoho.core.rabbitmq.YhProducer;
|
|
|
import com.yoho.error.ServiceError;
|
|
|
import com.yoho.error.exception.ServiceException;
|
|
|
import com.yoho.service.model.request.LoginSuccessBO;
|
|
|
import com.yohobuy.ufo.model.order.resp.ExpressInfoDetail;
|
|
|
import com.yohobuy.ufo.model.order.resp.ExpressInfoRespBo;
|
|
|
import com.yohoufo.common.constant.ExpressInfoConstant;
|
|
|
import com.yohoufo.common.utils.DateUtil;
|
|
|
import com.yohoufo.dal.order.BuyerOrderMapper;
|
|
|
import com.yohoufo.dal.order.ExpressInfoMapper;
|
|
|
import com.yohoufo.dal.order.SellerOrderMapper;
|
|
|
import com.yohoufo.dal.order.SellerOrderMetaMapper;
|
|
|
import com.yohoufo.dal.order.model.BuyerOrder;
|
|
|
import com.yohoufo.dal.order.model.ExpressInfo;
|
|
|
import com.yohoufo.dal.order.model.SellerOrder;
|
|
|
import com.yohoufo.dal.order.model.SellerOrderMeta;
|
|
|
import com.yohoufo.dal.order.*;
|
|
|
import com.yohoufo.dal.order.model.*;
|
|
|
import com.yohoufo.order.common.ExpressForMqSend;
|
|
|
import com.yohoufo.order.common.OrderCodeType;
|
|
|
import com.yohoufo.order.common.OrderStatus;
|
|
|
import com.yohoufo.order.common.SellerOrderStatus;
|
|
|
import com.yohoufo.order.constants.MetaKey;
|
|
|
import com.yohoufo.order.model.AddressInfo;
|
|
|
import com.yohoufo.order.model.response.AppraiseAddressResp;
|
|
|
import com.yohoufo.order.service.IExpressCompanyService;
|
|
|
import com.yohoufo.order.service.IExpressInfoService;
|
|
|
import com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator;
|
|
|
import com.yohoufo.order.service.support.codegenerator.bean.CodeMeta;
|
|
|
import com.yohoufo.order.service.proxy.ProductProxyService;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
...
|
...
|
@@ -38,7 +28,6 @@ import org.springframework.stereotype.Service; |
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* @author kun.wang
|
...
|
...
|
@@ -53,10 +42,10 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
private ExpressInfoMapper expressInfoMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private IExpressCompanyService expressCompanyService;
|
|
|
private ExpressRecordMapper expressRecordMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private SellerOrderMapper sellerOrderMapper;
|
|
|
private IExpressCompanyService expressCompanyService;
|
|
|
|
|
|
|
|
|
@Autowired
|
...
|
...
|
@@ -71,6 +60,15 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
@Autowired
|
|
|
private AppraiseAddressService appraiseAddressService;
|
|
|
|
|
|
@Autowired
|
|
|
private BuyerOrderGoodsMapper buyerOrderGoodsMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private SellerOrderGoodsMapper sellerOrderGoodsMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private ProductProxyService productProxyService;
|
|
|
|
|
|
private static String EXPRESS_MQ_SEND = "logistics.logistics_data";
|
|
|
|
|
|
/**
|
...
|
...
|
@@ -79,16 +77,18 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
* @param expressCompanyId 快递公司id
|
|
|
* @param orderCode 订单号 :一定是买家订单编号
|
|
|
* @param wayBillCode 快递单号
|
|
|
* @param depotNum 鉴定中心id
|
|
|
*/
|
|
|
@Override
|
|
|
public void deliverToDepot(Integer sellerUid,Integer expressCompanyId, Long orderCode, String wayBillCode) {
|
|
|
public void deliverToDepot(Integer sellerUid,Integer expressCompanyId, Long orderCode, String wayBillCode,Integer depotNum) {
|
|
|
//保存物流信息+更新订单状态;
|
|
|
//本阶段的物流类型和订单状态
|
|
|
OrderStatus orderStatus=OrderStatus.SELLER_SEND_OUT;
|
|
|
final OrderStatus expectOrderStatus = OrderStatus.HAS_PAYED;
|
|
|
final OrderStatus targetOrderStatus=OrderStatus.SELLER_SEND_OUT;
|
|
|
Integer expressType = ExpressInfoConstant.EXPRESS_TYPE_1;
|
|
|
|
|
|
LOGGER.info("deliverToDepot saveExpressAndUpdateBuyerOrderStatus sellerUid={} ,expressCompanyId = {}, orderCode = {}, wayBillCode = {} " +
|
|
|
",expressType = {} ,orderStatus = {}", new Object[]{sellerUid ,expressCompanyId, orderCode, wayBillCode,expressType,orderStatus});
|
|
|
",expressType = {} ,expectOrderStatus = {} ,targetOrderStatus = {} ,depotNum = {}", new Object[]{sellerUid ,expressCompanyId, orderCode, wayBillCode,expressType,expectOrderStatus,targetOrderStatus,depotNum});
|
|
|
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
|
|
|
|
|
|
if (buyerOrder == null){
|
...
|
...
|
@@ -96,24 +96,32 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
throw new ServiceException(ServiceError.ORDER_NULL);
|
|
|
}
|
|
|
|
|
|
/* //卖家的uid
|
|
|
if(sellerUid.intValue()!=buyerOrder.getSellerUid().intValue()){
|
|
|
LOGGER.warn("deliverToDepot saveExpressAndUpdateBuyerOrderStatus uid {} not equal buyer order sellerUid {}",uid, buyerOrder.getSellerUid());
|
|
|
throw new ServiceException(400,"参数错误,传入的卖家uid与订单卖家uid不一致");
|
|
|
}*/
|
|
|
//获取skup
|
|
|
BuyerOrderGoods buyerOrderGoods= buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(),orderCode);
|
|
|
if(buyerOrderGoods==null){
|
|
|
LOGGER.warn("deliverToDepot buyerOrderGoods order not exist, orderCode is {}", orderCode);
|
|
|
throw new ServiceException(ServiceError.ORDER_NULL);
|
|
|
}
|
|
|
|
|
|
// 保存订单物流信息
|
|
|
saveExpress(sellerUid,expressCompanyId,orderCode,wayBillCode,expressType);
|
|
|
saveExpress(sellerUid,expressCompanyId,orderCode,wayBillCode,expressType,depotNum);
|
|
|
|
|
|
// 发送mq获取物流信息
|
|
|
sendExpressMQ(sellerUid,expressCompanyId,orderCode,wayBillCode);
|
|
|
LOGGER.info("deliverToDepot end ! send express to erp ");
|
|
|
|
|
|
//根据skup ,更新鉴定中心
|
|
|
SellerOrderGoods sellerOrderGoods=new SellerOrderGoods();
|
|
|
sellerOrderGoods.setId(buyerOrderGoods.getSkup());
|
|
|
sellerOrderGoods.setDepotNo(depotNum);
|
|
|
sellerOrderGoodsMapper.updateByPrimaryKeySelective(sellerOrderGoods);
|
|
|
|
|
|
productProxyService.setDepotNum(buyerOrderGoods.getSkup(),depotNum);
|
|
|
|
|
|
// 更新买家订单状态
|
|
|
buyerOrder.setStatus(orderStatus.getCode());
|
|
|
buyerOrder.setUpdateTime(DateUtil.getCurrentTimeSecond());
|
|
|
LOGGER.info("deliverToDepot update buyer order {} ", buyerOrder);
|
|
|
buyerOrderMapper.updateByPrimaryKeySelective(buyerOrder);
|
|
|
int updateBuyerCnt = buyerOrderMapper.updateStatusByOrderCode(orderCode, buyerOrder.getUid(),
|
|
|
expectOrderStatus.getCode(), targetOrderStatus.getCode(), DateUtil.getCurrentTimeSecond());
|
|
|
LOGGER.info("deliverToDepot update buyer order status result {} ",updateBuyerCnt);
|
|
|
}
|
|
|
|
|
|
@Override
|
...
|
...
|
@@ -124,7 +132,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
",expressType = {}", new Object[]{expressCompanyId, orderCode, wayBillCode,expressType});
|
|
|
|
|
|
// 保存订单物流信息
|
|
|
saveExpress(sellerUid,expressCompanyId,orderCode,wayBillCode,expressType);
|
|
|
saveExpress(sellerUid,expressCompanyId,orderCode,wayBillCode,expressType,null);
|
|
|
|
|
|
// 发送mq获取物流信息
|
|
|
sendExpressMQ(sellerUid,expressCompanyId,orderCode,wayBillCode);
|
...
|
...
|
@@ -139,7 +147,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
",expressType = {} ", new Object[]{expressCompanyId, orderCode, wayBillCode,expressType});
|
|
|
|
|
|
// 保存订单物流信息
|
|
|
saveExpress(uid,expressCompanyId,orderCode,wayBillCode,expressType);
|
|
|
saveExpress(uid,expressCompanyId,orderCode,wayBillCode,expressType,null);
|
|
|
|
|
|
// 发送mq获取物流信息
|
|
|
sendExpressMQ(uid,expressCompanyId,orderCode,wayBillCode);
|
...
|
...
|
@@ -156,17 +164,17 @@ public class ExpressInfoServiceImpl implements IExpressInfoService { |
|
|
* @param wayBillCode
|
|
|
* @param expressType
|
|
|
*/
|
|
|
private void saveExpress(Integer uid,Integer expressCompanyId, Long orderCode, String wayBillCode,Integer expressType ){
|
|
|
ExpressInfo expressInfo=new ExpressInfo();
|
|
|
expressInfo.setUid(uid);/// 存卖家的uid
|
|
|
expressInfo.setOrderCode(orderCode);
|
|
|
expressInfo.setWaybillCode(wayBillCode);
|
|
|
expressInfo.setLogisticsType(expressCompanyId);
|
|
|
expressInfo.setCreateTime(DateUtil.getCurrentTimeSecond());
|
|
|
expressInfo.setExpressType(expressType.byteValue());
|
|
|
expressInfo.setState(0);
|
|
|
LOGGER.info("deliverToDepot save express info {} ", expressInfo);
|
|
|
expressInfoMapper.insert(expressInfo);
|
|
|
private void saveExpress(Integer uid,Integer expressCompanyId, Long orderCode, String wayBillCode,Integer expressType,Integer depotNum ){
|
|
|
ExpressRecord record=new ExpressRecord();
|
|
|
record.setUid(uid);/// 存卖家的uid
|
|
|
record.setOrderCode(orderCode);
|
|
|
record.setWaybillCode(wayBillCode);
|
|
|
record.setLogisticsType(expressCompanyId);
|
|
|
record.setCreateTime(DateUtil.getCurrentTimeSecond());
|
|
|
record.setExpressType(expressType.byteValue());
|
|
|
record.setDepotNum(depotNum);
|
|
|
LOGGER.info("deliverToDepot save express record {} ", record);
|
|
|
expressRecordMapper.insert(record);
|
|
|
}
|
|
|
|
|
|
/**
|
...
|
...
|
|