登陆代码迁移
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.common.base.controller.BaseController;
|
||||
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.service.ISysMenuService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -126,4 +127,9 @@ public class SysMenuController extends BaseController
|
||||
}
|
||||
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;
|
||||
|
||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||
import com.coscoshipping.ebtp.project.menu.vo.RoleTabulationVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@ -122,4 +123,6 @@ public interface SysMenuMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
||||
|
||||
List<RoleTabulationVo> getBaseRoleTabulation(String userId);
|
||||
}
|
||||
|
@ -131,6 +131,29 @@
|
||||
<include refid="selectMenuVo"/>
|
||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||
</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 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;
|
||||
|
||||
|
||||
import com.coscoshipping.ebtp.project.menu.dto.BaseRoleTabulation;
|
||||
import com.coscoshipping.ebtp.project.menu.entity.SysMenu;
|
||||
import com.coscoshipping.ebtp.project.menu.entity.TreeSelect;
|
||||
|
||||
@ -145,4 +146,6 @@ public interface ISysMenuService
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean checkMenuNameUnique(SysMenu menu);
|
||||
|
||||
List<BaseRoleTabulation> getBaseRoleTabulation(String userId);
|
||||
}
|
||||
|
@ -1,9 +1,13 @@
|
||||
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.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.TreeSelect;
|
||||
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.SysRoleMenuMapper;
|
||||
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, ".", ":" },
|
||||
// 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