package com.ruoyi.system.service;

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;

/**
 * 用户个人信息Service接口
 * 
 * @author haotian
 * @date 2024-10-14
 */
public interface IUserInfoService 
{
    /**
     * 查询用户个人信息
     * 
     * @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 userIds 需要删除的用户个人信息主键集合
     * @return 结果
     */
    public int deleteUserInfoByUserIds(Long[] userIds);

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

    /*
    * 更新用户签名
    * @param phonenumber
    * @param signature
    * */
    public boolean updateSignature(String phonenumber, String signature);

//    public int updateUserState(String username, String state);

    /*
    * 更新用户头像
    * */
    public boolean updateAvatar(String phonenumber, String avatar);
    /*
    * 更新用户背景图
    * */
    public boolean updateBackground(String phonenumber, String background);

    /*获取所用App用户的信息*/

    public List<AppUserInfoVo> getAllAppUserInfo(SysUser user);

    /*
    * 根据用户id获取指定App用户的信息
    * */

    public AppUserInfoVo getAppUserInfo(Long userId);

    /*
    * 根据receive_rockets 获取 用户前10
    * */
    public List<HotAuthorDto> getHotAuthor();

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