LogController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package jnpf.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.dev33.satoken.annotation.SaMode;
  4. import io.swagger.v3.oas.annotations.Parameter;
  5. import io.swagger.v3.oas.annotations.Parameters;
  6. import jnpf.base.controller.SuperController;
  7. import io.swagger.v3.oas.annotations.tags.Tag;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import jnpf.base.ActionResult;
  10. import jnpf.base.vo.PaginationVO;
  11. import jnpf.constant.MsgCode;
  12. import jnpf.entity.LogEntity;
  13. import jnpf.model.*;
  14. import jnpf.service.LogService;
  15. import jnpf.util.JsonUtil;
  16. import org.apache.commons.collections4.map.HashedMap;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.Set;
  23. /**
  24. * 系统日志
  25. *
  26. * @author JNPF开发平台组
  27. * @version V3.1.0
  28. * @copyright 引迈信息技术有限公司
  29. * @date 2019年9月27日 上午9:18
  30. */
  31. @Tag(name = "系统日志", description = "Log")
  32. @RestController
  33. @RequestMapping("/api/system/Log")
  34. public class LogController extends SuperController<LogService, LogEntity> {
  35. @Autowired
  36. private LogService logService;
  37. /**
  38. * 获取系统日志信息
  39. *
  40. * @param pagination category 主键值分类 1:登录日志,2.访问日志,3.操作日志,4.异常日志,5.请求日志
  41. * @return
  42. */
  43. @Operation(summary = "获取系统日志列表")
  44. @Parameters({
  45. @Parameter(name = "category", description = "分类", required = true)
  46. })
  47. @SaCheckPermission(value = {"sysLog.loginLog", "sysLog.requestLog","sysLog.operateLog","sysLog.errorLog"}, mode = SaMode.OR)
  48. @GetMapping
  49. public ActionResult getInfoList(PaginationLogModel pagination) {
  50. List<LogEntity> list = logService.getList(pagination.getCategory(), pagination, false);
  51. PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class);
  52. switch (pagination.getCategory()) {
  53. case 1:
  54. List<LoginLogVO> loginLogVOList = JsonUtil.getJsonToList(list, LoginLogVO.class);
  55. for (int i = 0; i < loginLogVOList.size(); i++) {
  56. loginLogVOList.get(i).setAbstracts(list.get(i).getDescription());
  57. }
  58. return ActionResult.page(loginLogVOList, paginationVO);
  59. case 3:
  60. List<HandleLogVO> handleLogVOList = JsonUtil.getJsonToList(list, HandleLogVO.class);
  61. return ActionResult.page(handleLogVOList, paginationVO);
  62. case 4:
  63. List<ErrorLogVO> errorLogVOList = JsonUtil.getJsonToList(list, ErrorLogVO.class);
  64. return ActionResult.page(errorLogVOList, paginationVO);
  65. case 5:
  66. List<RequestLogVO> requestLogVOList = JsonUtil.getJsonToList(list, RequestLogVO.class);
  67. return ActionResult.page(requestLogVOList, paginationVO);
  68. default:
  69. return ActionResult.fail(MsgCode.FA012.get());
  70. }
  71. }
  72. /**
  73. * 获取系统日志信息
  74. *
  75. * @param id 主键值
  76. * @return
  77. */
  78. @Operation(summary = "获取系统日志信息")
  79. @Parameters({
  80. @Parameter(name = "category", description = "分类", required = true)
  81. })
  82. @SaCheckPermission(value = {"sysLog.loginLog", "sysLog.requestLog","sysLog.operateLog","sysLog.errorLog"}, mode = SaMode.OR)
  83. @GetMapping("/{id}")
  84. public ActionResult<LogInfoVO> getInfoList(@PathVariable("id") String id) {
  85. LogEntity entity = logService.getInfo(id);
  86. if (entity == null) {
  87. return ActionResult.fail(MsgCode.FA001.get());
  88. }
  89. LogInfoVO vo = JsonUtil.getJsonToBean(entity, LogInfoVO.class);
  90. return ActionResult.success(vo);
  91. }
  92. /**
  93. * 批量删除系统日志
  94. *
  95. * @param logDelForm 批量删除日志模型
  96. * @return
  97. */
  98. @Operation(summary = "批量删除系统日志")
  99. @Parameters({
  100. @Parameter(name = "logDelForm", description = "批量删除日志模型", required = true)
  101. })
  102. @SaCheckPermission(value = {"sysLog.loginLog", "sysLog.requestLog","sysLog.operateLog","sysLog.errorLog"}, mode = SaMode.OR)
  103. @DeleteMapping
  104. public ActionResult delete(@RequestBody LogDelForm logDelForm) {
  105. boolean flag = logService.delete(logDelForm.getIds());
  106. if (!flag) {
  107. return ActionResult.fail(MsgCode.FA003.get());
  108. }
  109. return ActionResult.success(MsgCode.SU003.get());
  110. }
  111. /**
  112. * 一键清空操作日志
  113. *
  114. * @param type 分类
  115. */
  116. @Operation(summary = "一键清空操作日志")
  117. @Parameters({
  118. @Parameter(name = "type", description = "分类", required = true)
  119. })
  120. @SaCheckPermission(value = {"sysLog.loginLog", "sysLog.requestLog","sysLog.operateLog","sysLog.errorLog"}, mode = SaMode.OR)
  121. @DeleteMapping("/{type}")
  122. public ActionResult deleteHandelLog(@PathVariable("type") String type, @RequestParam(value = "dataInterfaceId", required = false) String dataInterfaceId) {
  123. logService.deleteHandleLog(type, null, dataInterfaceId);
  124. return ActionResult.success(MsgCode.SU005.get());
  125. }
  126. /**
  127. * 一键清空登陆日志
  128. *
  129. */
  130. @Operation(summary = "一键清空登陆日志")
  131. @DeleteMapping("/deleteLoginLog")
  132. public ActionResult deleteLoginLog() {
  133. logService.deleteHandleLog("1", 1, null);
  134. return ActionResult.success(MsgCode.SU005.get());
  135. }
  136. /**
  137. * 获取菜单名
  138. *
  139. */
  140. @Operation(summary = "获取菜单名")
  141. @SaCheckPermission(value = {"sysLog.loginLog", "sysLog.requestLog","sysLog.operateLog","sysLog.errorLog"}, mode = SaMode.OR)
  142. @GetMapping("/ModuleName")
  143. public ActionResult<List<Map<String, String>>> moduleName() {
  144. List<Map<String, String>> list = new ArrayList<> (16);
  145. Set<String> set = logService.queryList();
  146. for (String moduleName : set) {
  147. Map<String, String> map = new HashedMap<>(1);
  148. map.put("moduleName", moduleName);
  149. list.add(map);
  150. }
  151. return ActionResult.success(list);
  152. }
  153. }