Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统

主要技术:spring、 springmvc、  springboot、  mybatis 、 jquery 、 md5 、bootstarp.js  tomcat、富文本编译器、拦截器等
主要功能:用户、角色、权限、菜单、内部邮件群发、给管理员发送邮件、酒类管理、红酒信息管理、通知公告管理、修改密码等  

论文目录结构:

一、 绪论 4
1.1 系统研究目的意义 4

1.2研究的主要内容 4

二、相关技术介绍分析 5

2.1 spring技术 5

2.2 Spring MVC技术 6

2.3 mybatis技术 7

2.4 JSP技术技术 7

2.5 jQuery技术 8

2.6 Mysql技术 8

三、需求分析和可行性分析 11

3.1 系统运行环境 11

3.2 总体技术设计 11

3.3 社会可行性分析 11

3.4 安全性可行性分析 12

3.5 经济可行性分析 12

3.6 法律可行性分析 12

四、系统设计分析 13

4.1 系统模式架构 13

4.2系统层次架构 13

4.3用户需求分析 13

4.3系统功能详情设计 15

4.4数据整体流程分析 16

4.5源码主要架构 17

五、程序设计和实现 18

5.1 程序主要类 18

5.2主要功能设计实现 22

5.2.登录模块和系统首页: 22

5.3用户添加: 24

5.4红酒信息列表展示: 26

5.5添加红酒详情: 26

5.6邮件列表展示: 27

5.7邮件发送: 28

5.8红酒类型列表 29

5.9红酒类型添加 30

5.8红酒类型添加 30

5.8通知公告列表 31

5.9修改密码 31

5.10数据库连接配置 32

六、数据库设计 34

6.1数据三范式: 34

6.2表ER图 34

6.3用户表设计 35

6.4菜单表设计 35

6.5角色表设计 36

6.6红酒类型表设计 36

6.7红酒表设计 37

6.8邮件信息表设计 37

6.10通知公告表设计 38

七、开发心得体会 38

八、测试实例 39

测试一: 39

测试二: 40

测试三: 41

致谢 41

参考献文 42

好了废话不多说进入主题、系统主页展示:


Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


用户登录后进行系统首页:主要功能模块如下、分角色管理、超级管理员拥有最高权限、可以进行菜单灵活控制

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


用户信息管理;


Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


角色权限控制管理:

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


管理员查看灵活配置;

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


插入一小部分代码段

/**
 * .
 *
 *
 *
 *
 */
 
package io.renren.modules.sys.controller;
 
import io.renren.common.annotation.SysLog;
import io.renren.common.exception.RRException;
import io.renren.common.utils.Constant;
import io.renren.common.utils.R;
import io.renren.modules.sys.entity.SysMenuEntity;
import io.renren.modules.sys.service.SysMenuService;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
 
/**
 * 系统菜单
 *
 * @author Mark s.com
 */
@RestController
@RequestMapping("/sys/menu")
public class SysMenuController extends AbstractController {
	@Autowired
	private SysMenuService sysMenuService;
 
	/**
	 * 导航菜单
	 */
	@RequestMapping("/nav")
	public R nav(){
		List<SysMenuEntity> menuList = sysMenuService.getUserMenuList(getUserId());
		return R.ok().put("menuList", menuList);
	}
	
	/**
	 * 所有菜单列表
	 */
	@RequestMapping("/list")
	@RequiresPermissions("sys:menu:list")
	public List<SysMenuEntity> list(){
		List<SysMenuEntity> menuList = sysMenuService.list();
		for(SysMenuEntity sysMenuEntity : menuList){
			SysMenuEntity parentMenuEntity = sysMenuService.getById(sysMenuEntity.getParentId());
			if(parentMenuEntity != null){
				sysMenuEntity.setParentName(parentMenuEntity.getName());
			}
		}
 
		return menuList;
	}
	
	/**
	 * 选择菜单(添加、修改菜单)
	 */
	@RequestMapping("/select")
	@RequiresPermissions("sys:menu:select")
	public R select(){
		//查询列表数据
		List<SysMenuEntity> menuList = sysMenuService.queryNotButtonList();
		
		//添加*菜单
		SysMenuEntity root = new SysMenuEntity();
		root.setMenuId(0L);
		root.setName("一级菜单");
		root.setParentId(-1L);
		root.setOpen(true);
		menuList.add(root);
		
		return R.ok().put("menuList", menuList);
	}
	
	/**
	 * 菜单信息
	 */
	@RequestMapping("/info/{menuId}")
	@RequiresPermissions("sys:menu:info")
	public R info(@PathVariable("menuId") Long menuId){
		SysMenuEntity menu = sysMenuService.getById(menuId);
		return R.ok().put("menu", menu);
	}
	
	/**
	 * 保存
	 */
	@SysLog("保存菜单")
	@RequestMapping("/save")
	@RequiresPermissions("sys:menu:save")
	public R save(@RequestBody SysMenuEntity menu){
		//数据校验
		verifyForm(menu);
		
		sysMenuService.save(menu);
		
		return R.ok();
	}
	
	/**
	 * 修改
	 */
	@SysLog("修改菜单")
	@RequestMapping("/update")
	@RequiresPermissions("sys:menu:update")
	public R update(@RequestBody SysMenuEntity menu){
		//数据校验
		verifyForm(menu);
				
		sysMenuService.updateById(menu);
		
		return R.ok();
	}
	
	/**
	 * 删除
	 */
	@SysLog("删除菜单")
	@RequestMapping("/delete")
	@RequiresPermissions("sys:menu:delete")
	public R delete(long menuId){
		if(menuId <= 31){
			return R.error("系统菜单,不能删除");
		}
 
		//判断是否有子菜单或按钮
		List<SysMenuEntity> menuList = sysMenuService.queryListParentId(menuId);
		if(menuList.size() > 0){
			return R.error("请先删除子菜单或按钮");
		}
 
		sysMenuService.delete(menuId);
 
		return R.ok();
	}
	
	/**
	 * 验证参数是否正确
	 */
	private void verifyForm(SysMenuEntity menu){
		if(StringUtils.isBlank(menu.getName())){
			throw new RRException("菜单名称不能为空");
		}
		
		if(menu.getParentId() == null){
			throw new RRException("上级菜单不能为空");
		}
		
		//菜单
		if(menu.getType() == Constant.MenuType.MENU.getValue()){
			if(StringUtils.isBlank(menu.getUrl())){
				throw new RRException("菜单URL不能为空");
			}
		}
		
		//上级菜单类型
		int parentType = Constant.MenuType.CATALOG.getValue();
		if(menu.getParentId() != 0){
			SysMenuEntity parentMenu = sysMenuService.getById(menu.getParentId());
			parentType = parentMenu.getType();
		}
		
		//目录、菜单
		if(menu.getType() == Constant.MenuType.CATALOG.getValue() ||
				menu.getType() == Constant.MenuType.MENU.getValue()){
			if(parentType != Constant.MenuType.CATALOG.getValue()){
				throw new RRException("上级菜单只能为目录类型");
			}
			return ;
		}
		
		//按钮
		if(menu.getType() == Constant.MenuType.BUTTON.getValue()){
			if(parentType != Constant.MenuType.MENU.getValue()){
				throw new RRException("上级菜单只能为菜单类型");
			}
			return ;
		}
	}
}

简单模拟实现邮件群发给所有用户

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


红酒信息管理

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


通知公告信息管理

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统


系统包括源码+sql+论文文档

Java毕业设计+现成产品 —> 基于java ssm springboot酒庄内部管理系统

作者QQ:1334611189 现成的产品直接使用,功能设计+代码+任务说明书+提纲+论文+远程部署,诚信为本,希望大家支持与帮助!


点击查看更多java精品毕业设计+现成产品项目  >>>





上一篇:双重for循环简化


下一篇:java生成多级菜单树