package com.mosty.common.core.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mosty.common.core.business.entity.SysUser;
import com.mosty.common.core.business.entity.request.SysUserEditPasswordRequest;
import com.mosty.common.core.business.entity.vo.*;
import io.swagger.annotations.ApiOperation;

import java.util.List;

public interface SysUserService extends IService<SysUser> {

    @ApiOperation("添加用户信息")
    void saveInfo(AddSysUserVO sysUser);

    @ApiOperation("编辑用户信息")
    void editInfo(SysUserEditVO sysUserEditVo, SysUser sysUser);

    @ApiOperation("编辑密码")
    void editPassword(SysUserEditPasswordRequest sysUserEditPasswordRequest);

    @ApiOperation("查询用户信息")
    SysUser getUserInfo(Long id);

    @ApiOperation("查询用户信息")
    SysUser checkUserInfo(SysUser user);

    @ApiOperation("分页查询用户信息")
    IPage<SysUserVO> selectByPage(UserPage userPage);

    @ApiOperation("重置密码")
    void resetPassword(SysUser user);

    @ApiOperation("查询未绑定当前角色的用户")
    IPage<SysUserVO> selectUnAccreditPage(UserPage userPage);

    @ApiOperation("查询用户部门信息")
    IPage<SysUserDeptVO> selectUserDeptPage(UserDeptPage userDeptPage);

    @ApiOperation("用户数据同步")
    Boolean userSys();

    @ApiOperation("根据条件查询用户信息")
    List<SysUserVO> getUserList(GetUserPage dto);

    @ApiOperation("删除用户信息")
    void delById(Long id);
}
