/**
 * Copyright (c) 2018 人人开源 All rights reserved.
 *
 * https://www.renren.io
 *
 * 版权所有,侵权必究!
 */

package com.iailab.module.sms.job.controller.admin;

import com.iailab.framework.common.constant.Constant;
import com.iailab.framework.common.page.PageData;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.module.sms.job.dto.ScheduleJobLogDTO;
import com.iailab.module.sms.job.service.ScheduleJobLogService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 定时任务日志
 *
 * @author Mark sunlightcs@gmail.com
 */
@RestController
@RequestMapping("/sys/scheduleLog")
@Tag(name = "定时任务日志")
public class ScheduleJobLogController {
	@Resource
	private ScheduleJobLogService scheduleJobLogService;

	@GetMapping("page")
	@Operation(summary = "分页")
	@Parameters({
		@Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) ,
		@Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) ,
		@Parameter(name = Constant.ORDER_FIELD, description = "排序字段") ,
		@Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") ,
		@Parameter(name = "jobId", description = "jobId")
	})
	@PreAuthorize("@ss.hasPermission('sys:schedule:log')")
	public CommonResult<PageData<ScheduleJobLogDTO>> page(@RequestParam Map<String, Object> params){
		PageData<ScheduleJobLogDTO> page = scheduleJobLogService.page(params);
		
		return new CommonResult<PageData<ScheduleJobLogDTO>>().setData(page);
	}

	@GetMapping("{id}")
	@Operation(summary = "信息")
	@PreAuthorize("@ss.hasPermission('sys:schedule:log')")
	public CommonResult<ScheduleJobLogDTO> info(@PathVariable("id") Long id){
		ScheduleJobLogDTO log = scheduleJobLogService.get(id);
		
		return new CommonResult<ScheduleJobLogDTO>().setData(log);
	}
}