package com.fs.live.service.impl;


import com.fs.common.utils.DateUtils;
import com.fs.live.domain.LiveUserFavorite;
import com.fs.live.mapper.LiveUserFavoriteMapper;
import com.fs.live.service.ILiveUserFavoriteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 用户直播收藏Service业务层处理
 *
 * @author fs
 * @date 2025-07-11
 */
@Service
public class LiveUserFavoriteServiceImpl implements ILiveUserFavoriteService {

    @Autowired
    private LiveUserFavoriteMapper baseMapper;

    /**
     * 查询用户直播收藏
     *
     * @param favoriteId 用户直播收藏主键
     * @return 用户直播收藏
     */
    @Override
    public LiveUserFavorite selectLiveUserFavoriteByFavoriteId(Long favoriteId)
    {
        return baseMapper.selectLiveUserFavoriteByFavoriteId(favoriteId);
    }

    /**
     * 查询用户直播收藏列表
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 用户直播收藏
     */
    @Override
    public List<LiveUserFavorite> selectLiveUserFavoriteList(LiveUserFavorite liveUserFavorite)
    {
        return baseMapper.selectLiveUserFavoriteList(liveUserFavorite);
    }

    /**
     * 新增用户直播收藏
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 结果
     */
    @Override
    public int insertLiveUserFavorite(LiveUserFavorite liveUserFavorite)
    {
        liveUserFavorite.setCreateTime(DateUtils.getNowDate());
        return baseMapper.insertLiveUserFavorite(liveUserFavorite);
    }

    /**
     * 修改用户直播收藏
     *
     * @param liveUserFavorite 用户直播收藏
     * @return 结果
     */
    @Override
    public int updateLiveUserFavorite(LiveUserFavorite liveUserFavorite)
    {
        liveUserFavorite.setUpdateTime(DateUtils.getNowDate());
        return baseMapper.updateLiveUserFavorite(liveUserFavorite);
    }

    /**
     * 批量删除用户直播收藏
     *
     * @param favoriteIds 需要删除的用户直播收藏主键
     * @return 结果
     */
    @Override
    public int deleteLiveUserFavoriteByFavoriteIds(Long[] favoriteIds)
    {
        return baseMapper.deleteLiveUserFavoriteByFavoriteIds(favoriteIds);
    }

    @Override
    public LiveUserFavorite selectLiveUserFavoriteByLiveIdAndUserId(Long liveId, Long userId) {
        return baseMapper.selectLiveUserFavoriteByLiveIdAndUserId(liveId, userId);
    }

    @Override
    public void deleteLiveUserFavoriteByLiveIdAndUserId(Long liveId, Long userId) {
        baseMapper.deleteLiveUserFavoriteByLiveIdAndUserId(liveId, userId);
    }

    @Override
    public long count(Long userId, Long storeId, Long productId) {
        return baseMapper.count(userId, storeId, productId);
    }

    @Override
    public void removeBy(Long userId, Long storeId, Long productId) {
        baseMapper.removeBy(userId, storeId, productId);
    }

}
