|
|
package com.tianbo.warehouse.service.imp;
|
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.github.pagehelper.Page;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.tianbo.warehouse.annotation.cache.annotation.RedisCacheDelTarget;
|
|
|
import com.tianbo.warehouse.controller.response.ResultJson;
|
|
|
import com.tianbo.warehouse.dao.DepartmentMapper;
|
|
|
import com.tianbo.warehouse.dao.ROLEMapper;
|
|
|
import com.tianbo.warehouse.dao.RoleDataPermissionDao;
|
|
|
import com.tianbo.warehouse.dao.RolePermissionMapper;
|
|
|
import com.tianbo.warehouse.model.Department;
|
|
|
import com.tianbo.warehouse.model.ROLE;
|
|
|
import com.tianbo.warehouse.model.RoleDataPermission;
|
|
|
import com.tianbo.warehouse.model.RolePermission;
|
|
|
import com.tianbo.warehouse.model.*;
|
|
|
import com.tianbo.warehouse.service.PermissionService;
|
|
|
import com.tianbo.warehouse.service.RoleService;
|
|
|
import com.tianbo.warehouse.util.RedisUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service(value = "roleService")
|
...
|
...
|
@@ -41,6 +46,11 @@ public class RoleServiceImp implements RoleService{ |
|
|
@Autowired
|
|
|
PermissionService permissionService;
|
|
|
|
|
|
@Autowired
|
|
|
RedisUtils redisUtils;
|
|
|
|
|
|
private final String ROLE_TOKEN_HEAD = "TOKEN:ROLE:";
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param pageNum
|
...
|
...
|
@@ -182,6 +192,41 @@ public class RoleServiceImp implements RoleService{ |
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String createRoleToken(Integer roleId) {
|
|
|
ROLE role = roleMapper.selectByPrimaryKey(roleId);
|
|
|
String oldTokenId = role.getExt();
|
|
|
if (StringUtils.isNotBlank(oldTokenId)) {
|
|
|
String oldToken = ROLE_TOKEN_HEAD + oldTokenId;
|
|
|
redisUtils.del(oldToken);
|
|
|
}
|
|
|
String tokenId = IdUtil.simpleUUID();
|
|
|
String token = ROLE_TOKEN_HEAD + tokenId;
|
|
|
int i = roleMapper.updateTokenById(roleId, token);
|
|
|
if (i > 0){
|
|
|
return token;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public ResultJson permRoleToken(RolePermission rolePermission) {
|
|
|
ROLE role = roleMapper.selectByPrimaryKey(rolePermission.getRoleId());
|
|
|
String token = role.getExt();
|
|
|
if (StringUtils.isBlank(token)) {
|
|
|
return new ResultJson("201", "请先申请组织机构令牌");
|
|
|
}
|
|
|
List<PERMISSION> permissionList = permissionService.selectByIds(rolePermission.getPermissionIds());
|
|
|
USERS users = new USERS();
|
|
|
users.setCompanyInfo(role);
|
|
|
users.setPermissions(permissionList);
|
|
|
String tokenValue = JSON.toJSONString(users);
|
|
|
boolean redisSava = redisUtils.set(token, tokenValue, -1);
|
|
|
if (redisSava){
|
|
|
return new ResultJson("200", "权限设置成功");
|
|
|
}
|
|
|
return new ResultJson("202", "系统错误,请稍后重试");
|
|
|
}
|
|
|
|
|
|
//递归查找所有菜单的子菜单
|
|
|
private List<ROLE> getChildrens(ROLE root, List<ROLE> listAll) {
|
...
|
...
|
|