package com.xiaopeng.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.account.model.dto.EnableDisableDTO;
import com.xiaopeng.account.model.dto.RePasswordDTO;
import com.xiaopeng.account.model.dto.XpOperationsUserAddDTO;
import com.xiaopeng.account.model.dto.XpOperationsUserDTO;
import com.xiaopeng.account.model.query.XpOperationsUserPageQuery;
import com.xiaopeng.account.model.query.XpOperationsUserQuery;
import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO;
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.query.account.OptionalUsersPageListQuery;
import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO;
import com.xiaopeng.api.vo.account.XpOperationsUserVO;
import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.List;
/**
*
* 运维人员 服务类
*
*
* @author mitao
* @since 2026-02-03
*/
public interface IXpOperationsUserService extends IService {
/**
* 根据ID查询运维人员信息
* @param userId
* @return
XpOperationsUser getById(Serializable userId);
*/
/**
* 根据名称查询运维用户
* @param nickName 名称
* @return
*/
List listByName(String nickName);
PageInfo selectUserPageByConditions(XpOperationsUserPageQuery query);
List findList(XpOperationsUserQueryDTO query);
/**
* 获取运维人员个人中心首页信息
*
* @param userId 运维人员ID
* @return 个人中心首页信息
*/
XpOperationsUserProfileVO getUserProfile(Long userId);
/**
*
* @param dto
*/
void saveCertificate(@Valid XpOperationsUserDTO dto);
/**
* 运维人员管理分页列表
* @param query
* @return
*/
PageInfo pageList(XpOperationsUserQuery query);
/**
* 新增运维人员
* @param dto
*/
R addOperationsUser(XpOperationsUserAddDTO dto);
/**
* 修改运维人员
* @param dto
*/
R editOperationsUser(XpOperationsUserAddDTO dto);
/**
* 启用禁用
* @param dto
*/
void enableDisableById(EnableDisableDTO dto);
/**
* 重置密码
* @param dto
*/
void rePassword(RePasswordDTO dto);
/**
* 详情
* @param id
* @return
*/
XpOperationsUserVO detailById(Long id);
/**
* 导出运维人员列表
* @param query
*/
void exportOperationsUser(XpOperationsUserQuery query, HttpServletResponse response);
/**
* 导出模板
* @param response
*/
void exportTemplate(HttpServletResponse response);
/**
* 导入运维人员数据
* @param file
*/
void importOperationsUser(MultipartFile file);
/**
* 根据ID列表批量查询用户及角色信息
* @param ids
* @return
*/
List selectUsersWithRoleByIds(List ids);
/**
*根据手机号模糊查询用户
* @param phoneNumber
* @return
*/
List getByPhoneNumber(String phoneNumber);
List pageListByIds(OptionalUsersPageListQuery q);
}