最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

 更新時(shí)間:2021年08月31日 09:49:13   作者:java李陽(yáng)勇  
這篇文章主要為大家詳細(xì)介紹了java ssm springboot+mybatis實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

咱們廢話不多說(shuō)進(jìn)入主題、系統(tǒng)主頁(yè)展示:

用戶登錄后進(jìn)行系統(tǒng)首頁(yè):主要功能模塊如下、分角色管理、超級(jí)管理員擁有最高權(quán)限、可以進(jìn)行菜單靈活控制、

用戶信息管理;

角色權(quán)限控制管理:

管理員查看靈活配置;

插入一小部分代碼段

/**
 * .
 *
 *
 *
 *
 */
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;
/**
 * 系統(tǒng)菜單
 *
 * @author Mark s.com
 */
@RestController
@RequestMapping("/sys/menu")
public class SysMenuController extends AbstractController {
	@Autowired
	private SysMenuService sysMenuService;
	/**
	 * 導(dǎo)航菜單
	 */
	@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(){
		//查詢列表數(shù)據(jù)
		List<SysMenuEntity> menuList = sysMenuService.queryNotButtonList();
		//添加頂級(jí)菜單
		SysMenuEntity root = new SysMenuEntity();
		root.setMenuId(0L);
		root.setName("一級(jí)菜單");
		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){
		//數(shù)據(jù)校驗(yàn)
		verifyForm(menu);
		sysMenuService.save(menu);
		return R.ok();
	}
	/**
	 * 修改
	 */
	@SysLog("修改菜單")
	@RequestMapping("/update")
	@RequiresPermissions("sys:menu:update")
	public R update(@RequestBody SysMenuEntity menu){
		//數(shù)據(jù)校驗(yàn)
		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("系統(tǒng)菜單,不能刪除");
		}
		//判斷是否有子菜單或按鈕
		List<SysMenuEntity> menuList = sysMenuService.queryListParentId(menuId);
		if(menuList.size() > 0){
			return R.error("請(qǐng)先刪除子菜單或按鈕");
		}
		sysMenuService.delete(menuId);
		return R.ok();
	}
	/**
	 * 驗(yàn)證參數(shù)是否正確
	 */
	private void verifyForm(SysMenuEntity menu){
		if(StringUtils.isBlank(menu.getName())){
			throw new RRException("菜單名稱不能為空");
		}
		if(menu.getParentId() == null){
			throw new RRException("上級(jí)菜單不能為空");
		}
		//菜單
		if(menu.getType() == Constant.MenuType.MENU.getValue()){
			if(StringUtils.isBlank(menu.getUrl())){
				throw new RRException("菜單URL不能為空");
			}
		}
		//上級(jí)菜單類型
		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("上級(jí)菜單只能為目錄類型");
			}
			return ;
		}
		//按鈕
		if(menu.getType() == Constant.MenuType.BUTTON.getValue()){
			if(parentType != Constant.MenuType.MENU.getValue()){
				throw new RRException("上級(jí)菜單只能為菜單類型");
			}
			return ;
		}
	}
}

簡(jiǎn)單模擬實(shí)現(xiàn)郵件群發(fā)給所有用戶

紅酒信息管理

通知公告信息管理

總結(jié)

本片文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 詳解JVM 中的StringTable

    詳解JVM 中的StringTable

    這篇文章主要介紹了JVM 中的StringTable,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)

    Java實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)

    這篇文章主要介紹了Java中實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)的方法,比較實(shí)用,需要的朋友可以參考下。
    2016-06-06
  • 最有價(jià)值的50道java面試題 適用于準(zhǔn)入職Java程序員

    最有價(jià)值的50道java面試題 適用于準(zhǔn)入職Java程序員

    這篇文章主要為大家分享了最有價(jià)值的50道java面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對(duì)hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下
    2016-05-05
  • spring Roo安裝使用簡(jiǎn)介

    spring Roo安裝使用簡(jiǎn)介

    這篇文章主要介紹了spring Roo安裝使用簡(jiǎn)介,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • spring boot打包成war包的頁(yè)面如何存放

    spring boot打包成war包的頁(yè)面如何存放

    這篇文章主要介紹了spring boot打包成war包的頁(yè)面該放到哪里,很多朋友對(duì)這個(gè)問題都很疑惑,今天小編給大家分享一篇教程,需要的朋友可以參考下
    2019-11-11
  • SpringBoot使用Redis對(duì)用戶IP進(jìn)行接口限流的示例詳解

    SpringBoot使用Redis對(duì)用戶IP進(jìn)行接口限流的示例詳解

    使用接口限流的主要目的在于提高系統(tǒng)的穩(wěn)定性,防止接口被惡意打擊,這篇文章主要介紹了SpringBoot使用Redis對(duì)用戶IP進(jìn)行接口限流的示例代碼,需要的朋友可以參考下
    2023-07-07
  • JAVA解決在@autowired,@Resource注入為null的情況

    JAVA解決在@autowired,@Resource注入為null的情況

    這篇文章主要介紹了JAVA解決在@autowired,@Resource注入為null的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • SpringBoot使用Apache Tika實(shí)現(xiàn)多種文檔的內(nèi)容解析

    SpringBoot使用Apache Tika實(shí)現(xiàn)多種文檔的內(nèi)容解析

    在日常開發(fā)中,我們經(jīng)常需要解析不同類型的文檔,如PDF、Word、Excel、HTML、TXT等,Apache Tika是一個(gè)強(qiáng)大的內(nèi)容解析工具,可以輕松地提取文檔中的內(nèi)容和元數(shù)據(jù)信息,本文將通過(guò)SpringBoot和Apache Tika的結(jié)合,介紹如何實(shí)現(xiàn)對(duì)多種文檔格式的內(nèi)容解析
    2024-12-12
  • 在Spring Boot中使用Spark Streaming進(jìn)行實(shí)時(shí)數(shù)據(jù)處理和流式計(jì)算的步驟

    在Spring Boot中使用Spark Streaming進(jìn)行實(shí)時(shí)數(shù)據(jù)處理和流式計(jì)算的步驟

    這篇文章主要介紹了在Spring Boot中使用Spark Streaming進(jìn)行實(shí)時(shí)數(shù)據(jù)處理和流式計(jì)算,通過(guò)本文的介紹,我們了解了在Spring Boot中使用Spark Streaming進(jìn)行實(shí)時(shí)數(shù)據(jù)處理和流式計(jì)算的詳細(xì)步驟,需要的朋友可以參考下
    2024-03-03
  • Java中的==使用方法詳解

    Java中的==使用方法詳解

    這篇文章主要介紹了Java中“==”的使用方法,,==可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中,equals()是方法,只能用于引用數(shù)據(jù)類型,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

敖汉旗| 昌乐县| 勐海县| 华宁县| 佛山市| 丰镇市| 黎城县| 衡阳县| 大关县| 米林县| 涞水县| 阿尔山市| 长岭县| 林口县| 河东区| 团风县| 纳雍县| 常熟市| 石狮市| 封丘县| 利辛县| 贡觉县| 七台河市| 新丰县| 泾阳县| 嵊泗县| 靖安县| 阜康市| 嘉义市| 交口县| 繁昌县| 正蓝旗| 明光市| 富民县| 涞水县| 玉林市| 彰化县| 星子县| 两当县| 镇赉县| 修水县|