Compare commits

...

4 Commits

Author SHA1 Message Date
review512jwy@163.com a331f189dc 新用户楼宇筛选 1 week ago
review512jwy@163.com 5e7ed5b9b0 getOwnMenuTree接口多语言 1 week ago
review512jwy@163.com a227364006 getOverallBoundLevel逻辑完善 1 week ago
review512jwy@163.com 6a85f244d5 getOverallBoundLevel的bug 1 week ago
  1. 2
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/BasicBuildingMapperExt.java
  2. 3
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/LevelMapperExt.java
  3. 11
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/BasicBuildingMapperExt.xml
  4. 12
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/BasicRoleMenuRelationMapperExt.xml
  5. 39
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml
  6. 15
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelMapperExt.xml
  7. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/data/DataSearchParam.java
  8. 6
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java
  9. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java
  10. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java
  11. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java
  12. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java
  13. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataTrendLogServiceImpl.java
  14. 20
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/FavoritedDeviceServiceImpl.java
  15. 8
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/OverviewServiceImpl.java
  16. 5
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/RoleServiceImpl.java

2
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/BasicBuildingMapperExt.java

@ -4,6 +4,7 @@ import com.dongjian.dashboard.back.dao.auto.BasicBuildingMapper;
import com.dongjian.dashboard.back.dto.building.BuildingSearchParams;
import com.dongjian.dashboard.back.vo.building.BuildingPageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -12,4 +13,5 @@ public interface BasicBuildingMapperExt extends BasicBuildingMapper {
List<BuildingPageVO> getListPage(BuildingSearchParams pageSearchParam);
List<Long> getBuildingIdListByCompanyId(@Param("companyIdList") List<Long> companyIdList);
}

3
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/LevelMapperExt.java

@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface LevelMapperExt {
@ -37,6 +38,6 @@ public interface LevelMapperExt {
List<Long> getBoundBuilding(Long userId);
List<BuildingPathDTO> selectBuildingFullPath(@Param("bindBuildingIdList") List<Long> bindBuildingIdList);
List<BuildingPathDTO> selectBuildingFullPath(Map<String, Object> buildingMap);
}

11
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/BasicBuildingMapperExt.xml

@ -35,5 +35,16 @@
order by bbuilding.building_id desc
</select>
<select id="getBuildingIdListByCompanyId" resultType="java.lang.Long">
SELECT
building_id
FROM
basic_building
WHERE flag = 0
AND company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
ORDER BY building_id
</select>
</mapper>

12
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/BasicRoleMenuRelationMapperExt.xml

@ -34,7 +34,17 @@
SELECT
bmenu.`id` AS `menuId`,
bmenu.parent_menu_id AS parentMenuId,
bmenu.menu_name AS title,
<choose>
<when test="languageType == 0">
bmenu.menu_name AS title,
</when>
<when test="languageType == 1">
bmenu.menu_name_en AS title,
</when>
<otherwise>
bmenu.menu_name_jp AS title,
</otherwise>
</choose>
bmenu.dashboard_lowest_node AS dashboardLowestNode
FROM
basic_menu bmenu

39
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml

@ -39,6 +39,15 @@
</sql>
<sql id="deviceDataCommonWhere">
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<if test="bindBuildingIdList != null">
and basic_building.building_id in
<foreach collection="bindBuildingIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="keyword != null and keyword != ''">
and device_info.monitoring_point_name LIKE CONCAT('%',#{keyword},'%')
</if>
@ -112,9 +121,6 @@
<include refid="deviceDataFromAndJoin"/>
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<include refid="deviceDataCommonWhere"/>
</where>
<include refid="drrOrder"/>
@ -131,9 +137,6 @@
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
left join dashboard_device_group_relation ddgr on ddgr.device_info_id = device_info.id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
and ddgr.device_group_id = #{deviceGroupId}
<include refid="deviceDataCommonWhere"/>
</where>
@ -149,9 +152,6 @@
<include refid="deviceDataFromAndJoin"/>
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<include refid="deviceDataCommonWhere"/>
</where>
<include refid="drrOrder"/>
@ -168,9 +168,6 @@
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
left join dashboard_device_group_relation ddgr on ddgr.device_info_id = device_info.id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
and ddgr.device_group_id = #{deviceGroupId}
<include refid="deviceDataCommonWhere"/>
</where>
@ -228,9 +225,6 @@
<include refid="deviceDataFromAndJoin"/>
left join ba_status_statistics bss on bss.device_info_id = device_info.id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<include refid="deviceDataCommonWhere"/>
</where>
<include refid="BaStatusOrder"/>
@ -251,9 +245,6 @@
left join dashboard_device_group_relation ddgr on ddgr.device_info_id = device_info.id
left join ba_status_statistics bss on bss.device_info_id = device_info.id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
and ddgr.device_group_id = #{deviceGroupId}
<include refid="deviceDataCommonWhere"/>
</where>
@ -343,9 +334,6 @@
<where>
and device_info.flag = 0 and basic_monitoring_asset.flag != 1
and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<include refid="deviceDataCommonWhere"/>
<choose>
<when test="searchType == 1">
@ -407,9 +395,6 @@
<where>
and device_info.flag = 0 and basic_monitoring_asset.flag != 1
and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
and ddgr.device_group_id = #{deviceGroupId}
<include refid="deviceDataCommonWhere"/>
<choose>
@ -438,9 +423,6 @@
<include refid="deviceDataFromAndJoin"/>
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
<include refid="deviceDataCommonWhere"/>
</where>
<include refid="drrOrder"/>
@ -457,9 +439,6 @@
left join device_rawdata_realtime drr on drr.device_id = device_info.device_id
left join dashboard_device_group_relation ddgr on ddgr.device_info_id = device_info.id
<where>
<if test="buildingId != null">
and basic_building.building_id = #{buildingId}
</if>
and ddgr.device_group_id = #{deviceGroupId}
<include refid="deviceDataCommonWhere"/>
</where>

15
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelMapperExt.xml

@ -184,7 +184,6 @@
SELECT DISTINCT building_id
FROM (
-- BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -197,7 +196,6 @@
UNION ALL
-- SITE → BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -213,7 +211,6 @@
UNION ALL
-- AREA → SITE → BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -233,7 +230,6 @@
UNION ALL
-- STORE → AREA → SITE → BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -257,7 +253,6 @@
UNION ALL
-- BRANCH → STORE → AREA → SITE → BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -321,11 +316,11 @@
JOIN dashboard_level_branch br ON rbs.branch_id = br.id AND br.flag = 0
WHERE b.building_id IN
<foreach collection="bindBuildingIdList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND b.flag = 0;
WHERE b.flag = 0
AND b.company_id = #{companyId}
<if test="bindBuildingIdList != null">
AND b.building_id IN <foreach collection="bindBuildingIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
</if>
</select>
</mapper>

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/data/DataSearchParam.java

@ -37,4 +37,7 @@ public class DataSearchParam extends BaseSearchParams {
@Schema(description = "关键词",example = "det")
private String keyword;
@Schema(description = "绑定的楼宇ID",example = "[]", hidden = true)
private List<Long> bindBuildingIdList;
}

6
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java

@ -76,6 +76,8 @@ public class CommonOpt {
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private DeviceInfoMapperExt deviceInfoMapperExt;
@Autowired
private BasicBuildingMapperExt basicBuildingMapperExt;
@Autowired
private MsgLanguageChange msgLanguageChange;
@ -254,10 +256,10 @@ public class CommonOpt {
// }
// }
// }
public List<Long> getBindBuildingIdList(Long userId) {
public List<Long> getBindBuildingIdList(Long userId, List<Long> companyIdList) {
Integer levelManager = basicUserMapperExt.checkLevelManager(userId);
if (levelManager > 0) {
return null;//null表示不限制, sql里面判定bindedBuildingList=null的话,就不限制楼宇
return basicBuildingMapperExt.getBuildingIdListByCompanyId(companyIdList);
} else {
List<Long> bindedBuildingList = levelMapperExt.getBoundBuilding(userId);
if (CollectionUtils.isEmpty(bindedBuildingList)) {

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java

@ -75,6 +75,8 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setBindBuildingIdList(commonOpt.getBindBuildingIdList(pageSearchParam.getUserId(), pageSearchParam.getCompanyIdList()));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
return new PageInfo<>(handleDeviceAccumulateData(pageSearchParam));
}

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java

@ -72,6 +72,8 @@ public class DeviceDataAlarmServiceImpl implements DeviceDataAlarmService {
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setBindBuildingIdList(commonOpt.getBindBuildingIdList(pageSearchParam.getUserId(), pageSearchParam.getCompanyIdList()));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
return new PageInfo<>(handleDeviceAlarmData(languageType, pageSearchParam));
}

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java

@ -83,6 +83,8 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setBindBuildingIdList(commonOpt.getBindBuildingIdList(pageSearchParam.getUserId(), pageSearchParam.getCompanyIdList()));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
return new PageInfo<>(handleDeviceBaStatusData(pageSearchParam));
}

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java

@ -86,6 +86,8 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setBindBuildingIdList(commonOpt.getBindBuildingIdList(pageSearchParam.getUserId(), pageSearchParam.getCompanyIdList()));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
return new PageInfo<>(handleDeviceMeasureData(pageSearchParam));
}

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataTrendLogServiceImpl.java

@ -71,6 +71,8 @@ public class DeviceDataTrendLogServiceImpl implements DeviceDataTrendLogService
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setBindBuildingIdList(commonOpt.getBindBuildingIdList(pageSearchParam.getUserId(), pageSearchParam.getCompanyIdList()));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
return new PageInfo<>(handleDeviceAccumulateData(pageSearchParam));
}

20
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/FavoritedDeviceServiceImpl.java

@ -98,10 +98,10 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService {
}
// 查询并构建 deviceId -> Data 映射
Map<String, DeviceAccumulateData> accumulateDataMap = buildAccumulateDataMap(companyId, accumulateDeviceIds);
Map<String, DeviceMeasureData> measureDataMap = buildMeasureDataMap(companyId, measureDeviceIds);
Map<String, DeviceBaStatusData> statusDataMap = buildStatusDataMap(companyId, statusDeviceIds);
Map<String, DeviceAlarmData> alarmDataMap = buildAlarmDataMap(companyId, languageType, alarmDeviceIds);
Map<String, DeviceAccumulateData> accumulateDataMap = buildAccumulateDataMap(userId, companyId, accumulateDeviceIds);
Map<String, DeviceMeasureData> measureDataMap = buildMeasureDataMap(userId, companyId, measureDeviceIds);
Map<String, DeviceBaStatusData> statusDataMap = buildStatusDataMap(userId, companyId, statusDeviceIds);
Map<String, DeviceAlarmData> alarmDataMap = buildAlarmDataMap(userId, companyId, languageType, alarmDeviceIds);
// 按收藏顺序生成结果
for (FavoritedDeviceVO vo : favoritedDeviceVOList) {
@ -139,43 +139,47 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService {
return resultPageInfo;
}
private Map<String, DeviceAlarmData> buildAlarmDataMap(Long companyId, Integer languageType, List<String> deviceIds) {
private Map<String, DeviceAlarmData> buildAlarmDataMap(Long userId, Long companyId, Integer languageType, List<String> deviceIds) {
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap();
AlarmDataSearchParam param = new AlarmDataSearchParam();
param.setDeviceIdList(deviceIds);
param.setCompanyIdList(List.of(companyId));
param.setSearchType(4);
param.setBindBuildingIdList(commonOpt.getBindBuildingIdList(userId, param.getCompanyIdList()));
return deviceDataAlarmService.handleDeviceAlarmData(languageType, param).stream()
.collect(Collectors.toMap(DeviceAlarmData::getDeviceId, Function.identity(), (existing, replacement) -> replacement));
}
private Map<String, DeviceAccumulateData> buildAccumulateDataMap(Long companyId, List<String> deviceIds) {
private Map<String, DeviceAccumulateData> buildAccumulateDataMap(Long userId, Long companyId, List<String> deviceIds) {
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap();
AccumulateDataSearchParam param = new AccumulateDataSearchParam();
param.setDeviceIdList(deviceIds);
param.setCompanyIdList(List.of(companyId));
param.setBindBuildingIdList(commonOpt.getBindBuildingIdList(userId, param.getCompanyIdList()));
return deviceDataAccumulateService.handleDeviceAccumulateData(param).stream()
.collect(Collectors.toMap(DeviceAccumulateData::getDeviceId, Function.identity(), (existing, replacement) -> replacement));
}
private Map<String, DeviceMeasureData> buildMeasureDataMap(Long companyId, List<String> deviceIds) {
private Map<String, DeviceMeasureData> buildMeasureDataMap(Long userId, Long companyId, List<String> deviceIds) {
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap();
MeasureDataSearchParam param = new MeasureDataSearchParam();
param.setDeviceIdList(deviceIds);
param.setCompanyIdList(List.of(companyId));
param.setBindBuildingIdList(commonOpt.getBindBuildingIdList(userId, param.getCompanyIdList()));
return deviceDataMeasureService.handleDeviceMeasureData(param).stream()
.collect(Collectors.toMap(DeviceMeasureData::getDeviceId, Function.identity(), (existing, replacement) -> replacement));
}
private Map<String, DeviceBaStatusData> buildStatusDataMap(Long companyId, List<String> deviceIds) {
private Map<String, DeviceBaStatusData> buildStatusDataMap(Long userId, Long companyId, List<String> deviceIds) {
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap();
BaStatusDataSearchParam param = new BaStatusDataSearchParam();
param.setDeviceIdList(deviceIds);
param.setCompanyIdList(List.of(companyId));
param.setBindBuildingIdList(commonOpt.getBindBuildingIdList(userId, param.getCompanyIdList()));
return deviceDataBaStatusService.handleDeviceBaStatusData(param).stream()
.collect(Collectors.toMap(DeviceBaStatusData::getDeviceId, Function.identity(), (existing, replacement) -> replacement));
}

8
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/OverviewServiceImpl.java

@ -68,7 +68,7 @@ public class OverviewServiceImpl implements OverviewService {
public SimpleDataResponse<List<OverviewVO>> getOverviewInfo(Long userId, Long companyId, Integer languageType, Integer utcOffset) {
Map<String, Object> buildingMap = new HashMap<>();
buildingMap.put("companyId", companyId);
buildingMap.put("bindBuildingIdList", commonOpt.getBindBuildingIdList(userId));
buildingMap.put("bindBuildingIdList", commonOpt.getBindBuildingIdList(userId, List.of(companyId)));
List<OverviewVO> buildingInfoList = overviewInfoMapperExt.getBuildingInfo(buildingMap);
@ -274,8 +274,10 @@ public class OverviewServiceImpl implements OverviewService {
@Override
public SimpleDataResponse<List<TreeMenusDTO>> getOverallBoundLevel(Long companyId, Long userId, Integer languageType) {
List<Long> bindBuildingIdList = commonOpt.getBindBuildingIdList(userId);
List<BuildingPathDTO> selectBuildingFullPath = levelMapperExt.selectBuildingFullPath(bindBuildingIdList);
Map<String, Object> buildingMap = new HashMap<>();
buildingMap.put("companyId", companyId);
buildingMap.put("bindBuildingIdList", commonOpt.getBindBuildingIdList(userId, List.of(companyId)));
List<BuildingPathDTO> selectBuildingFullPath = levelMapperExt.selectBuildingFullPath(buildingMap);
// 构建节点
Map<String, TreeMenusDTO> nodeMap = new HashMap<>();

5
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/RoleServiceImpl.java

@ -333,8 +333,10 @@ public class RoleServiceImpl implements RoleService {
));
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("languageType", languageType);
// 查询全量菜单
List<DashboardTreeMenusDTO> allMenus = basicRoleMenuRelationMapperExt.selectAllMenu(Collections.emptyMap());
List<DashboardTreeMenusDTO> allMenus = basicRoleMenuRelationMapperExt.selectAllMenu(paramMap);
Map<Long, DashboardTreeMenusDTO> fullMenuMap = allMenus.stream()
.collect(Collectors.toMap(DashboardTreeMenusDTO::getMenuId, m -> m));
@ -345,7 +347,6 @@ public class RoleServiceImpl implements RoleService {
visibleMenus = new ArrayList<>(allMenus);
} else {
Long roleId = basicRoleMenuRelationMapperExt.getRoleIdByUserId(userId);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("superRole", superRole);
paramMap.put("roleId", roleId);
visibleMenus = basicRoleMenuRelationMapperExt.selectAllMenu(paramMap);

Loading…
Cancel
Save