package com.hzs.bonus.account.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount;

import java.util.Date;

/**
 * 会员账户信息 服务类
 *
 * @author hzs
 * @since 2022-08-11
 */
public interface ICuMemberAccountService extends IService<CuMemberAccount> {

    /**
     * 更新账户余额
     *
     * @param cuMemberAccount 会员账户表
     * @param pkModified      修改人
     * @return: Boolean
     * @Author: sui q
     * @Date: 2022/9/21 21:42
     */
    Boolean updateMemberAccount(CuMemberAccount cuMemberAccount, Long pkModified);

    /**
     * 根据用户ID查询余额信息
     *
     * @param pkMember 用户ID
     * @return CuMemberAccount
     */
    CuMemberAccount queryCuMemberAccountByPkMember(Long pkMember);

    /**
     * 奖金发放，根据期间发放奖金，更新奖金余额
     *
     * @param startPeriod 期间
     * @return: void
     * @Author: sui q
     * @Date: 2023/3/21 14:12
     */
    void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod);

    /*
     * @description: 根据时间更新账户信息
     * @author: sui q 
     * @date: 2024/7/25 9:44
     * @param: null null
     **/
    void updateMemberAccountByDate(Date settleDate);

    /**
     * 奖金可提现，根据期间更新可提现金额，减少可消费金额
     *
     * @param startPeriod 期间
     * @return: void
     * @Author: sui q
     * @Date: 2023/3/21 14:12
     */
    void updateMemberAccountWithdrawalByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry);

}
