58 lines
1.7 KiB
Java
58 lines
1.7 KiB
Java
package com.webgame.webgamebackend.service;
|
||
|
||
import com.webgame.webgamebackend.common.dto.user.UpdateStatusRequest;
|
||
import com.webgame.webgamebackend.common.dto.user.UpdateUserInfoRequest;
|
||
import com.webgame.webgamebackend.common.dto.user.UserInfoResponse;
|
||
import org.springframework.web.multipart.MultipartFile;
|
||
|
||
/**
|
||
* 用户服务接口
|
||
*/
|
||
public interface UserService {
|
||
|
||
/**
|
||
* 获取当前登录用户的资料
|
||
*
|
||
* @return 用户信息
|
||
*/
|
||
UserInfoResponse getCurrentUserInfo();
|
||
|
||
/**
|
||
* 更新当前登录用户的资料
|
||
*
|
||
* @param accountId 账号 ID
|
||
* @param request 更新请求(所有字段可选)
|
||
* @return 更新后的用户信息
|
||
*/
|
||
UserInfoResponse updateUserInfo(String accountId, UpdateUserInfoRequest request);
|
||
|
||
/**
|
||
* 更新当前登录用户的在线状态
|
||
*
|
||
* @param accountId 账号 ID
|
||
* @param request 状态更新请求
|
||
*/
|
||
void updateStatus(String accountId, UpdateStatusRequest request);
|
||
|
||
/**
|
||
* 上传并更新当前登录用户的头像
|
||
*
|
||
* 文件会被保存到 uploads/avatars/{accountId}.jpg,并更新 DB 中的 avatar 字段。
|
||
*
|
||
* @param accountId 账号 ID
|
||
* @param file 头像文件(前端已裁剪为 200×200 JPEG)
|
||
* @return 更新后的用户信息
|
||
*/
|
||
UserInfoResponse uploadAvatar(String accountId, MultipartFile file);
|
||
|
||
/**
|
||
* 删除当前登录用户的头像
|
||
*
|
||
* 删除磁盘文件,并将 DB 中 avatar 置为 null(前端会回退显示默认头像)。
|
||
*
|
||
* @param accountId 账号 ID
|
||
* @return 更新后的用户信息
|
||
*/
|
||
UserInfoResponse deleteAvatar(String accountId);
|
||
}
|