登陆代码迁移
This commit is contained in:
@ -4,6 +4,7 @@ package com.coscoshipping.ebtp.project.menu.controller;
|
|||||||
import com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants;
|
import com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants;
|
||||||
import com.chinaunicom.mall.ebtp.common.base.controller.BaseController;
|
import com.chinaunicom.mall.ebtp.common.base.controller.BaseController;
|
||||||
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
|
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
|
||||||
|
import com.coscoshipping.ebtp.project.menu.dto.BaseRoleTabulation;
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||||
import com.coscoshipping.ebtp.project.menu.service.ISysMenuService;
|
import com.coscoshipping.ebtp.project.menu.service.ISysMenuService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -126,4 +127,9 @@ public class SysMenuController extends BaseController
|
|||||||
}
|
}
|
||||||
return BaseResponse.success(menuService.deleteMenuById(menuId));
|
return BaseResponse.success(menuService.deleteMenuById(menuId));
|
||||||
}
|
}
|
||||||
|
@GetMapping(value = "/expert/role/menu")
|
||||||
|
public BaseResponse<List<BaseRoleTabulation>> getBaseRoleTabulation(@RequestParam String userId)
|
||||||
|
{
|
||||||
|
return BaseResponse.success(menuService.getBaseRoleTabulation(userId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.coscoshipping.ebtp.project.menu.dao;
|
package com.coscoshipping.ebtp.project.menu.dao;
|
||||||
|
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||||
|
import com.coscoshipping.ebtp.project.menu.vo.RoleTabulationVo;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -122,4 +123,6 @@ public interface SysMenuMapper
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
||||||
|
|
||||||
|
List<RoleTabulationVo> getBaseRoleTabulation(String userId);
|
||||||
}
|
}
|
||||||
|
@ -131,6 +131,29 @@
|
|||||||
<include refid="selectMenuVo"/>
|
<include refid="selectMenuVo"/>
|
||||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getBaseRoleTabulation" resultType="com.coscoshipping.ebtp.project.menu.vo.RoleTabulationVo">
|
||||||
|
SELECT
|
||||||
|
r.role_id as id,
|
||||||
|
r.`role_name` as name,
|
||||||
|
r.role_code as tag,
|
||||||
|
1 as sort,
|
||||||
|
rf.menu_id as funcId,
|
||||||
|
f.parent_id as pid,
|
||||||
|
f.`menu_name` as funcName,
|
||||||
|
f.path as url,
|
||||||
|
f.order_num as funcSort
|
||||||
|
FROM
|
||||||
|
sys_user_role ur,
|
||||||
|
sys_role r,
|
||||||
|
sys_role_menu rf,
|
||||||
|
sys_menu f
|
||||||
|
WHERE
|
||||||
|
r.role_id = ur.role_id
|
||||||
|
and r.role_id = rf.role_id
|
||||||
|
and rf.menu_id = f.menu_id
|
||||||
|
AND ur.user_id = #{userId,jdbcType=BIGINT}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
<update id="updateMenu" parameterType="com.coscoshipping.ebtp.project.menu.entity.SysMenu">
|
<update id="updateMenu" parameterType="com.coscoshipping.ebtp.project.menu.entity.SysMenu">
|
||||||
update sys_menu
|
update sys_menu
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
package com.coscoshipping.ebtp.project.menu.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实体类 BaseFunc-菜单功能表
|
||||||
|
*
|
||||||
|
* @author yss
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(value = "菜单列表", description = "菜单列表")
|
||||||
|
public class BaseFuncTabulation implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty(value = "索引id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "父id.表内关联")
|
||||||
|
private String pid;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "功能名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "链接地址.即iframe内页的地址")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "子菜单")
|
||||||
|
List<BaseFuncTabulation> baseFuncTabulationList;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package com.coscoshipping.ebtp.project.menu.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实体类 BaseRole-角色表
|
||||||
|
*
|
||||||
|
* @author yss
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(value = "BaseRole对象", description = "角色列表表")
|
||||||
|
public class BaseRoleTabulation implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String intro;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色标识")
|
||||||
|
private String tag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "序号")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单列表")
|
||||||
|
List<BaseFuncTabulation> baseFuncTabulationList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单列表")
|
||||||
|
List<String> funcList;
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package com.coscoshipping.ebtp.project.menu.service;
|
package com.coscoshipping.ebtp.project.menu.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.coscoshipping.ebtp.project.menu.dto.BaseRoleTabulation;
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.TreeSelect;
|
import com.coscoshipping.ebtp.project.menu.entity.TreeSelect;
|
||||||
|
|
||||||
@ -145,4 +146,6 @@ public interface ISysMenuService
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public boolean checkMenuNameUnique(SysMenu menu);
|
public boolean checkMenuNameUnique(SysMenu menu);
|
||||||
|
|
||||||
|
List<BaseRoleTabulation> getBaseRoleTabulation(String userId);
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
package com.coscoshipping.ebtp.project.menu.service.impl;
|
package com.coscoshipping.ebtp.project.menu.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.coscoshipping.ebtp.project.menu.dao.SysMenuMapper;
|
import com.coscoshipping.ebtp.project.menu.dao.SysMenuMapper;
|
||||||
|
import com.coscoshipping.ebtp.project.menu.dto.BaseFuncTabulation;
|
||||||
|
import com.coscoshipping.ebtp.project.menu.dto.BaseRoleTabulation;
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||||
import com.coscoshipping.ebtp.project.menu.entity.TreeSelect;
|
import com.coscoshipping.ebtp.project.menu.entity.TreeSelect;
|
||||||
import com.coscoshipping.ebtp.project.menu.service.ISysMenuService;
|
import com.coscoshipping.ebtp.project.menu.service.ISysMenuService;
|
||||||
|
import com.coscoshipping.ebtp.project.menu.vo.RoleTabulationVo;
|
||||||
import com.coscoshipping.ebtp.project.role.dao.SysRoleMapper;
|
import com.coscoshipping.ebtp.project.role.dao.SysRoleMapper;
|
||||||
import com.coscoshipping.ebtp.project.role.dao.SysRoleMenuMapper;
|
import com.coscoshipping.ebtp.project.role.dao.SysRoleMenuMapper;
|
||||||
import com.coscoshipping.ebtp.project.role.entity.SysRole;
|
import com.coscoshipping.ebtp.project.role.entity.SysRole;
|
||||||
@ -535,4 +539,51 @@ public class SysMenuServiceImpl implements ISysMenuService
|
|||||||
// return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" },
|
// return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" },
|
||||||
// new String[] { "", "", "", "/", "/" });
|
// new String[] { "", "", "", "/", "/" });
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BaseRoleTabulation> getBaseRoleTabulation(String userId){
|
||||||
|
|
||||||
|
List<RoleTabulationVo> roleTabulationVoList = menuMapper.getBaseRoleTabulation(userId);
|
||||||
|
|
||||||
|
List<BaseRoleTabulation> brlist = new ArrayList<>();
|
||||||
|
roleTabulationVoList.forEach(ft->{
|
||||||
|
BaseRoleTabulation br = new BaseRoleTabulation();
|
||||||
|
BeanUtil.copyProperties(ft, br);
|
||||||
|
brlist.add(br);
|
||||||
|
});
|
||||||
|
|
||||||
|
List<BaseRoleTabulation> diBrlist = brlist.stream().distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
|
diBrlist.forEach(dbr->{
|
||||||
|
List<BaseFuncTabulation> bfList = getRoleTabulationVo(roleTabulationVoList,dbr.getId(),"0");
|
||||||
|
//dbr.setBaseFuncTabulationList(bfList);
|
||||||
|
List<String> funcList = bfList.stream().map(BaseFuncTabulation::getUrl).distinct().collect(Collectors.toList());
|
||||||
|
dbr.setFuncList(funcList);
|
||||||
|
});
|
||||||
|
|
||||||
|
return diBrlist;
|
||||||
|
}
|
||||||
|
public List<BaseFuncTabulation> getRoleTabulationVo(List<RoleTabulationVo> list,String id,String pid){
|
||||||
|
List<BaseFuncTabulation> bfList = new ArrayList<>();
|
||||||
|
List<RoleTabulationVo> pIdVoList = list.stream().filter(r->r.getId().equals(id)&&pid.equals(r.getPid())).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
|
if(pIdVoList!=null&&pIdVoList.size()>0){
|
||||||
|
pIdVoList.forEach(p->{
|
||||||
|
BaseFuncTabulation bf = new BaseFuncTabulation();
|
||||||
|
bf.setId(p.getFuncId());
|
||||||
|
bf.setName(p.getFuncName());
|
||||||
|
bf.setPid(p.getPid());
|
||||||
|
bf.setUrl(p.getUrl());
|
||||||
|
bf.setSort(Integer.valueOf(p.getFuncSort()));
|
||||||
|
|
||||||
|
List<BaseFuncTabulation> bbfList = getRoleTabulationVo(list,id,bf.getId());
|
||||||
|
|
||||||
|
bf.setBaseFuncTabulationList(bbfList);
|
||||||
|
bfList.add(bf);
|
||||||
|
});
|
||||||
|
return bfList;
|
||||||
|
}else{
|
||||||
|
return bfList;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
package com.coscoshipping.ebtp.project.menu.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实体类 BaseRole-角色表
|
||||||
|
*
|
||||||
|
* @author yss
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(value = "BaseRole对象", description = "角色列表表")
|
||||||
|
public class RoleTabulationVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色标识")
|
||||||
|
private String tag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "序号")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单id")
|
||||||
|
private String funcId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单pid")
|
||||||
|
private String pid;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单名称")
|
||||||
|
private String funcName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单路径")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单序号")
|
||||||
|
private String funcSort;
|
||||||
|
}
|
Reference in New Issue
Block a user