123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package com.imed.costaccount.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.imed.costaccount.mapper.UserRoleMapper;
- import com.imed.costaccount.model.UserRole;
- import com.imed.costaccount.model.dto.RoleUserDTO;
- import com.imed.costaccount.model.vo.CommonVO;
- import com.imed.costaccount.service.UserRoleService;
- import com.imed.costaccount.service.UserService;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service("userRoleService")
- public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
- private final UserService userService;
- public UserRoleServiceImpl(UserService userService) {
- this.userService = userService;
- }
- /**
- * 通过roleId获取对应的关联人员
- *
- * @param roleId 角色id
- * @param hospId 医院id
- * @return {"id":1,"username":"tom"}
- */
- @Override
- public List<CommonVO> getUsersByRoleId(Long roleId, Long hospId) {
- return baseMapper.getUsersByRoleId(roleId, hospId);
- }
- /**
- * 绑定角色和人员关系时选择列表(可回显)
- *
- * @param roleId 角色id
- * @param hospId 医院id
- * @return {"id":1,"username":"tom","isSelect": true}
- */
- @Override
- public List<CommonVO> roleUserList(Long roleId, Long hospId) {
- // 得到这个角色下所有人员
- return baseMapper.getUsersByRoleId(roleId, hospId);
- }
- /**
- * 编辑角色和人员关系
- *
- * @param roleUserDTO {@link RoleUserDTO}
- * @param hospId 医院id
- */
- @Override
- @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Throwable.class)
- public void saveRoleUser(RoleUserDTO roleUserDTO, Long hospId) {
- Long roleId = roleUserDTO.getRoleId();
- // this.removeById(roleId);
- List<Long> userIds = roleUserDTO.getUserIds();
- this.remove(
- new LambdaQueryWrapper<UserRole>().eq(UserRole::getRoleId, roleId));
- if (CollUtil.isNotEmpty(userIds)) {
- List<UserRole> userRoles = userIds.stream().map(i -> {
- UserRole userRole = new UserRole();
- userRole.setRoleId(roleId).setUserId(i).setHospId(hospId);
- return userRole;
- }).collect(Collectors.toList());
- this.saveBatch(userRoles);
- }
- }
- }
|