ApiController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. package com.roma.romaapi.controller;
  2. import com.roma.romaapi.service.ApiService;
  3. import com.roma.romaapi.service.CaptchaService;
  4. import com.roma.romaapi.utils.CommonUtil;
  5. import com.roma.romaapi.utils.CustomResponse;
  6. import com.roma.romaapi.utils.UUIDUtil;
  7. import jakarta.servlet.http.HttpServletRequest;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.data.redis.core.RedisTemplate;
  11. import org.springframework.data.redis.core.ValueOperations;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.multipart.MultipartFile;
  14. import java.io.File;
  15. import java.io.IOException;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.concurrent.TimeUnit;
  20. @RestController
  21. @CrossOrigin
  22. public class ApiController {
  23. private Integer timeout = 600;
  24. @Autowired
  25. CaptchaService captchaService;
  26. @Autowired
  27. ApiService apiService;
  28. @Autowired
  29. private UUIDUtil uuidUtil;
  30. @Autowired
  31. private RedisTemplate<String, String> redisTemplate;
  32. @Autowired
  33. CommonUtil commonUtil;
  34. // 获取验证码
  35. @RequestMapping("/login/verifyCode")
  36. public Map<String, Object> loginVerifyCode() throws IOException {
  37. return captchaService.captchaCreator();
  38. }
  39. // 登录系统
  40. @RequestMapping("/api/login")
  41. public Map login(HttpServletRequest request){
  42. Map<String, String[]> maps = request.getParameterMap();
  43. Map<String, Object> loginResult = apiService.login(maps);
  44. return CustomResponse.formatResponse(loginResult);
  45. }
  46. // 获取用户信息
  47. @RequestMapping("/api/userInfo")
  48. public Map userInfo(@RequestHeader("Authorization") String authorization){
  49. Map<String, Object> loginResult = apiService.userInfo(authorization);
  50. return CustomResponse.formatResponse(loginResult);
  51. }
  52. // 退出登录
  53. @RequestMapping("/api/logout")
  54. public Map logout(@RequestHeader("Authorization") String authorization){
  55. Map<String, Object> loginResult = apiService.logout(authorization);
  56. return CustomResponse.formatResponse(loginResult);
  57. }
  58. //=============================================权限相关======================================
  59. // 权限管理-获取所有权限
  60. @RequestMapping("/api/permissionList")
  61. public Map permissionList(HttpServletRequest request) {
  62. Map<String, Object> ret = new HashMap<>();
  63. List allPermiss = apiService.permissionList();
  64. ret.put("options", allPermiss);
  65. return CustomResponse.formatResponse(ret);
  66. }
  67. // 权限管理-获取全部权限项
  68. @RequestMapping("/api/selectPermissionList")
  69. public Map pagePermissionList(HttpServletRequest request) {
  70. Map<String, Object> ret = new HashMap<>();
  71. List allPermiss = apiService.selectPermissionList();
  72. ret.put("options", allPermiss);
  73. return CustomResponse.formatResponse(ret);
  74. }
  75. // 权限管理-添加权限
  76. @RequestMapping("/api/addPermissions")
  77. public Map addPermissions(HttpServletRequest request, @RequestBody String data) {
  78. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  79. Map<String, Object> ret = new HashMap<>();
  80. ret = apiService.addPermissions(maps);
  81. return CustomResponse.formatResponse(ret);
  82. }
  83. // 获取指定权限项数据
  84. @RequestMapping("/api/permissionDetailed")
  85. public Map permissionDetailed(HttpServletRequest request, @RequestBody String data){
  86. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  87. Map detailInfo = apiService.permissionDetailById(maps);
  88. return CustomResponse.formatResponse(detailInfo);
  89. }
  90. // 权限管理-添加权限-获取所有页面,选择关联页面,无分页,且为options格式
  91. @RequestMapping("/api/pageList")
  92. public Map pageDetailsList(){
  93. Map<String, Object> ret = new HashMap<>();
  94. List pageList = apiService.pageList();
  95. ret.put("options", pageList);
  96. return CustomResponse.formatResponse(ret);
  97. }
  98. // 返回带分页格式的数据-page列表管理页
  99. @RequestMapping("/api/pageManageList")
  100. public Map pageManageList(HttpServletRequest request, @RequestBody String data){
  101. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  102. Map<String, Object> ret = new HashMap<>();
  103. ret = apiService.pageListHasPaging(maps);
  104. return CustomResponse.formatResponse(ret);
  105. }
  106. // 获取指定页面page_details表数据
  107. @RequestMapping("/api/pageDetail")
  108. public Map pageDetail(HttpServletRequest request, @RequestBody String data){
  109. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  110. Map detailInfo = apiService.pageDetailById(maps);
  111. detailInfo.put("sysPageDetails", "1");
  112. return CustomResponse.formatResponse(detailInfo);
  113. }
  114. // 页面管理-新增页面
  115. @RequestMapping("/api/pageSave")
  116. public Map pageSave(HttpServletRequest request, @RequestBody String data) {
  117. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  118. Map ret = apiService.addPage(maps);
  119. return CustomResponse.formatResponse(ret);
  120. }
  121. // 返回带分页格式数据-数据源管理
  122. @RequestMapping("/api/datasourceManageList")
  123. public Map datasourceManageList(HttpServletRequest request, @RequestBody String data){
  124. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  125. Map<String, Object> ret;
  126. ret = apiService.datasourceListHasPaging(maps);
  127. return CustomResponse.formatResponse(ret);
  128. }
  129. // 新增/编辑数据源
  130. @RequestMapping("/api/saveDatasource")
  131. public Map saveDatasource(HttpServletRequest request, @RequestBody String data) {
  132. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  133. Map ret = apiService.saveDatasource(maps);
  134. return CustomResponse.formatResponse(ret);
  135. }
  136. // /api/deleteDatasource 删除
  137. @RequestMapping("/api/deleteDatasource")
  138. public Map deleteDatasource(HttpServletRequest request, @RequestBody String data) {
  139. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  140. Map ret = apiService.delDatasource(maps);
  141. return CustomResponse.formatResponse(ret);
  142. }
  143. // 返回带分页格式的数据-sql列表管理页
  144. @RequestMapping("/api/sqlManageList")
  145. public Map sqlManageList(HttpServletRequest request, @RequestBody String data){
  146. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  147. Map<String, Object> ret = new HashMap<>();
  148. ret = apiService.sqlListHasPaging(maps);
  149. return CustomResponse.formatResponse(ret);
  150. }
  151. // sql管理-获取sql详情
  152. @RequestMapping("/api/sqlDetailed")
  153. public Map sqlDetailed(HttpServletRequest request, @RequestBody String data) {
  154. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  155. Map ret = apiService.sqlDetailById(maps);
  156. return CustomResponse.formatResponse(ret);
  157. }
  158. // basic基础管理-删除对应数据
  159. @RequestMapping("/api/deleteBasic")
  160. public Map deleteBasic(HttpServletRequest request, @RequestBody String data) {
  161. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  162. Map ret = apiService.delDetailById(maps);
  163. return CustomResponse.formatResponse(ret);
  164. }
  165. // 删除权限数据
  166. @RequestMapping("/api/deletePermission")
  167. public Map deletePermission(HttpServletRequest request, @RequestBody String data) {
  168. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  169. Map ret = apiService.deletePermissionById(maps);
  170. return CustomResponse.formatResponse(ret);
  171. }
  172. // sql管理-新增和编辑Sql
  173. @RequestMapping("/api/sqlSave")
  174. public Map sqlSave(HttpServletRequest request, @RequestBody String data, @RequestHeader("Authorization") String authorization) {
  175. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  176. Map ret = apiService.addSql(maps, authorization);
  177. return CustomResponse.formatResponse(ret);
  178. }
  179. // 权限管理-添加权限-获取所有页面,选择关联sql,无分页,且为options格式
  180. @RequestMapping("/api/sqlList")
  181. public Map sqlDetailsList(){
  182. Map<String, Object> ret = new HashMap<>();
  183. List pageList = apiService.sqlList();
  184. ret.put("options", pageList);
  185. return CustomResponse.formatResponse(ret);
  186. }
  187. // 权限管理-添加权限-获取所有页面,选择关联api,无分页,且为options格式
  188. @RequestMapping("/api/apiList")
  189. public Map apiDetailsList(){
  190. Map<String, Object> ret = new HashMap<>();
  191. List apiList = apiService.apiList();
  192. ret.put("options", apiList);
  193. return CustomResponse.formatResponse(ret);
  194. }
  195. // 权限管理-添加权限-获取所有页面,选择关联item,无分页,且为options格式
  196. @RequestMapping("/api/itemList")
  197. public Map itemDetailsList(){
  198. Map<String, Object> ret = new HashMap<>();
  199. List pageList = apiService.itemList();
  200. ret.put("options", pageList);
  201. return CustomResponse.formatResponse(ret);
  202. }
  203. // 角色管理-获取全部角色
  204. @RequestMapping("/api/roleList")
  205. public Map roleList(HttpServletRequest request, @RequestBody String data) {
  206. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  207. Map<String, Object> ret = new HashMap<>();
  208. ret = apiService.roleList(maps);
  209. return CustomResponse.formatResponse(ret);
  210. }
  211. // 角色管理-获取角色详情
  212. @RequestMapping("/api/roleDetailed")
  213. public Map roleDetailed(HttpServletRequest request, @RequestBody String data) {
  214. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  215. Map ret = apiService.roleDetailById(maps);
  216. return CustomResponse.formatResponse(ret);
  217. }
  218. // 添加角色
  219. @RequestMapping("/api/roleSave")
  220. public Map roleSave(HttpServletRequest request, @RequestBody String data) {
  221. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  222. Map ret = apiService.addRole(maps);
  223. return CustomResponse.formatResponse(ret);
  224. }
  225. // 返回带分页格式的数据-api列表管理页
  226. @RequestMapping("/api/apiManageList")
  227. public Map apiManageList(HttpServletRequest request, @RequestBody String data){
  228. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  229. Map<String, Object> ret = new HashMap<>();
  230. ret = apiService.apiListHasPaging(maps);
  231. return CustomResponse.formatResponse(ret);
  232. }
  233. // api管理-新增和编辑api
  234. @RequestMapping("/api/apiSave")
  235. public Map apiSave(HttpServletRequest request, @RequestBody String data, @RequestHeader("Authorization") String authorization) {
  236. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  237. Map ret = apiService.saveApi(maps, authorization);
  238. return CustomResponse.formatResponse(ret);
  239. }
  240. // Api管理-获取api详情
  241. @RequestMapping("/api/apiDetailed")
  242. public Map apiDetailed(HttpServletRequest request, @RequestBody String data) {
  243. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  244. Map ret = apiService.apiDetailById(maps);
  245. return CustomResponse.formatResponse(ret);
  246. }
  247. // 返回带分页格式的数据-item列表管理页
  248. @RequestMapping("/api/itemManageList")
  249. public Map itemManageList(HttpServletRequest request, @RequestBody String data){
  250. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  251. Map<String, Object> ret = new HashMap<>();
  252. ret = apiService.itemListHasPaging(maps);
  253. return CustomResponse.formatResponse(ret);
  254. }
  255. // item管理-新增和编辑item
  256. @RequestMapping("/api/itemSave")
  257. public Map itemSave(HttpServletRequest request, @RequestBody String data,
  258. @RequestHeader("Authorization") String authorization) {
  259. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  260. Map ret = apiService.saveItem(maps, authorization);
  261. return CustomResponse.formatResponse(ret);
  262. }
  263. // Item管理-获取item详情
  264. @RequestMapping("/api/itemDetailed")
  265. public Map itemDetailed(HttpServletRequest request, @RequestBody String data) {
  266. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  267. Map ret = apiService.itemDetailById(maps);
  268. return CustomResponse.formatResponse(ret);
  269. }
  270. // 返回带分页格式的数据-用户管理列表页
  271. @RequestMapping("/api/userManageList")
  272. public Map userManageList(HttpServletRequest request, @RequestBody String data){
  273. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  274. Map<String, Object> ret = new HashMap<>();
  275. ret = apiService.userListHasPaging(maps);
  276. return CustomResponse.formatResponse(ret);
  277. }
  278. // 用户分配角色,无分页,且为options格式
  279. @RequestMapping("/api/optionRoleList")
  280. public Map optionRoleList(){
  281. Map<String, Object> ret = new HashMap<>();
  282. List pageList = apiService.roleList();
  283. ret.put("options", pageList);
  284. return CustomResponse.formatResponse(ret);
  285. }
  286. // 上传头像
  287. @RequestMapping("api/uploadSave")
  288. public Map uploadSave(@RequestParam("file") MultipartFile file) {
  289. Map<String, Object> ret = new HashMap<>();
  290. Map uploadInfo = commonUtil.uploadFile(file);
  291. if(uploadInfo.containsKey("uploadPath")) {
  292. ret.put("value", uploadInfo.get("uploadPath").toString());
  293. }
  294. return CustomResponse.formatResponse(ret);
  295. }
  296. // 用户管理-新增用户
  297. @RequestMapping("/api/userSave")
  298. public Map userSave(HttpServletRequest request, @RequestBody String data,
  299. @RequestHeader("Authorization") String authorization) {
  300. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  301. Map ret = apiService.userSave(maps, authorization);
  302. return CustomResponse.formatResponse(ret);
  303. }
  304. // 用户管理-通过用户id获取用户详情
  305. @RequestMapping("/api/userDetailById")
  306. public Map userDetailById(HttpServletRequest request, @RequestBody String data) {
  307. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  308. Map ret = apiService.getUserInfoById(maps);
  309. return CustomResponse.formatResponse(ret);
  310. }
  311. // sql管理选择数据库配置项,且为options格式
  312. @RequestMapping("/api/datasource")
  313. public Map optionDatasource(){
  314. Map<String, Object> ret = new HashMap<>();
  315. List pageList = apiService.datasource();
  316. ret.put("options", pageList);
  317. return CustomResponse.formatResponse(ret);
  318. }
  319. }