package cn.pluss.platform.userIntegral;

import cn.pluss.platform.entity.MerchantOrder;
import cn.pluss.platform.entity.MerchantStore;
import cn.pluss.platform.entity.UserIntegral;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 用户积分详情表 服务类
 * </p>
 *
 * @author crystal
 * @since 2022-05-17
 */
public interface UserIntegralService extends IService<UserIntegral> {

    /**
     * 保存用户积分操作
     * @param orderNumber
     * @param orderAmt
     * @param userId
     * @param type
     * @param source
     * @param integral
     */
    void saveUserIntegral(String orderNumber,BigDecimal orderAmt, Long userId, String type,String source, BigDecimal integral);

    void bstOrderIntegralReward(MerchantOrder order);

    /**
     * 查询积分余额
     * @param userId
     * @param date
     * @param auditDate
     * @return
     */
    BigDecimal getCountIntegral(Serializable userId, String date, String auditDate);

    /**
     * 查询积分余额
     * @param userId
     * @return
     */
    BigDecimal getCountIntegral(Serializable userId);

    /**
     * 分页查询
     * @param page
     * @param query
     * @return
     */
    Page<UserIntegral> pageInfo(Page<UserIntegral> page, UserIntegral query);

    UserIntegral getByOrderNumber(String orderNumber);
}
