package com.ruoyi.cms.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.AppUserShow;
import com.ruoyi.common.core.domain.entity.MyChart;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.cms.domain.vo.AppUserLky;
import com.ruoyi.common.core.domain.model.RegisterBody;

/**
 * APP用户Service接口
 * 
 * @author lishundong
 * @date 2024-09-03
 */
public interface IAppUserService 
{
    /**
     * 查询APP用户
     * 
     * @param userId APP用户主键
     * @return APP用户
     */
    public AppUser selectAppUserByUserId(Long userId);

    /**
     * 查询APP用户列表
     * 
     * @param appUser APP用户
     * @return APP用户集合
     */
    public List<AppUser> selectAppUserList(AppUser appUser);

    /**
     * 新增APP用户
     * 
     * @param appUser APP用户
     * @return 结果
     */
    public int insertAppUser(AppUser appUser);

    /**
     * 修改APP用户
     * 
     * @param appUser APP用户
     * @return 结果
     */
    public int updateAppUser(AppUser appUser);

    /**
     * 批量删除APP用户
     * 
     * @param userIds 需要删除的APP用户主键集合
     * @return 结果
     */
    public int deleteAppUserByUserIds(Long[] userIds);

    public AppUser getPhone(String phone);

    public AppUser getPhoneAndNoRole(String phone);

    public AppUser getPhoneAndUserType(String phone,String userType);

    AppUser selectByOpenid(String openid,String userType);

    public AppUser registerAppUser(RegisterBody registerBody);

    public AppUser registerAppUserNew(RegisterBody registerBody);

    public AppUser selectAppuserByIdcard(String idCard);

    public AppUserLky selectAppUserInfo(AppUser appUser);

    public AppUser getUserInfo();

    public int editRegisterUser(RegisterBody registerBody);

    public List<AppUser> selectNoTmAppUserList(AppUser appUser);

    public MyChart getMyTj(Long userId);

    public List<AppUserShow> selectUserApplyList(AppUser appUser);

    public AppUser getYtjValidPhone(String phone);

    public AppUser getYtjValidIdcard(String phone);

    AjaxResult recognition(byte[] bytes, String fileName, Long userId);
}
