package com.jsl.oa.services;
import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.voData.UserAllCurrentVO;
import com.jsl.oa.model.voData.UserEditProfileVO;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
/**
*
用户控制器接口
*
* 该接口用于定义用户控制器的方法
*
* @version 1.1.0
* @since v1.1.0
*/
public interface UserService {
/**
* 根据用户名获取用户信息
*
* 该方法用于根据用户名获取用户信息
*
* @param username 用户名
* @return 用户信息
*/
UserDO getUserInfoByUsername(String username);
/**
* 用户账号删除
*
* 该方法用于用户账号删除
*
* @param id 用户id
* @return {@link BaseResponse}
*/
BaseResponse userDelete(HttpServletRequest request,Long id);
/**
* 账号锁定
*
* 该方法用于用户账号锁定
*
* @param id 用户id
* @return {@link BaseResponse}
*/
BaseResponse userLock(HttpServletRequest request,Long id);
/**
* 用户编辑自己的信息
*
* 该方法用于用户编辑自己的信息
*
* @param userEditProfileVO 用户编辑自己的信息
* @return {@link BaseResponse}
*/
BaseResponse userEditProfile(UserEditProfileVO userEditProfileVO);
/**
* 获取全部的用户信息
*
* 该方法用于获取全部的用户信息
*
* @param request 请求
* @param userAllCurrentVO 输入信息
* @return {@link BaseResponse}
*/
BaseResponse userCurrentAll(HttpServletRequest request, UserAllCurrentVO userAllCurrentVO);
/**
* 获取当前用户信息
*
* 该方法用于获取当前用户信息
*
* @param request 请求
* @param id 用户id
* @param username 用户名
* @param email 邮箱
* @param phone 手机号
* @return {@link BaseResponse}
*/
BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone);
}