LoginLogController.java 7.0 KB

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