package com.yunzhi.inte.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yunzhi.inte.common.ResponseBean;
import com.yunzhi.inte.entity.Banner;
import com.yunzhi.inte.entity.Info;
import com.yunzhi.inte.entity.Monitor;
import com.yunzhi.inte.service.BannerService;
import com.yunzhi.inte.service.MonitorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/")
public class MonitorController {
    private final Logger logger = LoggerFactory.getLogger(InfoController.class);

    @Autowired
    public MonitorService monitorService;

    /**
     * 分页查询列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    @RequestMapping(value="/monitor",method= RequestMethod.GET)
    public ResponseBean MonitorPage(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
                                    @RequestParam(value ="status", required = false) String status) throws Exception{

        IPage<Monitor> pg = new Page<>(pageNum, pageSize);
        QueryWrapper<Monitor> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(null != status && !"".equals(status), "status", status);
        queryWrapper.orderByDesc("id");

        IPage<Monitor> result = monitorService.page(pg);
        return ResponseBean.success(result);
    }

    /**
     * 增加
     * Monitor 实体对象
     * @return
     */
    @RequestMapping(value="/monitor",method= RequestMethod.POST)
    public ResponseBean MonitorAdd(@RequestBody Monitor monitor) throws Exception{

        if (monitorService.save(monitor)){
            return ResponseBean.success(monitor);
        }else {
            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
        }
    }

    /**
     * 根据id删除对象
     * @param id  实体ID
     */
    @RequestMapping(value="/monitor/{id}", method= RequestMethod.DELETE)
    public ResponseBean MonitorDelete(@PathVariable Integer id) throws Exception{
        if(monitorService.removeById(id)){
            return ResponseBean.success("success");
        }else {
            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
        }
    }

    /**
     * 修改对象
     * @param id  实体ID
     * Monitor 实体对象
     * @return
     */
    @RequestMapping(value="/monitor/{id}",method= RequestMethod.PUT)
    public ResponseBean MonitorUpdate(@PathVariable Integer id,
                                     @RequestBody Monitor monitor) throws Exception{
        monitor.setId(id);
        if (monitorService.updateById(monitor)){
            return ResponseBean.success(monitorService.getById(id));
        }else {
            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
        }
    }

    /**
     * 根据id查询对象
     * @param id  实体ID
     */
    @RequestMapping(value="/monitor/{id}",method= RequestMethod.GET)
    public ResponseBean MonitorId(@PathVariable Integer id) throws Exception{
        return ResponseBean.success(monitorService.getById(id));
    }
}