package cn.exrick.xboot.base.controller.manage; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.core.common.vo.SearchVo; import cn.exrick.xboot.core.entity.Log; import cn.exrick.xboot.core.entity.elasticsearch.EsLog; import cn.exrick.xboot.core.service.LogService; import cn.exrick.xboot.core.service.elasticsearch.EsLogService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * @author Exrickx */ @Slf4j @RestController @Api(tags = "日志管理接口") @RequestMapping("/xboot/log") @Transactional public class LogController { @Value("${xboot.logRecord.es:false}") private Boolean esRecord; @Autowired private EsLogService esLogService; @Autowired private LogService logService; @RequestMapping(value = "/getAllByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取全部") public Result getAllByPage(@RequestParam(required = false) Integer type, @RequestParam String key, SearchVo searchVo, PageVo pageVo) { if (esRecord) { // 支持排序的字段 if (!"costTime".equals(pageVo.getSort())) { pageVo.setSort("timeMillis"); } Page es = esLogService.findByCondition(type, key, searchVo, PageUtil.initPage(pageVo)); return ResultUtil.data(es); } else { Page log = logService.findByConfition(type, key, searchVo, PageUtil.initPage(pageVo)); return ResultUtil.data(log); } } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量删除") public Result delByIds(@RequestParam String[] ids) { for (String id : ids) { if (esRecord) { esLogService.deleteLog(id); } else { logService.delete(id); } } return ResultUtil.success("删除成功"); } @RequestMapping(value = "/delAll", method = RequestMethod.POST) @ApiOperation(value = "全部删除") public Result delAll() { if (esRecord) { esLogService.deleteAll(); } else { logService.deleteAll(); } return ResultUtil.success("删除成功"); } }