perf: 拆分user和permission

dev
huangfeng 1 year ago
parent 07fc9ce119
commit 96efa81072

@ -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<List<TbPermission>> getPermission(@Validated @NotNull(message = "id不能为空!") Integer id) throws Exception {
List<TbPermission> result = service.getPermission(id);
List<TbPermission> result = permissionService.getPermission(id);
return ResponseReult.success(result);
}
@PostMapping("changePermission")
@ApiOperation("修改权限")
public ResponseReult<String> 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 {

@ -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<TbPermission> getPermission(Integer userId) {
TbPermissionExample example = new TbPermissionExample();
TbPermissionExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
List<TbPermission> list = permissionMapper.selectByExample(example);
return list;
}
@Override
public PermissionDetail getPermissionDetail(Integer userId) {
PermissionDetail permissionDetail = new PermissionDetail();
permissionDetail.setUid(userId);
List<TbPermission> 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<TbPermission> 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);
}
}
}
}

@ -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<TbPermission> getPermission(Integer userId) throws Exception {
TbPermissionExample example = new TbPermissionExample();
TbPermissionExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
List<TbPermission> 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<TbPermission> 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<Integer> 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<Integer> dypList = permissionDetail.getDypList();
List<Integer> linepList = permissionDetail.getLinepList();
List<Integer> towerpList = permissionDetail.getTowerpList();
@ -116,20 +77,4 @@ public class UserServiceImpl implements UserService {
return termidlist;
}
@Override
public void changePermission(Integer userId, List<TbPermission> 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);
}
}
}
}

@ -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<TbPermission> getPermission(Integer userId);
PermissionDetail getPermissionDetail(Integer userId);
void changePermission(Integer userId, List<TbPermission> list) throws Exception;
}

@ -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<TbPermission> getPermission(Integer userId) throws Exception;
PermissionDetail getPermissionList() throws Exception;
List<Integer> getPermssionTermIdList();
void changePermission(Integer userId, List<TbPermission> list) throws Exception;
}

Loading…
Cancel
Save