package com.seamew.lottery.infrastructure.dao;

import com.seamew.lottery.infrastructure.po.UserStrategyExport;
import com.seamew.middleware.db.router.annotation.DBRouter;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author: seamew
 * @Title: IUserStrategyExportDao
 * @CreateTime: 2023年02月22日 16:01:00
 * @Description: 用户策略计算结果表DAO
 * @Version: 1.0
 */
@Mapper
public interface IUserStrategyExportDao {
    /**
     * 新增数据
     *
     * @param userStrategyExport 用户策略
     */
    @DBRouter(splitTable = true)
    void insert(UserStrategyExport userStrategyExport);

    /**
     * 查询数据
     *
     * @param uId 用户ID
     * @return 用户策略
     */
    @DBRouter(splitTable = true)
    UserStrategyExport queryUserStrategyExportByUId(String uId);

    /**
     * 更新发奖状态
     *
     * @param userStrategyExport 发奖信息
     */
    @DBRouter(splitTable = true)
    void updateUserAwardState(UserStrategyExport userStrategyExport);

    /**
     * 更新发送MQ状态
     *
     * @param userStrategyExport 发送消息
     */
    @DBRouter(splitTable = true)
    void updateInvoiceMqState(UserStrategyExport userStrategyExport);

    /**
     * 扫描发货单 MQ 状态，把未发送 MQ 的单子扫描出来，做补偿
     *
     * @return 发货单
     */
    @DBRouter(splitTable = true)
    List<UserStrategyExport> scanInvoiceMqState();
}
