jingyuanchao 2 жил өмнө
parent
commit
8316a63fe2
18 өөрчлөгдсөн 107 нэмэгдсэн , 30 устгасан
  1. 4 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteRoleService.java
  2. 6 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteRoleFallbackFactory.java
  3. 1 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ErrorMsgConstants.java
  4. 3 2
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/adapter/PanelAdapter.java
  5. 8 4
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java
  6. 3 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/vo/PanelListVo.java
  7. 5 2
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/vo/PanelResultVo.java
  8. 43 7
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java
  9. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IProtectionService.java
  10. 7 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ProtectionServiceImpl.java
  11. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml
  12. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml
  13. 2 2
      soc-modules/soc-modules-core/src/main/resources/mapper/resumption/ResumptionMapper.xml
  14. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml
  15. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafetyTaskMapper.xml
  16. 7 8
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserRoleController.java
  17. 2 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserRoleService.java
  18. 8 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserRoleServiceImpl.java

+ 4 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteRoleService.java

@@ -31,4 +31,8 @@ public interface RemoteRoleService {
 
     @GetMapping("/role/selectUserByRoleNameAndOrgId")
     List<SysUser> selectUserByRoleNameAndOrgId(@RequestParam(value = "roleName") String roleName, @RequestParam(value = "orgId") Long orgId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @GetMapping("/userRole/getUserRoleId")
+    List<Long> getUserRoleId(@RequestParam(value = "userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
 }

+ 6 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteRoleFallbackFactory.java

@@ -26,7 +26,7 @@ public class RemoteRoleFallbackFactory implements FallbackFactory<RemoteRoleServ
 
     @Override
     public RemoteRoleService create(Throwable cause) {
-        log.error("用户服务调用失败:{}", cause.getMessage());
+        log.error("用户角色服务调用失败:{}", cause.getMessage());
         return new RemoteRoleService() {
             @Override
             public SysRole getRoleById(Long id, String source) {
@@ -47,6 +47,11 @@ public class RemoteRoleFallbackFactory implements FallbackFactory<RemoteRoleServ
             public List<SysUser> selectUserByRoleNameAndOrgId(String roleName, Long orgId, String inner) {
                 return null;
             }
+
+            @Override
+            public List<Long> getUserRoleId(Long userId, String source) {
+                return null;
+            }
         };
 
     }

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ErrorMsgConstants.java

@@ -15,6 +15,7 @@ public class ErrorMsgConstants {
 
     public static final String CUR_USER_ORT_TYPE_ERROR = "当前用户所在机构类型无法确认!";
     public static final String QUERY_USER_DATA_ERROR = "获取用户信息失败!";
+    public static final String QUERY_USER_ROLE_ERROR = "获取当前用户角色信息失败!";
     public static final String QUERY_SYS_CONFIG_ERROR = "获取参数配置信息失败!";
     public static final String QUERY_CONFIG_ERROR = "获取系统参数配置失败!";
 }

+ 3 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/adapter/PanelAdapter.java

@@ -4,17 +4,18 @@ import cn.hutool.core.date.DateUtil;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Set;
 
 public class PanelAdapter {
 
-    public static PanelListDto getMapperSelectParam(Long orgId,Set<String> roleIdList, Long userId) {
+    public static PanelListDto getMapperSelectParam(Long orgId, List<Long> roleIdList, Long userId) {
         PanelListDto panelListDto = new PanelListDto();
         panelListDto.setUserId(userId);
         panelListDto.setOrgId(orgId);
         panelListDto.setStartTime(DateUtil.beginOfDay(new Date()));
         panelListDto.setEndTime(DateUtil.endOfDay(new Date()));
-        panelListDto.setRoleIdList(roleIdList.stream().map(Long::valueOf).collect(java.util.stream.Collectors.toList()));
+        panelListDto.setRoleIdList(roleIdList);
         return panelListDto;
     }
 }

+ 8 - 4
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java

@@ -13,15 +13,19 @@ public enum PanelTypeEnums {
 
     RESUMPTION(0, "履职任务"),
 
-    MONITORING_RETRIEVAL(1, "监控调阅"),
+    PROTECTION(1, "布撤防"),
 
     SAFETY_CHECK(2, "安全检查"),
 
-    DRILL(3, "预案演练"),
+    MONITORING_RETRIEVAL(3, "监控调阅"),
 
-    EDU_TRAINING(4, "教育培训"),
 
-    OTHER(5, "其他任务"),
+
+    DRILL(4, "预案演练"),
+
+    EDU_TRAINING(5, "教育培训"),
+
+    OTHER(6, "其他任务"),
 
 
     ;

+ 3 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/vo/PanelListVo.java

@@ -1,5 +1,6 @@
 package com.xunmei.common.core.domain.panel.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -15,9 +16,11 @@ public class PanelListVo {
     @ApiModelProperty(value = "面板功能名称")
     private String taskName;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "开始时间")
     private Date startTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "开始时间")
     private Date endTime;
 

+ 5 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/vo/PanelResultVo.java

@@ -1,6 +1,7 @@
 package com.xunmei.common.core.domain.panel.vo;
 
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.List;
@@ -8,13 +9,15 @@ import java.util.List;
 @Data
 public class PanelResultVo {
 
+    @ApiModelProperty(value = "任务类型")
     private int taskType;
 
-
+    @ApiModelProperty(value = "任务类型名称")
     private String taskTypeText;
 
-
+    @ApiModelProperty(value = "任务数量")
     private int nums;
 
+    @ApiModelProperty(value = "任务信息")
     private List<PanelListVo> dataList;
 }

+ 43 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -2,18 +2,27 @@ package com.xunmei.core.panel.service.impl;
 
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.common.core.constant.ErrorMsgConstants;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.panel.adapter.PanelAdapter;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.panel.vo.PanelResultVo;
+import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.drill.service.ICoreDrillTaskService;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.panel.service.PanelService;
+import com.xunmei.core.resumption.service.IProtectionService;
 import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
+import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
+import com.xunmei.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -39,11 +48,20 @@ public class PanelServiceImpl implements PanelService {
     @Autowired
     private ICoreEduTrainingTaskService eduTrainingTaskService;
 
+    @Autowired
+    private RemoteRoleService roleService;
+    @Autowired
+    private IProtectionService protectionService;
+
     @Override
     public  List<PanelResultVo> selectPage() {
+
+        List<Long> roles = RemoteCallHandlerExecutor.executeRemoteCall(
+                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.FROM_SOURCE),
+                ErrorMsgConstants.QUERY_USER_ROLE_ERROR);
+
         PanelListDto panelListDto = PanelAdapter.getMapperSelectParam(SecurityUtils.getLoginUser().getOrgId(),
-                SecurityUtils.getLoginUser().getRoles(),
-                SecurityUtils.getUserId());
+                roles,SecurityUtils.getUserId());
 
         List<PanelListVo> resultList = Collections.synchronizedList(new ArrayList<>(6));
 
@@ -52,6 +70,7 @@ public class PanelServiceImpl implements PanelService {
             return resumptionService.selectCurUserTaskList(panelListDto);
         }).whenComplete((resumptionTaskList, throwable) -> {
             if (ObjectUtil.isNotEmpty(resumptionTaskList)) {
+                resumptionTaskList.forEach(vo->vo.setType(PanelTypeEnums.RESUMPTION.getCode()));
                 resultList.addAll(resumptionTaskList);
             }
             if (throwable != null) {
@@ -59,11 +78,25 @@ public class PanelServiceImpl implements PanelService {
             }
         });
 
+        //布撤防
+        CompletableFuture<List<PanelListVo>> protectionTaskFuture = CompletableFuture.supplyAsync(() -> {
+            return protectionService.selectCurUserTaskList(panelListDto);
+        }).whenComplete((protectionTaskList, throwable) -> {
+            if (ObjectUtil.isNotEmpty(protectionTaskList)) {
+                protectionTaskList.forEach(vo->vo.setType(PanelTypeEnums.PROTECTION.getCode()));
+                resultList.addAll(protectionTaskList);
+            }
+            if (throwable != null) {
+                log.error("protectionTaskFuture Exception error.", throwable);
+            }
+        });
+
         //监控调阅任务
         CompletableFuture<List<PanelListVo>> monitorTaskFuture = CompletableFuture.supplyAsync(() -> {
             return coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto);
         }).whenComplete((monitorTaskList, throwable) -> {
             if (ObjectUtil.isNotEmpty(monitorTaskList)) {
+                monitorTaskList.forEach(vo->vo.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode()));
                 resultList.addAll(monitorTaskList);
             }
             if (throwable != null) {
@@ -76,6 +109,7 @@ public class PanelServiceImpl implements PanelService {
             return safetyTaskService.selectCurUserTaskList(panelListDto);
         }).whenComplete((safetyTaskList, throwable) -> {
             if (ObjectUtil.isNotEmpty(safetyTaskList)) {
+                safetyTaskList.forEach(vo->vo.setType(PanelTypeEnums.SAFETY_CHECK.getCode()));
                 resultList.addAll(safetyTaskList);
             }
             if (throwable != null) {
@@ -89,6 +123,7 @@ public class PanelServiceImpl implements PanelService {
             return drillTaskService.selectCurUserTaskList(panelListDto);
         }).whenComplete((drillTaskList, throwable) -> {
             if (ObjectUtil.isNotEmpty(drillTaskList)) {
+                drillTaskList.forEach(vo->vo.setType(PanelTypeEnums.DRILL.getCode()));
                 resultList.addAll(drillTaskList);
             }
             if (throwable != null) {
@@ -99,9 +134,10 @@ public class PanelServiceImpl implements PanelService {
         //教育培训任务
         CompletableFuture<List<PanelListVo>> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() -> {
             return eduTrainingTaskService.selectCurUserTaskList(panelListDto);
-        }).whenComplete((duTrainingTaskList, throwable) -> {
-            if (ObjectUtil.isNotEmpty(duTrainingTaskList)) {
-                resultList.addAll(duTrainingTaskList);
+        }).whenComplete((eduTrainingTaskList, throwable) -> {
+            if (ObjectUtil.isNotEmpty(eduTrainingTaskList)) {
+                eduTrainingTaskList.forEach(vo->vo.setType(PanelTypeEnums.EDU_TRAINING.getCode()));
+                resultList.addAll(eduTrainingTaskList);
             }
             if (throwable != null) {
                 log.error("eduTrainingTaskFuture Exception error.", throwable);
@@ -110,6 +146,7 @@ public class PanelServiceImpl implements PanelService {
 
         List<CompletableFuture<List<PanelListVo>>> futureList = ListUtil.list(true,
                 resumptionTaskFuture,
+                protectionTaskFuture,
                 monitorTaskFuture,
                 safetyTaskFuture,
                 drillTaskFuture,
@@ -123,8 +160,7 @@ public class PanelServiceImpl implements PanelService {
             log.error("CompletableFuture.allOf Exception error.", e);
         }
 
-       // Map<Integer, List<PanelListVo>> listMap = resultList.stream().collect(Collectors.groupingBy(PanelListVo::getType));
-        //将 resultList根据type字段分组,并排序
+        //将resultList根据type字段分组,并排序
         Map<Integer, List<PanelListVo>> listMap = resultList.stream().sorted(Comparator.comparing(PanelListVo::getType)).collect(Collectors.groupingBy(PanelListVo::getType));
         List<PanelResultVo> list = new ArrayList<PanelResultVo>();
         for (Integer type : listMap.keySet()) {

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IProtectionService.java

@@ -2,6 +2,8 @@ package com.xunmei.core.resumption.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.panel.dto.PanelListDto;
+import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.resumption.domain.Protection;
 import com.xunmei.core.resumption.dto.protection.ProtectionEditDto;
@@ -37,6 +39,8 @@ public interface IProtectionService extends IService<Protection> {
     Date updateStatus(Long protectionId, String status);
 
     List<Protection> findNotAllHour(Long orgId);
+
+    List<PanelListVo> selectCurUserTaskList(PanelListDto panelListDto);
 //    MePage<pageSensorVo> pageSensorList(pageSensorDto request);
 
 //    MePage<ProtectionPageVo4Mybatis> pageByMybatis(ProtectionPageDto4Mybatis request);

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ProtectionServiceImpl.java

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.panel.dto.PanelListDto;
+import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.resumption.domain.Protection;
@@ -159,5 +161,10 @@ public class ProtectionServiceImpl extends ServiceImpl<ProtectionMapper, Protect
                 .eq(Protection::getAllHour, 0));
         return list;
     }
+
+    @Override
+    public List<PanelListVo> selectCurUserTaskList(PanelListDto panelListDto) {
+        return null;
+    }
 }
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml

@@ -279,7 +279,7 @@
     </update>
 
     <select id="selectCurUserTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
-        select 4 as type,title as taskName,t.start_date startTime,t.end_date as endTime
+        select  title as taskName,t.start_date startTime,t.end_date as endTime
         from core_drill_task t inner join core_drill_task_to_role tr  on t.id=tr.drill_task_id
         where t.org_id =#{request.orgId} and  tr.role_id in
         <foreach collection="request.roleIdList" item="roleId" open="(" separator="," close=")">

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml

@@ -190,7 +190,7 @@
     </update>
 
     <select id="selectCurUserTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
-        select 5 as type,title as taskName,t.start_date startTime,t.end_date as endTime
+        select title as taskName,t.start_date startTime,t.end_date as endTime
         from core_edu_training_task t inner join core_edu_training_task_to_role tr on t.id=tr.role_id
         where t.org_id =#{request.orgId} and  tr.role_id in
         <foreach collection="request.roleIdList" item="roleId" open="(" separator="," close=")">

+ 2 - 2
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/ResumptionMapper.xml

@@ -198,7 +198,7 @@
 
     <select id="selectCurUserTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
 
-        select 1 as type,name as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
+        select name as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
         from core_resumption t where t.org_id =#{request.orgId} and  t.role_id in
         <foreach collection="request.roleIdList" item="roleId" open="(" separator="," close=")">
             #{roleId}
@@ -214,6 +214,6 @@
         or (
             #{request.startTime} >= t.plan_start_time
         and #{request.endTime}  <![CDATA[<=]]>  t.plan_end_time
-        ))                                                )
+        ))
     </select>
 </mapper>

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -425,7 +425,7 @@
     </update>
 
     <select id="selectCurUserTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
-     select 2 as type,task_name as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
+     select  task_name as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
         from core_monitoring_retrieval_task t where t.org_id =#{request.orgId} and  t.role_id in
          <foreach collection="request.roleIdList" item="roleId" open="(" separator="," close=")">
             #{roleId}

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafetyTaskMapper.xml

@@ -733,7 +733,7 @@
     </select>
 
     <select id="selectCurUserTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
-        select 3 as type,title as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
+        select title as taskName,t.plan_start_time as startTime,t.plan_end_time as endTime
         from core_safety_task t where t.org_id =#{request.orgId} and  t.role_id in
         <foreach collection="request.roleIdList" item="roleId" open="(" separator="," close=")">
             #{roleId}

+ 7 - 8
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserRoleController.java

@@ -5,14 +5,7 @@ import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
 import com.xunmei.common.security.annotation.RequiresPermissions;
@@ -92,4 +85,10 @@ public class SysUserRoleController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] userIds) {
         return toAjax(sysUserRoleService.deleteSysUserRoleByUserIds(userIds));
     }
+
+
+    @GetMapping("/getUserRoleId")
+    List<Long> getUserRoleId(@RequestParam(value = "userId") Long userId) {
+        return sysUserRoleService.getUserRoleId(userId);
+    }
 }

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserRoleService.java

@@ -77,4 +77,6 @@ public interface ISysUserRoleService extends IService<SysUserRole> {
     TableDataInfo<SysUserRole> selectPage(SysUserRole sysUserRole);
 
     List<UserRoleVo> selectUserRoleVoList(Long userId);
+
+    List<Long> getUserRoleId(Long userId);
 }

+ 8 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserRoleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xunmei.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -115,4 +116,11 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
     public int deleteSysUserRoleByUserId(Long userId) {
         return sysUserRoleMapper.deleteUserRoleByUserId(userId);
     }
+
+    @Override
+    public List<Long> getUserRoleId(Long userId) {
+        List<SysUserRole> selectList = sysUserRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>()
+                .eq(SysUserRole::getUserId, userId));
+        return selectList.stream().map(SysUserRole::getRoleId).collect(java.util.stream.Collectors.toList());
+    }
 }