Authored by wujiexiang

求购 -创建skup

... ... @@ -19,7 +19,7 @@
</sql>
<insert id="insert" parameterType="com.yohoufo.dal.product.model.BidStoragePrice">
insert into bid_storage_price (id, skup, product_id, goods_id,
storage_id, bid_uid, price, update_time, create_time, skup_type, status)
storage_id, bid_uid, price, update_time, create_time, attribute, status)
values (#{id,jdbcType=INTEGER}, #{skup,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, #{goodsId,jdbcType=INTEGER},
#{storageId,jdbcType=INTEGER}, #{bidUid,jdbcType=INTEGER},
#{price,jdbcType=DECIMAL}, #{updateTime,jdbcType=INTEGER},
... ...
package com.yohoufo.order.model.bo;
import com.yohobuy.ufo.model.order.bo.TimeoutBo;
public interface DetailItem {
/**
... ... @@ -7,8 +9,5 @@ public interface DetailItem {
*/
String getDetailDesc();
/**
* 剩余时间
*/
int getLeftTime();
TimeoutBo getTimeoutBo();
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yohoufo.order.mq;
/**
* Created by chenchao on 2018/10/23.
* 延时时间,单位为分
*/
public interface DelayTime {
... ...
... ... @@ -170,6 +170,9 @@ public class BuyerBidDepositPaymentService extends AbstractOrderPaymentService {
@Override
public boolean isOrderWaitingPay(OrderInfo orderInfo) {
if (orderInfo.getStatus() != null && orderInfo.getStatus().intValue() == OrderStatus.WAITING_PAY_DEPOSIT.getCode()) {
return true;
}
return false;
}
... ...
... ... @@ -13,8 +13,10 @@ import com.yohoufo.dal.order.QualityCheckMapper;
import com.yohoufo.dal.order.SellerOrderMapper;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.constants.ViewType;
import com.yohoufo.order.model.bo.DetailItem;
import com.yohoufo.order.model.request.OrderListRequest;
import com.yohoufo.order.service.IOrderListService;
import com.yohoufo.order.service.support.OrderStatusDetailItemFactory;
import com.yohoufo.order.utils.BuyerOrderUtils;
import com.yohoufo.order.utils.OrderAssist;
import com.yohoufo.order.utils.SellerGoodsHelper;
... ... @@ -59,6 +61,8 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
@Autowired
SellerOrderMapper sellerOrderMapper;
@Autowired
OrderStatusDetailItemFactory orderStatusDetailItemFactory;
/**
* 获取鉴定视频
... ... @@ -323,10 +327,11 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
orderListInfo.setStatuStr(orderStatus.getStatusStr(tabType));
TimeoutBo timeoutBo = calcTimeout(buyerOrder,orderStatus,tabType);
// 当订单状态是待付款, 显示leftTime
OrderAttributes oa = OrderAttributes.getOrderAttributes(oac);
TimeoutBo timeoutBo = calTimeout(tabType, buyerUid, orderCode,
buyerOrder.getStatus(), buyerOrder.getCreateTime(), oa);
// OrderAttributes oa = OrderAttributes.getOrderAttributes(oac);
// TimeoutBo timeoutBo = calTimeout(tabType, buyerUid, orderCode,
// buyerOrder.getStatus(), buyerOrder.getCreateTime(), oa);
Integer leftTime = timeoutBo.getLeftTime();
orderListInfo.setLeftTime(leftTime);
orderListInfo.setTimeLimit(timeoutBo.getTimelimit());
... ... @@ -337,6 +342,7 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
buyerOrder.getUid(), orderListInfo.getOrderCode());
return null;
}
OrderAttributes oa = OrderAttributes.getOrderAttributes(oac);
// 按钮显示
List<ButtonShowBo> buttonShowBos = convertOperatable(orderStatus.getListButtons(tabType, oa));
orderListInfo.setButtons(formatButtons(buyerOrder, buyerOrderGoods, buttonShowBos, ViewType.LIST));
... ... @@ -388,6 +394,19 @@ public abstract class AbsOrderListService extends AbsOrderViewService implements
return orderListInfo;
}
private TimeoutBo calcTimeout(BuyerOrder buyerOrder, OrderStatus orderStatus, TabType tabType) {
DetailItem detailItem = orderStatusDetailItemFactory.get(buyerOrder, orderStatus, tabType);
if (detailItem != null) {
return detailItem.getTimeoutBo();
} else {
// 当订单状态是待付款, 显示leftTime
OrderAttributes oa = OrderAttributes.getOrderAttributes(buyerOrder.getAttributes());
TimeoutBo timeoutBo = calTimeout(tabType, buyerOrder.getUid(), buyerOrder.getOrderCode(),
buyerOrder.getStatus(), buyerOrder.getCreateTime(), oa);
return timeoutBo;
}
}
/**
* 获取返回结果
* @param elpNode
... ...
... ... @@ -201,7 +201,7 @@ public class BuyerOrderDetailService extends AbsOrderDetailService implements IO
DetailItem detailItem = orderStatusDetailItemFactory.get(buyerOrder, orderStatus, tabType);
if (detailItem != null) {
statusDetail.setDetailDesc(detailItem.getDetailDesc());
statusDetail.setLeftTime(detailItem.getLeftTime());
statusDetail.setLeftTime(detailItem.getTimeoutBo().getLeftTime());
} else {
internalSetStatusDetail(statusDetail, skupType, buyerOrder, orderStatus, tabType);
}
... ...
... ... @@ -464,7 +464,7 @@ public class SellerOrderDetailService extends AbsOrderDetailService implements I
DetailItem detailItem = orderStatusDetailItemFactory.get(buyerOrder, orderStatus, tabType);
if (detailItem != null) {
statusDetail.setDetailDesc(detailItem.getDetailDesc());
statusDetail.setLeftTime(detailItem.getLeftTime());
statusDetail.setLeftTime(detailItem.getTimeoutBo().getLeftTime());
} else {
internalSetStatusDetail(statusDetail, skupType, buyerOrder, orderStatus, tabType);
}
... ...
package com.yohoufo.order.service.support;
import com.yohobuy.ufo.model.order.bo.TimeoutBo;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohoufo.dal.order.model.BuyerOrder;
... ... @@ -37,7 +38,7 @@ public class OrderStatusDetailItemFactory {
int createTime = buyerOrder.getCreateTime();
switch (orderStatus) {
case WAITING_PAY_DEPOSIT:
detailItem = new WaitingPayDepositItem(createTime, tabType);
detailItem = new WaitingPayDepositItem(createTime);
break;
case BIDING:
BidOrderMetaBo bidOrderMetaBo = buyerOrderMetaMapperSupport.selectByMetaKey(buyerOrder.getUid(), buyerOrder.getOrderCode(), MetaKey.BID_KEY, BidOrderMetaBo.class);
... ... @@ -90,27 +91,40 @@ public class OrderStatusDetailItemFactory {
public final static String CANCEL_TIMEOUT_BEFORE_PAY_SELLER_DESC = "买家付款超时,系统取消订单,您已获得买家定金赔偿";
protected int createTime;
//操作限制 单位秒
private int timeOutLimit;
protected TabType tabType;
public AbstractOrderDetailItem() {
this(0, TabType.BUY);
this(0, 0, TabType.BUY);
}
public AbstractOrderDetailItem(TabType tabType) {
this(0, tabType);
this(0, 0, tabType);
}
public AbstractOrderDetailItem(int createTime, TabType tabType) {
this.createTime = createTime;
this.tabType = tabType;
public AbstractOrderDetailItem(int createTime, int timeOutLimit) {
this(createTime, timeOutLimit, TabType.BUY);
}
public int getLeftTime() {
return 0;
public AbstractOrderDetailItem(int createTime, int timeOutLimit, TabType tabType) {
this.createTime = createTime;
this.timeOutLimit = timeOutLimit;
this.tabType = tabType;
}
protected int calLeftTime(int timeout) {
return TimeUtils.calLeftTime(timeout, this.createTime);
@Override
public TimeoutBo getTimeoutBo() {
TimeoutBo timeoutBo = new TimeoutBo();
timeoutBo.setLeftTime(0);
if (timeOutLimit > 0 && createTime > 0) {
timeoutBo.setTimelimit(timeOutLimit);
int leftTime = TimeUtils.calLeftTime(timeOutLimit, this.createTime);
if (leftTime > 0) {
timeoutBo.setLeftTime(leftTime);
}
}
return timeoutBo;
}
}
... ... @@ -119,19 +133,14 @@ public class OrderStatusDetailItemFactory {
* 待付定金
*/
private class WaitingPayDepositItem extends AbstractOrderDetailItem {
public WaitingPayDepositItem(int createTime, TabType tabType) {
super(createTime, tabType);
public WaitingPayDepositItem(int createTime) {
super(createTime, DelayTime.BUYER_ORDER_WAITING_PAY_DEPOSIT * 60);
}
@Override
public String getDetailDesc() {
return String.format(WAITING_PAY_DEPOSIT_DESC, DelayTime.BUYER_ORDER_WAITING_PAY_DEPOSIT);
}
@Override
public int getLeftTime() {
return calLeftTime(DelayTime.BUYER_ORDER_WAITING_PAY_DEPOSIT);
}
}
... ... @@ -157,7 +166,7 @@ public class OrderStatusDetailItemFactory {
*/
private class WaitingPayItem extends AbstractOrderDetailItem {
public WaitingPayItem(int createTime, TabType tabType) {
super(createTime, tabType);
super(createTime, DelayTime.BUYER_BID_ORDER_WAITING_PAY * 60, tabType);
}
@Override
... ... @@ -171,11 +180,6 @@ public class OrderStatusDetailItemFactory {
return EMPTY_DESC;
}
}
@Override
public int getLeftTime() {
return calLeftTime(DelayTime.BUYER_BID_ORDER_WAITING_PAY);
}
}
private class CancelBeforePayItem extends AbstractOrderDetailItem {
... ...