package com.genersoft.iot.vmp.vmanager.log; 
 | 
  
 | 
import com.genersoft.iot.vmp.conf.UserSetup; 
 | 
import com.genersoft.iot.vmp.media.zlm.ZLMRunner; 
 | 
import com.genersoft.iot.vmp.service.ILogService; 
 | 
import com.genersoft.iot.vmp.storager.dao.dto.LogDto; 
 | 
import com.genersoft.iot.vmp.vmanager.bean.WVPResult; 
 | 
import com.github.pagehelper.PageInfo; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiImplicitParam; 
 | 
import io.swagger.annotations.ApiImplicitParams; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.slf4j.Logger; 
 | 
import org.slf4j.LoggerFactory; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.http.HttpStatus; 
 | 
import org.springframework.http.ResponseEntity; 
 | 
import org.springframework.util.StringUtils; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.text.ParseException; 
 | 
import java.text.SimpleDateFormat; 
 | 
  
 | 
@Api(tags = "日志管理") 
 | 
@CrossOrigin 
 | 
@RestController 
 | 
@RequestMapping("/api/log") 
 | 
public class LogController { 
 | 
  
 | 
    private final static Logger logger = LoggerFactory.getLogger(LogController.class); 
 | 
  
 | 
    @Autowired 
 | 
    private ILogService logService; 
 | 
  
 | 
    @Autowired 
 | 
    private UserSetup userSetup; 
 | 
  
 | 
    private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
 | 
  
 | 
    /** 
 | 
     *  分页查询日志 
 | 
     * 
 | 
     * @param query 查询内容 
 | 
     * @param page 当前页 
 | 
     * @param count 每页查询数量 
 | 
     * @param type  类型 
 | 
     * @param startTime  开始时间 
 | 
     * @param endTime 结束时间 
 | 
     * @return 
 | 
     */ 
 | 
    @ApiOperation("分页查询报警") 
 | 
    @GetMapping("/all") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(name="query", value = "查询内容", dataTypeClass = String.class), 
 | 
            @ApiImplicitParam(name="page", value = "当前页", required = true ,dataTypeClass = Integer.class), 
 | 
            @ApiImplicitParam(name="count", value = "每页查询数量", required = true ,dataTypeClass = Integer.class), 
 | 
            @ApiImplicitParam(name="type", value = "类型" ,dataTypeClass = String.class), 
 | 
            @ApiImplicitParam(name="startTime", value = "查询内容" ,dataTypeClass = String.class), 
 | 
            @ApiImplicitParam(name="endTime", value = "查询内容" ,dataTypeClass = String.class), 
 | 
    }) 
 | 
    public ResponseEntity<PageInfo<LogDto>> getAll( 
 | 
            @RequestParam int page, 
 | 
            @RequestParam int count, 
 | 
            @RequestParam(required = false)  String query, 
 | 
            @RequestParam(required = false) String type, 
 | 
            @RequestParam(required = false) String startTime, 
 | 
            @RequestParam(required = false) String endTime 
 | 
    ) { 
 | 
        if (StringUtils.isEmpty(query)) query = null; 
 | 
        if (StringUtils.isEmpty(startTime)) startTime = null; 
 | 
        if (StringUtils.isEmpty(endTime)) endTime = null; 
 | 
        if (!userSetup.getLogInDatebase()) { 
 | 
            logger.warn("自动记录日志功能已关闭,查询结果可能不完整。"); 
 | 
        } 
 | 
  
 | 
        try { 
 | 
            if (startTime != null)  format.parse(startTime); 
 | 
            if (endTime != null)  format.parse(endTime); 
 | 
        } catch (ParseException e) { 
 | 
            return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); 
 | 
        } 
 | 
  
 | 
        PageInfo<LogDto> allLog = logService.getAll(page, count, query, type, startTime, endTime); 
 | 
        return new ResponseEntity<>(allLog, HttpStatus.OK); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     *  清空日志 
 | 
     * 
 | 
     */ 
 | 
    @ApiOperation("清空日志") 
 | 
    @DeleteMapping("/clear") 
 | 
    @ApiImplicitParams({}) 
 | 
    public ResponseEntity<WVPResult<String>> clear() { 
 | 
  
 | 
        int count = logService.clear(); 
 | 
        WVPResult wvpResult = new WVPResult(); 
 | 
        wvpResult.setCode(0); 
 | 
        wvpResult.setMsg("success"); 
 | 
        wvpResult.setData(count); 
 | 
        return new ResponseEntity<WVPResult<String>>(wvpResult, HttpStatus.OK); 
 | 
    } 
 | 
  
 | 
} 
 |