package com.supervision.police.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.police.domain.SystemUserRoleRelation; import com.supervision.police.dto.user.RoleMenuDTO; import com.supervision.police.dto.user.UserRoleDTO; import com.supervision.police.service.SystemUserRoleRelationService; import com.supervision.police.mapper.SystemUserRoleRelationMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * @author Administrator * @description 针对表【system_user_role_relation(用户角色关联表)】的数据库操作Service实现 * @createDate 2024-07-31 11:02:43 */ @Slf4j @Service @RequiredArgsConstructor public class SystemUserRoleRelationServiceImpl extends ServiceImpl implements SystemUserRoleRelationService{ @Override public List listUserRole(String userId, String roleId, String roleName) { return super.getBaseMapper().listUserRole(userId,roleId,roleName); } @Override @Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class) public List saveUserRoleRelation(String userId, List roleIdList) { Assert.notEmpty(userId, "用户id不能为空"); if (CollUtil.isEmpty(roleIdList)){ log.info("saveUserRoleRelation:userId:{},roleList is empty",userId); return CollUtil.newArrayList(); } List userRoleList = roleIdList.stream().map(roleId -> { SystemUserRoleRelation userRole = new SystemUserRoleRelation(); userRole.setRoleId(roleId); userRole.setUserId(userId); return userRole; }).toList(); userRoleList.forEach(super::save); return userRoleList; } @Override @Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class) public List updateUserRoleRelation(String userId, List roleIdList) { Assert.notEmpty(userId, "用户id不能为空"); super.lambdaUpdate().eq(SystemUserRoleRelation::getUserId,userId).remove(); if (CollUtil.isEmpty(roleIdList)){ log.info("updateUserRoleRelation:userId:{},roleList is empty",userId); return CollUtil.newArrayList(); } return saveUserRoleRelation(userId,roleIdList); } @Override public void deleteUserRoleRelation(String userId) { super.lambdaUpdate().eq(SystemUserRoleRelation::getUserId,userId).remove(); } @Override public List listUserRoleMenu(String userId) { if (StrUtil.isEmpty(userId)){ return new ArrayList<>(); } return super.getBaseMapper().listUserRoleMenu(userId); } @Override public List listUserRoleByUserIdList(List userIdList) { if (CollUtil.isEmpty(userIdList)){ return new ArrayList<>(); } return super.getBaseMapper().listUserRoleByUserIdList(userIdList); } @Override public List listUserRoleByRoleIdList(List roleIdList) { if (CollUtil.isEmpty(roleIdList)){ return CollUtil.newArrayList(); } return super.lambdaQuery().in(SystemUserRoleRelation::getRoleId,roleIdList).list(); } }