package com.pannk.mms.modules.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pannk.mms.common.base.PageData;
import com.pannk.mms.common.base.Result;
import com.pannk.mms.modules.sys.entity.SysUserEntity;
import com.pannk.mms.modules.sys.vo.LoginForm;
import com.pannk.mms.modules.sys.vo.SysUserInfo;

import java.util.Map;

/**
 * 系统用户
 *
 * @author wolf
 */
public interface SysUserService extends IService<SysUserEntity> {

    /**
     * 查询用户
     *
     * @param userName 用户名
     * @return
     */
    SysUserEntity queryByUserName(String userName);

    /**
     * 登录
     *
     * @param loginForm 登录表单
     * @return
     */
    Result login(LoginForm loginForm);

    /**
     * 查询用户信息
     *
     * @param id 用户id
     * @return
     */
    SysUserInfo queryUserInfo(Long id);

    /**
     * 退出登录
     *
     * @param userId 用户id
     * @param token  token
     */
    void logout(Long userId, String token);

    /**
     * 查询分页用户
     *
     * @param params 参数
     * @return
     */
    PageData<SysUserEntity> queryPage(Map<String, Object> params);

    /**
     * 更新用户信息
     *
     * @param sysUserInfo 用户信息
     */
    void updateUserInfo(SysUserInfo sysUserInfo);

    /**
     * 新增用户信息
     *
     * @param sysUserInfo 用户信息
     */
    void saveUserInfo(SysUserInfo sysUserInfo);
}
