package com.casic.missiles.controller.system;

import com.casic.missiles.core.base.controller.ExportController;
import com.casic.missiles.service.system.ISystemNoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @Description: 门户网站系统管理：通知公告
 * @Author: wangpeng
 * @Date: 2023/3/7 9:38
 */
//@Api(tags = "系统管理接口")
@Controller
@RequestMapping("/system")
public class SystemController extends ExportController {
    @Autowired
    private ISystemNoticeService noticeService;

    /**
     * 发布通知公告的用户应该是门户网站的系统管理员角色，
     *  若要有角色，门户网站和PC端用的同一张表，需要PC端有用到角色的地方进行过滤
     *  若不需要角色，只分配固定的几个管理员，无需考虑角色问题
     * 通知公告具体字段需评审确定，和PC端通知公告相同可增加Type字段复用
     */
//    @ApiOperation("通知公告列表/详情")
//    @PostMapping("/notice/listPage")
//    @ResponseBody
//    public ReturnDTO<PageInfoBT<SystemNotice>> noticeListPage(@RequestBody NoticeListRequest request) {
//        Page<SystemNotice> page = PageFactory.defaultPage();
//        return ReturnUtil.success(super.packForBT(noticeService.listPage(page, request)));
//    }
//
//    @ApiOperation("通知公告新建")
//    @PostMapping("/notice/add")
//    @ResponseBody
//    public ReturnDTO noticeAdd(@RequestBody @Valid NoticeAddRequest noticeAddRequest, BindingResult bindingResult) {
//        if(bindingResult.hasErrors()){
//            throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
//        }
//        return noticeService.addNotice(noticeAddRequest);
//    }
//
//    @ApiOperation("通知公告更新")
//    @PostMapping("/notice/update")
//    @ResponseBody
//    public ReturnDTO noticeUpdate(@RequestBody @Valid SystemNotice systemNotice, BindingResult bindingResult) {
//        if(bindingResult.hasErrors()){
//            throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
//        }
//        return noticeService.updateNotice(systemNotice);
//    }
//
//    @ApiOperation("通知公告删除")
//    @PostMapping("/notice/delete")
//    @ResponseBody
//    public ReturnDTO noticeDelete(@RequestBody @Valid IdDTO idDTO) {
//        Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
//            throw new BusinessException(BusinessExceptionEnum.ID_NULL);
//        });
//        return noticeService.deleteNotice(idDTO.getId());
//    }
}
