package edu.whut.infrastructure.dao;
import edu.whut.infrastructure.dao.po.GroupBuyOrderList;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 用户拼单明细
 */
@Mapper
public interface IGroupBuyOrderListDao {

    void insert(GroupBuyOrderList groupBuyOrderListReq);

    /**
     * 根据外部交易单号查询是否有记录
     * @param groupBuyOrderListReq
     * @return
     */
    GroupBuyOrderList queryGroupBuyOrderRecordByOutTradeNo(GroupBuyOrderList groupBuyOrderListReq);

    Integer queryOrderCountByActivityId(GroupBuyOrderList groupBuyOrderListReq);

    int updateOrderStatus2COMPLETE(GroupBuyOrderList groupBuyOrderListReq);

    List<String> queryGroupBuyCompleteOrderOutTradeNoListByTeamId(String teamId);

    List<GroupBuyOrderList> queryInProgressUserGroupBuyOrderDetailListByRandom(GroupBuyOrderList groupBuyOrderListReq);

    /**
     * 未支付退单
     */
    int unpaid2Refund(GroupBuyOrderList groupBuyOrderListReq);

    /**
     * 已支付退单
     */
    int paid2Refund(GroupBuyOrderList groupBuyOrderListReq);

    /**
     * 已支付成团退单
     */
    int paidTeam2Refund(GroupBuyOrderList groupBuyOrderListReq);

    /**
     * 查询超时未支付订单列表
     * 条件：当前时间不在活动时间范围内、状态为0（初始锁定）、out_trade_time为空
     * @return 超时未支付订单列表，限制10条
     */
    List<GroupBuyOrderList> queryTimeoutUnpaidOrderList();
}
