123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package com.backendsys.service.System;
- import com.backendsys.entity.System.SysUserRoleDTO;
- import com.backendsys.mapper.System.SysUserRoleMapper;
- import com.backendsys.utils.response.PageInfoResult;
- import com.github.pagehelper.PageHelper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- @Service
- public class SysUserRoleServiceImpl<T> implements SysUserRoleService {
- @Autowired
- private SysUserRoleMapper sysUserRoleMapper;
- // 将输入的数组转换为对象数组 [1,2] 转为 [{ id: "1"}, {id: "2"}]
- public static List<LinkedHashMap<String, Object>> convertArrayToList(String[] array) {
- List<LinkedHashMap<String, Object>> resultList = new ArrayList<>();
- for (int i = 0; i < array.length; i++) {
- Map<String, Object> map = new HashMap<>();
- map.put("id", array[i]);
- resultList.add(new LinkedHashMap<>(map));
- }
- return resultList;
- }
- /**
- * 查询 系统用户角色列表
- */
- @Override
- public Map<String, Object> queryUserRole(Integer pageNum, Integer pageSize, SysUserRoleDTO sysUserRoleDTO) {
- // 分页查询
- if (pageNum != null && pageSize != null) {
- PageHelper.startPage(pageNum, pageSize);
- PageHelper.getLocalPage().setPageSizeZero(true);
- }
- // 分页输出 (自定义)
- List<Map<String, Object>> list = sysUserRoleMapper.queryUserRoleList(sysUserRoleDTO);
- PageInfoResult pageInfoResult = new PageInfoResult(list);
- return pageInfoResult.toMap();
- }
- /**
- * 查询 系统用户角色详情 (由于使用 COUNT 会导致 @QueryNullCheck 检查记录是否存在失效,所以分两次查询)
- */
- @Override
- public Map<String, Object> queryUserRoleDetail(Long role_id) {
- Map<String, Object> role = sysUserRoleMapper.queryUserRoleDetail(role_id);
- if (role != null) {
- Map<String, Object> user_count = sysUserRoleMapper.queryUserCountByRoleId(role_id);
- role.put("user_count", user_count.get("user_count"));
- }
- return role;
- }
- /**
- * 创建 系统用户角色
- */
- @Override
- @Transactional
- public Map<String, Object> insertUserRole(SysUserRoleDTO sysUserRoleDTO) {
- // 将输入的数组转换为对象数组 [1,2] 转为 [{ id: "1"}, {id: "2"}]
- List<String> modulesList = sysUserRoleDTO.getModules();
- String[] modulesArray = modulesList.toArray(new String[0]);
- List<LinkedHashMap<String, Object>> resultList = convertArrayToList(modulesArray);
- sysUserRoleDTO.setModules(resultList);
- // 创建角色
- sysUserRoleMapper.insertUserRole(sysUserRoleDTO);
- // 创建角色与模块关系
- sysUserRoleMapper.insertUserRoleModuleRelation(sysUserRoleDTO);
- return Map.of("role_id", sysUserRoleDTO.getId());
- }
- /**
- * 更新 系统用户角色
- */
- @Override
- @Transactional
- public Map<String, Object> updateUserRole(SysUserRoleDTO sysUserRoleDTO) {
- // 将输入的数组转换为对象数组 [1,2] 转为 [{ id: "1"}, {id: "2"}]
- List<String> modulesList = sysUserRoleDTO.getModules();
- String[] modulesArray = modulesList.toArray(new String[0]);
- List<LinkedHashMap<String, Object>> resultList = convertArrayToList(modulesArray);
- sysUserRoleDTO.setModules(resultList);
- // 更新角色
- sysUserRoleMapper.updateUserRole(sysUserRoleDTO);
- // 更新角色与模块关系 (需要先删除全部,再重新插入)
- sysUserRoleMapper.updateUserRoleModuleRelation(sysUserRoleDTO);
- return Map.of("role_id", sysUserRoleDTO.getRole_id());
- }
- /**
- * 删除 系统用户角色 (物理删除)
- */
- @Override
- @Transactional
- public Map<String, Object> deleteUserRole(SysUserRoleDTO sysUserRoleDTO) {
- sysUserRoleMapper.deleteUserRole(sysUserRoleDTO);
- return Map.of("role_id", sysUserRoleDTO.getRole_id());
- }
- }
|