权限菜单 springboot 集成mybatis(数据库 sql) 前台html(vue.js)

数据库
users表在这里插入图片描述
role_menu表在这里插入图片描述
权限表在这里插入图片描述
!角色表在这里插入图片描述

entity封装类

private Integer id;
private String name;
private String url;
private Integer lev;
private Integer pid;
private List<Menu> Chilenmenu;
//getandset方法

dao层

List<Menu> menuone(@Param("userid")Integer userid);

List<Menu> menutwo(@Param("userid")Integer userid,
                   @Param("Menuone")Menu Menuone);
//一级标签 根据userid查询一级菜单
//再根据 userid 和一级标签 查询除对应的二级标签 

service层

List<Menu> menuone(Integer userid);

List<Menu> menutwo(Integer userid,Menu Menuone);

serviceImpi层

public List<Menu> menuone(Integer userid) {
        return userDao.menuone(userid);
    }

    public List<Menu> menutwo(Integer userid,Menu Menuone) {
        return userDao.menutwo(userid,Menuone);
    }

controller层

public List<Menu> showmenu(@RequestParam("userid")Integer userid){
    List<Menu> Menuone = userService.menuone(userid);
    for (Menu menu : Menuone) {
        List<Menu> Menutwo = userService.menutwo(userid,menu);
        menu.setChilenmenu(Menutwo);
    }
    return Menuone;
}

mapper.xml

 <resultMap id="menuoneMap" type="com.aaa.entity.Menu">
        <id column="id" property="id"></id>
        <result column="name" property="name"></result>
        <result column="url" property="url"></result>
        <result column="lev" property="lev"></result>
        <result column="pid" property="pid"></result>
  </resultMap>

<select id="menuone" resultMap="menuoneMap">
    select distinct m.id,m.name,m.url,m.lev,m.pid
    from users u left join role r on u.rid = r.id left join
    role_menu rm on r.id = rm.rid left join menu m on rm.mid = m.id
    where u.id = #{userid} and lev = 1
</select>

<select id="menutwo" resultMap="menuoneMap">
    select distinct m.id,m.name,m.url,m.lev,m.pid
    from users u left join role r on u.rid = r.id left join
    role_menu rm on r.id = rm.rid left join menu m on rm.mid = m.id
    where u.id = #{userid} and lev = 2 and m.pid =#{Menuone.id}
</select>

Vue

showmenu(){
					axios.get("http://localhost:8080/showmenu?userid="+this.userid).then((res)=>{
						console.log(res.data);
						this.menu = res.data;
					}).catch((err)=>{
						console.log("未知错误"+err);
					})
				},

html 页面代码

<ul v-for="item in menu">
	<li  @click="bian(falge)">{{item.name}}
		<ul v-for="itemtwo in item.chilenmenu">
			<li v-if="falge"><a :href="itemtwo.url" target="iframe">{{itemtwo.name}}</a></li>
		</ul>
	</li>
</ul>

由于注释很少 大家可以直接提问 有求必应

有个错误 就是 后台逻辑代码应该写到seviceimpl层 不应该写到controller

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值