package com.aijiuyi.admin.service; import com.aijiuyi.admin.common.entity.Result; import com.aijiuyi.admin.controller.dto.AppLoginDTO; import com.aijiuyi.admin.controller.dto.AppUserQueryDTO; import com.aijiuyi.admin.controller.dto.LoginDTO; import com.aijiuyi.admin.entity.AppUser; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.Map; /** * 应用用户 Service * 统一用户中心:用户、专家、管理员均使用此表,通过 userType 区分 */ public interface AppUserService extends IService { /** * 管理员登录 * 通过用户名+密码登录,返回 Token 和用户信息 * * @param loginDTO 登录参数(用户名、密码) * @return 包含 token 和用户基本信息的 Result */ Result> login(LoginDTO loginDTO); /** * 退出登录 * 从 Redis 中删除 Token,使 Token 立即失效 * * @param token 当前用户的 Token(从请求头中获取) */ void logout(String token); /** * App 端发送短信验证码 * 60 秒内同一手机号不重复发送,验证码 5 分钟有效 * * @param phone 手机号 */ void sendSmsCode(String phone); /** * App 端手机号验证码登录 * 手机号未注册时自动注册为用户(userType=1) * Token 永久有效(除非后台主动踢下线) * * @param loginDTO 手机号+验证码 * @return 包含 token 和用户基本信息的 Result */ Result> appLogin(AppLoginDTO loginDTO); /** * 分页查询应用用户列表 * * @param queryDTO 查询条件 * @return 分页结果 */ IPage pageList(AppUserQueryDTO queryDTO); /** * 修改用户状态(禁用/启用) * * @param id 用户ID * @param status 目标状态:1=启用,0=禁用 */ void updateStatus(Long id, Integer status); /** * 新增应用用户 * * @param appUser 用户信息 */ void addUser(AppUser appUser); /** * 修改应用用户 * * @param appUser 用户信息 */ void updateUser(AppUser appUser); /** * 删除应用用户(逻辑删除) * * @param id 用户ID */ void deleteUser(Long id); }