/**
|
* Copyright 2018-2020 stylefeng & fengshuonan (https://gitee.com/stylefeng)
|
* <p>
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
* <p>
|
* http://www.apache.org/licenses/LICENSE-2.0
|
* <p>
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
package cn.stylefeng.guns.sys.modular.system.controller;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.stylefeng.guns.base.auth.context.LoginContextHolder;
|
import cn.stylefeng.guns.base.log.BussinessLog;
|
import cn.stylefeng.guns.base.pojo.page.LayuiPageFactory;
|
import cn.stylefeng.guns.sys.core.constant.dictmap.DeleteDict;
|
import cn.stylefeng.guns.sys.core.constant.dictmap.NoticeMap;
|
import cn.stylefeng.guns.sys.core.constant.factory.ConstantFactory;
|
import cn.stylefeng.guns.sys.core.log.LogObjectHolder;
|
import cn.stylefeng.guns.sys.modular.system.entity.Notice;
|
import cn.stylefeng.guns.sys.modular.system.service.NoticeService;
|
import cn.stylefeng.guns.sys.modular.system.warpper.NoticeWrapper;
|
import cn.stylefeng.roses.core.base.controller.BaseController;
|
import cn.stylefeng.roses.core.util.ToolUtil;
|
import cn.stylefeng.roses.kernel.model.exception.RequestEmptyException;
|
import cn.stylefeng.roses.kernel.model.response.ResponseData;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import java.util.Date;
|
import java.util.Map;
|
|
/**
|
* 通知控制器
|
*
|
* @author fengshuonan
|
* @Date 2017-05-09 23:02:21
|
*/
|
@Controller
|
@RequestMapping("/notice")
|
public class NoticeController extends BaseController {
|
|
private String PREFIX = "/modular/system/notice/";
|
|
@Autowired
|
private NoticeService noticeService;
|
|
/**
|
* 跳转到通知列表首页
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "notice.html";
|
}
|
|
/**
|
* 跳转到添加通知
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping("/notice_add")
|
public String noticeAdd() {
|
return PREFIX + "notice_add.html";
|
}
|
|
/**
|
* 跳转到修改通知
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping("/notice_update")
|
public String noticeUpdate() {
|
return PREFIX + "notice_edit.html";
|
}
|
|
/**
|
* 获取通知详情
|
*
|
* @author fengshuonan
|
* @Date 2019/8/26 18:14
|
*/
|
@RequestMapping("/detail")
|
@ResponseBody
|
public ResponseData noticeDetail(Long noticeId) {
|
Notice notice = this.noticeService.getById(noticeId);
|
Map<String, Object> noticeMap = BeanUtil.beanToMap(notice);
|
return ResponseData.success(noticeMap);
|
}
|
|
/**
|
* 获取通知列表
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String condition) {
|
Page<Map<String, Object>> list = this.noticeService.list(condition);
|
Page<Map<String, Object>> wrap = new NoticeWrapper(list).wrap();
|
return LayuiPageFactory.createPageInfo(wrap);
|
}
|
|
/**
|
* 新增通知
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping(value = "/add")
|
@ResponseBody
|
@BussinessLog(value = "新增通知", key = "title", dict = NoticeMap.class)
|
public Object add(Notice notice) {
|
if (ToolUtil.isOneEmpty(notice, notice.getTitle(), notice.getContent())) {
|
throw new RequestEmptyException("通知标题或内容为空");
|
}
|
notice.setCreateUser(LoginContextHolder.getContext().getUserId());
|
notice.setCreateTime(new Date());
|
this.noticeService.save(notice);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除通知
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
@BussinessLog(value = "删除通知", key = "noticeId", dict = DeleteDict.class)
|
public Object delete(@RequestParam Long noticeId) {
|
|
//缓存通知名称
|
LogObjectHolder.me().set(ConstantFactory.me().getNoticeTitle(noticeId));
|
|
this.noticeService.removeById(noticeId);
|
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改通知
|
*
|
* @author fengshuonan
|
* @Date 2018/12/23 6:06 PM
|
*/
|
@RequestMapping(value = "/update")
|
@ResponseBody
|
@BussinessLog(value = "修改通知", key = "title", dict = NoticeMap.class)
|
public Object update(Notice notice) {
|
if (ToolUtil.isOneEmpty(notice, notice.getNoticeId(), notice.getTitle(), notice.getContent())) {
|
throw new RequestEmptyException("通知标题或内容为空");
|
}
|
Notice old = this.noticeService.getById(notice.getNoticeId());
|
old.setTitle(notice.getTitle());
|
old.setContent(notice.getContent());
|
this.noticeService.updateById(old);
|
return SUCCESS_TIP;
|
}
|
|
}
|