Authored by wujiexiang

变现订单待付定金时间为2分钟

... ... @@ -25,6 +25,8 @@ public interface DelayTime {
int SELLER_ORDER_WAITING_PAY = 15;
int SELLER_BID_ORDER_WAITING_PYY = 2;
//瑕疵等待用户确认的超时时间,24小时
//修改为48小时 2019-03-01 craig.qin
int MINI_FAULT_CONFIRM_OUTER_TIME_MINUTE=48*60;
... ...
... ... @@ -424,6 +424,7 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
// 当订单状态是待付款, 显示leftTime
OrderAttributes oa = OrderAttributes.getOrderAttributes(buyerOrder.getAttributes());
TimeoutBo timeoutBo = calTimeout(tabType, buyerOrder.getUid(), buyerOrder.getOrderCode(),
buyerOrder.getBidType(),
buyerOrder.getStatus(), buyerOrder.getCreateTime(), oa);
return timeoutBo;
}
... ...
... ... @@ -135,12 +135,12 @@ public abstract class AbsOrderViewService {
}
public TimeoutBo calTimeout(TabType actor, Integer uid, Long orderCode,
public TimeoutBo calTimeout(TabType actor, Integer uid, Long orderCode,int bidType,
Integer orderStatus, Integer createTime, OrderAttributes oa){
TimeoutBo timeoutBo = new TimeoutBo();
OrderTimeoutContext otctx = OrderTimeoutContext.builder()
.actor(actor).uid(uid).orderCode(orderCode)
.orderStatus(orderStatus).createTime(createTime).oa(oa).build();
.orderStatus(orderStatus).createTime(createTime).oa(oa).bidType(bidType).build();
TimeoutWrapper tw = orderTimeoutFactory.create(otctx);
Integer leftTime = null;
//特殊场景 orders_pay无记录时,timeoutBo = null
... ... @@ -192,6 +192,7 @@ public abstract class AbsOrderViewService {
return detailItem.getTimeoutBo();
} else {
return calTimeout(TabType.BUY, uid, orderCode,
bidType,
orderStatusCode,
statusStartTime, oa);
}
... ...
... ... @@ -223,6 +223,7 @@ public class BuyerOrderDetailService extends AbsOrderDetailService implements IO
// 待付款时,剩余时间
TimeoutBo timeoutBo = calTimeout(tabType, buyerOrder.getUid(),
buyerOrder.getOrderCode(), orderStatus.getCode(),
buyerOrder.getBidType(),
buyerOrder.getCreateTime(), oa);
if (Objects.nonNull(timeoutBo)) {
statusDetail.setLeftTime(timeoutBo.getLeftTime());
... ...
... ... @@ -177,7 +177,7 @@ public class SellerBidPublishService {
EventBusPublisher.publishEvent(SellerBidOrderPaySuccessEvent.builder().uid(uid).skup(skup).build());
} else {
OrderCancelEvent orderCancelEvent = OrderCancelEvent.builder().uid(uid)
.orderCode(orderCode).payExpire(DelayTime.SELLER_ORDER_WAITING_PAY)
.orderCode(orderCode).payExpire(DelayTime.SELLER_BID_ORDER_WAITING_PYY)
.actorType(TabType.SELL).cancelType(CancelType.TIME_OUT).build();
EventBusPublisher.publishEvent(orderCancelEvent);
}
... ...
... ... @@ -307,11 +307,14 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
* @return
*/
private OrderDetailInfo.StatusDetail getStatusDetail(SellerOrder order,
int bidType,
SkupStatus skupStatus) {
OrderDetailInfo.StatusDetail statusDetail = OrderDetailInfo.StatusDetail.builder()
.status(skupStatus.getCode())
.statuStr(skupStatus.getDesc())
.detailDesc(skupStatus.getDetailShowDesc())
.detailDesc(skupStatus.getDetailShowDesc(String.valueOf(bidType == OrderConstant.BUYER_BID_TYPE ? OrderInfo.SELLER_BID_PAY_TIMEOUT/60 : OrderInfo.SELLER_PAY_TIMEOUT/60)))
.paymentTips(skupStatus.getPaymentTips())
.build();
... ... @@ -320,6 +323,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
.createTime(order.getCreateTime())
.orderCodeType(OrderCodeType.SELLER_TYPE)
.orderStatus(skupStatus.getCode())
.bidType(bidType)
.calculatePayLeftTime();
Integer leftTime = timeoutBo.getLeftTime();
statusDetail.setLeftTime(leftTime);
... ... @@ -374,8 +378,10 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
OrderDetailInfo orderDetailInfo = new OrderDetailInfo();
orderDetailInfo.setUid(order.getUid());
orderDetailInfo.setOrderCode(getOrderCode(skupStatus, order));
//求购订单类型
orderDetailInfo.setBidType(sellerOrderGoods.getBidType());
Integer storageNum = sellerOrderGoods.getNum();
Integer leftTime = TimeUtils.calLeftTime(OrderInfo.SELLER_PAY_TIMEOUT, order.getCreateTime());
Integer leftTime = TimeUtils.calLeftTime(sellerOrderGoods.isBidSkup() ? OrderInfo.SELLER_BID_PAY_TIMEOUT : OrderInfo.SELLER_PAY_TIMEOUT, order.getCreateTime());
Integer soga = sellerOrderGoods.getAttributes();
SkupType skupType = SkupType.getSkupType(soga);
... ... @@ -391,7 +397,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
orderDetailInfo.setUserAddress(addressInfo);
//卖家
assembleSoldPrdCompute(orderDetailInfo, order.getUid(), sellerOrderGoods.getId());
OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(order, skupStatus);
OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(order, sellerOrderGoods.getBidType(), skupStatus);
orderDetailInfo.setAttributes(soga);
... ... @@ -495,7 +501,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
Long orderCode = buyerOrder.getOrderCode();
int orderStatusCode = orderStatus.getCode();
Integer createTime = buyerOrder.getCreateTime();
TimeoutBo timeoutBo = calTimeout(tabType, buyerUid, orderCode, orderStatusCode, createTime, oa);
TimeoutBo timeoutBo = calTimeout(tabType, buyerUid, orderCode,buyerOrder.getBidType(), orderStatusCode, createTime, oa);
if (Objects.nonNull(timeoutBo)) {
statusDetail.setLeftTime(timeoutBo.getLeftTime());
}
... ... @@ -594,6 +600,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
orderStatus = orderDetailInfo.getStatusDetail().getStatus();
Integer createTime = orderDetailInfo.getSecendLevelCreateTime();
timeoutBo = calTimeout(TabType.SELL, buyerUid, orderCode,
orderDetailInfo.getBidType(),
orderStatus, createTime, oa);
}
Integer leftTime = timeoutBo.getLeftTime();
... ... @@ -639,7 +646,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
SellerOrderGoods sellerOrderGoods = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
SkupStatus skupStatus = SkupStatus.getSkupStatus(sellerOrderGoods.getStatus());
OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(sellerOrder, skupStatus);
OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(sellerOrder,sellerOrderGoods.getBidType(), skupStatus);
OrderDetailInfo orderDetailInfo = new OrderDetailInfo();
orderDetailInfo.setOrderCode(orderCode);
... ...
... ... @@ -203,6 +203,7 @@ public class SellerOrderListService extends AbsOrderListService implements IOrde
TimeoutBo timeoutBo = new SellerOrderTimeoutWrapper().createTime(oli.getSecendLevelCreateTime())
.orderCodeType(orderCodeType)
.orderStatus(orderStatus)
.bidType(oli.getBidType())
.calculatePayLeftTime();
oli.setLeftTime(timeoutBo.getLeftTime());
oli.setTimeLimit(timeoutBo.getTimelimit());
... ... @@ -253,11 +254,12 @@ public class SellerOrderListService extends AbsOrderListService implements IOrde
// 订单中状态显示
orderListInfo.setStatus(skupStatus.getCode());
orderListInfo.setStatuStr(skupStatus.getDesc());
orderListInfo.setBidType(sellerOrderGoods.getBidType());
Integer storageNum = sellerOrderGoods.getNum();
// 当订单状态是待付款, 显示leftTime
if (sellerOrderGoods.getStatus() == SkupStatus.CAN_NOT_SELL.getCode()){
int payTimeLimit = OrderInfo.SELLER_PAY_TIMEOUT;
int payTimeLimit = sellerOrderGoods.isBidSkup() ? OrderInfo.SELLER_BID_PAY_TIMEOUT : OrderInfo.SELLER_PAY_TIMEOUT;
orderListInfo.setLeftTime(TimeUtils.calLeftTime(payTimeLimit, sellerOrder.getCreateTime()));
orderListInfo.setTimeLimit(payTimeLimit);
}
... ...
... ... @@ -783,8 +783,10 @@ public class SellerOrderCancelService {
}
if (SellerOrderStatus.WAITING_PAY.getCode() == status){
//send msg to mq system
event.setPayExpire(DelayTime.SELLER_ORDER_WAITING_PAY);
tradeMqSender.send(TopicConstants.SELLER_ORDER_AUTO_CANCEL, event , DelayTime.SELLER_ORDER_WAITING_PAY);
if (event.getPayExpire() <= 0) {
event.setPayExpire(DelayTime.SELLER_ORDER_WAITING_PAY);
}
tradeMqSender.send(TopicConstants.SELLER_ORDER_AUTO_CANCEL, event , event.getPayExpire());
}
}
... ...
... ... @@ -92,7 +92,7 @@ public class SellerDepositOrderDetailService extends AbsOrderViewService {
OrderAttributes oa = OrderAttributes.getOrderAttributes(pao.getAttributes());
//
TimeoutBo timeout = calTimeout(TabType.BUY, uid, orderCode, pao.getStatus(),
TimeoutBo timeout = calTimeout(TabType.BUY, uid, orderCode,0, pao.getStatus(),
pao.getCreateTime(), oa);
ExpressInfoDetail lastExpressInfoDetail = expressInfoService.getLastExpressInfoDetail(pao);
... ...
... ... @@ -123,7 +123,7 @@ public class SellerDepositOrderListService extends AbsOrderViewService {
.build())
.collect(Collectors.toCollection(()->new ArrayList<>(aogList.size())));
TimeoutBo timeout = calTimeout(TabType.BUY, uid, orderCode, pao.getStatus(),
TimeoutBo timeout = calTimeout(TabType.BUY, uid, orderCode,0, pao.getStatus(),
pao.getCreateTime(), oa);
return SellerDepositOrderListResp.builder()
.uid(uid)
... ...
... ... @@ -35,4 +35,6 @@ public class OrderTimeoutContext {
Integer payTime;
OrderAttributes oa;
int bidType;
}
... ...
... ... @@ -27,6 +27,7 @@ public class OrderTimeoutFactory {
Integer orderStatus = otctx.orderStatus;
Integer createTime = otctx.createTime;
OrderAttributes oa = otctx.oa;
int bidType = otctx.bidType;
boolean isBuyer = actor.equals(TabType.BUY);
boolean isSeller = actor.equals(TabType.SELL);
... ... @@ -59,7 +60,8 @@ public class OrderTimeoutFactory {
tow = new SellerOrderTimeoutWrapper()
.orderCodeType(orderCodeType)
.orderStatus(orderStatus)
.createTime(createTime);
.createTime(createTime)
.bidType(bidType);
}
isPaid = orderStatus == OrderStatus.HAS_PAYED.getCode();
if (isPaid){
... ... @@ -76,6 +78,7 @@ public class OrderTimeoutFactory {
.orderCodeType(orderCodeType)
.orderStatus(orderStatus)
.createTime(createTime)
.bidType(bidType)
;
}
}
... ...
... ... @@ -5,6 +5,7 @@ import com.yohobuy.ufo.model.order.bo.TimeoutBo;
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.OrderConstant;
import com.yohobuy.ufo.model.order.constants.TimeoutCase;
import com.yohoufo.order.mq.DelayTime;
... ... @@ -20,6 +21,7 @@ public class SellerOrderTimeoutWrapper extends AbsTimeoutWrapper{
private OrderCodeType orderCodeType;
private Integer orderStatus;
private int createTime;
private int bidType;
public SellerOrderTimeoutWrapper orderCodeType(OrderCodeType orderCodeType){
this.orderCodeType = orderCodeType;
... ... @@ -36,6 +38,15 @@ public class SellerOrderTimeoutWrapper extends AbsTimeoutWrapper{
return this;
}
public SellerOrderTimeoutWrapper bidType(int bidType) {
this.bidType = bidType;
return this;
}
public boolean isBidType() {
return bidType == OrderConstant.BUYER_BID_TYPE;
}
/**
*
* @return
... ... @@ -61,7 +72,7 @@ public class SellerOrderTimeoutWrapper extends AbsTimeoutWrapper{
//查看卖家
if (orderCodeType == OrderCodeType.SELLER_TYPE){
isWaitingPay = orderStatus == SkupStatus.CAN_NOT_SELL.getCode();
if (isWaitingPay)timeout = OrderInfo.SELLER_PAY_TIMEOUT;
if (isWaitingPay) timeout = isBidType() ? OrderInfo.SELLER_BID_PAY_TIMEOUT : OrderInfo.SELLER_PAY_TIMEOUT;
}
if(isWaitingPay){
... ...
... ... @@ -54,6 +54,11 @@ consumer:
delay:
interval: 15
- class: com.yohoufo.order.mq.consumer.SellerOrderAutoCancelDelayMsgConsumer
topic: sellerOrder.autoCancel
delay:
interval: 2
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
... ...
... ... @@ -53,6 +53,11 @@ consumer:
delay:
interval: 15
- class: com.yohoufo.order.mq.consumer.SellerOrderAutoCancelDelayMsgConsumer
topic: sellerOrder.autoCancel
delay:
interval: 2
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelayMsgConsumer
topic: buyerOrder.autoCancel
delay:
... ...