package com.yc.ship.module.trade.service.order;


import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderLogDO;
import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
import com.yc.ship.module.trade.service.order.bo.TradeOrderLogCreateReqBO;
import org.springframework.scheduling.annotation.Async;

import javax.annotation.security.PermitAll;
import java.util.List;

/**
 * 交易下单日志 Service 接口
 *
 */
public interface TradeOrderLogService {

    /**
     * 创建交易下单日志
     * springboot2.1以后默认使用ThreadPoolTaskExecutor线程池，可用于耗时较短的异步任务
     * @param logDTO 日志记录
     */
    @Async
    @PermitAll
    @TenantIgnore
    void createOrderLog(TradeOrderLogCreateReqBO logDTO);

    /**
     * 获得交易订单日志列表
     *
     * @param orderNo 订单编号
     * @return 交易订单日志列表
     */
    List<TradeOrderLogDO> getOrderLogListByOrderId(String orderNo);

    void delLog(Long orderId, TradeOrderOperateTypeEnum...operateType);
}
