package com.yjq.BMS.controller.admin;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.github.pagehelper.util.StringUtil;
import com.yjq.BMS.constant.SessionConstant;
import com.yjq.BMS.dao.admin.AdminMapper;
import com.yjq.BMS.dao.admin.AttachmentMapper;
import com.yjq.BMS.dao.admin.AuthorityMapper;
import com.yjq.BMS.dao.admin.MailMapper;
import com.yjq.BMS.dao.admin.MenuMapper;
import com.yjq.BMS.enums.MenuStateEnum;
import com.yjq.BMS.pojo.admin.Admin;
import com.yjq.BMS.pojo.admin.Authority;
import com.yjq.BMS.pojo.admin.Mail;
import com.yjq.BMS.pojo.admin.Menu;
import com.yjq.BMS.service.admin.IMailService;
import com.yjq.BMS.service.admin.IMenuService;
import com.yjq.BMS.vo.common.ResponseVo;
/**
* 后台管理系统邮箱控制器
* @author 82320
*
*/
@RequestMapping("/admin/mail")
@Controller
public class MailController {
@Autowired
private MenuMapper menuMapper;
@Autowired
private IMenuService menuService;
@Autowired
private AdminMapper adminMapper;
@Autowired
private AttachmentMapper attachmentMapper;
@Autowired
private MailMapper mailMapper;
@Autowired
private IMailService mailService;
@Autowired
private AuthorityMapper authorityMapper;
/**
* 发送邮件页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/write",method=RequestMethod.GET)
public String index(Model model,Integer id,HttpServletRequest request) {
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
List<Authority> selectByRoleId = authorityMapper.selectByRoleId(loginedAdmin.getRoleId()); //获取当前用户所有权限
Set<Integer> menuIdSet = selectByRoleId.stream().map(Authority :: getMenuId).collect(Collectors.toSet());//把权限中所有菜单id取出来
List<Menu> allMenusByStateAndPrimaryKeys = menuMapper.selectByStateAndPrimaryKeys(MenuStateEnum.OPEN.getCode(), menuIdSet);
model.addAttribute("Receivers", adminMapper.selectAll()); //获取所有收信人
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByStateAndPrimaryKeys).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/mail/write";
}
/**
* 收件箱页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/receive",method=RequestMethod.GET)
public String receive(Model model,Integer id,String title,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize, //每页5个数据
HttpServletRequest request
) {
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
//获取列表展示有关信息
if(StringUtil.isEmpty(title)) {
//如果查询信息为空
model.addAttribute("PageInfo", mailService.getReceiveMailsByPage(pageNum, pageSize, loginedAdmin.getId()).getData());
}else {
model.addAttribute("PageInfo", mailService.getReceiveMailsByPageAndTitle(pageNum, pageSize, loginedAdmin.getId(), title).getData());
model.addAttribute("title",title);
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
model.addAttribute("allAdmins", adminMapper.selectAll());
List<Menu> allMenusByState = menuMapper.selectByState(MenuStateEnum.OPEN.getCode()); //获取所有状态开启的菜单
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByState).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/mail/receive";
}
/**
* 发件箱页面
* @param model
* @param id
* @return
*/
@RequestMapping(value="/send",method=RequestMethod.GET)
public String send(Model model,Integer id,String title,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "5") Integer pageSize, //每页5个数据
HttpServletRequest request
) {
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
//获取列表展示有关信息
if(StringUtil.isEmpty(title)) {
//如果查询信息为空
model.addAttribute("PageInfo", mailService.getSendMailsByPage(pageNum, pageSize, loginedAdmin.getId()).getData());
}else {
model.addAttribute("PageInfo", mailService.getSendMailsByPageAndTitle(pageNum, pageSize, loginedAdmin.getId(), title).getData());
model.addAttribute("title",title);
}
//获取路径上有关信息
Menu selectByPrimaryKey = menuMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
model.addAttribute("allAdmins", adminMapper.selectAll());
List<Menu> allMenusByState = menuMapper.selectByState(MenuStateEnum.OPEN.getCode()); //获取所有状态开启的菜单
model.addAttribute("onThirdMenus", menuService.getThirdMenus(allMenusByState).getData());
model.addAttribute("parentMenu", menuMapper.selectByPrimaryKey(selectByPrimaryKey.getParentId()));
model.addAttribute("currentMenu", selectByPrimaryKey);
return "admin/mail/send";
}
/**
* 邮件查看
* @param model
* @param id
* @return
*/
@RequestMapping(value="/preview",method=RequestMethod.GET)
public String preview(Model model,Integer id) {
Mail selectByPrimaryKey = mailMapper.selectByPrimaryKey(id);
if(selectByPrimaryKey == null) {
return "error/404";
}
model.addAttribute("allAdmins", adminMapper.selectAll());
model.addAttribute("allAttachments", attachmentMapper.selectAll());
model.addAttribute("previewMail", selectByPrimaryKey);
return "admin/mail/preview";
}
/**
* 邮件附件移除
* @param admin
* @return
*/
@RequestMapping(value="/remove_attachment",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> removeAttachment(Integer Id){
return mailService.removeAttachment(Id);
}
/**
* 发送邮件
* @param mail
* @return
*/
@RequestMapping(value="/send_mail",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> sendMail(Mail mail,String receivers,HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
return mailService.sendMail(mail, receivers, loginedAdmin.getId());
}
/**
* 邮件删除处理
* @param id
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public ResponseVo<Boolean> delete(Integer id,HttpServletRequest request){
Admin loginedAdmin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
return mailService.delete(id, loginedAdmin.getId());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
功能:登录功能(登录,退出登录);菜单管理功能(添加、编辑、删除、添加按钮);管理员管理功能(添加、编辑、删除、上传图片);角色管理功能(添加、编辑、删除、编辑权限);邮件管理功能(发送内部邮件、上传附件、下载附件、收件箱发件箱管理、查看邮件、删除邮件);公告管理功能(发布、删除);个人信息管理功能(修改)。 应用技术:SpringBoot + FreeMarker + MyBatis + LayUI + MySQL 运行环境:Eclipse/IDEA + MySQL5.7 + Maven3.6.3 + JDK1.8
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot后台管理系统脚手架项目 (1316个子文件)
MailController.class 9KB
UploadController.class 8KB
RoleService.class 8KB
MenuServiceImpl.class 8KB
AdminController.class 8KB
CpachaUtil.class 7KB
RoleController.class 7KB
MailServiceImpl.class 7KB
MenuController.class 7KB
AnnouncementController.class 6KB
AdminService.class 6KB
FileController.class 6KB
IndexController.class 5KB
CodeMsg.class 5KB
SystemController.class 5KB
IMenuServiceTest.class 5KB
Admin.class 4KB
IAdminServiceTest.class 4KB
AnnouncementService.class 4KB
IRoleServiceTest.class 4KB
ValidateEntityUtil.class 4KB
Mail.class 4KB
Menu.class 4KB
IAnnouncementServiceTest.class 3KB
IMailServiceTest.class 3KB
Attachment.class 3KB
CpachaController.class 3KB
ResponseVo.class 3KB
LoginInterceptor.class 3KB
PhotoController.class 2KB
Role.class 2KB
Announcement.class 2KB
MailDeleteStateEnum.class 2KB
Authority.class 2KB
AdminStateEnum.class 2KB
MenuStateEnum.class 2KB
IMailService.class 2KB
WebConfig.class 2KB
MailMapper.class 2KB
IRoleService.class 2KB
AdminMapper.class 2KB
IAdminService.class 1KB
StringUtil.class 1KB
IAnnouncementService.class 1KB
IMenuService.class 1KB
MenuMapper.class 1KB
AuthorityMapper.class 971B
ValidateEntity.class 954B
AnnouncementMapper.class 906B
RoleMapper.class 891B
RuntimeConstant.class 842B
BMSApplication.class 809B
AttachmentMapper.class 671B
BMSApplicationTest.class 503B
SessionConstant.class 409B
.classpath 1KB
layui.css 68KB
layui.css 68KB
layui.css 68KB
ueditor.css 44KB
ueditor.css 44KB
ueditor.min.css 34KB
ueditor.min.css 34KB
video-js.css 21KB
video-js.css 21KB
image.css 19KB
image.css 19KB
formSelects-v4.css 18KB
formSelects-v4.css 18KB
video.css 15KB
video.css 15KB
attachment.css 15KB
attachment.css 15KB
layer.css 14KB
layer.css 14KB
layer.css 14KB
video-js.min.css 11KB
video-js.min.css 11KB
xadmin.css 10KB
xadmin.css 10KB
xadmin.css 10KB
layui.mobile.css 10KB
layui.mobile.css 10KB
layui.mobile.css 10KB
laydate.css 7KB
laydate.css 7KB
laydate.css 7KB
shCoreDefault.css 7KB
shCoreDefault.css 7KB
style.css 4KB
style.css 4KB
scrawl.css 4KB
scrawl.css 4KB
codemirror.css 3KB
codemirror.css 3KB
charts.css 3KB
charts.css 3KB
background.css 2KB
background.css 2KB
login.css 2KB
共 1316 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
- 柿子小哥2021-05-26用户下载后在一定时间内未进行评价,系统默认好评。
- 哎呦喂O_o嗨2021-08-09用户下载后在一定时间内未进行评价,系统默认好评。
这里是杨杨吖
- 粉丝: 2w+
- 资源: 509
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功