Authored by wujiexiang

Merge branch 'dev_bid' into test6.9.13

Conflicts:
	order/src/main/java/com/yohoufo/order/service/impl/BuyerOrderServiceImpl.java
Showing 32 changed files with 554 additions and 139 deletions
package com.yohoufo.order.common;
public enum Operator {
/**
* 系统
*/
SYSTEM,
/**
* 用户
*/
USER,
/**
* 客服
*/
CS;
}
... ...
... ... @@ -117,7 +117,7 @@ public class BuyerBidController {
BuyerBidPublishRequest req = BuyerBidPublishRequest.builder().uid(uid).storageId(storage_id).addressId(address_id)
.skupType(SkupType.IN_STOCK.getCode())
.price(priceComputePrepareProcessor.checkAndAcquireSalePrice(price, SkupType.IN_STOCK))
.days(bidTimeLimit.getDays())
.day(bidTimeLimit.getDays())
.channelNo(channelNo)
.clientType(clientType)
.build();
... ...
package com.yohoufo.order.event;
import com.yohoufo.common.alarm.Event;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BuyerOrderDelayCancelEvent extends Event {
private int uid;
private long orderCode;
private String topic;
// 用用于重试,发延迟消息
private int delayTime;
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yohoufo.order.model;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.common.Operator;
import com.yohoufo.order.event.OrderCancelEvent;
import lombok.*;
... ... @@ -13,8 +14,8 @@ import lombok.*;
public class RequestedCancelEventStatusChangeBuyerOrder extends RequestedStatusChangeBuyerOrder {
OrderCancelEvent orderCancelEvent;
public RequestedCancelEventStatusChangeBuyerOrder(BuyerOrder buyerOrder, OrderStatus sourceStatus, OrderStatus targetStatus, Trigger trigger, OrderCancelEvent orderCancelEvent) {
super(buyerOrder, sourceStatus, targetStatus, trigger);
public RequestedCancelEventStatusChangeBuyerOrder(BuyerOrder buyerOrder, OrderStatus sourceStatus, OrderStatus targetStatus, Operator operator, OrderCancelEvent orderCancelEvent) {
super(buyerOrder, sourceStatus, targetStatus, operator);
this.orderCancelEvent = orderCancelEvent;
}
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yohoufo.order.model;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.common.Operator;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;
... ... @@ -14,11 +15,5 @@ public class RequestedStatusChangeBuyerOrder {
protected OrderStatus sourceStatus;
protected OrderStatus targetStatus;
//触发者 默认为用户
protected Trigger trigger;
public static enum Trigger{
USER,
CS,
SYS_AUTO
}
protected Operator operator;
}
... ...
... ... @@ -14,5 +14,5 @@ public class BidOrderMetaBo {
private double depositAmount;
private int payment;
//求购天数,从支付定金开始算,未变形自动取消
private int days;
private int day;
}
\ No newline at end of file
... ...
... ... @@ -29,7 +29,7 @@ public class BuyerBidPublishRequest {
/**
* 求购时限 单位天
*/
private int days;
private int day;
/**
* 地址信息,不需要根据addressId查询,直接使用
... ...
package com.yohoufo.order.mq.consumer;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.IBuyerOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderAutoCancelDelay15DayMsgConsumer extends AbsOrderAutoCancelDelayMsgConsumer {
@Autowired
private IBuyerOrderService buyerOrderService;
@Override
public String getTopic() {
return "buyerOrder.autoCancelAfter15Day";
}
@Override
public void cancel(OrderCancelEvent event) {
int uid = event.getUid();
long orderCode = event.getOrderCode();
OrderRequest req = OrderRequest.builder().uid(uid).orderCode(orderCode).build();
buyerOrderService.cancelBidByAuto(req);
}
@Override
public void sendAgain(OrderCancelEvent cancelBean) {
}
}
... ...
package com.yohoufo.order.mq.consumer;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.IBuyerOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderAutoCancelDelay1DayMsgConsumer extends AbsOrderAutoCancelDelayMsgConsumer {
@Autowired
private IBuyerOrderService buyerOrderService;
@Override
public String getTopic() {
return "buyerOrder.autoCancelAfter1Day";
}
@Override
public void cancel(OrderCancelEvent event) {
int uid = event.getUid();
long orderCode = event.getOrderCode();
OrderRequest req = OrderRequest.builder().uid(uid).orderCode(orderCode).build();
buyerOrderService.cancelBidByAuto(req);
}
@Override
public void sendAgain(OrderCancelEvent cancelBean) {
}
}
... ...
package com.yohoufo.order.mq.consumer;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.IBuyerOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderAutoCancelDelay30DayMsgConsumer extends AbsOrderAutoCancelDelayMsgConsumer {
@Autowired
private IBuyerOrderService buyerOrderService;
@Override
public String getTopic() {
return "buyerOrder.autoCancelAfter30Day";
}
@Override
public void cancel(OrderCancelEvent event) {
int uid = event.getUid();
long orderCode = event.getOrderCode();
OrderRequest req = OrderRequest.builder().uid(uid).orderCode(orderCode).build();
buyerOrderService.cancelBidByAuto(req);
}
@Override
public void sendAgain(OrderCancelEvent cancelBean) {
}
}
... ...
package com.yohoufo.order.mq.consumer;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.IBuyerOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderAutoCancelDelay3DayMsgConsumer extends AbsOrderAutoCancelDelayMsgConsumer {
@Autowired
private IBuyerOrderService buyerOrderService;
@Override
public String getTopic() {
return "buyerOrder.autoCancelAfter3Day";
}
@Override
public void cancel(OrderCancelEvent event) {
int uid = event.getUid();
long orderCode = event.getOrderCode();
OrderRequest req = OrderRequest.builder().uid(uid).orderCode(orderCode).build();
buyerOrderService.cancelBidByAuto(req);
}
@Override
public void sendAgain(OrderCancelEvent cancelBean) {
}
}
... ...
package com.yohoufo.order.mq.consumer;
import com.yohoufo.order.event.OrderCancelEvent;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.IBuyerOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderAutoCancelDelay7DayMsgConsumer extends AbsOrderAutoCancelDelayMsgConsumer {
@Autowired
private IBuyerOrderService buyerOrderService;
@Override
public String getTopic() {
return "buyerOrder.autoCancelAfter7Day";
}
@Override
public void cancel(OrderCancelEvent event) {
int uid = event.getUid();
long orderCode = event.getOrderCode();
OrderRequest req = OrderRequest.builder().uid(uid).orderCode(orderCode).build();
buyerOrderService.cancelBidByAuto(req);
}
@Override
public void sendAgain(OrderCancelEvent cancelBean) {
}
}
... ...
... ... @@ -11,6 +11,7 @@ import com.yohoufo.dal.order.BuyerOrderGoodsMapper;
import com.yohoufo.dal.order.BuyerOrderMapper;
import com.yohoufo.dal.order.SellerOrderGoodsMapper;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.common.Operator;
import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.model.bo.BidOrderMetaBo;
... ... @@ -89,7 +90,10 @@ public abstract class AbstractBuyerOrderStateChanger<T extends RequestedStatusCh
*/
protected void change(T statusChangeBuyerOrder) throws UfoServiceException {
BuyerOrder buyerOrder = statusChangeBuyerOrder.getBuyerOrder();
logger.info("[{}] status need to be changed from {} to {}", buyerOrder.getOrderCode(), statusChangeBuyerOrder.getSourceStatus(), statusChangeBuyerOrder.getTargetStatus());
Operator operator = statusChangeBuyerOrder.getOperator();
logger.info("[{}] status need to be changed from {} to {} by operator:{}", buyerOrder.getOrderCode(),
statusChangeBuyerOrder.getSourceStatus(), statusChangeBuyerOrder.getTargetStatus(),
operator);
if (beforeChange(statusChangeBuyerOrder)) {
if (doChange(statusChangeBuyerOrder)) {
afterChange(statusChangeBuyerOrder);
... ... @@ -98,7 +102,14 @@ public abstract class AbstractBuyerOrderStateChanger<T extends RequestedStatusCh
cacheCleaner.cleanList(buyerOrder.getUid(), TabType.BUY.getValue());
} else {
logger.warn("[{}] change order fail, order status has changed", buyerOrder.getOrderCode());
throwServiceException("订单状态已变更");
switch (operator) {
case USER:
case CS:
throwServiceException("订单状态已变更");
case SYSTEM:
//nothing
break;
}
}
} else {
logger.warn("[{}] before condition is not satisfied", buyerOrder.getOrderCode());
... ...
... ... @@ -3,12 +3,14 @@ package com.yohoufo.order.service;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.bo.OrderInfo;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohoufo.order.model.request.PaymentRequest;
import com.yohoufo.order.model.response.PrepayResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.util.Set;
public abstract class AbstractOrderPaymentService {
... ... @@ -33,6 +35,15 @@ public abstract class AbstractOrderPaymentService {
public abstract OrderInfo getOrderInfo(long orderCode, int uid);
public abstract OrderInfo getOrderInfo(long orderCode);
/**
* 返回指定的支付方式
*
* @param orderCode
* @return null 没有指定方式,所有都可以
*/
public Set<Payment> getAllowedPayments(long orderCode) {
return null;
}
/**
* 检查状态
... ...
package com.yohoufo.order.service;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Sets;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.bo.OrderInfo;
import com.yohobuy.ufo.model.order.common.OrderCodeType;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.constants.OrderConstant;
import com.yohoufo.dal.order.BuyerOrderGoodsMapper;
import com.yohoufo.dal.order.BuyerOrderMapper;
... ... @@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
/**
* 求购定金处理 支付、退款
... ... @@ -75,6 +78,16 @@ public class BuyerBidDepositPaymentService extends AbstractOrderPaymentService {
}
/**
* 只能支付宝、微信支付
*
* @param orderCode
* @return null 没有指定方式,所有都可以
*/
public Set<Payment> getAllowedPayments(long orderCode) {
return Sets.newHashSet(Payment.ALIPAY, Payment.WECHAT);
}
/**
* 退款使用
* @param orderCode
* @return
... ...
... ... @@ -6,6 +6,7 @@ import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.dal.order.BuyerOrderMapper;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.common.Operator;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.service.impl.statechange.*;
import com.yohoufo.order.utils.LoggerUtils;
... ... @@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
... ... @@ -56,20 +56,27 @@ public class BuyerOrderStateChangers {
buyerOrderBidingToWaitingPayChanger);
}
public void selectOneToChange(int uid, long orderCode, OrderStatus sourceStatus, OrderStatus targetStatus) {
this.selectOneToChange(RequestedStatusChangeBuyerOrder.builder()
.buyerOrder(getBuyerOrder(uid, orderCode))
.sourceStatus(sourceStatus).targetStatus(targetStatus)
.trigger(RequestedStatusChangeBuyerOrder.Trigger.USER)
.operator(Operator.USER)
.build());
}
public void selectOneToChange(BuyerOrder buyerOrder, OrderStatus sourceStatus, OrderStatus targetStatus, RequestedStatusChangeBuyerOrder.Trigger trigger) {
selectOneToChange(RequestedStatusChangeBuyerOrder.builder().buyerOrder(buyerOrder).sourceStatus(sourceStatus).targetStatus(targetStatus).trigger(trigger).build());
public void selectOneToChange(int uid, long orderCode, OrderStatus sourceStatus, OrderStatus targetStatus, Operator operator) {
this.selectOneToChange(RequestedStatusChangeBuyerOrder.builder()
.buyerOrder(getBuyerOrder(uid, orderCode))
.sourceStatus(sourceStatus).targetStatus(targetStatus)
.operator(operator)
.build());
}
public void selectOneToChange(BuyerOrder buyerOrder, OrderStatus sourceStatus, OrderStatus targetStatus) {
selectOneToChange(RequestedStatusChangeBuyerOrder.builder().buyerOrder(buyerOrder).sourceStatus(sourceStatus).targetStatus(targetStatus).build());
}
/**
* 选择一个变更器进行变更
*
... ...
... ... @@ -35,6 +35,12 @@ public interface IBuyerOrderService {
void cancelByAuto(OrderRequest orderRequest);
/**
* 取消求购订单
* @param orderRequest
*/
void cancelBidByAuto(OrderRequest orderRequest);
/**
* 提交订单
* @param orderRequest
*/
... ...
package com.yohoufo.order.service;
import com.google.common.collect.Lists;
import com.yohobuy.ufo.model.order.bo.OrderInfo;
import com.yohobuy.ufo.model.order.common.OrderAttributes;
import com.yohobuy.ufo.model.order.common.OrderCodeType;
import com.yohobuy.ufo.model.order.common.PayChannelType;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.constants.OrderConstant;
import com.yohoufo.dal.order.AppraiseOrderMapper;
import com.yohoufo.dal.order.BuyerOrderGoodsMapper;
import com.yohoufo.dal.order.BuyerOrderMapper;
... ... @@ -12,6 +15,7 @@ import com.yohoufo.dal.order.model.AppraiseOrder;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.dal.order.model.BuyerOrderGoods;
import com.yohoufo.dal.order.model.SellerOrderGoods;
import com.yohoufo.order.service.handler.payment.OrderPaymentServiceFactory;
import com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator;
import com.yohoufo.order.service.support.codegenerator.bean.CodeMeta;
import org.apache.commons.lang3.tuple.Pair;
... ... @@ -19,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
@Component
public class PaymentSupportService {
... ... @@ -39,6 +44,9 @@ public class PaymentSupportService {
@Autowired
AppraiseOrderMapper appraiseOrderMapper;
@Autowired
OrderPaymentServiceFactory orderPaymentServiceFactory;
/**
* 是否禁止虚拟支付
... ... @@ -114,7 +122,17 @@ public class PaymentSupportService {
return Lists.newArrayList(PayChannelType.REAL, PayChannelType.VIRTUAL);
}
/**
* 特定的支付方式
*
* @param orderCode
* @return
*/
public Set<Payment> getAllowedPayments(long orderCode) {
AbstractOrderPaymentService abstractOrderPaymentService = orderPaymentServiceFactory.get(orderCode, OrderConstant.PAY_LEVEL_COMMON);
return abstractOrderPaymentService.getAllowedPayments(orderCode);
}
private Pair<Integer, Integer> getOrderAttributes(long orderCode){
... ...
package com.yohoufo.order.service.handler;
import com.google.common.eventbus.Subscribe;
import com.yohoufo.common.alarm.IEventHandler;
import com.yohoufo.order.event.BuyerOrderDelayCancelEvent;
import com.yohoufo.order.mq.producer.TradeMqSender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BuyerOrderDelayCancelEventHandler implements IEventHandler<BuyerOrderDelayCancelEvent> {
final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private TradeMqSender tradeMqSender;
@Override
@Subscribe
public void handle(BuyerOrderDelayCancelEvent event) {
logger.info("Subscribe Buyer Order Delay Cancel Event, event {}", event);
tradeMqSender.send(event.getTopic(), event, event.getDelayTime());
}
}
... ...
... ... @@ -167,7 +167,7 @@ public class BuyerBidPriceService {
return new BidOrderChangePriceContext(buyerOrder, sellerOrderGoods,
Pair.of(addressInfo, hiddenAddressInfo),
request.getPrice(), bidOrderMetaBo.getDays());
request.getPrice(), bidOrderMetaBo.getDay());
}
... ... @@ -223,17 +223,17 @@ public class BuyerBidPriceService {
//新求购价
public BigDecimal newPrice;
//求购天数
public int days;
public int day;
public BidOrderChangePriceContext(BuyerOrder buyerOrder, SellerOrderGoods sellerOrderGoods,
Pair<AddressInfo, AddressInfo> userAddressPair,
BigDecimal newPrice,
int days) {
int day) {
this.buyerOrder = buyerOrder;
this.sellerOrderGoods = sellerOrderGoods;
this.userAddressPair = userAddressPair;
this.newPrice = newPrice;
this.days = days;
this.day = day;
}
}
}
... ...
... ... @@ -8,6 +8,7 @@ import com.yohobuy.ufo.model.order.constants.OrderConstant;
import com.yohobuy.ufo.model.order.constants.RegionEnum;
import com.yohobuy.ufo.model.order.constants.SkupType;
import com.yohobuy.ufo.model.order.vo.AddressInfo;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.dal.order.model.SellerOrderGoods;
import com.yohoufo.order.charge.ChargeContext;
... ... @@ -17,6 +18,7 @@ import com.yohoufo.order.charge.model.ActivityPrice;
import com.yohoufo.order.charge.model.ChargeParam;
import com.yohoufo.order.charge.model.ChargeResult;
import com.yohoufo.order.constants.ActivityTypeEnum;
import com.yohoufo.order.event.BuyerOrderDelayCancelEvent;
import com.yohoufo.order.model.bo.*;
import com.yohoufo.order.model.dto.BidPublishResult;
import com.yohoufo.order.model.dto.BuyerOrderSubmitResult;
... ... @@ -27,6 +29,8 @@ import com.yohoufo.order.model.request.ShoppingRequest;
import com.yohoufo.order.model.response.BidComputeResponse;
import com.yohoufo.order.model.response.BidPrePublishResponse;
import com.yohoufo.order.model.response.BidPublishResponse;
import com.yohoufo.order.mq.DelayTime;
import com.yohoufo.order.mq.TopicConstants;
import com.yohoufo.order.service.BuyerOrderStateChangers;
import com.yohoufo.order.service.cache.CacheCleaner;
import com.yohoufo.order.service.cache.CacheKeyBuilder;
... ... @@ -277,7 +281,7 @@ public class BuyerBidPublishService {
newSellerOrderGoods(skup, goodsInfo.getProductId(), bidPrice.getPrice()),
chargeContext);
//求购 定金
BidOrderMetaBo bidOrderMetaBo = BidOrderMetaBo.builder().depositAmount(deposit.getAmount()).days(request.getDays()).build();
BidOrderMetaBo bidOrderMetaBo = BidOrderMetaBo.builder().depositAmount(deposit.getAmount()).day(request.getDay()).build();
// 创建买家订单
BuyerOrderSubmitResult submitResult = buyerBidOrderSubmitService.submitOrder(orderBuilder, bidOrderMetaBo);
... ... @@ -321,6 +325,8 @@ public class BuyerBidPublishService {
* @param bidPublishResult
*/
public void processAfterBidPublish(int uid, BidPublishResult bidPublishResult) {
//自动取消事件
fireAutoCancelAsyncEvent(uid, bidPublishResult);
//触发事件
fireCreateAsyncEvent(uid, bidPublishResult);
//clean cache
... ... @@ -329,6 +335,16 @@ public class BuyerBidPublishService {
cacheCleaner.delete(Arrays.asList(CacheKeyBuilder.buyerOrderNums(uid)));
}
private void fireAutoCancelAsyncEvent(int uid, BidPublishResult bidPublishResult) {
//自动取消事件
BuyerOrderDelayCancelEvent buyerCancelEvent = BuyerOrderDelayCancelEvent.builder().uid(uid)
.orderCode(bidPublishResult.getOrderCode())
.topic(TopicConstants.BUYER_ORDER_AUTO_CANCEL)
.delayTime(DelayTime.BUYER_ORDER_WAITING_PAY)
.build();
EventBusPublisher.publishEvent(buyerCancelEvent);
}
private void fireCreateAsyncEvent(int uid, BidPublishResult bidPublishResult) {
//创建事件
BuyerOrder buyerOrder = new BuyerOrder();
... ...
... ... @@ -164,7 +164,7 @@ public class BuyerOrderDetailService extends AbsOrderDetailService implements IO
if (buyerOrder.isBuyerBidOrder() && orderStatus == OrderStatus.BIDING.getCode()) {
//求购中状态
BidOrderMetaBo bidOrderMetaBo = buyerOrderMetaMapperSupport.selectByMetaKey(buyerOrder.getUid(), buyerOrder.getOrderCode(), MetaKey.BID_KEY, BidOrderMetaBo.class);
detailDesc = String.format(temp, bidOrderMetaBo.getDays());
detailDesc = String.format(temp, bidOrderMetaBo.getDay());
} else if (buyerOrder.isBuyerBidOrder() && orderStatus == OrderStatus.WAITING_PAY.getCode()) {
//求购 待付尾款
detailDesc = OrderDetailDesc.BID_NO_PAY;
... ...
... ... @@ -23,9 +23,12 @@ import com.yohoufo.dal.product.ProductMapper;
import com.yohoufo.dal.product.model.Product;
import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.common.DelStatus;
import com.yohoufo.order.common.Operator;
import com.yohoufo.order.event.*;
import com.yohoufo.order.model.OperateTransferExpressInfo;
import com.yohoufo.order.model.PayQueryBo;
import com.yohoufo.order.model.RequestedCancelEventStatusChangeBuyerOrder;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.model.request.SaveQualityCheckInfoRequest;
import com.yohoufo.order.model.response.OrderSummaryResp;
... ... @@ -141,6 +144,9 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
@Autowired
private BuyerOrderAssistant buyerOrderAssistant;
@Autowired
private BuyerOrderStateChangers buyerOrderStateChangers;
/**
* 提交订单
* @param orderRequest
... ... @@ -375,22 +381,45 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
@Override
public void cancelByCS(int uid, long orderCode) {
buyerOrderCancelService.cancelForSellerShamSendOut(uid, orderCode,OrderStatus.SELLER_SHAM_SEND_OUT);
buyerOrderCancelService.cancelForSellerShamSendOut(uid, orderCode, OrderStatus.SELLER_SHAM_SEND_OUT);
}
@Override
public void cancelByAuto(OrderRequest orderRequest){
public void cancelByAuto(OrderRequest orderRequest) {
logger.info("Buyer Order cancel time out ,(OrderRequest) {}", orderRequest);
DataNode node = checkBase(orderRequest);
BuyerOrder buyerOrder = node.buyerOrderInDB;
if (buyerOrder.isBuyerBidOrder()) {
doCancelBidByAuto(buyerOrder, orderRequest.getOrderCancelEvent(), OrderStatus.getOrderStatus(buyerOrder.getStatus()), OrderStatus.BUYER_CANCEL_TIMEOUT);
} else {
doCancelByAuto(orderRequest, node);
}
}
private void doCancelByAuto(OrderRequest orderRequest, DataNode node) {
OrderStatus expectStatus = OrderStatus.WAITING_PAY;
OrderStatus targetStatus = OrderStatus.BUYER_CANCEL_TIMEOUT;
DataNode node = checkBase(orderRequest);
cancelBeforePaid(orderRequest, node, expectStatus, targetStatus);
//取消事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(node.buyerOrderInDB, BuyerOrderChangeEvent.BizCase.CANCEL_BYSYSAUTO, targetStatus));
//记录状态变更信息
logger.info("in cancelByAuto record status change, orderRequest {}", orderRequest);
orderStatusFlowService.addAsy(orderRequest.getOrderCode(),targetStatus.getCode());
orderStatusFlowService.addAsy(orderRequest.getOrderCode(), targetStatus.getCode());
}
@Override
public void cancelBidByAuto(OrderRequest orderRequest) {
buyerOrderStateChangers.selectOneToChange(orderRequest.getUid(), orderRequest.getOrderCode(), OrderStatus.BIDING, OrderStatus.BUYER_CANCEL_TIMEOUT, Operator.SYSTEM);
}
private void doCancelBidByAuto(BuyerOrder buyerOrder, OrderCancelEvent orderCancelEvent, OrderStatus sourceStatus, OrderStatus targetStatus) {
RequestedCancelEventStatusChangeBuyerOrder statusChangeBuyerOrder = new RequestedCancelEventStatusChangeBuyerOrder(buyerOrder,
sourceStatus,
targetStatus,
Operator.SYSTEM,
orderCancelEvent);
buyerOrderStateChangers.selectOneToChange(statusChangeBuyerOrder);
}
/**
... ... @@ -429,9 +458,32 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
boolean useDepositGoods = node.useDepositGoods;
switch (expectStatus){
case WAITING_PAY_DEPOSIT:
targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_PAY;
buyerOrderStateChangers.selectOneToChange(buyerOrder, OrderStatus.WAITING_PAY_DEPOSIT, targetStatus);
break;
case BIDING:
targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_PAY;
//求购中取消
buyerOrderStateChangers.selectOneToChange(buyerOrder, OrderStatus.BIDING, targetStatus);
break;
case WAITING_PAY:
targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_PAY;
cancelBeforePaid(orderRequest, node, expectStatus, targetStatus);
if (buyerOrder.isBuyerBidOrder()) {
RequestedCancelEventStatusChangeBuyerOrder statusChangeBuyerOrder = new RequestedCancelEventStatusChangeBuyerOrder(buyerOrder,
expectStatus,
OrderStatus.BUYER_CANCEL_BEFORE_PAY,
Operator.USER,
orderRequest.getOrderCancelEvent());
buyerOrderStateChangers.selectOneToChange(statusChangeBuyerOrder);
} else {
targetStatus = OrderStatus.BUYER_CANCEL_BEFORE_PAY;
cancelBeforePaid(orderRequest, node, expectStatus, targetStatus);
//取消事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
orderStatusFlowService.addAsy(orderCode, targetStatus.getCode());
}
break;
case HAS_PAYED:
BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(uid, orderCode);
... ... @@ -451,6 +503,9 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
asyncUnlockDepositGoods(buyerOrder.getSellerUid(), node.depositCodeOfSkup);
}
}
//取消事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
orderStatusFlowService.addAsy(orderCode,targetStatus.getCode());
break;
case SELLER_SEND_OUT:
bog = buyerOrderGoodsMapper.selectByOrderCode(uid = orderRequest.getUid(),
... ... @@ -466,6 +521,9 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
.depositCode(node.depositCodeOfSellerUsingDeliver)
.build();
buyerOrderCancelService.cancel(bdre);
//取消事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
orderStatusFlowService.addAsy(orderCode,targetStatus.getCode());
break;
default:
logger.warn("in buyer cancel fail uid {} order code {} expectStatus {}",
... ... @@ -474,9 +532,6 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
}
//记录状态变更信息
logger.info("in doCancel record status {} change to {}, orderRequest {}", expectStatus, targetStatus, orderRequest);
//取消事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.CANCEL_BYBUYER, targetStatus));
orderStatusFlowService.addAsy(orderCode,targetStatus.getCode());
}
private void asyncUnlockDepositGoods(Integer sellerUid,String depositCode){
... ...
package com.yohoufo.order.service.impl;
import com.google.common.collect.Lists;
import com.yoho.core.common.utils.YHMath;
import com.yohobuy.ufo.model.order.bo.OrderInfo;
import com.yohobuy.ufo.model.order.bo.TimeoutBo;
import com.yohobuy.ufo.model.order.common.OrderAttributes;
import com.yohobuy.ufo.model.order.common.OrderCodeType;
import com.yohobuy.ufo.model.order.common.PayChannelType;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.constants.TimeoutCase;
... ... @@ -25,12 +23,10 @@ import com.yohoufo.order.common.HbfqEnum;
import com.yohoufo.order.constants.OrderPayConstants;
import com.yohoufo.order.model.dto.PreSaleOrderConfig;
import com.yohoufo.order.mq.DelayTime;
import com.yohoufo.order.service.AbstractOrderPaymentService;
import com.yohoufo.order.service.IPaymentService;
import com.yohoufo.order.service.PaymentSupportService;
import com.yohoufo.order.service.cache.OrderPayCacheService;
import com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator;
import com.yohoufo.order.service.support.codegenerator.bean.CodeMeta;
import com.yohoufo.order.utils.TimeUtils;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
... ... @@ -111,6 +107,23 @@ public class OrdersPayService {
.collect(Collectors.toList());
}
//指定支付方式
if (request.getOrderCode() > 0) {
Set<Payment> payments = paymentSupportService.getAllowedPayments(request.getOrderCode());
if (CollectionUtils.isNotEmpty(payments)) {
cmsPayRspList = cmsPayRspList.stream()
.filter(cmsPayVO -> {
Payment payment = Payment.getPayment(cmsPayVO.getPaymentId());
if (payment == null) {
return false;
}
return payments.contains(payment);
})
.collect(Collectors.toList());
}
}
// 是否存在花呗分期
Optional<PayListDetailVO.CmsPayVO> hbfq = cmsPayRspList.stream().filter(e -> Payment.isHBFQ(e.getPaymentId())).findFirst();
... ...
package com.yohoufo.order.service.impl.statechange;
import com.google.common.collect.Lists;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.order.model.RequestedCancelEventStatusChangeBuyerOrder;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.event.BuyerOrderDelayCancelEvent;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.service.AbstractBuyerOrderStateChanger;
import org.springframework.stereotype.Service;
... ... @@ -15,8 +18,12 @@ public class BuyerOrderBidingToWaitingPayChanger extends AbstractBuyerOrderState
@Override
protected Collection<Statement> afterStatements(RequestedStatusChangeBuyerOrder statusChangeBuyerOrder) {
//修改支付时间 倒计时 为24h
return null;
BuyerOrder buyerOrder = statusChangeBuyerOrder.getBuyerOrder();
return Lists.newArrayList(
//发布取消事件
() -> fireAutoCancelAsyncEvent(buyerOrder.getUid(), buyerOrder.getOrderCode())
);
}
@Override
... ... @@ -25,4 +32,13 @@ public class BuyerOrderBidingToWaitingPayChanger extends AbstractBuyerOrderState
OrderStatus targetStatus = statusChangeBuyerOrder.getTargetStatus();
return sourceStatus == BIDING && targetStatus == WAITING_PAY;
}
private void fireAutoCancelAsyncEvent(int uid, long orderCode) {
//自动取消事件
BuyerOrderDelayCancelEvent buyerCancelEvent = BuyerOrderDelayCancelEvent.builder().uid(uid)
.orderCode(orderCode)
.topic("buyerOrder.autoCancelAfter1Day")
.delayTime(1 * 24 * 60).build();
EventBusPublisher.publishEvent(buyerCancelEvent);
}
}
... ...
... ... @@ -3,11 +3,15 @@ package com.yohoufo.order.service.impl.statechange;
import com.google.common.collect.Lists;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.constants.ChangePriceStatus;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.dal.order.model.BuyerChangePriceRecord;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.dal.order.model.BuyerOrderGoods;
import com.yohoufo.dal.order.model.SellerOrderGoods;
import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.event.BuyerOrderDelayCancelEvent;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.model.bo.BidOrderMetaBo;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.service.AbstractBuyerOrderStateChanger;
import com.yohoufo.order.service.IBuyerOrderService;
... ... @@ -40,7 +44,10 @@ public class BuyerOrderPayDepositSuccessChanger extends AbstractBuyerOrderStateC
//如果调价订单,则需要取消源订单、修改记录表状态
() -> processIfExistChangePriceRecord(uid, orderCode),
//同步skup
() -> syncSkup(uid, orderCode));
() -> syncSkup(uid, orderCode),
//未变现取消事件
() -> fireAutoCancelAsyncEvent(buyerOrder)
);
}
@Override
... ... @@ -60,7 +67,7 @@ public class BuyerOrderPayDepositSuccessChanger extends AbstractBuyerOrderStateC
//取消preOrderCode,status: BIDING -> BUYER_CANCEL_BEFORE_PAY
logger.info("[{}] need to be canceled", buyerChangePriceRecord.getPreOrderCode());
buyerOrderService.cancelByAuto(OrderRequest.builder().uid(uid).orderCode(buyerChangePriceRecord.getPreOrderCode()).build());
buyerOrderService.cancel(OrderRequest.builder().uid(uid).orderCode(buyerChangePriceRecord.getPreOrderCode()).build());
}
private BuyerChangePriceRecord getWaitingDealBuyerChangePriceRecord(long orderCode) {
... ... @@ -89,4 +96,16 @@ public class BuyerOrderPayDepositSuccessChanger extends AbstractBuyerOrderStateC
bidProductProxyService.createSkup(uid, sellerOrderGoods);
logger.info("[{}] bid skup was sync success", sellerOrderGoods.getId());
}
private void fireAutoCancelAsyncEvent(BuyerOrder buyerOrder) {
BidOrderMetaBo bidOrderMetaBo = buyerOrderMetaMapperSupport.selectByMetaKey(buyerOrder.getUid(), buyerOrder.getOrderCode(), MetaKey.BID_KEY, BidOrderMetaBo.class);
//未变现取消事件
int day = bidOrderMetaBo.getDay();
BuyerOrderDelayCancelEvent buyerCancelEvent = BuyerOrderDelayCancelEvent.builder().uid(buyerOrder.getUid())
.orderCode(buyerOrder.getOrderCode())
.topic("buyerOrder.autoCancelAfter" + day + "Day")
.delayTime(day * 24 * 60).build();
EventBusPublisher.publishEvent(buyerCancelEvent);
}
}
... ...
... ... @@ -4,32 +4,18 @@ import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.common.SkupStatus;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.constants.OrderConstant;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.event.BuyerRefundCouponEvent;
import com.yohoufo.order.event.ErpBuyerOrderEvent;
import com.yohoufo.order.event.PayConfirmEvent;
import com.yohoufo.order.model.PayQueryBo;
import com.yohoufo.order.model.RequestedCancelEventStatusChangeBuyerOrder;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.service.AbstractBuyerOrderStateChanger;
import com.yohoufo.order.service.IPaymentService;
import com.yohoufo.order.service.cache.CacheCleaner;
import com.yohoufo.order.service.cache.CacheKeyBuilder;
import com.yohoufo.order.service.impl.BuyerOrderCancelService;
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
import com.yohoufo.order.service.pay.AbstractPayService;
import com.yohoufo.order.service.proxy.BuyerNoticeFacade;
import com.yohoufo.order.service.proxy.InBoxFacade;
import com.yohoufo.order.service.proxy.ProductProxyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
... ... @@ -43,21 +29,6 @@ import static com.yohobuy.ufo.model.order.common.OrderStatus.*;
@Service
public class BuyerOrderWaitingPayCancelChanger extends AbstractBuyerOrderStateChanger<RequestedCancelEventStatusChangeBuyerOrder> {
@Autowired
private BuyerOrderCancelService buyerOrderCancelService;
@Autowired
private InBoxFacade inBoxFacade;
@Autowired
private BuyerNoticeFacade buyerNoticeFacade;
@Autowired
private CacheCleaner cacheCleaner;
@Autowired
private ProductProxyService productProxyService;
@Override
protected boolean beforeChange(RequestedCancelEventStatusChangeBuyerOrder statusChangeBuyerOrder) {
BuyerOrder buyerOrder = statusChangeBuyerOrder.getBuyerOrder();
... ... @@ -108,7 +79,7 @@ public class BuyerOrderWaitingPayCancelChanger extends AbstractBuyerOrderStateCh
if (buyerOrder.isBuyerBidOrder()) {
statements.add(() -> bidOrderAfterStatement(buyerOrder));
} else {
statements.add(() -> commonOrderAfterStatement(buyerOrder));
//nothing
}
return statements;
}
... ... @@ -119,48 +90,7 @@ public class BuyerOrderWaitingPayCancelChanger extends AbstractBuyerOrderStateCh
* @param buyerOrder
*/
private void bidOrderAfterStatement(BuyerOrder buyerOrder) {
//todo 将定金转给卖家
}
/**
* 普通订单
*
* @param buyerOrder
*/
private void commonOrderAfterStatement(BuyerOrder buyerOrder) {
int buyerUid = buyerOrder.getUid();
long orderCode = buyerOrder.getOrderCode();
// 更新skup的状态[出售中] 卖家订单为[可售]
BuyerOrderGoods bog = buyerOrderGoodsMapper.selectByOrderCode(buyerUid, orderCode);
int skup = bog.getSkup();
SellerOrderGoods psog = sellerOrderGoodsMapper.selectByPrimaryKey(skup);
SellerOrderGoods tsog = new SellerOrderGoods();
tsog.setId(skup);
tsog.setStatus(SkupStatus.CAN_SELL.getCode());
sellerOrderGoodsMapper.updateByPrimaryKeySelective(tsog);
// 恢复product skup的库存
productProxyService.returnStorage(skup);
//如有用券则退券
buyerOrderCancelService.asyncRefundCoupon(buyerUid, orderCode, BuyerRefundCouponEvent.BizCase.PAY_TIME_OUT);
int sellerUid = psog.getUid();
inBoxFacade.noticSellerWhenBuyerCancel(sellerUid, psog);
buyerNoticeFacade.buyerCancelOrder(buyerUid, orderCode);
//
cacheCleaner.delete(Arrays.asList(CacheKeyBuilder.orderListKey(sellerUid, TabType.SELL.getValue()),
CacheKeyBuilder.orderListKey(buyerUid, TabType.BUY.getValue()),
CacheKeyBuilder.sellerOrderDetailKey(psog),
CacheKeyBuilder.orderDetailKey(sellerUid, TabType.SELL.getValue(), orderCode),
CacheKeyBuilder.orderDetailKey(buyerUid, TabType.BUY.getValue(), orderCode),
CacheKeyBuilder.buyerOrderNums(buyerUid)));
ErpBuyerOrderEvent event = new ErpBuyerOrderEvent(buyerUid);
EventBusPublisher.publishEvent(event);
//todo
}
@Override
... ...
package com.yohoufo.order.service.impl.statechange;
import com.google.common.collect.Lists;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.constants.ChangePriceStatus;
import com.yohobuy.ufo.model.order.constants.OrderConstant;
import com.yohoufo.common.alarm.EventBusPublisher;
import com.yohoufo.dal.order.model.BuyerChangePriceRecord;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.event.PayConfirmEvent;
import com.yohoufo.order.model.PayQueryBo;
import com.yohoufo.order.model.RequestedCancelEventStatusChangeBuyerOrder;
import com.yohoufo.order.common.Operator;
import com.yohoufo.order.model.RequestedStatusChangeBuyerOrder;
import com.yohoufo.order.service.AbstractBuyerOrderStateChanger;
import com.yohoufo.order.service.impl.BuyerChangePriceRecordService;
import com.yohoufo.order.service.pay.AbstractPayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
... ... @@ -38,7 +30,7 @@ public class BuyerOrderWaitingPayDepositCancelChanger extends AbstractBuyerOrder
protected Collection<Statement> afterStatements(RequestedStatusChangeBuyerOrder statusChangeBuyerOrder) {
BuyerOrder buyerOrder = statusChangeBuyerOrder.getBuyerOrder();
long orderCode = buyerOrder.getOrderCode();
return Lists.newArrayList(() -> processIfExistChangePriceRecord(orderCode, statusChangeBuyerOrder.getTrigger()));
return Lists.newArrayList(() -> processIfExistChangePriceRecord(orderCode, statusChangeBuyerOrder.getOperator()));
}
@Override
... ... @@ -49,13 +41,13 @@ public class BuyerOrderWaitingPayDepositCancelChanger extends AbstractBuyerOrder
&& (targetStatus == BUYER_CANCEL_BEFORE_PAY || targetStatus == BUYER_CANCEL_TIMEOUT);
}
private void processIfExistChangePriceRecord(long orderCode, RequestedStatusChangeBuyerOrder.Trigger trigger) {
private void processIfExistChangePriceRecord(long orderCode, Operator operator) {
BuyerChangePriceRecord buyerChangePriceRecord = getWaitingDealBuyerChangePriceRecord(orderCode);
if (buyerChangePriceRecord == null) {
return;
}
ChangePriceStatus targetStatus;
switch (trigger) {
switch (operator) {
case CS:
targetStatus = ChangePriceStatus.SELF_CANCEL;
break;
... ...
package com.yohoufo.order.bid;
import com.yohoufo.dal.order.BuyerOrderMapper;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.BaseWebTest;
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
import com.yohoufo.order.service.listener.OrderChangeListenerContainer;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.concurrent.TimeUnit;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.dal.order.BuyerOrderMapper;
import com.yohoufo.dal.order.model.BuyerOrder;
import com.yohoufo.order.BaseWebTest;
import com.yohoufo.order.service.BuyerOrderStateChangers;
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
import com.yohoufo.order.service.listener.OrderChangeListenerContainer;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.concurrent.TimeUnit;
public class BuyerBidOrderServiceTest extends BaseWebTest {
... ... @@ -18,13 +20,24 @@ public class BuyerBidOrderServiceTest extends BaseWebTest {
@Autowired
BuyerOrderMapper buyerOrderMapper;
@Autowired
BuyerOrderStateChangers buyerOrderStateChangers;
int uid = 500031116;
@Test
public void test_refundDeposit_when_paySuccess() throws Exception{
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(10018031345472L, 500031116);
public void test_refundDeposit_when_paySuccess() throws Exception {
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(10018031345472L, uid);
//订单事件
orderChangeListenerContainer.fireAsyncEvent(new BuyerOrderChangeEvent(buyerOrder, BuyerOrderChangeEvent.BizCase.PAY_SUCCESS));
TimeUnit.SECONDS.sleep(100);
}
@Test
public void test_deposit_pay_success() {
long orderCode = 10019449511744L;
buyerOrderStateChangers.selectOneToChange(uid, orderCode, OrderStatus.WAITING_PAY_DEPOSIT, OrderStatus.BIDING);
}
}
... ...
... ... @@ -3,6 +3,32 @@ consumer:
username: yoho
password: yoho
consumers:
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay1DayMsgConsumer
topic: buyerOrder.autoCancelAfter1Day
delay:
interval: 1440
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay3DayMsgConsumer
topic: buyerOrder.autoCancelAfter3Day
delay:
interval: 4320
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay7DayMsgConsumer
topic: buyerOrder.autoCancelAfter7Day
delay:
interval: 10080
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay15DayMsgConsumer
topic: buyerOrder.autoCancelAfter15Day
delay:
interval: 21600
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay30DayMsgConsumer
topic: buyerOrder.autoCancelAfter30Day
delay:
interval: 43200
- class: com.yohoufo.order.mq.consumer.SellerOrderAutoCancelDelayMsgConsumer
topic: sellerOrder.autoCancel
delay:
... ...
... ... @@ -3,6 +3,31 @@ consumer:
username: yoho
password: yoho
consumers:
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay1DayMsgConsumer
topic: buyerOrder.autoCancelAfter1Day
delay:
interval: 1440
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay3DayMsgConsumer
topic: buyerOrder.autoCancelAfter3Day
delay:
interval: 4320
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay7DayMsgConsumer
topic: buyerOrder.autoCancelAfter7Day
delay:
interval: 10080
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay15DayMsgConsumer
topic: buyerOrder.autoCancelAfter15Day
delay:
interval: 21600
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay30DayMsgConsumer
topic: buyerOrder.autoCancelAfter30Day
delay:
interval: 43200
- class: com.yohoufo.order.mq.consumer.SellerOrderAutoCancelDelayMsgConsumer
topic: sellerOrder.autoCancel
delay:
... ...
... ... @@ -4,6 +4,31 @@ consumer:
password: ${rabbit_ufo_password}
consumers:
# order
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay1DayMsgConsumer
topic: buyerOrder.autoCancelAfter1Day
delay:
interval: 1440
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay3DayMsgConsumer
topic: buyerOrder.autoCancelAfter3Day
delay:
interval: 4320
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay7DayMsgConsumer
topic: buyerOrder.autoCancelAfter7Day
delay:
interval: 10080
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay15DayMsgConsumer
topic: buyerOrder.autoCancelAfter15Day
delay:
interval: 21600
- class: com.yohoufo.order.mq.consumer.BuyerOrderAutoCancelDelay30DayMsgConsumer
topic: buyerOrder.autoCancelAfter30Day
delay:
interval: 43200
- class: com.yohoufo.order.mq.consumer.SellerOrderAutoCancelDelayMsgConsumer
topic: sellerOrder.autoCancel
delay:
... ...