登陆代码迁移

This commit is contained in:
houjishuang
2025-06-11 16:46:08 +08:00
parent 0bebd971ef
commit 6129a283ad
8 changed files with 226 additions and 2 deletions

View File

@ -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));
}
}

View File

@ -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);
}

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
}
}
}

View File

@ -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;
}