tj
2025-06-05 2d549a04870d1315868a7cf19952b64e8071e711
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package com.cloudroam.service;
 
import com.cloudroam.dto.projectDaily.QueryProjectDailyDTO;
import com.cloudroam.dto.user.LoginDTO;
import com.cloudroam.vo.LoginCaptchaVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudroam.common.mybatis.LinPage;
import com.cloudroam.dto.user.ChangePasswordDTO;
import com.cloudroam.dto.user.RegisterDTO;
import com.cloudroam.dto.user.UpdateInfoDTO;
import com.cloudroam.model.GroupDO;
import com.cloudroam.model.PermissionDO;
import com.cloudroam.model.UserDO;
 
import java.awt.*;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;
import java.util.Map;
 
/**
 * 用户服务实现类
 *
 * @author 
 * @author 
 */
public interface UserService extends IService<UserDO> {
 
    /**
     * 新建用户
     *
     * @param validator 新建用户校验器
     * @return 被创建的用户
     */
    UserDO createUser(RegisterDTO validator);
 
    /**
     * 更新用户
     *
     * @param validator 更新用户信息用户校验器
     * @return 被更新的用户
     */
    UserDO updateUserInfo(UpdateInfoDTO validator);
 
    /**
     * 修改用户密码
     *
     * @param validator 修改密码校验器
     * @return 被修改密码的用户
     */
    UserDO changeUserPassword(ChangePasswordDTO validator);
 
    /**
     * 获得用户的所有分组
     *
     * @param userId 用户id
     * @return 所有分组
     */
    List<GroupDO> getUserGroups(Integer userId);
 
    /**
     * 获得用户所有权限
     *
     * @param userId 用户id
     * @return 权限
     */
    List<Map<String, List<Map<String, String>>>> getStructuralUserPermissions(Integer userId);
 
    /**
     * 获得用户所有权限
     *
     * @param userId 用户id
     * @return 权限
     */
    List<PermissionDO> getUserPermissions(Integer userId);
 
 
    /**
     * 获得用户在模块下的所有权限
     *
     * @param userId 用户id
     * @param module 权限模块
     * @return 权限
     */
    List<PermissionDO> getUserPermissionsByModule(Integer userId, String module);
 
 
    /**
     * 通过用户名查找用户
     *
     * @param username 用户名
     * @return 用户
     */
    UserDO getUserByUsername(String username);
 
    /**
     * 根据用户名检查用户是否存在
     *
     * @param username 用户名
     * @return true代表存在
     */
    boolean checkUserExistByUsername(String username);
 
 
    /**
     * 根据用户名检查用户是否存在
     *
     * @param email 邮箱
     * @return true代表存在
     */
    boolean checkUserExistByEmail(String email);
 
    /**
     * 根据用户id检查用户是否存在
     *
     * @param id 用户名
     * @return true代表存在
     */
    boolean checkUserExistById(Integer id);
 
    /**
     * 根据分组id分页获取用户数据
     *
     * @param pager   分页
     * @param groupId 分组id
     * @return 数据页
     */
    IPage<UserDO> getUserPageByGroupId(LinPage<UserDO> pager, Integer groupId);
 
 
    /**
     * 获取超级管理员的id
     *
     * @return 超级管理员的id
     */
    Integer getRootUserId();
 
    /**
     * 生成无状态的登录验证码
     *
     * @return LoginCaptchaVO 验证码视图对象
     * @throws IOException
     * @throws FontFormatException
     * @throws GeneralSecurityException
     */
    LoginCaptchaVO generateCaptcha() throws IOException, FontFormatException, GeneralSecurityException;
 
    /**
     * 校验登录验证码
     *
     * @return 结果
     */
    boolean verifyCaptcha(String captcha, String tag);
 
    /**
     * 获取所有用户信息
     * @param dto
     * @return
     */
    List<UserDO> getAllUsers(QueryProjectDailyDTO dto);
 
    UserDO getUserById(String userId);
}