Authored by qinchao

最近物流信息显示

... ... @@ -22,22 +22,15 @@ public class ActionStatusHold {
private static class BuyerASH{
static final List<Integer> SHOW_EXPRESS_STATUS_LIST = Arrays.asList(
OrderStatus.SELLER_SEND_OUT.getCode(),
OrderStatus.PLATFORM_RECEIVE.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(),
OrderStatus.JUDGE_PASS.getCode(),
OrderStatus.WAITING_RECEIVE.getCode(),
OrderStatus.DONE.getCode(),
OrderStatus.CHECKING_FAKE.getCode(),
OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode()
);
static final List<Integer> SHOW_BUYER_DELIVER_EXPRESS_STATUS_LIST ;
static {
SHOW_BUYER_DELIVER_EXPRESS_STATUS_LIST = Arrays.asList(
OrderStatus.SELLER_SEND_OUT.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(),
OrderStatus.CHECKING_FAKE.getCode(),
OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode()
);
}
static List<Integer> CanDelStatusList = Arrays.asList(
OrderStatus.DONE.getCode(),
... ... @@ -66,13 +59,13 @@ public class ActionStatusHold {
return BuyerASH.SHOW_EXPRESS_STATUS_LIST;
}
public static boolean buyerCanShowSellerDeliverExpressStatusList(Integer status){
return BuyerASH.SHOW_BUYER_DELIVER_EXPRESS_STATUS_LIST.contains(status);
}
private static class SellerASH{
final static List<Integer> View_Express_Status = Arrays.asList(OrderStatus.SELLER_SEND_OUT.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(), OrderStatus.CHECKING_FAKE.getCode(),
OrderStatus.PLATFORM_RECEIVE.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(),
OrderStatus.JUDGE_PASS.getCode(),
OrderStatus.CHECKING_FAKE.getCode(),
OrderStatus.WAITING_RECEIVE.getCode(),OrderStatus.DONE.getCode(),
OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode());
//
... ...
... ... @@ -7,6 +7,7 @@ import com.yohoufo.common.constant.ExpressInfoConstant;
import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.model.response.AppraiseAddressResp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
... ... @@ -135,26 +136,45 @@ public interface IExpressInfoService {
}
List<Integer> status2OnlySellerExpressType = Arrays.asList(OrderStatus.SELLER_SEND_OUT.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(), OrderStatus.WAITING_RECEIVE.getCode(),
List<Integer> status2OnlySellerExpressType = Arrays.asList(OrderStatus.PLATFORM_RECEIVE.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(),OrderStatus.JUDGE_PASS.getCode(), OrderStatus.WAITING_RECEIVE.getCode(),
OrderStatus.DONE.getCode());
/**
* 注意express的添加顺序不能变
*/
default List<Integer> getExpressTypes4Seller(Integer status){
List<Integer> types = null;
if (Objects.equals(OrderStatus.CHECKING_FAKE.getCode(), status)){
types = Arrays.asList(EnumExpressType.EXPRESS_TYPE_1.getCode(), EnumExpressType.EXPRESS_TYPE_3.getCode());
if(Objects.equals(OrderStatus.SELLER_SEND_OUT.getCode(), status)){
types = Arrays.asList(EnumExpressType.EXPRESS_TYPE_1.getCode());
}else if (Objects.equals(OrderStatus.CHECKING_FAKE.getCode(), status)){
types = Arrays.asList( EnumExpressType.EXPRESS_TYPE_3.getCode(),EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
}else if(Objects.equals(OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode(), status)){
types = Arrays.asList(EnumExpressType.EXPRESS_TYPE_1.getCode(), EnumExpressType.EXPRESS_TYPE_REBACK.getCode());
types = Arrays.asList( EnumExpressType.EXPRESS_TYPE_REBACK.getCode() ,EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
}else if(status2OnlySellerExpressType.contains( status)){
types = Arrays.asList(EnumExpressType.EXPRESS_TYPE_1.getCode());
types = Arrays.asList(EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
}
return types;
}
List<Integer> status2BuyerDeliverExpressStatusList = Arrays.asList(
OrderStatus.PLATFORM_RECEIVE.getCode(),
OrderStatus.PLATFORM_CHECKING.getCode(),
OrderStatus.JUDGE_PASS.getCode(),
OrderStatus.CHECKING_FAKE.getCode(),
OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode()
);
/**
* 注意express的添加顺序不能变
*/
default List<Integer> getExpressType4Buyer(Integer status){
if (ActionStatusHold.buyerCanShowSellerDeliverExpressStatusList(status)){
if(Objects.equals(OrderStatus.SELLER_SEND_OUT.getCode(), status)){
return Arrays.asList(EnumExpressType.EXPRESS_TYPE_1.getCode());
} else if (status2BuyerDeliverExpressStatusList.contains(status)){
return Arrays.asList(EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
}
return Arrays.asList(EnumExpressType.EXPRESS_TYPE_2.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
return Arrays.asList(EnumExpressType.EXPRESS_TYPE_2.getCode(),EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode(),EnumExpressType.EXPRESS_TYPE_1.getCode());
}
}
... ...
... ... @@ -412,6 +412,11 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
* @return
*/
private List<ExpressInfo> getExpressInfoListByStage(Long orderCode, Integer expressType){
LOGGER.info("getExpressInfoListByStage enter ,orderCode = {} ,expressType = {} ",orderCode,expressType);
if(EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode().equals(expressType)){
LOGGER.info("getExpressInfoListByStage out because of expressType is judge center ,orderCode = {} ,expressType = {} ",orderCode,expressType);
return expressInfoMapper.selectByOrderCodeAndExpressType(orderCode,expressType);
}
ExpressRecord expressRecord = expressRecordMapper.selectByOrderCodeAndExpressType(orderCode,expressType);
if(expressRecord==null){
LOGGER.info("getExpressInfoListByStage out because of empty record ,orderCode = {} ,expressType = {} ",orderCode,expressType);
... ... @@ -472,9 +477,10 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
return null;
}
//from big 2 small
List<Integer> sortedTypes = types.stream().sorted((o1,o2)-> o2-o1).collect(Collectors.toList());
//List<Integer> sortedTypes = types.stream().sorted((o1,o2)-> o2-o1).collect(Collectors.toList());
//types 本身已经有顺序了
ExpressInfoDetail lastEID = null;
for(Integer type : sortedTypes){
for(Integer type : types){
ExpressInfoRespBo expressInfoResp = queryLastExpressDetailInfo(orderCode, type);
List<ExpressInfoDetail> eidList;
if (Objects.nonNull(expressInfoResp)
... ...