b47627bf4c84332a79efa4d7e0eaac90b2381e5f.svn-base 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. package org.jeecg.common.system.api;
  2. import com.alibaba.fastjson.JSONObject;
  3. import org.jeecg.common.api.CommonAPI;
  4. import org.jeecg.common.api.dto.OnlineAuthDTO;
  5. import org.jeecg.common.api.dto.message.*;
  6. import org.jeecg.common.system.vo.*;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.Set;
  10. /**
  11. * @Description 底层共通业务API,提供其他独立模块调用
  12. * @Author scott
  13. * @Date 2019-4-20
  14. * @Version V1.0
  15. */
  16. public interface ISysBaseAPI extends CommonAPI {
  17. /**
  18. * 1发送系统消息
  19. * @param message 使用构造器赋值参数 如果不设置category(消息类型)则默认为2 发送系统消息
  20. */
  21. void sendSysAnnouncement(MessageDTO message);
  22. /**
  23. * 2发送消息 附带业务参数
  24. * @param message 使用构造器赋值参数
  25. */
  26. void sendBusAnnouncement(BusMessageDTO message);
  27. /**
  28. * 3通过模板发送消息
  29. * @param message 使用构造器赋值参数
  30. */
  31. void sendTemplateAnnouncement(TemplateMessageDTO message);
  32. /**
  33. * 4通过模板发送消息 附带业务参数
  34. * @param message 使用构造器赋值参数
  35. */
  36. void sendBusTemplateAnnouncement(BusTemplateMessageDTO message);
  37. /**
  38. * 5通过消息中心模板,生成推送内容
  39. * @param templateDTO 使用构造器赋值参数
  40. * @return
  41. */
  42. String parseTemplateByCode(TemplateDTO templateDTO);
  43. /**
  44. * 6根据用户id查询用户信息
  45. * @param id
  46. * @return
  47. */
  48. LoginUser getUserById(String id);
  49. /**
  50. * 7通过用户账号查询角色集合
  51. * @param username
  52. * @return
  53. */
  54. List<String> getRolesByUsername(String username);
  55. /**
  56. * 8通过用户账号查询部门集合
  57. * @param username
  58. * @return 部门 id
  59. */
  60. List<String> getDepartIdsByUsername(String username);
  61. /**
  62. * 9通过用户账号查询部门 name
  63. * @param username
  64. * @return 部门 name
  65. */
  66. List<String> getDepartNamesByUsername(String username);
  67. /** 11查询所有的父级字典,按照create_time排序 */
  68. public List<DictModel> queryAllDict();
  69. /**
  70. * 12查询所有分类字典
  71. * @return
  72. */
  73. public List<SysCategoryModel> queryAllDSysCategory();
  74. /**
  75. * 14查询所有部门 作为字典信息 id -->value,departName -->text
  76. * @return
  77. */
  78. public List<DictModel> queryAllDepartBackDictModel();
  79. /**
  80. * 15根据业务类型及业务id修改消息已读
  81. * @param busType
  82. * @param busId
  83. */
  84. public void updateSysAnnounReadFlag(String busType, String busId);
  85. /**
  86. * 16查询表字典 支持过滤数据
  87. * @param table
  88. * @param text
  89. * @param code
  90. * @param filterSql
  91. * @return
  92. */
  93. public List<DictModel> queryFilterTableDictInfo(String table, String text, String code, String filterSql);
  94. /**
  95. * 17查询指定table的 text code 获取字典,包含text和value
  96. * @param table
  97. * @param text
  98. * @param code
  99. * @param keyArray
  100. * @return
  101. */
  102. @Deprecated
  103. public List<String> queryTableDictByKeys(String table, String text, String code, String[] keyArray);
  104. /**
  105. * 18查询所有用户 返回ComboModel
  106. * @return
  107. */
  108. public List<ComboModel> queryAllUserBackCombo();
  109. /**
  110. * 19分页查询用户 返回JSONObject
  111. * @return
  112. */
  113. public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize);
  114. /**
  115. * 20获取所有角色
  116. * @return
  117. */
  118. public List<ComboModel> queryAllRole();
  119. /**
  120. * 21获取所有角色 带参
  121. * roleIds 默认选中角色
  122. * @return
  123. */
  124. public List<ComboModel> queryAllRole(String[] roleIds );
  125. /**
  126. * 22通过用户账号查询角色Id集合
  127. * @param username
  128. * @return
  129. */
  130. public List<String> getRoleIdsByUsername(String username);
  131. /**
  132. * 23通过部门编号查询部门id
  133. * @param orgCode
  134. * @return
  135. */
  136. public String getDepartIdsByOrgCode(String orgCode);
  137. /**
  138. * 24查询所有部门
  139. * @return
  140. */
  141. public List<SysDepartModel> getAllSysDepart();
  142. /**
  143. * 25查找父级部门
  144. * @param departId
  145. * @return
  146. */
  147. DictModel getParentDepartId(String departId);
  148. /**
  149. * 26根据部门Id获取部门负责人
  150. * @param deptId
  151. * @return
  152. */
  153. public List<String> getDeptHeadByDepId(String deptId);
  154. /**
  155. * 27给指定用户发消息
  156. * @param userIds
  157. * @param cmd
  158. */
  159. public void sendWebSocketMsg(String[] userIds, String cmd);
  160. /**
  161. * 28根据id获取所有参与用户
  162. * userIds
  163. * @return
  164. */
  165. public List<LoginUser> queryAllUserByIds(String[] userIds);
  166. /**
  167. * 29将会议签到信息推动到预览
  168. * userIds
  169. * @return
  170. * @param userId
  171. */
  172. void meetingSignWebsocket(String userId);
  173. /**
  174. * 30根据name获取所有参与用户
  175. * userNames
  176. * @return
  177. */
  178. List<LoginUser> queryUserByNames(String[] userNames);
  179. /**
  180. * 31获取用户的角色集合
  181. * @param username
  182. * @return
  183. */
  184. Set<String> getUserRoleSet(String username);
  185. /**
  186. * 32获取用户的权限集合
  187. * @param username
  188. * @return
  189. */
  190. Set<String> getUserPermissionSet(String username);
  191. /**
  192. * 33判断是否有online访问的权限
  193. * @param onlineAuthDTO
  194. * @return
  195. */
  196. boolean hasOnlineAuth(OnlineAuthDTO onlineAuthDTO);
  197. /**
  198. * 34通过部门id获取部门全部信息
  199. */
  200. SysDepartModel selectAllById(String id);
  201. /**
  202. * 35根据用户id查询用户所属公司下所有用户ids
  203. * @param userId
  204. * @return
  205. */
  206. List<String> queryDeptUsersByUserId(String userId);
  207. /**
  208. * 36根据多个用户账号(逗号分隔),查询返回多个用户信息
  209. * @param usernames
  210. * @return
  211. */
  212. List<JSONObject> queryUsersByUsernames(String usernames);
  213. /**
  214. * 37根据多个用户ID(逗号分隔),查询返回多个用户信息
  215. * @param ids
  216. * @return
  217. */
  218. List<JSONObject> queryUsersByIds(String ids);
  219. /**
  220. * 38根据多个部门编码(逗号分隔),查询返回多个部门信息
  221. * @param orgCodes
  222. * @return
  223. */
  224. List<JSONObject> queryDepartsByOrgcodes(String orgCodes);
  225. /**
  226. * 39根据多个部门id(逗号分隔),查询返回多个部门信息
  227. * @param ids
  228. * @return
  229. */
  230. List<JSONObject> queryDepartsByIds(String ids);
  231. /**
  232. * 40发送邮件消息
  233. * @param email
  234. * @param title
  235. * @param content
  236. */
  237. void sendEmailMsg(String email,String title,String content);
  238. /**
  239. * 41 获取公司下级部门和公司下所有用户信息
  240. * @param orgCode
  241. */
  242. List<Map> getDeptUserByOrgCode(String orgCode);
  243. /**
  244. * 查询分类字典翻译
  245. */
  246. List<String> loadCategoryDictItem(String ids);
  247. /**
  248. * 根据字典code加载字典text
  249. *
  250. * @param dictCode 顺序:tableName,text,code
  251. * @param keys 要查询的key
  252. * @return
  253. */
  254. List<String> loadDictItem(String dictCode, String keys);
  255. /**
  256. * 根据字典code查询字典项
  257. *
  258. * @param dictCode 顺序:tableName,text,code
  259. * @param dictCode 要查询的key
  260. * @return
  261. */
  262. List<DictModel> getDictItems(String dictCode);
  263. /**
  264. * 根据多个字典code查询多个字典项
  265. * @param dictCodeList
  266. * @return key = dictCode ; value=对应的字典项
  267. */
  268. Map<String, List<DictModel>> getManyDictItems(List<String> dictCodeList);
  269. /**
  270. * 【JSearchSelectTag下拉搜索组件专用接口】
  271. * 大数据量的字典表 走异步加载 即前端输入内容过滤数据
  272. *
  273. * @param dictCode 字典code格式:table,text,code
  274. * @param keyword 过滤关键字
  275. * @return
  276. */
  277. List<DictModel> loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize);
  278. }