package com.yonge.cooleshow.biz.dal.service;

import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
import com.yonge.cooleshow.auth.api.entity.SysUser;
import com.yonge.cooleshow.biz.dal.entity.Subject;
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
import com.yonge.cooleshow.biz.dal.wrapper.UserInfoWrapper;
import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;

import java.util.List;
import java.util.Map;

public interface SysUserService{

    SysUserMapper getDao();

    Long getUserId();

    SysUser getUser();

    SysUser findUserById(Long userId);

    Long getTenantByClient(Long userId,String clientId);

    /**
     * 实名 + 注册协议
     *
     *  @param realNameAuthDto
     * @param sysUser
     * @param client
     */
    IdcardInfoExtractor updateUserCard(RealnameAuthReq realNameAuthDto, SysUser sysUser, ClientEnum client);

    Map<Long,com.yonge.cooleshow.biz.dal.entity.SysUser> getMapByIds(List<Long> userIds);

    SysUser findUserByPhone(String phone);

    SysUser getByUserId(Long userId);

    /**
     * 设置推送设备id
     *
     */
    void imDeviceId(UserInfoWrapper.UpdateUser info);

}