peng
2026-03-18 e59a0201057ba67cad425fed804c82ff4ba0c6f1
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
package com.tievd.cube.modules.system.controller;
 
import cn.hutool.json.JSONObject;
import com.tievd.cube.commons.model.DataLogDTO;
import com.tievd.cube.commons.model.LogDTO;
import com.tievd.cube.commons.model.BusMessageDTO;
import com.tievd.cube.commons.model.BusTemplateMessageDTO;
import com.tievd.cube.commons.model.MessageDTO;
import com.tievd.cube.commons.model.TemplateMessageDTO;
import com.tievd.cube.common.system.api.ISysBaseAPI;
import com.tievd.cube.modules.system.model.*;
import com.tievd.cube.modules.system.service.ISysUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
/**
 * 微服务API
 *
 * @author 杨欣武
 * @apiNote 微服务化后系统胡模块对外的API
 */
@Tag(name = "微服务相关接口")
@RestController
@RequestMapping("/sys/api")
public class SystemAPIController {
 
    @Autowired
    private ISysBaseAPI sysBaseAPI;
    @Autowired
    private ISysUserService sysUserService;
 
    /**
     * 发送系统消息
     *
     * @param message 消息
     * @apiNote 使用构造器赋值参数,如果不设置category(消息类型)则默认为2[发送系统消息]
     */
    @PostMapping("/sendSysAnnouncement")
    public void sendSysAnnouncement(@RequestBody MessageDTO message) {
        sysBaseAPI.sendSysAnnouncement(message);
    }
 
    /**
     * 发送系统消息(附带业务参数)
     *
     * @param message 使用构造器赋值参数
     * @apiNote 使用构造器赋值参数,附带业务参数
     */
    @PostMapping("/sendBusAnnouncement")
    public void sendBusAnnouncement(@RequestBody BusMessageDTO message) {
        sysBaseAPI.sendBusAnnouncement(message);
    }
 
    /**
     * 通过模板发送消息
     *
     * @param message 使用构造器赋值参数
     */
    @PostMapping("/sendTemplateAnnouncement")
    public void sendTemplateAnnouncement(@RequestBody TemplateMessageDTO message) {
        sysBaseAPI.sendTemplateAnnouncement(message);
    }
 
    /**
     * 通过模板发送消息 附带业务参数
     *
     * @param message 使用构造器赋值参数
     */
    @PostMapping("/sendBusTemplateAnnouncement")
    public void sendBusTemplateAnnouncement(@RequestBody BusTemplateMessageDTO message) {
        sysBaseAPI.sendBusTemplateAnnouncement(message);
    }
 
    /**
     * 根据用户id查询用户信息
     */
    @GetMapping("/getUserById")
    public LoginUser getUserById(@RequestParam("id") String id) {
        return sysBaseAPI.getUserById(id);
    }
 
    /**
     * 通过用户账号查询角色集合
     */
    @GetMapping("/getRolesByUsername")
    public List<String> getRolesByUsername(@RequestParam("username") String username) {
        return sysBaseAPI.getRolesByUsername(username);
    }
 
    /**
     * 通过用户账号查询部门集合
     */
    @GetMapping("/getDepartIdsByUsername")
    public List<String> getDepartIdsByUsername(@RequestParam("username") String username) {
        return sysBaseAPI.getDepartIdsByUsername(username);
    }
 
    /**
     * 通过用户账号查询部门 name
     */
    @GetMapping("/getDepartNamesByUsername")
    public List<String> getDepartNamesByUsername(@RequestParam("username") String username) {
        return sysBaseAPI.getDepartNamesByUsername(username);
    }
 
    /**
     * 获取数据字典
     */
    @GetMapping("/queryDictItemsByCode")
    public List<DictModel> queryDictItemsByCode(@RequestParam("code") String code) {
        return sysBaseAPI.queryDictItemsByCode(code);
    }
 
    /**
     * 查询所有的父级字典
     *
     * @apiNote 按照create_time排序
     */
    @GetMapping("/queryAllDict")
    public List<DictModel> queryAllDict() {
        return sysBaseAPI.queryAllDict();
    }
 
    /**
     * 查询所有分类字典
     */
    @GetMapping("/queryAllCategory")
    public List<SysCategoryModel> queryAllCategory() {
        return sysBaseAPI.queryAllCategory();
    }
 
    /**
     * 获取表数据字典
     */
    @GetMapping("/queryTableDictItemsByCode")
    public List<DictModel> queryTableDictItemsByCode(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code) {
        return sysBaseAPI.queryTableDictItemsByCode(table, text, code);
    }
 
    /**
     * 查询所有部门
     *
     * @apiNote 作为字典信息 id -> value,departName -> text
     */
    @GetMapping("/queryAllDepartBackDictModel")
    public List<DictModel> queryAllDepartBackDictModel() {
        return sysBaseAPI.queryAllDepartBackDictModel();
    }
 
    /**
     * 查询表字典 支持过滤数据
     */
    @GetMapping("/queryFilterTableDictInfo")
    public List<DictModel> queryFilterTableDictInfo(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("filterSql") String filterSql) {
        return sysBaseAPI.queryFilterTableDictInfo(table, text, code, filterSql);
    }
 
    /**
     * 获取所有角色
     *
     * @param roleIds 默认选中角色
     */
    @GetMapping("/queryAllRole")
    public List<ComboModel> queryAllRole(@RequestParam(required = false) String[] roleIds) {
        if (roleIds == null || roleIds.length == 0) {
            return sysBaseAPI.queryAllRole();
        } else {
            return sysBaseAPI.queryAllRole(roleIds);
        }
    }
 
    /**
     * 通过用户账号查询角色Id集合
     */
    @GetMapping("/getRoleIdsByUsername")
    public List<String> getRoleIdsByUsername(@RequestParam String username) {
        return sysBaseAPI.getRoleIdsByUsername(username);
    }
 
    /**
     * 通过部门编号查询部门id
     */
    @GetMapping("/getDepartIdsByOrgCode")
    public String getDepartIdsByOrgCode(@RequestParam String orgCode) {
        return sysBaseAPI.getDepartIdsByOrgCode(orgCode);
    }
 
    /**
     * 查询所有部门
     */
    @GetMapping("/getAllSysDepart")
    public List<SysDepartModel> getAllSysDepart() {
        return sysBaseAPI.getAllSysDepart();
    }
 
    /**
     * 根据id查询数据库中存储的数据源
     */
    @GetMapping("/getDynamicDbSourceById")
    public DynamicDataSourceModel getDynamicDbSourceById(@RequestParam String dbSourceId) {
        return sysBaseAPI.getDynamicDbSourceById(dbSourceId);
    }
 
    /**
     * 根据部门id获取部门负责人
     */
    @GetMapping("/getDeptHeadByDepId")
    public List<String> getDeptHeadByDepId(@RequestParam String deptId) {
        return sysBaseAPI.getDeptHeadByDepId(deptId);
    }
 
    /**
     * 查找父级部门
     */
    @GetMapping("/getParentDepartId")
    public DictModel getParentDepartId(@RequestParam("departId") String departId) {
        return sysBaseAPI.getParentDepartId(departId);
    }
 
    /**
     * 根据code查询数据库中存储的数据源
     */
    @GetMapping("/getDynamicDbSourceByCode")
    public DynamicDataSourceModel getDynamicDbSourceByCode(@RequestParam("dbSourceCode") String dbSourceCode) {
        return sysBaseAPI.getDynamicDbSourceByCode(dbSourceCode);
    }
 
    /**
     * 给指定用户发消息
     */
    @GetMapping("/sendWebSocketMsg")
    public void sendWebSocketMsg(String[] userIds, String cmd) {
        sysBaseAPI.sendWebSocketMsg(userIds, cmd);
    }
 
    /**
     * 根据id获取所有参与用户
     */
    @GetMapping("/queryAllUserByIds")
    public List<LoginUser> queryAllUserByIds(@RequestParam String[] userIds) {
        return sysBaseAPI.queryAllUserByIds(userIds);
    }
 
    /**
     * 查询所有用户
     */
    @GetMapping("/queryAllUserBackCombo")
    public List<ComboModel> queryAllUserBackCombo() {
        return sysBaseAPI.queryAllUserBackCombo();
    }
 
    /**
     * 分页查询用户
     */
    @GetMapping("/queryAllUser")
    public JSONObject queryAllUser(@RequestParam(required = false) String userIds, @RequestParam(required = false) Integer pageNo, @RequestParam(required = false) int pageSize) {
        return sysBaseAPI.queryAllUser(userIds, pageNo, pageSize);
    }
 
    /**
     * 根据name获取所有参与用户
     */
    @GetMapping("/queryUserByNames")
    public List<LoginUser> queryUserByNames(@RequestParam String[] userNames) {
        return sysBaseAPI.queryUserByNames(userNames);
    }
 
    /**
     * 查询用户角色信息
     */
    @GetMapping("/queryUserRoles")
    public List<String> queryUserRoles(@RequestParam String username) {
        return sysBaseAPI.queryUserRoles(username);
    }
 
    /**
     * 查询用户权限信息
     */
    @GetMapping("/queryUserAuths")
    public List<String> queryUserAuths(@RequestParam String username) {
        return sysBaseAPI.queryUserAuths(username);
    }
 
    /**
     * 通过部门id获取部门全部信息
     */
    @GetMapping("/selectAllById")
    public SysDepartModel selectAllById(@RequestParam String id) {
        return sysBaseAPI.selectAllById(id);
    }
 
    /**
     * 根据用户id查询用户所属公司下所有用户ids
     */
    @GetMapping("/queryDeptUsersByUserId")
    public List<String> queryDeptUsersByUserId(@RequestParam String userId) {
        return sysBaseAPI.queryDeptUsersByUserId(userId);
    }
 
    /**
     * 查询数据权限
     */
    @GetMapping("/queryPermissionDataRule")
    public List<SysPermissionDataRuleModel> queryPermissionDataRule(@RequestParam String component, @RequestParam String requestPath, @RequestParam String username) {
        return sysBaseAPI.queryPermissionDataRule(component, requestPath, username);
    }
 
    /**
     * 字典表翻译
     */
    @GetMapping("/translateDictFromTable")
    public String translateDictFromTable(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("key") String key) {
        return sysBaseAPI.translateDictFromTable(table, text, code, key);
    }
 
    /**
     * 字典表多键值翻译
     */
    @GetMapping("/translateDictListFromTable")
    public List<DictModel> translateDictListFromTable(@RequestParam String table, @RequestParam String text, @RequestParam String code, @RequestParam List<String> keys) {
        return sysBaseAPI.translateDictFromTable(table, text, code, keys);
    }
 
    /**
     * 字典表键值翻译回键
     */
    @GetMapping("/translateDictKeyFromTable")
    public String translateDictKeyFromTable(@RequestParam("table") String table, @RequestParam String text, @RequestParam String code, @RequestParam String value) {
        return sysBaseAPI.translateDictKeyFromTable(table, text, code, value);
    }
 
    /**
     * 普通字典的翻译
     */
    @GetMapping("/translateDict")
    public String translateDict(@RequestParam("code") String code, @RequestParam("key") String key) {
        return sysBaseAPI.translateDict(code, key);
    }
 
    /**
     * 数据字典键值翻译
     */
    @GetMapping("/translateDictKey")
    public String translateDictKey(@RequestParam String code, @RequestParam String text) {
        return sysBaseAPI.translateDictKey(code, text);
    }
 
    /**
     * 添加操作日志
     *
     * @param logDTO 操作日志
     */
    @PostMapping("/addLogByDTO")
    public void addLog(@RequestBody LogDTO logDTO) {
        sysBaseAPI.addLog(logDTO);
    }
 
    /**
     * 添加操作日志
     *
     * @param logContent  日志内容
     * @param logType     日志类型
     * @param operateType 操作类型
     */
    @PostMapping("/addLog")
    public void addLog(@RequestParam String logContent, @RequestParam Integer logType, @RequestParam Integer operateType) {
        sysBaseAPI.addLog(logContent, logType, operateType);
    }
 
    /**
     * 根据多个用户账号
     *
     * @apiNote 以逗号分隔的方式,查询返回多个用户信息
     */
    @GetMapping("/queryUsersByUsernames")
    public JSONObject queryUsersByUsernames(String usernames) {
        return this.sysBaseAPI.queryUsersByUsernames(usernames);
    }
 
    /**
     * 根据多个部门编码
     *
     * @apiNote 以逗号分隔的方式,返回多个部门信息
     */
    @GetMapping("/queryDepartsByOrgCodes")
    public JSONObject queryDepartsByOrgCodes(String orgCodes) {
        return this.sysBaseAPI.queryDepartsByOrgCodes(orgCodes);
    }
 
    /**
     * 添加数据日志
     *
     * @param dataLog 数据日志内容
     */
    @PostMapping("/addDataLog")
    public void addDataLog(@RequestBody DataLogDTO dataLog) {
        this.sysBaseAPI.addDataLog(dataLog.getTableName(), dataLog.getDataId(), dataLog.getDataContent());
    }
 
    /**
     * 根据业务类型busType及业务busId修改消息已读
     */
    @GetMapping("/updateAnnouncementReadFlag")
    public void updateAnnouncementReadFlag(@RequestParam String busType, @RequestParam String busId) {
        sysBaseAPI.updateAnnouncementReadFlag(busType, busId);
    }
 
    /**
     * 根据用户账号查询用户信息
     */
    @GetMapping("/getUserByName")
    public LoginUser getUserByName(@RequestParam String username) {
        return sysBaseAPI.getUserByName(username);
    }
}