OperateLogController.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package com.huaxu.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.core.metadata.OrderItem;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.huaxu.common.EasyExcelUtil;
  6. import com.huaxu.dto.LoginLogDto;
  7. import com.huaxu.dto.OperateLogDto;
  8. import com.huaxu.entity.OperateLogEntity;
  9. import com.huaxu.model.*;
  10. import com.huaxu.service.OperateLogService;
  11. import com.huaxu.util.UserUtil;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import io.swagger.annotations.ApiParam;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.text.ParseException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.Date;
  23. import java.util.List;
  24. import java.util.stream.Collectors;
  25. /**
  26. * @description
  27. * @auto wangli
  28. * @data 2020-10-27 9:19
  29. */
  30. @RestController
  31. @RequestMapping("/operateLog")
  32. @Api(tags = "操作日志管理")
  33. @Slf4j
  34. public class OperateLogController {
  35. @Autowired
  36. private OperateLogService operateLogService;
  37. @Value("${UMIS.sys_excel_path}")
  38. private String baseDir;
  39. /**
  40. * 通过主键查询单条数据
  41. *
  42. * @param id
  43. * @return 单条数据
  44. */
  45. @RequestMapping(value = "get", method = RequestMethod.POST)
  46. @ApiOperation(value = "根据id查询操作日志")
  47. public AjaxMessage<OperateLogDto> selectOne(
  48. @ApiParam(value = "操作日志信息", required = true) @RequestParam Integer id) {
  49. OperateLogDto result = operateLogService.selectById(id);
  50. return new AjaxMessage<>(ResultStatus.OK, result);
  51. }
  52. /**
  53. * 查询操作日志信息
  54. *
  55. * @param operateLogDto 参数对象
  56. * @return 多条数据
  57. */
  58. @RequestMapping(value = "selectList", method = RequestMethod.POST)
  59. @ApiOperation(value = "查询操作日志信息")
  60. public AjaxMessage<List<OperateLogDto>> selectList(
  61. @ApiParam(value = "操作日志信息", required = true) @RequestBody OperateLogDto operateLogDto) {
  62. List<OperateLogDto> result = operateLogService.selectList(operateLogDto);
  63. return new AjaxMessage<>(ResultStatus.OK, result);
  64. }
  65. /**
  66. * 新增一条数据
  67. *
  68. * @param operateLogEntity 实体类
  69. * @return Response对象
  70. */
  71. @RequestMapping(value = "insert", method = RequestMethod.POST)
  72. @ApiOperation(value = "插入操作日志信息")
  73. public AjaxMessage<Integer> insert(@ApiParam(value = "操作日志信息", required = true) @RequestBody OperateLogEntity operateLogEntity) {
  74. int result = operateLogService.insert(operateLogEntity);
  75. return new AjaxMessage<>(ResultStatus.OK, result);
  76. }
  77. /**
  78. * 修改一条数据
  79. *
  80. * @param operateLogEntity 实体类
  81. * @return Response对象
  82. */
  83. @RequestMapping(value = "update", method = RequestMethod.POST)
  84. @ApiOperation(value = "修改操作日志信息")
  85. public AjaxMessage<Integer> update(@ApiParam(value = "操作日志信息", required = true) @RequestBody OperateLogEntity operateLogEntity) {
  86. int result = operateLogService.update(operateLogEntity);
  87. return new AjaxMessage<>(ResultStatus.OK, result);
  88. }
  89. /**
  90. * 单条删除数据
  91. *
  92. * @param id
  93. * @return Response对象
  94. */
  95. @RequestMapping(value = "delete", method = RequestMethod.POST)
  96. @ApiOperation(value = "删除操作日志信息")
  97. public AjaxMessage<Integer> delete(@ApiParam(value = "操作日志信息", required = true) @RequestParam Integer id) {
  98. int result = operateLogService.deleteById(id);
  99. return new AjaxMessage<>(ResultStatus.OK, result);
  100. }
  101. /**
  102. * 分页查询
  103. *
  104. * @return Response对象
  105. */
  106. @RequestMapping(value = "selectPage", method = RequestMethod.POST)
  107. @ApiOperation(value = "查询操作日志信息列表")
  108. public AjaxMessage<Pagination<OperateLogDto>> selectPage(
  109. @ApiParam(value = "查询条件(用户名/手机号)") @RequestParam(required = false) String condition,
  110. @ApiParam(value = "部门id") @RequestParam(required = false) Integer departmentId,
  111. @ApiParam(value = "开始时间yyyy-MM-dd") @RequestParam(required = false) String beginTime,
  112. @ApiParam(value = "结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime,
  113. @ApiParam(value = "页数,非必传,默认第一页", defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
  114. @ApiParam(value = "条数,非必传,默认30条", defaultValue = "30") @RequestParam(required = false, defaultValue = "30") Integer pageSize
  115. ) {
  116. LoginUser loginUser = UserUtil.getCurrentUser();
  117. SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
  118. OperateLogDto operateLogDto = new OperateLogDto();
  119. operateLogDto.setTenantId(loginUser.getTenantId());
  120. operateLogDto.setCondition(condition);
  121. operateLogDto.setDepartmentId(departmentId);
  122. //系统管理员不过滤权限,数据为null的去掉
  123. if((!loginUser.getType().equals("-9999")) && !loginUser.getType().equals("-999") ){
  124. operateLogDto.setProgramItems(loginUser.getProgramItemList().stream().filter(p -> p.getOrgId() != null).collect(Collectors.toList()));
  125. }
  126. try {
  127. if(StringUtils.isNotBlank(beginTime)){
  128. operateLogDto.setBeginTime(f.parse(beginTime));
  129. }
  130. if(StringUtils.isNotBlank(endTime)){
  131. operateLogDto.setEndTime(f.parse(endTime));
  132. }
  133. }catch (ParseException e){
  134. log.error("操作日志查询时间转换错误,原数据:beginTime:{},endTime:{},异常信息:{}",beginTime,endTime,e.getMessage());
  135. operateLogDto.setBeginTime(new Date());
  136. operateLogDto.setEndTime(new Date());
  137. }
  138. IPage<OperateLogDto> iPage = new Page<>(pageNum, pageSize);
  139. if(iPage.orders().size() == 0){
  140. OrderItem orderItem =new OrderItem();
  141. orderItem.setAsc(false);
  142. orderItem.setColumn("a.create_time");
  143. iPage.orders().add(orderItem);
  144. }
  145. iPage = operateLogService.selectPage(iPage, operateLogDto);
  146. Pagination<OperateLogDto> pages = new Pagination<>(iPage);
  147. return new AjaxMessage<>(ResultStatus.OK, pages);
  148. }
  149. @RequestMapping(value = "/exportExcel", method = RequestMethod.POST)
  150. @ApiOperation(value = "操作日志导出")
  151. public AjaxMessage<String> exportExcel(@ApiParam(value = "日志IDS", required = true) @RequestParam Long[] ids) {
  152. List<OperateLogDto> result = operateLogService.selectListByIds(ids);
  153. String filePath = EasyExcelUtil.excelWrite(baseDir, OperateLogDto.class, "操作日志", result);
  154. return new AjaxMessage<>(ResultStatus.OK, filePath);
  155. }
  156. }