package com.qmth.distributed.print.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qmth.boot.api.constant.ApiConstant;
import com.qmth.distributed.print.business.bean.dto.BasicPrintConfigDto;
import com.qmth.teachcloud.common.annotation.OperationLogDetail;
import com.qmth.teachcloud.common.entity.BasicPrintConfig;
import com.qmth.distributed.print.business.service.BasicPrintConfigService;
import com.qmth.teachcloud.common.contant.SystemConstant;
import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
import com.qmth.teachcloud.common.util.Result;
import com.qmth.teachcloud.common.util.ResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.List;
/**
*
* 印品配置 前端控制器
*
*
* @author xf
* @since 2022-02-10
*/
@Api(tags = "印品配置Controller")
@RestController
@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/print_config")
@Validated
public class BasicPrintConfigController {
@Resource
private BasicPrintConfigService basicPrintConfigService;
/**
* 分页查询
* @param enable 启用/禁用
* @param createStartTime 创建开始时间
* @param createEndTime 创建结束时间
* @param pageNumber 分页页码
* @param pageSize 分页数量
*/
@ApiOperation(value = "分页查询")
@RequestMapping(value = "/page", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
public Result list(@RequestParam(value = "examId", required = false) Long examId,
@RequestParam(value = "enable", required = false) Boolean enable,
@RequestParam(value = "createStartTime", required = false) Long createStartTime,
@RequestParam(value = "createEndTime", required = false) Long createEndTime,
@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
IPage printConfigDtoIPage = basicPrintConfigService.listPage(examId, enable, createStartTime, createEndTime, pageNumber, pageSize);
return ResultUtil.ok(printConfigDtoIPage);
}
/**
* 新增/修改
*
* @param basicPrintConfig 参数
*/
@ApiOperation(value = "新增/修改")
@RequestMapping(value = "/save", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
public Result save(@RequestBody BasicPrintConfig basicPrintConfig) {
boolean isSuccess = basicPrintConfigService.savePrintConfig(basicPrintConfig);
return ResultUtil.ok(isSuccess);
}
/**
* 启用/禁用
*
*/
@ApiOperation(value = "启用/禁用")
@RequestMapping(value = "/enable", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
public Result enable(@RequestParam(value = "id", required = false) Long id,
@RequestParam(value = "enable", required = false) Boolean enable) {
boolean isSuccess = basicPrintConfigService.enable(id, enable);
return ResultUtil.ok(isSuccess);
}
/**
*
* @param idList 印品配置ID
*/
@ApiOperation(value = "删除")
@RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
public Result delete(@RequestParam(value = "id", required = false) List idList) {
boolean isSuccess = basicPrintConfigService.delete(idList);
return ResultUtil.ok(isSuccess);
}
/**
* 启用/禁用
*
*/
@ApiOperation(value = "查询orgId印品")
@RequestMapping(value = "/get_by_exam_id_and_org_id", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
public Result getByOrgId(@RequestParam(value = "examId") Long examId,
@RequestParam(value = "orgId") Long orgId) {
BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndOrgId(examId, orgId);
return ResultUtil.ok(basicPrintConfig);
}
/**
* 查询考试下设置印品的机构集合
* @param examId 考试ID
*/
@ApiOperation(value = "查询考试下设置印品的机构集合")
@RequestMapping(value = "/list_org_id_by_exam_id", method = RequestMethod.POST)
@OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
public Result listOrgIdsByExamId(@RequestParam(value = "id", required = false) Long id,
@RequestParam(value = "examId") Long examId) {
List orgIds = basicPrintConfigService.listOrgIdsByExamId(id, examId);
return ResultUtil.ok(orgIds);
}
}