From b0493e7de9d01a3bdd179e4161273c6a9f4a8ba9 Mon Sep 17 00:00:00 2001 From: zt Date: Mon, 29 Sep 2025 17:03:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BusProjectTeamController.java | 6 +-- .../project/domain/BusProjectTeam.java | 2 +- .../projectteam/BusProjectTeamCreateReq.java | 2 +- .../projectteam/BusProjectTeamUpdateReq.java | 2 +- .../vo/projectteam/BusProjectTeamVo.java | 3 +- .../service/IBusProjectTeamService.java | 2 +- .../impl/BusProjectTeamServiceImpl.java | 44 ++++++++++++++++--- 7 files changed, 46 insertions(+), 15 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java index ac2d0b83..5164cbb1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java @@ -155,9 +155,9 @@ public class BusProjectTeamController extends BaseController { /** * 移除班组的管理 */ - @PutMapping("/deleteUserId/{id}") - public R deleteUserId(@PathVariable("id") Long id){ - return R.ok(busProjectTeamService.deleteUserId(id)); + @PutMapping("/deleteUserId/{id}/{userId}") + public R deleteUserId(@PathVariable("id") Long id,@PathVariable("userId") Long userId){ + return R.ok(busProjectTeamService.deleteUserId(id,userId)); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java index 580af132..7e756c5d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java @@ -56,5 +56,5 @@ public class BusProjectTeam extends BaseEntity { /** * 管理员Id */ - private Long userId; + private String userId; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamCreateReq.java index 694cd17f..1c009ca8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamCreateReq.java @@ -50,5 +50,5 @@ public class BusProjectTeamCreateReq implements Serializable { /** * 管理员Id */ - private Long userId; + private String userId; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamUpdateReq.java index c9af717d..098cd2df 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/projectteam/BusProjectTeamUpdateReq.java @@ -51,5 +51,5 @@ public class BusProjectTeamUpdateReq implements Serializable { /** * 管理员Id */ - private Long userId; + private String userId; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/projectteam/BusProjectTeamVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/projectteam/BusProjectTeamVo.java index 8f628347..d767049f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/projectteam/BusProjectTeamVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/projectteam/BusProjectTeamVo.java @@ -76,13 +76,12 @@ public class BusProjectTeamVo implements Serializable { /** * 管理员Id */ - private Long userId; + private String userId; /** * 管理员Id */ - @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "userId") private String userName; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java index 8edc2e65..8053b6c0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java @@ -121,5 +121,5 @@ public interface IBusProjectTeamService extends IService { List getByUserId(Long userId,Long projectId); - Boolean deleteUserId(Long id); + Boolean deleteUserId(Long id,Long userId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java index e32c63ff..780b86ee 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java @@ -33,6 +33,8 @@ import org.dromara.project.service.IBusProjectPunchrangeService; import org.dromara.project.service.IBusProjectService; import org.dromara.project.service.IBusProjectTeamMemberService; import org.dromara.project.service.IBusProjectTeamService; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysUserService; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -65,6 +67,9 @@ public class BusProjectTeamServiceImpl extends ServiceImpl ((Number) m.get("team_id")).longValue(), m -> ((Number) m.get("count")).longValue() )); + List userIdList = projectTeamList.stream() + .map(BusProjectTeam::getUserId) + .filter(StringUtils::isNotBlank) + .flatMap(str -> Arrays.stream(str.split(","))) + .map(s -> Long.valueOf(s.trim())) + .distinct() + .collect(Collectors.toList()); + + List sysUserVos = userService.selectUserByIds(userIdList, null); + Map collect = sysUserVos.stream().collect(Collectors.toMap(SysUserVo::getUserId, SysUserVo::getNickName)); + + + // 对象列表 => 封装对象列表 List projectTeamVoList = projectTeamList.stream().map(projectTeam -> { BusProjectTeamVo projectTeamVo = new BusProjectTeamVo(); BeanUtils.copyProperties(projectTeam, projectTeamVo); projectTeamVo.setPeopleNumber(teamCountMap.getOrDefault(projectTeam.getId(), 0L)); + + String userId = projectTeamVo.getUserId(); + if (StringUtils.isNotBlank(userId)) { + String[] split = userId.split(","); + projectTeamVo.setUserName(Arrays.stream(split).map(s -> collect.getOrDefault(Long.valueOf(s.trim()), "")).collect(Collectors.joining(","))); + } return projectTeamVo; }).toList(); projectTeamVoPage.setRecords(projectTeamVoList); @@ -436,7 +460,7 @@ public class BusProjectTeamServiceImpl extends ServiceImpl getByUserId(Long userId,Long projectId) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(BusProjectTeam::getUserId, userId); + lqw.apply("FIND_IN_SET({0}, user_id) > 0", userId); lqw.eq(BusProjectTeam::getProjectId, projectId); List projectTeamList = list(lqw); if (CollUtil.isNotEmpty(projectTeamList)) { @@ -450,10 +474,18 @@ public class BusProjectTeamServiceImpl extends ServiceImpllambdaUpdate() - .eq(BusProjectTeam::getId, id) - .set(BusProjectTeam::getUserId, null)); - return update>0; + public Boolean deleteUserId(Long id,Long userId) { + BusProjectTeam projectTeam = baseMapper.selectById(id); + String userId1 = projectTeam.getUserId(); + if (StringUtils.isNotBlank(userId1)) { + String[] split = userId1.split(","); + List collect = Arrays.stream(split).filter(s -> !s.equals(userId.toString())).collect(Collectors.toList()); + String join = String.join(",", collect); + int update = baseMapper.update(Wrappers.lambdaUpdate() + .eq(BusProjectTeam::getId, id) + .set(BusProjectTeam::getUserId, join)); + return update > 0; + } + return true; } }