package com.ruoyi.xq.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserVip;
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;

import java.util.List;

/**
 * VIP用户Service接口
 *
 * @author 77
 * @date 2024-03-04
 */
public interface UserVipService extends IService<UserVip> {

    UserVip getUserVip(Long userId, Integer vipType);

    UserVip getUserVipNormal(Long userId, Integer vipType);

    UserVip getByUserVipMaster(Long userId);

    List<UserVip> listUserVipMaster(List<Long> userIdArray);

    void updateVipOrderAdmin(AddVipReq bo, User user);

    void incsVip(User user, Integer vipType, Integer vipMonth);

    Page<UserVipAdminVo> pageAdmin(PageQuery pageQuery, UserVipAdminVo bo);

    void removeVip(Long id);

    void checkUserVip(Long userId);
}
