package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.UserInfo;
import com.ruoyi.system.domain.dto.HotAuthorDto;
import com.ruoyi.system.domain.dto.UserAuthenticationInfoDto;
import com.ruoyi.system.domain.vo.AppUserInfoVo;
import org.apache.ibatis.annotations.Param;

/**
 * 用户个人信息Mapper接口
 * 
 * @author haotian
 * @date 2024-10-14
 */
public interface UserInfoMapper 
{
    /**
     * 查询用户个人信息
     * 
     * @param userId 用户个人信息主键
     * @return 用户个人信息
     */
    public UserInfo selectUserInfoByUserId(Long userId);

    /**
     * 查询用户个人信息列表
     * 
     * @param userInfo 用户个人信息
     * @return 用户个人信息集合
     */
    public List<UserInfo> selectUserInfoList(UserInfo userInfo);

    public List<UserInfo> selectAllUserInfo();

    /**
     * 新增用户个人信息
     * 
     * @param userInfo 用户个人信息
     * @return 结果
     */
    public int insertUserInfo(UserInfo userInfo);

    /**
     * 修改用户个人信息
     * 
     * @param userInfo 用户个人信息
     * @return 结果
     */
    public int updateUserInfo(UserInfo userInfo);

    /**
     * 删除用户个人信息
     * 
     * @param userId 用户个人信息主键
     * @return 结果
     */
    public int deleteUserInfoByUserId(Long userId);

    /**
     * 批量删除用户个人信息
     * 
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserInfoByUserIds(Long[] userIds);

    public int updateSignature(@Param("phonenumber") String phonenumber, @Param("signature") String signature);

    public int updateAvatar(@Param("phonenumber") String phonenumber, @Param("avatar") String avatar);

    public int updateBackground(@Param("phonenumber") String phonenumber, @Param("background") String background);

    public List<AppUserInfoVo> getAllAppUserInfo(SysUser user);

    public AppUserInfoVo getAppUserInfo(@Param("userId") Long userId);

    public List<HotAuthorDto> getHotAuthor();

    /**
     * 获取实名认证信息
     * */
    public UserAuthenticationInfoDto getUserAuthenticationInfo(@Param("userId") Long userId);
}
