Authored by sailing-PC\sailing

fix

1. express info
2. address
... ... @@ -66,5 +66,5 @@ public interface IExpressInfoService {
//Integer getExpressType(Long orderCode);
ExpressInfoRespBo queryLastExpressDetailInfo(Long orderCode);
ExpressInfoRespBo queryLastExpressDetailInfo(Long orderCode,int type);
}
... ...
... ... @@ -31,6 +31,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
... ... @@ -42,7 +43,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
private final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private IExpressInfoService expressInfoService;
protected IExpressInfoService expressInfoService;
abstract BuyerOrder getBuyerOrder(int uid, long orderCode);
... ... @@ -54,7 +55,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
abstract void assembleSoldPrdCompute(OrderDetailInfo orderDetailInfo, int uid, int skup);
abstract ExpressInfoDetail getExpressInfoDetail(OrderStatus orderStatus, long orderCode);
/**
* 获取订单详情
* @param orderRequest
... ... @@ -113,18 +114,8 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
}
// 需要查询 时间点 and 物流定位
ExpressInfoDetail lastEID = null;
if (OrderConstant.EXPRESS_SENDTIME_TO_QUERY.equals(orderStatus.getDetailDesc(actor))){
ExpressInfoRespBo expressInfoResp = expressInfoService.queryLastExpressDetailInfo(buyerOrder.getOrderCode());
List<ExpressInfoDetail> eidList;
if (Objects.nonNull(expressInfoResp)
&& Objects.nonNull(eidList=expressInfoResp.getExpressInfoDetailList())
&& eidList.size() > 0
){
lastEID = eidList.get(0);
}
}
ExpressInfoDetail lastEID = getExpressInfoDetail(orderStatus, orderRequest.getOrderCode());
BuildNode buildNode = BuildNode.builder().buyerOrder(buyerOrder).orderStatus(orderStatus)
.buyerOrderGoods(buyerOrderGoods).sellerOrderGoods(sellerOrderGoods).userAddress(userAddress)
.lastEID(lastEID).build();
... ...
package com.yohoufo.order.service.impl;
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.dal.order.BuyerOrderGoodsMapper;
import com.yohoufo.dal.order.BuyerOrderMapper;
import com.yohoufo.dal.order.BuyerOrderMetaMapper;
... ... @@ -8,11 +11,17 @@ import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.dal.order.model.BuyerOrderGoods;
import com.yohoufo.dal.order.model.BuyerOrderMeta;
import com.yohoufo.dal.order.model.SellerOrderGoods;
import com.yohoufo.order.common.OrderStatus;
import com.yohoufo.order.common.TabType;
import com.yohoufo.order.model.response.OrderDetailInfo;
import com.yohoufo.order.service.IOrderDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* Created by chenchao on 2018/9/20.
*/
... ... @@ -64,5 +73,29 @@ public class BuyerOrderDetailService extends AbsOrderDetailService implements IO
}
private final static List<Integer> buyerViewExpressStatus = Arrays.asList(OrderStatus.WAITING_RECEIVE.getCode());
@Override
ExpressInfoDetail getExpressInfoDetail(OrderStatus orderStatus, long orderCode) {
if (!buyerViewExpressStatus.contains(orderStatus.getCode())){
return null;
}
Integer type = ExpressInfoConstant.EXPRESS_TYPE_2;
ExpressInfoDetail lastEID = null;
ExpressInfoRespBo expressInfoResp = expressInfoService.queryLastExpressDetailInfo(orderCode, type);
List<ExpressInfoDetail> eidList;
if (Objects.nonNull(expressInfoResp)
&& Objects.nonNull(eidList=expressInfoResp.getExpressInfoDetailList())
&& eidList.size() > 0
){
lastEID = eidList.get(0);
}
return lastEID;
}
}
... ...
... ... @@ -235,17 +235,9 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
@Override
public ExpressInfoRespBo queryLastExpressDetailInfo(Long orderCode) {
LOGGER.info("queryLastExpressDetailInfo orderCode = {}", orderCode);
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
if (buyerOrder == null){
LOGGER.warn("in queryLastExpressDetailInfo,getOrderInfo order not exist, orderCode is {}", orderCode);
throw new ServiceException(ServiceError.ORDER_NULL);
}
public ExpressInfoRespBo queryLastExpressDetailInfo(Long orderCode, int expressType) {
LOGGER.info("queryLastExpressDetailInfo orderCode {}, expressType {}", orderCode, expressType);
ExpressInfoRespBo expressInfoRespBo = new ExpressInfoRespBo();
Integer expressType = getExpressType(buyerOrder);
LOGGER.info("queryLastExpressDetailInfo, getExpressType result = {}", expressType);
ExpressInfo last = expressInfoMapper.selectLast(orderCode, expressType);
List<ExpressInfo> expressInfoList = Arrays.asList(last);
... ...
... ... @@ -4,13 +4,13 @@ import com.alibaba.fastjson.JSONObject;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.bo.SoldPrdComputeBo;
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.*;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.common.OrderCodeType;
import com.yohoufo.order.common.Payment;
import com.yohoufo.order.common.SkupStatus;
import com.yohoufo.order.common.*;
import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.convert.SellerOrderConvertor;
import com.yohoufo.order.model.AddressInfo;
... ... @@ -91,15 +91,22 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
Integer skupStatusCode = sellerOrderGoods.getStatus();
SkupStatus skupStatus = SkupStatus.getSkupStatus(skupStatusCode);
SellerOrderMeta addressMeta = somMapper.selectByMetaKey(uid, skup, MetaKey.BACK_2_SELLER_DELIVERY_ADDRESS);
AddressInfo addressInfo = JSONObject.parseObject(addressMeta.getMetaValue(), AddressInfo.class);
AddressInfo addressInfo = getAddressInfo(uid, skup);
return buildOrderDetail(sellerOrder, skupStatus, sellerOrderGoods, addressInfo);
}
OrderDetailInfo orderDetailInfo = super.getOrderDetail(orderRequest);
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
BuyerOrderGoods buyerOrderGoods = buyerOrderGoodsMapper.selectByOrderCode(buyerOrder.getUid(), orderCode);
AddressInfo addressInfo = getAddressInfo(buyerOrder.getSellerUid(), buyerOrderGoods.getSkup());
orderDetailInfo.setUserAddress(addressInfo);
return orderDetailInfo;
}
return super.getOrderDetail(orderRequest);
private AddressInfo getAddressInfo(int uid, int skup){
SellerOrderMeta addressMeta = somMapper.selectByMetaKey(uid, skup, MetaKey.BACK_2_SELLER_DELIVERY_ADDRESS);
AddressInfo addressInfo = JSONObject.parseObject(addressMeta.getMetaValue(), AddressInfo.class);
return addressInfo;
}
@Override
... ... @@ -119,6 +126,35 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
orderDetailInfo.setIncome(computeBo.getIncome());
}
}
private final static List<Integer> sellerViewExpressStatus = Arrays.asList(OrderStatus.SELLER_SEND_OUT.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(), OrderStatus.CHECKING_FAKE.getCode());
@Override
ExpressInfoDetail getExpressInfoDetail(OrderStatus orderStatus, long orderCode) {
if (!sellerViewExpressStatus.contains(orderStatus.getCode())){
return null;
}
Integer type ;
if (Objects.equals(OrderStatus.CHECKING_FAKE.getCode(), orderStatus.getCode())){
type = ExpressInfoConstant.EXPRESS_TYPE_3;
}else{
type = ExpressInfoConstant.EXPRESS_TYPE_1;
}
ExpressInfoDetail lastEID = null;
ExpressInfoRespBo expressInfoResp = expressInfoService.queryLastExpressDetailInfo(orderCode, type);
List<ExpressInfoDetail> eidList;
if (Objects.nonNull(expressInfoResp)
&& Objects.nonNull(eidList=expressInfoResp.getExpressInfoDetailList())
&& eidList.size() > 0
){
lastEID = eidList.get(0);
}
return lastEID;
}
/**
* @see AbsOrderDetailService
... ...