package com.kidgrow.usercenter.service;
import com.kidgrow.common.model.*;
import com.kidgrow.common.service.ISuperService;
import com.kidgrow.usercenter.model.SysUserExcel;
import com.kidgrow.usercenter.vo.UserRegVo;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
*
* @Description:
* @Project:
* @CreateDate: Created in 2020/2/13 16:33
* @Author: liuke
*/
public interface ISysUserService extends ISuperService {
/**
* 获取UserDetails对象
* @param username
* @return
*/
LoginAppUser findByUsername(String username);
LoginAppUser findByOpenId(String username);
LoginAppUser findByMobile(String username);
/**
* 通过SysUser 转换为 LoginAppUser,把roles和permissions也查询出来
* @param sysUser
* @return
*/
LoginAppUser getLoginAppUser(SysUser sysUser);
/**
* 根据用户名查询用户
* @param username
* @return
*/
SysUser selectByUsername(String username);
/**
* 根据手机号查询用户
* @param mobile
* @return
*/
SysUser selectByMobile(String mobile);
/**
* 根据openId查询用户
* @param openId
* @return
*/
SysUser selectByOpenId(String openId);
/**
* 用户分配角色
* @param id
* @param roleIds
*/
void setRoleToUser(Long id, Set roleIds);
/**
* 更新密码
* @param id
* @param oldPassword
* @param newPassword
* @return
*/
ResultBody updatePassword(Long id, String oldPassword, String newPassword,Boolean isdefault) throws Exception;
/**
* 更新手机号
* @param params
* @return
*/
ResultBody updateUserTel(Map params) throws Exception ;
/**
* 用户列表
* @param params
* @return
*/
PageResult findUsers(Map params);
/**
* 用户角色列表
* @param userId
* @return
*/
List findRolesByUserId(Long userId);
/**
* 状态变更
* @param params
* @return
*/
ResultBody updateEnabled(Map params);
/**
* 查询全部用户
* @param params
* @return
*/
List findAllUsers(Map params);
ResultBody saveOrUpdateUser(SysUser sysUser);
/**
* 删除用户
*/
boolean delUser(Long id);
ResultBody findAll(Map map);
ResultBody getThisUserOrganizationUser(HttpServletRequest request);
ResultBody findCountByMap(Map map);
ResultBody passwordByPhone(Map map) throws Exception;
ResultBody registerByPhone(Map map);
ResultBody updatePhone(Map map,SysUser sysUser);
/**
* 查询指定角色用户
* @param type:0销售,1运维
* @return
*/
ResultBody findAppointUsers(Integer type);
/**
* 获取登录用户的其它信息
* @param userId
* @return
*/
ResultBody findDoctorUserAllData(Long userId);
/**
* H端用户注册 管理员添加用户
* @param userRegVo
* @return
*/
ResultBody doctorUserReg(UserRegVo userRegVo,SysUser sysUser) throws Exception;
/**
* 获取医院科室下的所有有效的医生
* @param hospitalId
* @param departmentId
* @return
*/
ResultBody hospitalDoctorList(Long hospitalId, Long departmentId,Boolean isdel);
/**
* 获取医院科室下的所有有效的医生
* @param userTel
* @return
*/
ResultBody isRegUser(String userTel);
boolean phoneIsUsed(String phone);
}