bcb869857d1eb1412ba0d0a4fee0094b31dad5c9.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. package org.jeecg.modules.api.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import org.jeecg.common.api.dto.OnlineAuthDTO;
  4. import org.jeecg.common.api.dto.message.*;
  5. import org.jeecg.common.system.api.ISysBaseAPI;
  6. import org.jeecg.common.system.vo.*;
  7. import org.jeecg.modules.system.service.ISysUserService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.*;
  10. import java.util.List;
  11. import java.util.Map;
  12. import java.util.Set;
  13. /**
  14. * 服务化 system模块 对外接口请求类
  15. */
  16. @RestController
  17. @RequestMapping("/sys/api")
  18. public class SystemAPIController {
  19. @Autowired
  20. private ISysBaseAPI sysBaseAPI;
  21. @Autowired
  22. private ISysUserService sysUserService;
  23. /**
  24. * 发送系统消息
  25. * @param message 使用构造器赋值参数 如果不设置category(消息类型)则默认为2 发送系统消息
  26. */
  27. @PostMapping("/sendSysAnnouncement")
  28. public void sendSysAnnouncement(@RequestBody MessageDTO message){
  29. sysBaseAPI.sendSysAnnouncement(message);
  30. }
  31. /**
  32. * 发送消息 附带业务参数
  33. * @param message 使用构造器赋值参数
  34. */
  35. @PostMapping("/sendBusAnnouncement")
  36. public void sendBusAnnouncement(@RequestBody BusMessageDTO message){
  37. sysBaseAPI.sendBusAnnouncement(message);
  38. }
  39. /**
  40. * 通过模板发送消息
  41. * @param message 使用构造器赋值参数
  42. */
  43. @PostMapping("/sendTemplateAnnouncement")
  44. public void sendTemplateAnnouncement(@RequestBody TemplateMessageDTO message){
  45. sysBaseAPI.sendTemplateAnnouncement(message);
  46. }
  47. /**
  48. * 通过模板发送消息 附带业务参数
  49. * @param message 使用构造器赋值参数
  50. */
  51. @PostMapping("/sendBusTemplateAnnouncement")
  52. public void sendBusTemplateAnnouncement(@RequestBody BusTemplateMessageDTO message){
  53. sysBaseAPI.sendBusTemplateAnnouncement(message);
  54. }
  55. /**
  56. * 通过消息中心模板,生成推送内容
  57. * @param templateDTO 使用构造器赋值参数
  58. * @return
  59. */
  60. @PostMapping("/parseTemplateByCode")
  61. public String parseTemplateByCode(@RequestBody TemplateDTO templateDTO){
  62. return sysBaseAPI.parseTemplateByCode(templateDTO);
  63. }
  64. /**
  65. * 根据业务类型busType及业务busId修改消息已读
  66. */
  67. @GetMapping("/updateSysAnnounReadFlag")
  68. public void updateSysAnnounReadFlag(@RequestParam("busType") String busType, @RequestParam("busId")String busId){
  69. sysBaseAPI.updateSysAnnounReadFlag(busType, busId);
  70. }
  71. /**
  72. * 根据用户账号查询用户信息
  73. * @param username
  74. * @return
  75. */
  76. @GetMapping("/getUserByName")
  77. public LoginUser getUserByName(@RequestParam("username") String username){
  78. return sysBaseAPI.getUserByName(username);
  79. }
  80. /**
  81. * 根据用户id查询用户信息
  82. * @param id
  83. * @return
  84. */
  85. @GetMapping("/getUserById")
  86. LoginUser getUserById(@RequestParam("id") String id){
  87. return sysBaseAPI.getUserById(id);
  88. }
  89. /**
  90. * 通过用户账号查询角色集合
  91. * @param username
  92. * @return
  93. */
  94. @GetMapping("/getRolesByUsername")
  95. List<String> getRolesByUsername(@RequestParam("username") String username){
  96. return sysBaseAPI.getRolesByUsername(username);
  97. }
  98. /**
  99. * 通过用户账号查询部门集合
  100. * @param username
  101. * @return 部门 id
  102. */
  103. @GetMapping("/getDepartIdsByUsername")
  104. List<String> getDepartIdsByUsername(@RequestParam("username") String username){
  105. return sysBaseAPI.getDepartIdsByUsername(username);
  106. }
  107. /**
  108. * 通过用户账号查询部门 name
  109. * @param username
  110. * @return 部门 name
  111. */
  112. @GetMapping("/getDepartNamesByUsername")
  113. List<String> getDepartNamesByUsername(@RequestParam("username") String username){
  114. return sysBaseAPI.getDepartNamesByUsername(username);
  115. }
  116. /**
  117. * 获取数据字典
  118. * @param code
  119. * @return
  120. */
  121. @GetMapping("/queryDictItemsByCode")
  122. List<DictModel> queryDictItemsByCode(@RequestParam("code") String code){
  123. return sysBaseAPI.queryDictItemsByCode(code);
  124. }
  125. /**
  126. * 获取有效的数据字典
  127. * @param code
  128. * @return
  129. */
  130. @GetMapping("/queryEnableDictItemsByCode")
  131. List<DictModel> queryEnableDictItemsByCode(@RequestParam("code") String code){
  132. return sysBaseAPI.queryEnableDictItemsByCode(code);
  133. }
  134. /** 查询所有的父级字典,按照create_time排序 */
  135. @GetMapping("/queryAllDict")
  136. List<DictModel> queryAllDict(){
  137. return sysBaseAPI.queryAllDict();
  138. }
  139. /**
  140. * 查询所有分类字典
  141. * @return
  142. */
  143. @GetMapping("/queryAllDSysCategory")
  144. List<SysCategoryModel> queryAllDSysCategory(){
  145. return sysBaseAPI.queryAllDSysCategory();
  146. }
  147. /**
  148. * 查询所有部门 作为字典信息 id -->value,departName -->text
  149. * @return
  150. */
  151. @GetMapping("/queryAllDepartBackDictModel")
  152. List<DictModel> queryAllDepartBackDictModel(){
  153. return sysBaseAPI.queryAllDepartBackDictModel();
  154. }
  155. /**
  156. * 获取所有角色 带参
  157. * roleIds 默认选中角色
  158. * @return
  159. */
  160. @GetMapping("/queryAllRole")
  161. public List<ComboModel> queryAllRole(@RequestParam(name = "roleIds",required = false)String[] roleIds){
  162. if(roleIds==null || roleIds.length==0){
  163. return sysBaseAPI.queryAllRole();
  164. }else{
  165. return sysBaseAPI.queryAllRole(roleIds);
  166. }
  167. }
  168. /**
  169. * 通过用户账号查询角色Id集合
  170. * @param username
  171. * @return
  172. */
  173. @GetMapping("/getRoleIdsByUsername")
  174. public List<String> getRoleIdsByUsername(@RequestParam("username")String username){
  175. return sysBaseAPI.getRoleIdsByUsername(username);
  176. }
  177. /**
  178. * 通过部门编号查询部门id
  179. * @param orgCode
  180. * @return
  181. */
  182. @GetMapping("/getDepartIdsByOrgCode")
  183. public String getDepartIdsByOrgCode(@RequestParam("orgCode")String orgCode){
  184. return sysBaseAPI.getDepartIdsByOrgCode(orgCode);
  185. }
  186. /**
  187. * 查询所有部门
  188. * @return
  189. */
  190. @GetMapping("/getAllSysDepart")
  191. public List<SysDepartModel> getAllSysDepart(){
  192. return sysBaseAPI.getAllSysDepart();
  193. }
  194. /**
  195. * 根据 id 查询数据库中存储的 DynamicDataSourceModel
  196. *
  197. * @param dbSourceId
  198. * @return
  199. */
  200. @GetMapping("/getDynamicDbSourceById")
  201. DynamicDataSourceModel getDynamicDbSourceById(@RequestParam("dbSourceId")String dbSourceId){
  202. return sysBaseAPI.getDynamicDbSourceById(dbSourceId);
  203. }
  204. /**
  205. * 根据部门Id获取部门负责人
  206. * @param deptId
  207. * @return
  208. */
  209. @GetMapping("/getDeptHeadByDepId")
  210. public List<String> getDeptHeadByDepId(@RequestParam("deptId") String deptId){
  211. return sysBaseAPI.getDeptHeadByDepId(deptId);
  212. }
  213. /**
  214. * 查找父级部门
  215. * @param departId
  216. * @return
  217. */
  218. @GetMapping("/getParentDepartId")
  219. public DictModel getParentDepartId(@RequestParam("departId")String departId){
  220. return sysBaseAPI.getParentDepartId(departId);
  221. }
  222. /**
  223. * 根据 code 查询数据库中存储的 DynamicDataSourceModel
  224. *
  225. * @param dbSourceCode
  226. * @return
  227. */
  228. @GetMapping("/getDynamicDbSourceByCode")
  229. public DynamicDataSourceModel getDynamicDbSourceByCode(@RequestParam("dbSourceCode") String dbSourceCode){
  230. return sysBaseAPI.getDynamicDbSourceByCode(dbSourceCode);
  231. }
  232. /**
  233. * 给指定用户发消息
  234. * @param userIds
  235. * @param cmd
  236. */
  237. @GetMapping("/sendWebSocketMsg")
  238. public void sendWebSocketMsg(String[] userIds, String cmd){
  239. sysBaseAPI.sendWebSocketMsg(userIds, cmd);
  240. }
  241. /**
  242. * 根据id获取所有参与用户
  243. * userIds
  244. * @return
  245. */
  246. @GetMapping("/queryAllUserByIds")
  247. public List<LoginUser> queryAllUserByIds(@RequestParam("userIds") String[] userIds){
  248. return sysBaseAPI.queryAllUserByIds(userIds);
  249. }
  250. /**
  251. * 查询所有用户 返回ComboModel
  252. * @return
  253. */
  254. @GetMapping("/queryAllUserBackCombo")
  255. public List<ComboModel> queryAllUserBackCombo(){
  256. return sysBaseAPI.queryAllUserBackCombo();
  257. }
  258. /**
  259. * 分页查询用户 返回JSONObject
  260. * @return
  261. */
  262. @GetMapping("/queryAllUser")
  263. public JSONObject queryAllUser(@RequestParam(name="userIds",required=false)String userIds, @RequestParam(name="pageNo",required=false) Integer pageNo,@RequestParam(name="pageSize",required=false) int pageSize){
  264. return sysBaseAPI.queryAllUser(userIds, pageNo, pageSize);
  265. }
  266. /**
  267. * 将会议签到信息推动到预览
  268. * userIds
  269. * @return
  270. * @param userId
  271. */
  272. @GetMapping("/meetingSignWebsocket")
  273. public void meetingSignWebsocket(@RequestParam("userId")String userId){
  274. sysBaseAPI.meetingSignWebsocket(userId);
  275. }
  276. /**
  277. * 根据name获取所有参与用户
  278. * userNames
  279. * @return
  280. */
  281. @GetMapping("/queryUserByNames")
  282. public List<LoginUser> queryUserByNames(@RequestParam("userNames")String[] userNames){
  283. return sysBaseAPI.queryUserByNames(userNames);
  284. }
  285. /**
  286. * 获取用户的角色集合
  287. * @param username
  288. * @return
  289. */
  290. @GetMapping("/getUserRoleSet")
  291. public Set<String> getUserRoleSet(@RequestParam("username")String username){
  292. return sysBaseAPI.getUserRoleSet(username);
  293. }
  294. /**
  295. * 获取用户的权限集合
  296. * @param username
  297. * @return
  298. */
  299. @GetMapping("/getUserPermissionSet")
  300. public Set<String> getUserPermissionSet(@RequestParam("username") String username){
  301. return sysBaseAPI.getUserPermissionSet(username);
  302. }
  303. //-----
  304. /**
  305. * 判断是否有online访问的权限
  306. * @param onlineAuthDTO
  307. * @return
  308. */
  309. @PostMapping("/hasOnlineAuth")
  310. public boolean hasOnlineAuth(@RequestBody OnlineAuthDTO onlineAuthDTO){
  311. return sysBaseAPI.hasOnlineAuth(onlineAuthDTO);
  312. }
  313. /**
  314. * 查询用户角色信息
  315. * @param username
  316. * @return
  317. */
  318. @GetMapping("/queryUserRoles")
  319. public Set<String> queryUserRoles(@RequestParam("username") String username){
  320. return sysUserService.getUserRolesSet(username);
  321. }
  322. /**
  323. * 查询用户权限信息
  324. * @param username
  325. * @return
  326. */
  327. @GetMapping("/queryUserAuths")
  328. public Set<String> queryUserAuths(@RequestParam("username") String username){
  329. return sysUserService.getUserPermissionsSet(username);
  330. }
  331. /**
  332. * 通过部门id获取部门全部信息
  333. */
  334. @GetMapping("/selectAllById")
  335. public SysDepartModel selectAllById(@RequestParam("id") String id){
  336. return sysBaseAPI.selectAllById(id);
  337. }
  338. /**
  339. * 根据用户id查询用户所属公司下所有用户ids
  340. * @param userId
  341. * @return
  342. */
  343. @GetMapping("/queryDeptUsersByUserId")
  344. public List<String> queryDeptUsersByUserId(@RequestParam("userId") String userId){
  345. return sysBaseAPI.queryDeptUsersByUserId(userId);
  346. }
  347. /**
  348. * 查询数据权限
  349. * @return
  350. */
  351. @GetMapping("/queryPermissionDataRule")
  352. public List<SysPermissionDataRuleModel> queryPermissionDataRule(@RequestParam("component") String component, @RequestParam("requestPath")String requestPath, @RequestParam("username") String username){
  353. return sysBaseAPI.queryPermissionDataRule(component, requestPath, username);
  354. }
  355. /**
  356. * 查询用户信息
  357. * @param username
  358. * @return
  359. */
  360. @GetMapping("/getCacheUser")
  361. public SysUserCacheInfo getCacheUser(@RequestParam("username") String username){
  362. return sysBaseAPI.getCacheUser(username);
  363. }
  364. /**
  365. * 普通字典的翻译
  366. * @param code
  367. * @param key
  368. * @return
  369. */
  370. @GetMapping("/translateDict")
  371. public String translateDict(@RequestParam("code") String code, @RequestParam("key") String key){
  372. return sysBaseAPI.translateDict(code, key);
  373. }
  374. /**
  375. * 36根据多个用户账号(逗号分隔),查询返回多个用户信息
  376. * @param usernames
  377. * @return
  378. */
  379. @RequestMapping("/queryUsersByUsernames")
  380. List<JSONObject> queryUsersByUsernames(@RequestParam("usernames") String usernames){
  381. return this.sysBaseAPI.queryUsersByUsernames(usernames);
  382. }
  383. /**
  384. * 37根据多个用户id(逗号分隔),查询返回多个用户信息
  385. * @param ids
  386. * @return
  387. */
  388. @RequestMapping("/queryUsersByIds")
  389. List<JSONObject> queryUsersByIds(@RequestParam("ids") String ids){
  390. return this.sysBaseAPI.queryUsersByIds(ids);
  391. }
  392. /**
  393. * 38根据多个部门编码(逗号分隔),查询返回多个部门信息
  394. * @param orgCodes
  395. * @return
  396. */
  397. @GetMapping("/queryDepartsByOrgcodes")
  398. List<JSONObject> queryDepartsByOrgcodes(@RequestParam("orgCodes") String orgCodes){
  399. return this.sysBaseAPI.queryDepartsByOrgcodes(orgCodes);
  400. }
  401. /**
  402. * 39根据多个部门ID(逗号分隔),查询返回多个部门信息
  403. * @param ids
  404. * @return
  405. */
  406. @GetMapping("/queryDepartsByIds")
  407. List<JSONObject> queryDepartsByIds(@RequestParam("ids") String ids){
  408. return this.sysBaseAPI.queryDepartsByIds(ids);
  409. }
  410. /**
  411. * 40发送邮件消息
  412. * @param email
  413. * @param title
  414. * @param content
  415. */
  416. @GetMapping("/sendEmailMsg")
  417. public void sendEmailMsg(@RequestParam("email")String email,@RequestParam("title")String title,@RequestParam("content")String content){
  418. this.sysBaseAPI.sendEmailMsg(email,title,content);
  419. };
  420. /**
  421. * 41 获取公司下级部门和公司下所有用户信息
  422. * @param orgCode
  423. */
  424. @GetMapping("/getDeptUserByOrgCode")
  425. List<Map> getDeptUserByOrgCode(@RequestParam("orgCode")String orgCode){
  426. return this.sysBaseAPI.getDeptUserByOrgCode(orgCode);
  427. }
  428. /**
  429. * 查询分类字典翻译
  430. *
  431. * @param ids 分类字典表id
  432. * @return
  433. */
  434. @GetMapping("/loadCategoryDictItem")
  435. public List<String> loadCategoryDictItem(@RequestParam("ids") String ids) {
  436. return sysBaseAPI.loadCategoryDictItem(ids);
  437. }
  438. /**
  439. * 根据字典code加载字典text
  440. *
  441. * @param dictCode 顺序:tableName,text,code
  442. * @param keys 要查询的key
  443. * @return
  444. */
  445. @GetMapping("/loadDictItem")
  446. public List<String> loadDictItem(@RequestParam("dictCode") String dictCode, @RequestParam("keys") String keys) {
  447. return sysBaseAPI.loadDictItem(dictCode, keys);
  448. }
  449. /**
  450. * 根据字典code查询字典项
  451. *
  452. * @param dictCode 顺序:tableName,text,code
  453. * @param dictCode 要查询的key
  454. * @return
  455. */
  456. @GetMapping("/getDictItems")
  457. public List<DictModel> getDictItems(@RequestParam("dictCode") String dictCode) {
  458. return sysBaseAPI.getDictItems(dictCode);
  459. }
  460. /**
  461. * 根据多个字典code查询多个字典项
  462. *
  463. * @param dictCodeList
  464. * @return key = dictCode ; value=对应的字典项
  465. */
  466. @RequestMapping("/getManyDictItems")
  467. public Map<String, List<DictModel>> getManyDictItems(@RequestParam("dictCodeList") List<String> dictCodeList) {
  468. return sysBaseAPI.getManyDictItems(dictCodeList);
  469. }
  470. /**
  471. * 【下拉搜索】
  472. * 大数据量的字典表 走异步加载,即前端输入内容过滤数据
  473. *
  474. * @param dictCode 字典code格式:table,text,code
  475. * @param keyword 过滤关键字
  476. * @return
  477. */
  478. @GetMapping("/loadDictItemByKeyword")
  479. public List<DictModel> loadDictItemByKeyword(@RequestParam("dictCode") String dictCode, @RequestParam("keyword") String keyword, @RequestParam(value = "pageSize", required = false) Integer pageSize) {
  480. return sysBaseAPI.loadDictItemByKeyword(dictCode, keyword, pageSize);
  481. }
  482. /**
  483. * 48 普通字典的翻译,根据多个dictCode和多条数据,多个以逗号分割
  484. * @param dictCodes
  485. * @param keys
  486. * @return
  487. */
  488. @GetMapping("/translateManyDict")
  489. public Map<String, List<DictModel>> translateManyDict(@RequestParam("dictCodes") String dictCodes, @RequestParam("keys") String keys){
  490. return this.sysBaseAPI.translateManyDict(dictCodes, keys);
  491. }
  492. /**
  493. * 获取表数据字典 【接口签名验证】
  494. * @param table
  495. * @param text
  496. * @param code
  497. * @return
  498. */
  499. @GetMapping("/queryTableDictItemsByCode")
  500. List<DictModel> queryTableDictItemsByCode(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code){
  501. return sysBaseAPI.queryTableDictItemsByCode(table, text, code);
  502. }
  503. /**
  504. * 查询表字典 支持过滤数据 【接口签名验证】
  505. * @param table
  506. * @param text
  507. * @param code
  508. * @param filterSql
  509. * @return
  510. */
  511. @GetMapping("/queryFilterTableDictInfo")
  512. List<DictModel> queryFilterTableDictInfo(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("filterSql") String filterSql){
  513. return sysBaseAPI.queryFilterTableDictInfo(table, text, code, filterSql);
  514. }
  515. /**
  516. * 【接口签名验证】
  517. * 查询指定table的 text code 获取字典,包含text和value
  518. * @param table
  519. * @param text
  520. * @param code
  521. * @param keyArray
  522. * @return
  523. */
  524. @Deprecated
  525. @GetMapping("/queryTableDictByKeys")
  526. public List<String> queryTableDictByKeys(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("keyArray") String[] keyArray){
  527. return sysBaseAPI.queryTableDictByKeys(table, text, code, keyArray);
  528. }
  529. /**
  530. * 字典表的 翻译【接口签名验证】
  531. * @param table
  532. * @param text
  533. * @param code
  534. * @param key
  535. * @return
  536. */
  537. @GetMapping("/translateDictFromTable")
  538. public String translateDictFromTable(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("key") String key){
  539. return sysBaseAPI.translateDictFromTable(table, text, code, key);
  540. }
  541. /**
  542. * 【接口签名验证】
  543. * 49 字典表的 翻译,可批量
  544. *
  545. * @param table
  546. * @param text
  547. * @param code
  548. * @param keys 多个用逗号分割
  549. * @return
  550. */
  551. @GetMapping("/translateDictFromTableByKeys")
  552. public List<DictModel> translateDictFromTableByKeys(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("keys") String keys) {
  553. return this.sysBaseAPI.translateDictFromTableByKeys(table, text, code, keys);
  554. }
  555. }