基於java ssm springboot+mybatis酒莊內部管理系統設計和實現

咱們廢話不多說進入主題、系統主頁展示:

用戶登錄後進行系統首頁:主要功能模塊如下、分角色管理、超級管理員擁有最高權限、可以進行菜單靈活控制、

用戶信息管理;

角色權限控制管理:

管理員查看靈活配置;

插入一小部分代碼段

/**
 * .
 *
 *
 *
 *
 */
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 ;
		}
	}
}

簡單模擬實現郵件群發給所有用戶

紅酒信息管理

通知公告信息管理

總結

本片文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: