package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.dto.HotAuthorDto;
import com.ruoyi.system.domain.dto.UserAuthenticationInfoDto;
import com.ruoyi.system.domain.vo.AppUserInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.UserInfoMapper;
import com.ruoyi.system.domain.UserInfo;
import com.ruoyi.system.service.IUserInfoService;

/**
 * 用户个人信息Service业务层处理
 * 
 * @author haotian
 * @date 2024-10-14
 */
@Service
public class UserInfoServiceImpl implements IUserInfoService 
{
    @Autowired
    private UserInfoMapper userInfoMapper;

    /**
     * 查询用户个人信息
     * 
     * @param userId 用户个人信息主键
     * @return 用户个人信息
     */
    @Override
    public UserInfo selectUserInfoByUserId(Long userId)
    {
        return userInfoMapper.selectUserInfoByUserId(userId);
    }

    /**
     * 查询用户个人信息列表
     * 
     * @param userInfo 用户个人信息
     * @return 用户个人信息
     */
    @Override
    public List<UserInfo> selectUserInfoList(UserInfo userInfo)
    {
        return userInfoMapper.selectUserInfoList(userInfo);
    }

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

    @Override
    public List<UserInfo> selectAllUserInfo(){
        return userInfoMapper.selectAllUserInfo();
    }

    /**
     * 修改用户个人信息
     * 
     * @param userInfo 用户个人信息
     * @return 结果
     */
    @Override
    public int updateUserInfo(UserInfo userInfo)
    {
        userInfo.setUpdateTime(new Date());
        return userInfoMapper.updateUserInfo(userInfo);
    }

//    /**
//     * 更新用户状态
//     */
//    @Override
//    public int updateUserState(String username, String state){
//        return userInfoMapper.updateUserState(username, state);
//    }

    /**
     * 批量删除用户个人信息
     * 
     * @param userIds 需要删除的用户个人信息主键
     * @return 结果
     */
    @Override
    public int deleteUserInfoByUserIds(Long[] userIds)
    {
        return userInfoMapper.deleteUserInfoByUserIds(userIds);
    }

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

    @Override
    public boolean updateSignature(String phonenumber, String signature){
        return userInfoMapper.updateSignature(phonenumber, signature) > 0;
    }

    @Override
    public boolean updateAvatar(String phonenumber, String avatar){
        return userInfoMapper.updateAvatar(phonenumber, avatar) > 0;
    }

    @Override
    public boolean updateBackground(String phonenumber, String background){
        return userInfoMapper.updateBackground(phonenumber, background) > 0;
    }

    @Override
    public List<AppUserInfoVo> getAllAppUserInfo(SysUser user){

        return userInfoMapper.getAllAppUserInfo(user);
    }

    @Override
    public AppUserInfoVo getAppUserInfo(Long userId){
        return userInfoMapper.getAppUserInfo(userId);
    }

    @Override
    public List<HotAuthorDto> getHotAuthor(){
        return userInfoMapper.getHotAuthor();
    }

    /**
     * 获取实名认证信息
     * */
    @Override
    public UserAuthenticationInfoDto getUserAuthenticationInfo(Long userId){
        return userInfoMapper.getUserAuthenticationInfo(userId);
    }
}
