ApiController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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. // 权限管理-获取全部page权限项
  68. @RequestMapping("/api/pagePermissionList")
  69. public Map pagePermissionList(HttpServletRequest request) {
  70. Map<String, Object> ret = new HashMap<>();
  71. List allPermiss = apiService.pagePermissionList();
  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. apiService.addPermissions(maps);
  81. return CustomResponse.formatResponse(ret);
  82. }
  83. // 权限管理-添加权限-获取所有页面,选择关联页面,无分页,且为options格式
  84. @RequestMapping("/api/pageList")
  85. public Map pageDetailsList(){
  86. Map<String, Object> ret = new HashMap<>();
  87. List pageList = apiService.pageList();
  88. ret.put("options", pageList);
  89. return CustomResponse.formatResponse(ret);
  90. }
  91. // 返回带分页格式的数据-page列表管理页
  92. @RequestMapping("/api/pageManageList")
  93. public Map pageManageList(HttpServletRequest request, @RequestBody String data){
  94. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  95. Map<String, Object> ret = new HashMap<>();
  96. ret = apiService.pageListHasPaging(maps);
  97. return CustomResponse.formatResponse(ret);
  98. }
  99. // 获取指定页面page_details表数据
  100. @RequestMapping("/api/pageDetail")
  101. public Map pageDetail(HttpServletRequest request, @RequestBody String data){
  102. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  103. Map detailInfo = apiService.roleDetailById(maps);
  104. return CustomResponse.formatResponse(detailInfo);
  105. }
  106. // 页面管理-新增页面
  107. @RequestMapping("/api/pageSave")
  108. public Map pageSave(HttpServletRequest request, @RequestBody String data) {
  109. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  110. Map ret = apiService.addPage(maps);
  111. return CustomResponse.formatResponse(ret);
  112. }
  113. // 返回带分页格式的数据-sql列表管理页
  114. @RequestMapping("/api/sqlManageList")
  115. public Map sqlManageList(HttpServletRequest request, @RequestBody String data){
  116. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  117. Map<String, Object> ret = new HashMap<>();
  118. ret = apiService.sqlListHasPaging(maps);
  119. return CustomResponse.formatResponse(ret);
  120. }
  121. // sql管理-新增和编辑Sql
  122. @RequestMapping("/api/sqlSave")
  123. public Map sqlSave(HttpServletRequest request, @RequestBody String data, @RequestHeader("Authorization") String authorization) {
  124. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  125. Map ret = apiService.addSql(maps, authorization);
  126. return CustomResponse.formatResponse(ret);
  127. }
  128. // 权限管理-添加权限-获取所有页面,选择关联sql,无分页,且为options格式
  129. @RequestMapping("/api/sqlList")
  130. public Map sqlDetailsList(){
  131. Map<String, Object> ret = new HashMap<>();
  132. List pageList = apiService.sqlList();
  133. ret.put("options", pageList);
  134. return CustomResponse.formatResponse(ret);
  135. }
  136. // 权限管理-添加权限-获取所有页面,选择关联api,无分页,且为options格式
  137. @RequestMapping("/api/apiList")
  138. public Map apiDetailsList(){
  139. Map<String, Object> ret = new HashMap<>();
  140. List apiList = apiService.apiList();
  141. ret.put("options", apiList);
  142. return CustomResponse.formatResponse(ret);
  143. }
  144. // 权限管理-添加权限-获取所有页面,选择关联item,无分页,且为options格式
  145. @RequestMapping("/api/itemList")
  146. public Map itemDetailsList(){
  147. Map<String, Object> ret = new HashMap<>();
  148. List pageList = apiService.itemList();
  149. ret.put("options", pageList);
  150. return CustomResponse.formatResponse(ret);
  151. }
  152. // 角色管理-获取全部角色
  153. @RequestMapping("/api/roleList")
  154. public Map roleList(HttpServletRequest request, @RequestBody String data) {
  155. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  156. Map<String, Object> ret = new HashMap<>();
  157. ret = apiService.roleList(maps);
  158. return CustomResponse.formatResponse(ret);
  159. }
  160. // 角色管理-获取角色详情
  161. @RequestMapping("/api/roleDetailed")
  162. public Map roleDetailed(HttpServletRequest request, @RequestBody String data) {
  163. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  164. Map ret = apiService.roleDetailById(maps);
  165. return CustomResponse.formatResponse(ret);
  166. }
  167. // 添加角色
  168. @RequestMapping("/api/roleSave")
  169. public Map roleSave(HttpServletRequest request, @RequestBody String data) {
  170. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  171. Map ret = apiService.addRole(maps);
  172. return CustomResponse.formatResponse(ret);
  173. }
  174. // 返回带分页格式的数据-api列表管理页
  175. @RequestMapping("/api/apiManageList")
  176. public Map apiManageList(HttpServletRequest request, @RequestBody String data){
  177. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  178. Map<String, Object> ret = new HashMap<>();
  179. ret = apiService.apiListHasPaging(maps);
  180. return CustomResponse.formatResponse(ret);
  181. }
  182. // api管理-新增和编辑api
  183. @RequestMapping("/api/apiSave")
  184. public Map apiSave(HttpServletRequest request, @RequestBody String data, @RequestHeader("Authorization") String authorization) {
  185. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  186. Map ret = apiService.saveApi(maps, authorization);
  187. return CustomResponse.formatResponse(ret);
  188. }
  189. // Api管理-获取api详情
  190. @RequestMapping("/api/apiDetailed")
  191. public Map apiDetailed(HttpServletRequest request, @RequestBody String data) {
  192. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  193. Map ret = apiService.apiDetailById(maps);
  194. return CustomResponse.formatResponse(ret);
  195. }
  196. // 返回带分页格式的数据-item列表管理页
  197. @RequestMapping("/api/itemManageList")
  198. public Map itemManageList(HttpServletRequest request, @RequestBody String data){
  199. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  200. Map<String, Object> ret = new HashMap<>();
  201. ret = apiService.itemListHasPaging(maps);
  202. return CustomResponse.formatResponse(ret);
  203. }
  204. // item管理-新增和编辑item
  205. @RequestMapping("/api/itemSave")
  206. public Map itemSave(HttpServletRequest request, @RequestBody String data,
  207. @RequestHeader("Authorization") String authorization) {
  208. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  209. Map ret = apiService.saveItem(maps, authorization);
  210. return CustomResponse.formatResponse(ret);
  211. }
  212. // Item管理-获取item详情
  213. @RequestMapping("/api/itemDetailed")
  214. public Map itemDetailed(HttpServletRequest request, @RequestBody String data) {
  215. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  216. Map ret = apiService.itemDetailById(maps);
  217. return CustomResponse.formatResponse(ret);
  218. }
  219. // 返回带分页格式的数据-用户管理列表页
  220. @RequestMapping("/api/userManageList")
  221. public Map userManageList(HttpServletRequest request, @RequestBody String data){
  222. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  223. Map<String, Object> ret = new HashMap<>();
  224. ret = apiService.userListHasPaging(maps);
  225. return CustomResponse.formatResponse(ret);
  226. }
  227. // 用户分配角色,无分页,且为options格式
  228. @RequestMapping("/api/optionRoleList")
  229. public Map optionRoleList(){
  230. Map<String, Object> ret = new HashMap<>();
  231. List pageList = apiService.roleList();
  232. ret.put("options", pageList);
  233. return CustomResponse.formatResponse(ret);
  234. }
  235. // 上传头像
  236. @RequestMapping("api/uploadSave")
  237. public Map uploadSave(@RequestParam("file") MultipartFile file) {
  238. Map<String, Object> ret = new HashMap<>();
  239. Map uploadInfo = commonUtil.uploadFile(file);
  240. if(uploadInfo.containsKey("uploadPath")) {
  241. ret.put("value", uploadInfo.get("uploadPath").toString());
  242. }
  243. return CustomResponse.formatResponse(ret);
  244. }
  245. // 用户管理-新增用户
  246. @RequestMapping("/api/userSave")
  247. public Map userSave(HttpServletRequest request, @RequestBody String data,
  248. @RequestHeader("Authorization") String authorization) {
  249. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  250. Map ret = apiService.userSave(maps, authorization);
  251. return CustomResponse.formatResponse(ret);
  252. }
  253. // 用户管理-通过用户id获取用户详情
  254. @RequestMapping("/api/userDetailById")
  255. public Map userDetailById(HttpServletRequest request, @RequestBody String data) {
  256. Map maps = commonUtil.analysisRequestParams(request, data); // 参数
  257. Map ret = apiService.getUserInfoById(maps);
  258. return CustomResponse.formatResponse(ret);
  259. }
  260. }