Commit c48256dc3a61aae0adb0cb3df9158ce610b78a5a

Authored by 王富生
1 parent e86c4eda

app巡查汇总查询提交

urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanController.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.app.inspectionplan;
  2 +
  3 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  4 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  5 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRespVO;
  6 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanPageReqVO;
  7 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanRespVO;
  8 +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanService;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +import io.swagger.v3.oas.annotations.tags.Tag;
  11 +import jakarta.annotation.Resource;
  12 +import jakarta.validation.Valid;
  13 +import lombok.extern.slf4j.Slf4j;
  14 +import org.springframework.security.access.prepost.PreAuthorize;
  15 +import org.springframework.validation.annotation.Validated;
  16 +import org.springframework.web.bind.annotation.*;
  17 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  18 +
  19 +@Tag(name = "App管理 - 巡检计划汇总")
  20 +@RestController
  21 +@RequestMapping("/app/garden/inspection-plan")
  22 +@Validated
  23 +@Slf4j
  24 +public class AppInspectionPlanController {
  25 +
  26 + @Resource
  27 + private InspectionPlanService inspectionPlanService;
  28 +
  29 +
  30 + @GetMapping("/page")
  31 + @Operation(summary = "app-巡检计划汇总分页")
  32 + @PreAuthorize("@ss.hasPermission('app:garden:inspection-plan:query')")
  33 + public CommonResult<PageResult<AppInspectionPlanRespVO>> getInspectionPlanAppPage(@Valid AppInspectionPlanPageReqVO pageReqVO) {
  34 + PageResult<AppInspectionPlanRespVO> pageResult = inspectionPlanService.getInspectionPlanAppPage(pageReqVO);
  35 + return success(pageResult);
  36 + }
  37 +
  38 +}
0 39 \ No newline at end of file
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanDetailController.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.app.inspectionplan;
  2 +
  3 +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanDetailService;
  4 +import io.swagger.v3.oas.annotations.tags.Tag;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +
  10 +
  11 +@Tag(name = "APP管理 - 巡检计划")
  12 +@RestController
  13 +@RequestMapping("/app/garden/inspection-plan-detail")
  14 +@Validated
  15 +public class AppInspectionPlanDetailController {
  16 +
  17 + @Resource
  18 + private InspectionPlanDetailService inspectionPlanDetailService;
  19 +
  20 +
  21 +
  22 +}
0 23 \ No newline at end of file
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo;
  2 +
  3 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import jakarta.validation.constraints.Max;
  6 +import jakarta.validation.constraints.Min;
  7 +import jakarta.validation.constraints.NotNull;
  8 +import lombok.Data;
  9 +
  10 +import java.time.LocalDate;
  11 +import java.util.List;
  12 +
  13 +@Schema(description = "App管理 - 巡检计划汇总新增/修改 Request VO")
  14 +@Data
  15 +public class AppInspectionPlanPageReqVO extends PageParam {
  16 +
  17 + @Schema(description = "道路名称", example = "赵六")
  18 + private String roadName;
  19 +
  20 + @Schema(description = "状态 1:未完成;3:已完成;4:已失效")
  21 + @NotNull
  22 + @Min(value = 1, message = "状态最小为1")
  23 + @Max(value = 4, message = "状态不能大于4")
  24 + private Integer finishState;
  25 +
  26 + @Schema(description = "公司ID")
  27 + private Long companyId;
  28 +
  29 + @Schema(description = "角色IDS")
  30 + private List<Long> roleIds;
  31 +
  32 + @Schema(description = "业务线")
  33 + private List<String> busiLineList;
  34 +
  35 + @Schema(description = "系统时间")
  36 + private LocalDate localDate;
  37 +}
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo;
  2 +
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +
  8 +import java.time.LocalDateTime;
  9 +
  10 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
  11 +
  12 +@Schema(description = "App管理 - 巡检计划 Response VO")
  13 +@Data
  14 +@ExcelIgnoreUnannotated
  15 +public class AppInspectionPlanRespVO {
  16 +
  17 +
  18 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704")
  19 + private Long roadId;
  20 +
  21 + @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704")
  22 + private Long roadName;
  23 +
  24 + @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8439")
  25 + private String streetId;
  26 +
  27 + @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  28 + private String streetName;
  29 +
  30 + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "8588")
  31 + private Integer levelId;
  32 +
  33 + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742")
  34 + private Integer planTypeId;
  35 +
  36 + @Schema(description = "执行开始时间")
  37 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
  38 + private LocalDateTime beginTime;
  39 +
  40 + @Schema(description = "执行时间")
  41 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
  42 + private LocalDateTime endTime;
  43 +
  44 + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED)
  45 + private Integer finishState;
  46 +
  47 +}
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanMapper.java
1 1 package com.zteits.urbanops.module.garden.dal.mysql.inspectionplan;
2 2  
3 3  
  4 +import com.baomidou.mybatisplus.core.metadata.IPage;
4 5 import com.zteits.urbanops.framework.common.pojo.PageResult;
5 6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
6 7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanPageReqVO;
  9 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanRespVO;
7 10 import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
8 11 import org.apache.ibatis.annotations.Mapper;
9 12 import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
... ... @@ -33,4 +36,14 @@ public interface InspectionPlanMapper extends BaseMapperX&lt;InspectionPlanDO&gt; {
33 36  
34 37 int deleteByBatchNo(@Param("batchNo") String batchNo);
35 38  
  39 + /**
  40 + * 获取巡检计划列表-app
  41 + *
  42 + * @param page
  43 + * @param req
  44 + * @return 列表
  45 + */
  46 + IPage<AppInspectionPlanRespVO> getInspectionPlanAppPage(@Param("page") IPage<AppInspectionPlanRespVO> page, @Param("req") AppInspectionPlanPageReqVO req);
  47 +
  48 +
36 49 }
37 50 \ No newline at end of file
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java
... ... @@ -3,6 +3,8 @@ package com.zteits.urbanops.module.garden.service.inspectionplan;
3 3 import java.util.*;
4 4  
5 5 import com.zteits.urbanops.framework.common.pojo.CommonResult;
  6 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanPageReqVO;
  7 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanRespVO;
6 8 import jakarta.validation.*;
7 9 import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
8 10 import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
... ... @@ -72,4 +74,11 @@ public interface InspectionPlanService {
72 74 */
73 75 void stopPlanInspectionPlan(String batchNo);
74 76  
  77 + /**
  78 + * app-获取巡检计划列表
  79 + * @param pageReqVO 分页查询
  80 + * @return 巡检计划列表
  81 + */
  82 + PageResult<AppInspectionPlanRespVO> getInspectionPlanAppPage(AppInspectionPlanPageReqVO pageReqVO);
  83 +
75 84 }
76 85 \ No newline at end of file
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java
... ... @@ -3,14 +3,25 @@ package com.zteits.urbanops.module.garden.service.inspectionplan;
3 3 import cn.hutool.core.thread.ThreadUtil;
4 4 import cn.hutool.core.util.RandomUtil;
5 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6 +import com.baomidou.mybatisplus.core.metadata.IPage;
6 7 import com.zteits.urbanops.framework.common.pojo.CommonResult;
  8 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  9 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
7 10 import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils;
  11 +import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils;
8 12 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
  13 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  14 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanPageReqVO;
  15 +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanRespVO;
  16 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
9 17 import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
10 18 import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  19 +import com.zteits.urbanops.module.garden.dal.dataobject.road.RoadDO;
11 20 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper;
12 21 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanInterceptMapper;
  22 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanMapper;
13 23 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper;
  24 +import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper;
14 25 import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
15 26 import com.zteits.urbanops.module.garden.enums.PlanConstants;
16 27 import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult;
... ... @@ -19,10 +30,11 @@ import com.zteits.urbanops.module.system.api.dept.DeptApi;
19 30 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
20 31 import com.zteits.urbanops.module.system.api.permission.RoleApi;
21 32 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO;
  33 +import jakarta.annotation.Resource;
22 34 import jodd.util.StringUtil;
23 35 import lombok.extern.slf4j.Slf4j;
  36 +import org.apache.commons.lang3.StringUtils;
24 37 import org.springframework.stereotype.Service;
25   -import jakarta.annotation.Resource;
26 38 import org.springframework.transaction.annotation.Transactional;
27 39 import org.springframework.util.CollectionUtils;
28 40 import org.springframework.validation.annotation.Validated;
... ... @@ -32,13 +44,6 @@ import java.time.format.DateTimeFormatter;
32 44 import java.util.*;
33 45 import java.util.stream.Collectors;
34 46  
35   -import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
36   -import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
37   -import com.zteits.urbanops.framework.common.pojo.PageResult;
38   -import com.zteits.urbanops.framework.common.util.object.BeanUtils;
39   -
40   -import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanMapper;
41   -
42 47 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
43 48 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
44 49  
... ... @@ -65,11 +70,18 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
65 70 private InspectionPlanRoleMapper inspectionPlanRoleMapper;
66 71  
67 72 @Resource
  73 + private RoadMapper roadMapper;
  74 +
  75 +
  76 + @Resource
68 77 private DeptApi deptApi;
69 78  
70 79 @Resource
71 80 private RoleApi roleApi;
72 81  
  82 + @Resource
  83 + private RoleApi poleApi;
  84 +
73 85 @Transactional(rollbackFor = Exception.class)
74 86 @Override
75 87 public CommonResult<Integer> createInspectionPlan(InspectionPlanSaveReqVO createReqVO) {
... ... @@ -310,4 +322,44 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
310 322 inspectionPlanRoleMapper.delete(InspectionPlanRoleDO::getBatchNo, batchNo);
311 323 }
312 324  
  325 + @Override
  326 + public PageResult<AppInspectionPlanRespVO> getInspectionPlanAppPage(AppInspectionPlanPageReqVO pageReqVO) {
  327 + String busiLine = SecurityFrameworkUtils.getBusiLine();
  328 + Long companyId = SecurityFrameworkUtils.getCompanyId();
  329 + if (StringUtils.isNotEmpty(busiLine)) {
  330 + pageReqVO.setBusiLineList(Arrays.asList(busiLine.split(",")));
  331 + }
  332 + pageReqVO.setCompanyId(companyId);
  333 +
  334 + /*1.查询登录用户角色*/
  335 + List<Long> roleIds = poleApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId());
  336 + pageReqVO.setRoleIds(roleIds);
  337 + /*2.分页*/
  338 + IPage<AppInspectionPlanRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO);
  339 + IPage<AppInspectionPlanRespVO> page = inspectionPlanMapper.getInspectionPlanAppPage(mpPage, pageReqVO);
  340 + addStreetInfo(page.getRecords());
  341 + // 转换返回
  342 + return new PageResult<>(page.getRecords(), page.getTotal());
  343 + }
  344 +
  345 + private void addStreetInfo(List<AppInspectionPlanRespVO> list){
  346 + if(CollectionUtils.isEmpty(list)){
  347 + return ;
  348 + }
  349 + Set<Long> roadIds = list.stream().map(AppInspectionPlanRespVO::getRoadId).collect(Collectors.toSet());
  350 +
  351 +
  352 + List<RoadDO> roadList = roadMapper.selectList(new QueryWrapper<RoadDO>().lambda().in(RoadDO::getId, roadIds));
  353 + //list转map
  354 + Map<Long, RoadDO> roadMap = roadList.stream().collect(Collectors.toMap(RoadDO::getId, road -> road));
  355 +
  356 + list.forEach(plan -> {
  357 + RoadDO road = roadMap.get(plan.getRoadId());
  358 + if(road != null){
  359 + plan.setStreetId(road.getStreetId());
  360 + plan.setStreetName(road.getStreetName());
  361 + }
  362 + });
  363 + }
  364 +
313 365 }
314 366 \ No newline at end of file
... ...
urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanMapper.xml
... ... @@ -13,4 +13,48 @@
13 13 delete from garden_inspection_plan where batch_no =#{batchNo}
14 14 </delete>
15 15  
  16 + <select id="getInspectionPlanAppPage" resultType="com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanRespVO">
  17 + SELECT
  18 + a.road_id,
  19 + a.road_name,
  20 + a.plan_type_id,
  21 + a.level_id,
  22 + a.begin_time,
  23 + a.end_time
  24 + FROM
  25 + garden_inspection_plan a,
  26 + garden_inspection_plan_role b
  27 + WHERE
  28 + a.batch_no = b.batch_no
  29 + AND a.company_id = #{req.companyId}
  30 + <if test="req.roadName != null and req.roadName !=''">
  31 + AND a.road_name LIKE CONCAT('%',#{req.roadName},'%')
  32 + </if>
  33 + <if test="req.roleIds != null and req.roleIds.size() > 0">
  34 + AND b.role_id IN
  35 + <foreach collection="req.roleIds" item="roleId" open="(" separator="," close=")">
  36 + #{roleId}
  37 + </foreach>
  38 + </if>
  39 + <if test="req.busiLineList != null and req.busiLineList.size() > 0">
  40 + AND a.busi_line IN
  41 + <foreach collection="req.busiLineList" item="busiLine" open="(" separator="," close=")">
  42 + #{busiLine}
  43 + </foreach>
  44 + </if>
  45 + <!--状态 1:未完成;3:已完成;4:已失效-->
  46 + <if test="req.finishState == 4">
  47 + <![CDATA[and a.end_time < #{req.localDate}]]>
  48 + </if>
  49 + <if test="req.finishState == 3 or req.finishState == 1">
  50 + and a.finish_state = #{req.finishState}
  51 + </if>
  52 + GROUP BY
  53 + a.road_id,
  54 + a.road_name,
  55 + a.plan_type_id,
  56 + a.level_id,
  57 + a.begin_time,
  58 + a.end_time
  59 + </select>
16 60 </mapper>
17 61 \ No newline at end of file
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/api/permission/RoleApi.java
... ... @@ -36,4 +36,12 @@ public interface RoleApi {
36 36 * @return
37 37 */
38 38 List<RoleRespVO> getRoleListByBusiLine(String busiLine);
  39 +
  40 + /**
  41 + * 通过用户编号,获得角色ID列表
  42 + *
  43 + * @param userId 用户编号
  44 + * @return 角色ID列表
  45 + */
  46 + List<Long> getRoleIdsByUserId(Long userId);
39 47 }
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/api/permission/RoleApiImpl.java
... ... @@ -34,4 +34,9 @@ public class RoleApiImpl implements RoleApi {
34 34 public List<RoleRespVO> getRoleListByBusiLine(String busiLine) {
35 35 return roleService.getRoleListByBusiLine(busiLine);
36 36 }
  37 +
  38 + @Override
  39 + public List<Long> getRoleIdsByUserId(Long userId) {
  40 + return roleService.getRoleIdsByUserId(userId);
  41 + }
37 42 }
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/permission/RoleService.java
... ... @@ -135,4 +135,9 @@ public interface RoleService {
135 135 * @return
136 136 */
137 137 List<RoleRespVO> getRoleListByBusiLine(String busiLine);
  138 +
  139 + /**
  140 + * 通过用户编号,获得角色列表
  141 + */
  142 + List<Long> getRoleIdsByUserId(Long userId);
138 143 }
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/permission/RoleServiceImpl.java
... ... @@ -14,7 +14,9 @@ import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.Rol
14 14 import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.RoleRespVO;
15 15 import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
16 16 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO;
  17 +import com.zteits.urbanops.module.system.dal.dataobject.permission.UserRoleDO;
17 18 import com.zteits.urbanops.module.system.dal.mysql.permission.RoleMapper;
  19 +import com.zteits.urbanops.module.system.dal.mysql.permission.UserRoleMapper;
18 20 import com.zteits.urbanops.module.system.dal.redis.RedisKeyConstants;
19 21 import com.zteits.urbanops.module.system.enums.permission.DataScopeEnum;
20 22 import com.zteits.urbanops.module.system.enums.permission.RoleCodeEnum;
... ... @@ -53,6 +55,9 @@ public class RoleServiceImpl implements RoleService {
53 55 @Resource
54 56 private RoleMapper roleMapper;
55 57  
  58 + @Resource
  59 + private UserRoleMapper userRoleMapper;
  60 +
56 61 @Override
57 62 @Transactional(rollbackFor = Exception.class)
58 63 @LogRecord(type = SYSTEM_ROLE_TYPE, subType = SYSTEM_ROLE_CREATE_SUB_TYPE, bizNo = "{{#role.id}}",
... ... @@ -272,6 +277,17 @@ public class RoleServiceImpl implements RoleService {
272 277 return BeanUtils.toBean(roleDOS, RoleRespVO.class);
273 278 }
274 279  
  280 + @Override
  281 + public List<Long> getRoleIdsByUserId(Long userId) {
  282 + QueryWrapper<UserRoleDO> sql = new QueryWrapper<>();
  283 + sql.select("role_id");
  284 + List<UserRoleDO> list = userRoleMapper.selectList(sql.lambda().eq(UserRoleDO::getUserId, userId));
  285 + if (CollectionUtil.isEmpty(list)) {
  286 + return Collections.emptyList();
  287 + }
  288 + return list.stream().map(UserRoleDO::getRoleId).toList();
  289 + }
  290 +
275 291 /**
276 292 * 获得自身的代理对象,解决 AOP 生效问题
277 293 *
... ...