From 96efa81072b4cec5ae3ecbd3a9aaf798adec4fd9 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 18 Mar 2024 15:57:05 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=8B=86=E5=88=86user=E5=92=8Cpermissi?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserController.java | 9 ++- .../impl/PermissionServiceImpl.java | 75 +++++++++++++++++++ .../impl/UserServiceImpl.java | 75 +++---------------- .../service/PermissionService.java | 16 ++++ .../service/UserService.java | 5 -- 5 files changed, 107 insertions(+), 73 deletions(-) create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/service/PermissionService.java diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/UserController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/UserController.java index 2bc2364..1a68456 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/UserController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/UserController.java @@ -8,6 +8,7 @@ import com.shxy.xymanager_common.entity.SysUser; import com.shxy.xymanager_common.entity.TbPermission; import com.shxy.xymanager_common.model.PermissionModel; import com.shxy.xymanager_common.threadlocal.UserContextHolder; +import com.shxy.xymanager_service.service.PermissionService; import com.shxy.xymanager_service.service.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,18 +30,20 @@ public class UserController extends BaseController { @Resource UserService service; + @Resource + PermissionService permissionService; @GetMapping("getPermission") @ApiOperation("查询权限") public ResponseReult> getPermission(@Validated @NotNull(message = "id不能为空!") Integer id) throws Exception { - List result = service.getPermission(id); + List result = permissionService.getPermission(id); return ResponseReult.success(result); } @PostMapping("changePermission") @ApiOperation("修改权限") public ResponseReult changePermission(@Validated @RequestBody PermissionModel item) throws Exception { - service.changePermission(item.getUserId(), item.getList()); + permissionService.changePermission(item.getUserId(), item.getList()); return ResponseReult.success("OK"); } @@ -56,7 +59,7 @@ public class UserController extends BaseController { SysUser user = UserContextHolder.currentUserInfo(); if (user != null) { user.setPassword(""); - PermissionDetail permission = service.getPermissionList(); + PermissionDetail permission = permissionService.getPermissionDetail(user.getUid()); user.setPermission(permission); return ResponseReult.success(user); } else { diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java new file mode 100644 index 0000000..616b64a --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java @@ -0,0 +1,75 @@ +package com.shxy.xymanager_service.impl; + +import com.shxy.xymanager_common.bean.PermissionDetail; +import com.shxy.xymanager_common.entity.TbPermission; +import com.shxy.xymanager_common.entity.TbPermissionExample; +import com.shxy.xymanager_common.enums.PermissionDetailEnum; +import com.shxy.xymanager_dao.dao.*; +import com.shxy.xymanager_service.service.PermissionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class PermissionServiceImpl implements PermissionService { + + @Resource + TbPermissionMapper permissionMapper; + + + @Override + public List getPermission(Integer userId) { + TbPermissionExample example = new TbPermissionExample(); + TbPermissionExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo(userId); + List list = permissionMapper.selectByExample(example); + return list; + } + + @Override + public PermissionDetail getPermissionDetail(Integer userId) { + PermissionDetail permissionDetail = new PermissionDetail(); + permissionDetail.setUid(userId); + List permission = getPermission(userId); + for (TbPermission item : permission) { + Integer resourceType = item.getResourceType(); + Integer resourceId = item.getResourceId(); + if (resourceType != null) { + if (resourceType.intValue() == PermissionDetailEnum.DY.value()) { + permissionDetail.getDypList().add(resourceId); + } + if (resourceType.intValue() == PermissionDetailEnum.LINE.value()) { + permissionDetail.getLinepList().add(resourceId); + } + if (resourceType.intValue() == PermissionDetailEnum.TOWER.value()) { + permissionDetail.getTowerpList().add(resourceId); + } + if (resourceType.intValue() == PermissionDetailEnum.TERM.value()) { + permissionDetail.getTermpList().add(resourceId); + } + } + } + return permissionDetail; + } + + @Override + public void changePermission(Integer userId, List list) throws Exception { + TbPermissionExample example = new TbPermissionExample(); + TbPermissionExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo(userId); + permissionMapper.deleteByExample(example); + + if (list != null) { + for (TbPermission permission : list) { + permission.setUserId(userId); + permissionMapper.insert(permission); + } + } + } + +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java index f9bf59d..95b2456 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java @@ -1,16 +1,14 @@ package com.shxy.xymanager_service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.shxy.xymanager_common.bean.PermissionDetail; import com.shxy.xymanager_common.entity.SysUser; import com.shxy.xymanager_common.dto.TerminalsAndStatusDto; -import com.shxy.xymanager_common.entity.*; import com.shxy.xymanager_common.enums.CommonStatus; -import com.shxy.xymanager_common.enums.PermissionDetailEnum; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.threadlocal.UserContextHolder; import com.shxy.xymanager_dao.dao.*; +import com.shxy.xymanager_service.service.PermissionService; import com.shxy.xymanager_service.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -29,36 +27,18 @@ import static com.shxy.xymanager_common.constant.Constants.SUPER_ADMIN; public class UserServiceImpl implements UserService { @Resource - TbPermissionMapper permissionMapper; - - @Autowired - DyLevelDao dyLevelDao; - - @Autowired - LinesDao linesDao; - - @Autowired - TowerDao towerDao; + PermissionService permissionService; @Autowired TerminalsDao terminalsDao; - @Override - public List getPermission(Integer userId) throws Exception { - TbPermissionExample example = new TbPermissionExample(); - TbPermissionExample.Criteria criteria = example.createCriteria(); - criteria.andUserIdEqualTo(userId); - List list = permissionMapper.selectByExample(example); - return list; - } - @Override public PermissionDetail getPermissionList() throws Exception { PermissionDetail permissionDetail = new PermissionDetail(); SysUser sysUser = UserContextHolder.currentUserInfo(); - if (BeanUtil.isEmpty(sysUser)) { - Asserts.fail("用户不存在"); + if (sysUser == null) { + Asserts.fail("未获取到当前用户信息"); } Integer uid = sysUser.getUid(); if (uid == null) { @@ -67,25 +47,7 @@ public class UserServiceImpl implements UserService { permissionDetail.setUid(uid); Integer role = sysUser.getRole(); if (role != SUPER_ADMIN) { - List permission = getPermission(uid); - for (TbPermission item : permission) { - Integer resourceType = item.getResourceType(); - Integer resourceId = item.getResourceId(); - if (resourceType != null) { - if (resourceType.intValue() == PermissionDetailEnum.DY.value()) { - permissionDetail.getDypList().add(resourceId); - } - if (resourceType.intValue() == PermissionDetailEnum.LINE.value()) { - permissionDetail.getLinepList().add(resourceId); - } - if (resourceType.intValue() == PermissionDetailEnum.TOWER.value()) { - permissionDetail.getTowerpList().add(resourceId); - } - if (resourceType.intValue() == PermissionDetailEnum.TERM.value()) { - permissionDetail.getTermpList().add(resourceId); - } - } - } + return permissionService.getPermissionDetail(sysUser.getUid()); } else { permissionDetail.setIsSuper(CommonStatus.EFFECTIVE.value()); } @@ -94,13 +56,12 @@ public class UserServiceImpl implements UserService { @Override public List getPermssionTermIdList() { - PermissionDetail permissionDetail = new PermissionDetail(); - try { - permissionDetail = getPermissionList(); - } catch (Exception e) { - e.printStackTrace(); - Asserts.fail("权限解析错误"); + SysUser user = UserContextHolder.currentUserInfo(); + if (user == null) { + Asserts.fail("未获取到当前用户信息"); } + PermissionDetail permissionDetail = permissionService.getPermissionDetail(user.getUid()); + List dypList = permissionDetail.getDypList(); List linepList = permissionDetail.getLinepList(); List towerpList = permissionDetail.getTowerpList(); @@ -116,20 +77,4 @@ public class UserServiceImpl implements UserService { return termidlist; } - - @Override - public void changePermission(Integer userId, List list) throws Exception { - TbPermissionExample example = new TbPermissionExample(); - TbPermissionExample.Criteria criteria = example.createCriteria(); - criteria.andUserIdEqualTo(userId); - permissionMapper.deleteByExample(example); - - if (list != null) { - for (TbPermission permission : list) { - permission.setUserId(userId); - permissionMapper.insert(permission); - } - } - } - } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/PermissionService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/PermissionService.java new file mode 100644 index 0000000..25b769f --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/PermissionService.java @@ -0,0 +1,16 @@ +package com.shxy.xymanager_service.service; + +import com.shxy.xymanager_common.bean.PermissionDetail; +import com.shxy.xymanager_common.entity.TbPermission; + +import java.util.List; + +public interface PermissionService { + + List getPermission(Integer userId); + + PermissionDetail getPermissionDetail(Integer userId); + + void changePermission(Integer userId, List list) throws Exception; + +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/UserService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/UserService.java index 20424b5..15cc9ae 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/UserService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/UserService.java @@ -1,18 +1,13 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.PermissionDetail; -import com.shxy.xymanager_common.entity.TbPermission; import java.util.List; public interface UserService { - List getPermission(Integer userId) throws Exception; - PermissionDetail getPermissionList() throws Exception; List getPermssionTermIdList(); - void changePermission(Integer userId, List list) throws Exception; - }