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.entity.TbPermission;
import com.shxy.xymanager_common.model.PermissionModel; import com.shxy.xymanager_common.model.PermissionModel;
import com.shxy.xymanager_common.threadlocal.UserContextHolder; import com.shxy.xymanager_common.threadlocal.UserContextHolder;
import com.shxy.xymanager_service.service.PermissionService;
import com.shxy.xymanager_service.service.UserService; import com.shxy.xymanager_service.service.UserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -29,18 +30,20 @@ public class UserController extends BaseController {
@Resource @Resource
UserService service; UserService service;
@Resource
PermissionService permissionService;
@GetMapping("getPermission") @GetMapping("getPermission")
@ApiOperation("查询权限") @ApiOperation("查询权限")
public ResponseReult<List<TbPermission>> getPermission(@Validated @NotNull(message = "id不能为空!") Integer id) throws Exception { 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); return ResponseReult.success(result);
} }
@PostMapping("changePermission") @PostMapping("changePermission")
@ApiOperation("修改权限") @ApiOperation("修改权限")
public ResponseReult<String> changePermission(@Validated @RequestBody PermissionModel item) throws Exception { 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"); return ResponseReult.success("OK");
} }
@ -56,7 +59,7 @@ public class UserController extends BaseController {
SysUser user = UserContextHolder.currentUserInfo(); SysUser user = UserContextHolder.currentUserInfo();
if (user != null) { if (user != null) {
user.setPassword(""); user.setPassword("");
PermissionDetail permission = service.getPermissionList(); PermissionDetail permission = permissionService.getPermissionDetail(user.getUid());
user.setPermission(permission); user.setPermission(permission);
return ResponseReult.success(user); return ResponseReult.success(user);
} else { } 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; package com.shxy.xymanager_service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.shxy.xymanager_common.bean.PermissionDetail; import com.shxy.xymanager_common.bean.PermissionDetail;
import com.shxy.xymanager_common.entity.SysUser; import com.shxy.xymanager_common.entity.SysUser;
import com.shxy.xymanager_common.dto.TerminalsAndStatusDto; 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.CommonStatus;
import com.shxy.xymanager_common.enums.PermissionDetailEnum;
import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.threadlocal.UserContextHolder; import com.shxy.xymanager_common.threadlocal.UserContextHolder;
import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_dao.dao.*;
import com.shxy.xymanager_service.service.PermissionService;
import com.shxy.xymanager_service.service.UserService; import com.shxy.xymanager_service.service.UserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; 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 { public class UserServiceImpl implements UserService {
@Resource @Resource
TbPermissionMapper permissionMapper; PermissionService permissionService;
@Autowired
DyLevelDao dyLevelDao;
@Autowired
LinesDao linesDao;
@Autowired
TowerDao towerDao;
@Autowired @Autowired
TerminalsDao terminalsDao; 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 @Override
public PermissionDetail getPermissionList() throws Exception { public PermissionDetail getPermissionList() throws Exception {
PermissionDetail permissionDetail = new PermissionDetail(); PermissionDetail permissionDetail = new PermissionDetail();
SysUser sysUser = UserContextHolder.currentUserInfo(); SysUser sysUser = UserContextHolder.currentUserInfo();
if (BeanUtil.isEmpty(sysUser)) { if (sysUser == null) {
Asserts.fail("用户不存在"); Asserts.fail("未获取到当前用户信息");
} }
Integer uid = sysUser.getUid(); Integer uid = sysUser.getUid();
if (uid == null) { if (uid == null) {
@ -67,25 +47,7 @@ public class UserServiceImpl implements UserService {
permissionDetail.setUid(uid); permissionDetail.setUid(uid);
Integer role = sysUser.getRole(); Integer role = sysUser.getRole();
if (role != SUPER_ADMIN) { if (role != SUPER_ADMIN) {
List<TbPermission> permission = getPermission(uid); return permissionService.getPermissionDetail(sysUser.getUid());
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);
}
}
}
} else { } else {
permissionDetail.setIsSuper(CommonStatus.EFFECTIVE.value()); permissionDetail.setIsSuper(CommonStatus.EFFECTIVE.value());
} }
@ -94,13 +56,12 @@ public class UserServiceImpl implements UserService {
@Override @Override
public List<Integer> getPermssionTermIdList() { public List<Integer> getPermssionTermIdList() {
PermissionDetail permissionDetail = new PermissionDetail(); SysUser user = UserContextHolder.currentUserInfo();
try { if (user == null) {
permissionDetail = getPermissionList(); Asserts.fail("未获取到当前用户信息");
} catch (Exception e) {
e.printStackTrace();
Asserts.fail("权限解析错误");
} }
PermissionDetail permissionDetail = permissionService.getPermissionDetail(user.getUid());
List<Integer> dypList = permissionDetail.getDypList(); List<Integer> dypList = permissionDetail.getDypList();
List<Integer> linepList = permissionDetail.getLinepList(); List<Integer> linepList = permissionDetail.getLinepList();
List<Integer> towerpList = permissionDetail.getTowerpList(); List<Integer> towerpList = permissionDetail.getTowerpList();
@ -116,20 +77,4 @@ public class UserServiceImpl implements UserService {
return termidlist; 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; package com.shxy.xymanager_service.service;
import com.shxy.xymanager_common.bean.PermissionDetail; import com.shxy.xymanager_common.bean.PermissionDetail;
import com.shxy.xymanager_common.entity.TbPermission;
import java.util.List; import java.util.List;
public interface UserService { public interface UserService {
List<TbPermission> getPermission(Integer userId) throws Exception;
PermissionDetail getPermissionList() throws Exception; PermissionDetail getPermissionList() throws Exception;
List<Integer> getPermssionTermIdList(); List<Integer> getPermssionTermIdList();
void changePermission(Integer userId, List<TbPermission> list) throws Exception;
} }

Loading…
Cancel
Save