package com.gkhy.assess.system.service;
import com.gkhy.assess.common.api.CommonPage;
import com.gkhy.assess.common.domain.vo.AccountVO;
import com.gkhy.assess.common.domain.vo.LoginBody;
import com.gkhy.assess.system.domain.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
*
* 用户表 服务类
*
*
* @author kzy
* @since 2023-10-17 14:26:29
*/
public interface SysUserService extends IService {
/**
* 登录
* @param loginBody
* @return
*/
AccountVO login(LoginBody loginBody);
/**
* 退出
*/
void logout();
/**
* 根据条件分页查询监管用户列表
* @param user
* @return
*/
CommonPage monitorList(SysUser user);
/**
* 根据条件分页查询机构用户列表
* @param user
* @return
*/
CommonPage agencyList(SysUser user);
/**
* 根据条件分页查询专家用户列表
* @param user
* @return
*/
CommonPage expertList(SysUser user);
/**
* 根据登录名获取用户
* @param username
* @return
*/
SysUser getUserByUsername(String username);
/**
* 登录名或者手机号获取用户
* @param username
* @return
*/
SysUser getUserByUsernamePhone(String username);
/**
* 新增监管用户
* @param user
* @return
*/
int addMonitor(SysUser user);
/**
* 机构用户注册
* @param user
* @return
*/
int addAgency(SysUser user);
/**
* 创建专家
* @param user
* @return
*/
int addExpert(SysUser user);
/**
* 根据手机号获取用户
* @param phone
* @return
*/
SysUser getUserByPhone(String phone);
/**
* 根据id获取用户
* @param userId
* @return
*/
SysUser getUserById(Long userId);
/**
* 根据id删除用户
* @param userId
* @return
*/
int deleteUserById(Long userId);
/**
* 编辑监管用户
* @param user
* @return
*/
int editMonitor(SysUser user);
/**
* 编辑机构用户
* @param user
* @return
*/
int editAgency(SysUser user);
/**
* 编辑专家用户
* @param user
* @return
*/
int editExpert(SysUser user);
/**
* 修改用户密码信息
* @param user
* @return
*/
boolean resetUserPwd(SysUser user);
/**
* 校验登录名是否唯一
* @param user
* @return
*/
boolean checkUsernameUnique(SysUser user);
/**
* 校验手机号是否唯一
* @param user
* @return
*/
boolean checkPhoneUnique(SysUser user);
/**
* 校验邮箱是否唯一
* @param user
* @return
*/
boolean checkEmailUnique(SysUser user);
/**
* 校验用户是否允许操作
* @param user
*/
void checkUserAllowed(SysUser user);
/**
* 校验用户是否有数据权限
* @param userId
*/
SysUser checkUserDataScope(Long userId);
/**
* 导入用户数据
* @param userList
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @return
*/
String importUser(List userList,Boolean isUpdateSupport);
/**
* 修改用户状态
* @param user
* @return
*/
boolean changeUserStatus(SysUser user);
/**
* 修改审批状态
* @param user
* @return
*/
boolean changeApprove(SysUser user);
/**
* 根据id获取用户详情信息
* @param userId
* @return
*/
SysUser getUserInfoById(Long userId);
}