package com.casic.missiles.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.core.page.PageFactory;
import com.casic.missiles.enums.OperateTypeEnum;
import com.casic.missiles.model.MeterTrainPlan;
import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.service.IMeterTrainPlanService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

/**
 * @Description: 培训管理
 * @Author: wangpeng
 * @Date: 2022/11/21 20:31
 */
@Api(tags = "培训管理接口")
@Controller
@RequestMapping("/meter/train")
public class MeterTrainController extends ExportController {
    @Autowired
    private IMeterTrainPlanService trainPlanService;
    /**
     * 培训计划新建、编辑、删除
     */
    @PostMapping("/plan/{operation}")
    @ResponseBody
    public Object operation(@PathVariable(name = "operation") String operateType, @RequestBody MeterTrainPlan meterTrainPlan) {
        if(OperateTypeEnum.ADD.getOperateType().equals(operateType)) {
            return trainPlanService.addTrainPlan(meterTrainPlan);
        }else if(OperateTypeEnum.UPDATE.getOperateType().equals(operateType)){
            return trainPlanService.updateTrainPlan(meterTrainPlan);
        }else if(OperateTypeEnum.DELETE.getOperateType().equals(operateType)){
            return trainPlanService.deleteTrainPlan(meterTrainPlan);
        }else if(OperateTypeEnum.BATCHDELETE.getOperateType().equals(operateType)){
            return trainPlanService.deleteBatchTrainPlan(meterTrainPlan.getIds());
        }
        return null;
    }

    /**
     * 培训计划列表
     */
    @ApiOperation("培训计划列表")
    @PostMapping("/listPage")
    @ResponseBody
    public Object listPage(@RequestBody MeterTrainPlan meterTrainPlan) {
        Page<MeterTrainPlan> page = PageFactory.defaultPage();
        return ResponseData.success(super.packForBT(trainPlanService.listPage(page, meterTrainPlan)));
    }

    /**
     * 培训计划详情
     */

    /**
     * 培训记录新建、编辑
     */

    /**
     * 培训记录列表
     */

    /**
     * 培训记录详情
     */

    /**
     * 培训计划审批
     */


}
