Authored by mali

Merge branch 'test6.9.13' of http://git.yoho.cn/ufo/yohoufo-fore into test6.9.13

... ... @@ -73,7 +73,12 @@ public class BuyerOrderStateChangers {
}
public void selectOneToChange(BuyerOrder buyerOrder, OrderStatus sourceStatus, OrderStatus targetStatus) {
selectOneToChange(RequestedStatusChangeBuyerOrder.builder().buyerOrder(buyerOrder).sourceStatus(sourceStatus).targetStatus(targetStatus).build());
selectOneToChange(RequestedStatusChangeBuyerOrder.builder()
.buyerOrder(buyerOrder)
.sourceStatus(sourceStatus)
.targetStatus(targetStatus)
.operator(Operator.USER)
.build());
}
... ...
... ... @@ -3,10 +3,7 @@ package com.yohoufo.order.service.impl;
import com.google.common.collect.Lists;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.bo.ButtonShowBo;
import com.yohobuy.ufo.model.order.bo.GoodsInfo;
import com.yohobuy.ufo.model.order.bo.OrderInfo;
import com.yohobuy.ufo.model.order.bo.SoldPrdComputeBo;
import com.yohobuy.ufo.model.order.bo.*;
import com.yohobuy.ufo.model.order.common.ButtonShow;
import com.yohobuy.ufo.model.order.common.OrderAttributes;
import com.yohobuy.ufo.model.order.common.OrderStatus;
... ... @@ -59,9 +56,6 @@ public abstract class AbsOrderDetailService extends AbsOrderViewService implemen
@Autowired
protected BuyerOrderStatusFlowMapper buyerOrderStatusFlowMapper;
@Autowired
protected OrderStatusDetailItemFactory orderStatusDetailItemFactory;
abstract BuyerOrder getBuyerOrder(int uid, long orderCode);
... ... @@ -213,6 +207,7 @@ public abstract class AbsOrderDetailService extends AbsOrderViewService implemen
OrderDetailInfo orderDetailInfo = new OrderDetailInfo();
orderDetailInfo.setUid(buyerUid = buyerOrder.getUid());
orderDetailInfo.setOrderCode(orderCode = buyerOrder.getOrderCode());
orderDetailInfo.setBidType(buyerOrder.getBidType());
orderDetailInfo.setSubmitOrderTimeStr(DateUtil.formatDate(buyerOrder.getCreateTime(), DateUtil.yyyy_MM_dd_HH_mm_SS));
List<ButtonShowBo> buttonShowList = orderStatus.getDetailButtons(tabType, oa);
orderDetailInfo.setButtons(formatButtons(buyerOrder, buyerOrderGoods, buttonShowList==null? Lists.newArrayList() : new ArrayList<>(buttonShowList), ViewType.DETAIL));
... ...
... ... @@ -308,6 +308,7 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
orderListInfo.setBuyerUid(buyerUid);
orderListInfo.setSellerUid(buyerOrder.getSellerUid());
orderListInfo.setOrderCode(orderCode=buyerOrder.getOrderCode());
orderListInfo.setBidType(buyerOrder.getBidType());
orderListInfo.setRealPrice(buyerOrder.getAmount() == null ? "" : buyerOrder.getAmount().toPlainString());
... ...
... ... @@ -8,9 +8,11 @@ import com.yohobuy.ufo.model.order.resp.OrderDetailInfo;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.dal.order.model.BuyerOrderGoods;
import com.yohoufo.order.constants.ViewType;
import com.yohoufo.order.model.bo.DetailItem;
import com.yohoufo.order.model.dto.BuyerPenaltyCalResult;
import com.yohoufo.order.service.handler.BuyerCancelCompensateComputeHandler;
import com.yohoufo.order.service.support.BuyerOrderButtonFormatFunction;
import com.yohoufo.order.service.support.OrderStatusDetailItemFactory;
import com.yohoufo.order.service.wrapper.OrderTimeoutContext;
import com.yohoufo.order.service.wrapper.OrderTimeoutFactory;
import com.yohoufo.order.service.wrapper.TimeoutWrapper;
... ... @@ -39,6 +41,9 @@ public abstract class AbsOrderViewService {
@Autowired
TradeBillsService tradeBillsService;
@Autowired
protected OrderStatusDetailItemFactory orderStatusDetailItemFactory;
public abstract Logger getLogger();
... ... @@ -158,9 +163,30 @@ public abstract class AbsOrderViewService {
if (isWaitingPay && leftTime!=null && leftTime<=0){
buttons.removeIf(x -> x!=null && ButtonShow.NOW_BUY.getCode().equals(x.getCode()));
}
boolean isWaitingPayDeposit = OrderStatus.WAITING_PAY_DEPOSIT.getCode() == orderStatusCode;
if (isWaitingPayDeposit && leftTime != null && leftTime <= 0) {
buttons.removeIf(x -> x != null && ButtonShow.PAY_DEPOSIT.getCode().equals(x.getCode()));
}
}
protected abstract String buildOrderTypeTag(Integer orderAttr, SkupType skupType);
protected TimeoutBo getTimeoutBo(int uid, long orderCode, int bidType, int createTime, int orderStatusCode, OrderAttributes oa, TabType tabType) {
BuyerOrder buyerOrder = new BuyerOrder();
buyerOrder.setUid(uid);
buyerOrder.setOrderCode(orderCode);
buyerOrder.setCreateTime(createTime);
buyerOrder.setBidType(bidType);
DetailItem detailItem = orderStatusDetailItemFactory.get(buyerOrder, OrderStatus.getOrderStatus(orderStatusCode), tabType);
if (detailItem != null) {
return detailItem.getTimeoutBo();
} else {
return calTimeout(TabType.BUY, uid, orderCode,
orderStatusCode,
createTime, oa);
}
}
}
... ...
... ... @@ -5,7 +5,6 @@ import com.yohobuy.ufo.model.order.bo.TimeoutBo;
import com.yohobuy.ufo.model.order.common.OrderAttributes;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.constants.OrderDetailDesc;
import com.yohobuy.ufo.model.order.constants.SkupType;
import com.yohobuy.ufo.model.order.resp.ExpressInfoDetail;
import com.yohobuy.ufo.model.order.vo.AddressInfo;
... ... @@ -16,8 +15,6 @@ import com.yohoufo.dal.order.BuyerOrderMetaMapper;
import com.yohoufo.dal.order.SellerOrderGoodsMapper;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.model.bo.BidOrderMetaBo;
import com.yohoufo.order.model.bo.DetailItem;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohobuy.ufo.model.order.resp.OrderDetailInfo;
... ... @@ -241,13 +238,19 @@ public class BuyerOrderDetailService extends AbsOrderDetailService implements IO
OrderAttributes oa = OrderAttributes.getOrderAttributes(oac);
Integer leftTime = null;
int orderStatusCode = orderDetailInfo.getStatusDetail().getStatus();
TimeoutBo timeoutBo = calTimeout(TabType.BUY, orderDetailInfo.getUid(), orderDetailInfo.getOrderCode(),
TimeoutBo timeoutBo = getTimeoutBo(orderDetailInfo.getUid(),
orderDetailInfo.getOrderCode(),
orderDetailInfo.getBidType(),
orderDetailInfo.getSecendLevelCreateTime(),
orderStatusCode,
orderDetailInfo.getSecendLevelCreateTime(), oa);
if (Objects.nonNull(timeoutBo)){
oa, TabType.BUY);
if (Objects.nonNull(timeoutBo)) {
leftTime = timeoutBo.getLeftTime();
orderDetailInfo.getStatusDetail().setLeftTime(leftTime);
}
orderDetailInfo.getStatusDetail().setLeftTime(leftTime);
removeButtonIfRequired(leftTime, orderStatusCode, orderDetailInfo.getButtons());
}
... ...
... ... @@ -149,8 +149,9 @@ public class BuyerOrderListServiceImpl extends AbsOrderListService implements IO
list.forEach(oli -> {
OrderAttributes oa = OrderAttributes.getOrderAttributes(oli.getAttributes());
TimeoutBo timeoutBo = calTimeout(TabType.BUY, oli.getUid(), oli.getOrderCode(), oli.getStatus(),
oli.getSecendLevelCreateTime(), oa);
TimeoutBo timeoutBo = getTimeoutBo(oli.getUid(), oli.getOrderCode(), oli.getBidType(), oli.getSecendLevelCreateTime(), oli.getStatus(), oa, TabType.BUY);
// TimeoutBo timeoutBo = calTimeout(TabType.BUY, oli.getUid(), oli.getOrderCode(), oli.getStatus(),
// oli.getSecendLevelCreateTime(), oa);
Integer leftTime = timeoutBo.getLeftTime();
oli.setLeftTime(leftTime);
oli.setTimeLimit(timeoutBo.getTimelimit());
... ...
... ... @@ -577,8 +577,11 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
orderStatus = orderDetailInfo.getStatusDetail().getStatus();
createTime = orderDetailInfo.getSecendLevelCreateTime();
}
TimeoutBo timeoutBo = calTimeout(TabType.SELL, buyerUid, orderCode,
orderStatus, createTime, oa);
TimeoutBo timeoutBo = getTimeoutBo(buyerUid, orderCode,
orderDetailInfo.getBidType(),
createTime,
orderStatus,
oa, TabType.SELL);
Integer leftTime = timeoutBo.getLeftTime();
orderDetailInfo.getStatusDetail().setLeftTime(leftTime);
... ...
... ... @@ -217,7 +217,8 @@ public class SellerOrderListService extends AbsOrderListService implements IOrde
//存在时说明已经有买家下单 当前状态来自于买家订单
Integer buyerUid = buyerOrder.getUid();
OrderAttributes oa = OrderAttributes.getOrderAttributes(buyerOrder.getAttributes());
TimeoutBo timeoutBo = calTimeout(TabType.SELL, buyerUid, orderCode, orderStatus, buyerOrder.getCreateTime(), oa);
TimeoutBo timeoutBo = getTimeoutBo(buyerUid, orderCode, buyerOrder.getBidType(), buyerOrder.getCreateTime(), orderStatus, oa, TabType.SELL);
//TimeoutBo timeoutBo = calTimeout(TabType.SELL, buyerUid, orderCode, orderStatus, buyerOrder.getCreateTime(), oa);
if (Objects.nonNull(timeoutBo)){
oli.setLeftTime(timeoutBo.getLeftTime());
oli.setTimeLimit(timeoutBo.getTimelimit());
... ...
... ... @@ -37,7 +37,7 @@ public class BuyerOrderWaitingPayDepositCancelChanger extends AbstractBuyerOrder
public boolean isSupport(RequestedStatusChangeBuyerOrder statusChangeBuyerOrder) {
OrderStatus sourceStatus = statusChangeBuyerOrder.getSourceStatus();
OrderStatus targetStatus = statusChangeBuyerOrder.getTargetStatus();
return sourceStatus == WAITING_PAY_DEPOSIT && targetStatus == BUYER_CANCEL_BEFORE_DEPOSIT_PAY ;
return sourceStatus == WAITING_PAY_DEPOSIT && targetStatus == BUYER_CANCEL_TIMEOUT ;
}
private void processIfExistChangePriceRecord(long orderCode, Operator operator) {
... ...
... ... @@ -6,6 +6,7 @@ import com.yohobuy.ufo.model.order.common.OrderCodeType;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.SkupStatus;
import com.yohobuy.ufo.model.order.constants.TimeoutCase;
import com.yohoufo.order.mq.DelayTime;
/**
* Created by chao.chen on 2019/1/23.
... ... @@ -52,6 +53,10 @@ public class SellerOrderTimeoutWrapper extends AbsTimeoutWrapper{
if (isWaitingPay){
timeout = OrderInfo.PAY_TIME_SECOND;
}
if (orderStatus == OrderStatus.WAITING_PAY_DEPOSIT.getCode()) {
timeout = DelayTime.BUYER_ORDER_WAITING_PAY_DEPOSIT * 60;
isWaitingPay = true;
}
}
//查看卖家
if (orderCodeType == OrderCodeType.SELLER_TYPE){
... ...
... ... @@ -6,6 +6,11 @@ consumer:
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
interval: 15
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
interval: 1440
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayNDayMsgConsumer
... ...
... ... @@ -7,6 +7,11 @@ consumer:
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
interval: 15
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
interval: 1440
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayNDayMsgConsumer
... ...