package cn.com.ty.lift.system.user.dao.mapper;

import cn.com.ty.lift.common.model.PushUserInfo;
import cn.com.ty.lift.common.utils.MybatisSqlUtils;
import cn.com.xwy.boot.mybatis.MyBatisMapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;

import java.util.List;

/**
 * <p>
 * 专家表 Mapper 接口
 * </p>
 *
 * @author huangyuan
 * @since 2020-04-17
 */
@MyBatisMapper
public interface IPushUserMapper extends BaseMapper<PushUserInfo> {

    /**
     * 获取要推送的用户信息
     *
     * @param companyId 当前公司id
     * @param roleCodes 角色编码集合
     * @return 用户信息
     * @description 获取要推送的用户信息
     * @date 2020/4/17 2:03 下午
     */
    @SelectProvider(type = MybatisSqlUtils.class, method = "getPushUserInfoByRoleCodesSql")
    List<PushUserInfo> getPushUserInfoByRoleCodes(@Param("companyId") Long companyId,
                                                  @Param("roleCodeList") List<String> roleCodes);

    /**
     * 获取要推送的用户信息
     *
     * @param companyId  当前公司id
     * @param userIdList 用户id集合
     * @return 用户信息
     * @description 获取要推送的用户信息
     * @date 2020/4/18 7:24 下午
     */
    @SelectProvider(type = MybatisSqlUtils.class, method = "getPushUserInfoByIdsSql")
    List<PushUserInfo> getPushUserInfoByUserIds(@Param("companyId") Long companyId,
                                                @Param("userIdList") List<Long> userIdList);

    /**
     * @param userId 用户id
     * @return
     * @description 通过用户id 获取用户信息
     * @date 2020/5/3 11:30 上午
     */
    @SelectProvider(type = MybatisSqlUtils.class, method = "getPushUserInfoByUserId")
    PushUserInfo getUserInfoByUserId(@Param("userId") Long userId);
}
