package cn.iocoder.yudao.module.notice.controller.admin;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.notice.entity.DlBaseNotice;
import cn.iocoder.yudao.module.notice.service.DlBaseNoticeService;
import cn.iocoder.yudao.module.notice.vo.DlBaseNoticeReqVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

import java.util.List;

import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;

/**
 * 平台通用信息公告(DlBaseNotice)表控制层
 *
 * @author 小李
 * @date 9:48 2024/10/9
**/
@RestController
@RequestMapping("/base/notice")
public class DlBaseNoticeController {
    /**
     * 服务对象
     */
    @Resource
    private DlBaseNoticeService dlBaseNoticeService;

    /**
     * 平台通用信息公告 分页查询 按服务
     *
     * @author 小李
     * @date 9:52 2024/10/9
     * @param reqVO 查询对象
     * @param pageNo 页数
     * @param pageSize 条数
    **/
    @GetMapping("/page")
    @Operation(summary = "平台通用信息公告 分页查询 按服务")
    public CommonResult<?> pageNotice(DlBaseNoticeReqVO reqVO,
                                      @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
                                      @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize) {
        Page<DlBaseNotice> page = new Page<>(pageNo, pageSize);
        return success(dlBaseNoticeService.pageNotice(reqVO, page));
    }

    /**
     * 平台通用信息公告 新增、修改 按服务
     *
     * @author 小李
     * @date 10:04 2024/10/9
     * @param reqVO 请求对象
    **/
    @PostMapping("/update")
    @Operation(summary = "平台通用信息公告 新增、修改 按服务")
    public CommonResult<?> updateNotice(@RequestBody DlBaseNoticeReqVO reqVO) {
        dlBaseNoticeService.updateNotice(reqVO);
        return CommonResult.ok();
    }

    /**
     * 平台通用信息公告 删除 按服务
     *
     * @author 小李
     * @date 10:10 2024/10/9
     * @param ids ids
    **/
    @DeleteMapping("/remove")
    @Operation(summary = "平台通用信息公告 删除 按服务")
    public CommonResult<?> removeNotice(@RequestParam("ids") List<String> ids) {
        dlBaseNoticeService.removeNotice(ids);
        return CommonResult.ok();
    }

    @GetMapping("/get")
    @Operation(summary = "平台通用信息公告 查询 按服务")
    public CommonResult<?> getNoticeById(@RequestParam("id") String id) {
        return success(dlBaseNoticeService.getById(id));
    }
}

