package com.fs.his.service;

import com.fs.common.core.domain.R;
import com.fs.his.domain.FsUserIntegralLogs;
import com.fs.his.param.FsUserAddIntegralParam;
import com.fs.his.param.FsUserAddIntegralTemplateParam;
import com.fs.his.param.FsUserIntegralLogsListUParam;
import com.fs.his.param.FsUserIntegralLogsParam;
import com.fs.his.vo.FsUserIntegralLogsListUVO;
import com.fs.his.vo.FsUserIntegralLogsListVO;

import java.util.List;

/**
 * 积分记录Service接口
 *
 * @author fs
 * @date 2023-11-02
 */
public interface IFsUserIntegralLogsService
{
    /**
     * 查询积分记录
     *
     * @param id 积分记录主键
     * @return 积分记录
     */
    public FsUserIntegralLogs selectFsUserIntegralLogsById(Long id);

    /**
     * 查询积分记录列表
     *
     * @param fsUserIntegralLogs 积分记录
     * @return 积分记录集合
     */
    public List<FsUserIntegralLogs> selectFsUserIntegralLogsList(FsUserIntegralLogs fsUserIntegralLogs);

    /**
     * 新增积分记录
     *
     * @param fsUserIntegralLogs 积分记录
     * @return 结果
     */
    public int insertFsUserIntegralLogs(FsUserIntegralLogs fsUserIntegralLogs);

    /**
     * 修改积分记录
     *
     * @param fsUserIntegralLogs 积分记录
     * @return 结果
     */
    public int updateFsUserIntegralLogs(FsUserIntegralLogs fsUserIntegralLogs);

    /**
     * 批量删除积分记录
     *
     * @param ids 需要删除的积分记录主键集合
     * @return 结果
     */
    public int deleteFsUserIntegralLogsByIds(Long[] ids);

    /**
     * 删除积分记录信息
     *
     * @param id 积分记录主键
     * @return 结果
     */
    public int deleteFsUserIntegralLogsById(Long id);

    List<FsUserIntegralLogsListVO> selectFsUserIntegralLogsListVO(FsUserIntegralLogsParam fsUserIntegralLogs);

    List<FsUserIntegralLogsListUVO> selectFsUserIntegralLogsListUVO(FsUserIntegralLogsListUParam param);

    void subFsUserIntegralLogsByOrder5();

    void addUserAddressIntegral(Long userId,Long addressId);

    R addIntegral(FsUserAddIntegralParam param);

    /**
     * 添加积分通用模板
     */
    R addIntegralTemplate(FsUserAddIntegralTemplateParam param);

    R subIntegral();

    //app获取新人福利完成情况
    R getNewcomerBenefits(Long userId);

    /**
     * 查询用户当天获得的积分总数（只统计正积分）
     */
    Long getTodayIntegralTotal(Long userId);
}
