Authored by qinchao

物流显示

... ... @@ -363,18 +363,18 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
//2.设定最近一个阶段的物流
expressInfoRespBo.setExpressInfoDetailList(Lists.newArrayList());
List<ExpressInfo> expressInfoList = getExpressInfoListByStage( orderCode, expressType);
List<ExpressInfo> expressInfoList = getExpressInfoListByStage(actor, orderCode, expressType);
constructExpressInfo(expressInfoList, expressInfoRespBo.getExpressInfoDetailList());
//3.设定鉴定的物流调拨信息
expressInfoRespBo.setJudgeExpressInfoDetailList(Lists.newArrayList());
List<ExpressInfo> judgeExpressInfoList=getExpressInfoListByStage( orderCode, EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode());
List<ExpressInfo> judgeExpressInfoList=getExpressInfoListByStage(actor, orderCode, EnumExpressType.EXPRESS_TYPE_JUDGE_CENTER.getCode());
constructExpressInfo(judgeExpressInfoList, expressInfoRespBo.getJudgeExpressInfoDetailList());
//4.获取上一阶段的辅助物流信息
List<ExpressInfoDetail> supplementExpressInfoDetailList = Lists.newArrayList();
expressInfoRespBo.setSupplementExpressInfoDetailList(supplementExpressInfoDetailList);
constructSupplementExpress(orderCode,expressType,expressInfoRespBo);
constructSupplementExpress( actor,orderCode,expressType,expressInfoRespBo);
//5.设定三个阶段的信息
buildExpressStage(buyerOrder.getStatus(), expressInfoRespBo);
... ... @@ -406,7 +406,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
}
}
private void constructSupplementExpress(Long orderCode,Integer expressType,ExpressInfoRespBo expressInfoRespBo){
private void constructSupplementExpress(TabType actor,Long orderCode,Integer expressType,ExpressInfoRespBo expressInfoRespBo){
if(EnumExpressType.EXPRESS_TYPE_2.getCode().intValue()==expressType.intValue()){
//买家这个时候需要看卖家的物流
//设置物流提示头信息
... ... @@ -414,7 +414,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
expressInfoRespBo.setExpressSender(getSenderName(EnumExpressType.EXPRESS_TYPE_1.getCode().intValue()));
}
//卖家物流详细
List<ExpressInfo> previousExpressInfoList = getExpressInfoListByStage( orderCode, EnumExpressType.EXPRESS_TYPE_1.getCode());
List<ExpressInfo> previousExpressInfoList = getExpressInfoListByStage(actor, orderCode, EnumExpressType.EXPRESS_TYPE_1.getCode());
constructExpressInfo(previousExpressInfoList, expressInfoRespBo.getSupplementExpressInfoDetailList());
}else if(EnumExpressType.EXPRESS_TYPE_3.getCode().intValue()==expressType.intValue()
||EnumExpressType.EXPRESS_TYPE_REBACK.getCode().intValue()==expressType.intValue()){
... ... @@ -424,7 +424,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
//物流单号信息
constructWayBillInfo(orderCode,EnumExpressType.EXPRESS_TYPE_1.getCode(),expressInfoRespBo);
}
List<ExpressInfo> previousExpressInfoList = getExpressInfoListByStage(orderCode, EnumExpressType.EXPRESS_TYPE_1.getCode());
List<ExpressInfo> previousExpressInfoList = getExpressInfoListByStage(actor,orderCode, EnumExpressType.EXPRESS_TYPE_1.getCode());
constructExpressInfo(previousExpressInfoList, expressInfoRespBo.getSupplementExpressInfoDetailList());
}
... ... @@ -500,11 +500,26 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
* 变更为:先从express_record获取物流单号,再通过物流单号关联express_info ,从而解决多个订单一个物流号问题
* @return
*/
private List<ExpressInfo> getExpressInfoListByStage(Long orderCode, Integer expressType){
LOGGER.info("getExpressInfoListByStage enter ,orderCode = {} ,expressType = {} ",orderCode,expressType);
private List<ExpressInfo> getExpressInfoListByStage(TabType actor,Long orderCode, Integer expressType){
LOGGER.info("getExpressInfoListByStage enter ,orderCode = {} ,expressType = {} ,actor = {}",orderCode,expressType,actor);
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);
List<ExpressInfo> ls = expressInfoMapper.selectByOrderCodeAndExpressType(orderCode,expressType);
if(actor!=null&&TabType.BUY==actor&&CollectionUtils.isNotEmpty(ls)){
for(ExpressInfo info:ls){
if(info.getOperateTransferCode()==null){
continue;
}
if(EnumExpressDataOperateTransferCode.mini_fault_create.getCode()==info.getOperateTransferCode()){
info.setAcceptRemark(EnumExpressDataOperateTransferCode.mini_fault_create_buyer.getOperateTransferDesc());
}else if(EnumExpressDataOperateTransferCode.mini_fault_accept.getCode()==info.getOperateTransferCode()){
info.setAcceptRemark(EnumExpressDataOperateTransferCode.mini_fault_accept_buyer.getOperateTransferDesc());
}else if(EnumExpressDataOperateTransferCode.mini_fault_reject.getCode()==info.getOperateTransferCode()){
info.setAcceptRemark(EnumExpressDataOperateTransferCode.mini_fault_reject_buyer.getOperateTransferDesc());
}
}
}
return ls;
}
ExpressRecord expressRecord = expressRecordMapper.selectByOrderCodeAndExpressType(orderCode,expressType);
if(expressRecord==null){
... ... @@ -536,9 +551,9 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
return expressInfoList;
}
private List<ExpressInfoDetail> queryLastExpressDetailInfo(Long orderCode, int expressType) {
private List<ExpressInfoDetail> queryLastExpressDetailInfo(TabType actor,Long orderCode, int expressType) {
LOGGER.info("queryLastExpressDetailInfo orderCode {}, expressType {}", orderCode, expressType);
List<ExpressInfo> expressInfoList_All = getExpressInfoListByStage(orderCode, expressType);
List<ExpressInfo> expressInfoList_All = getExpressInfoListByStage( actor,orderCode, expressType);
if (expressInfoList_All==null||expressInfoList_All.size()<=0){
LOGGER.info("queryLastExpressDetailInfo, getExpressType result is null ,orderCode {}, expressType {}", orderCode, expressType);
return null;
... ... @@ -570,7 +585,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
//types 本身已经有顺序了,新增了数字type,不能执行之前的根据大小排序
ExpressInfoDetail lastEID = null;
for(Integer type : types){
List<ExpressInfoDetail> eidList = queryLastExpressDetailInfo(orderCode, type);
List<ExpressInfoDetail> eidList = queryLastExpressDetailInfo(actor,orderCode, type);
if ( CollectionUtils.isNotEmpty(eidList)){
lastEID = eidList.get(0);
break;
... ...