package com.hzs.bonus.settle;

import com.hzs.common.core.domain.R;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.order.SaOrder;

import java.util.Date;

/**
 * @description: 奖金结算
 * @author: sui q
 * @time: 2023/9/18 14:24
 * @classname: IMemberBonusSettleApi
 * @package_name: com.hzs.bonus.settle
 * version 1.0.0
 */
public interface IMemberSettleBonusApi {

    /**
     * 根据秒结算会员奖金
     * @param orderCode 订单
     * @return: List<SaOrderExt>
     * @Author: sui q
     * @Date: 2023/2/1 21:27
     */
    R<Boolean> calculateCumberBonusBySecond(String orderCode);


    /*
     * @description: 定时任务每天自动计算奖金
     * @author: sui q
     * @date: 2023/4/10 14:23
     * @param: null null
     **/
    R<Boolean> autoCalculateBonus(Date settleDate);

    /*
     * @description: 备份网体
     * @author: sui q
     * @date: 2024/11/15 10:10
     * @param: null null
     **/
    void backupsSettleBonusEveryday();

    /*
     * @description: 定时任务每天自动公布奖金
     * @author: sui q
     * @date: 2023/4/10 14:23
     * @param: null null
     **/
    void autoPublishBonus();

    /*
     * @description: 定时任务每天自动发放奖金
     * @author: sui q
     * @date: 2023/4/10 14:23
     * @param: null null
     **/
    void autoGrantBonus();

    /*
     * @description: 每日生成业绩、月表统计数据
     * @author: sui q
     * @date: 2023/9/1 9:50
     * @param: null null
     **/
    void insertCuMemberAchieveByEveryDay();

    /*
     * @description: 退单回退业绩
     * @author: sui q
     * @date: 2023/9/22 9:27
     * @param: null null
     **/
    Boolean chargeBackSaOrder(SaOrder saOrder);
}
