mdf:用户,部门去jpa2

This commit is contained in:
zhangzhiqiang
2022-11-30 15:04:48 +08:00
parent fb28f2a7f4
commit d054ae574b
13 changed files with 44 additions and 37 deletions

View File

@@ -39,13 +39,13 @@ import org.springframework.web.bind.annotation.RestController;
@EnableCreateCacheAnnotation
@ComponentScan(
excludeFilters = {
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.nl.modules.quartz.*")}
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.nl.modules.quartz.*"),
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "com.github.loki4j.*")}
)
public class AppRun {
public static void main(String[] args) {
SpringApplication.run(AppRun.class, args);
}

View File

@@ -15,12 +15,15 @@
*/
package org.nl.modules.common.base;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.EntityListeners;
@@ -55,10 +58,16 @@ public class BaseEntity implements Serializable {
@Column(name = "create_time", updatable = false)
@ApiModelProperty(value = "创建时间", hidden = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date create_time;
@Column(name = "update_time")
@ApiModelProperty(value = "更新时间", hidden = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date update_time;
/* 分组校验 */

View File

@@ -62,15 +62,12 @@ public class Role extends BaseEntity implements Serializable {
@ApiModelProperty(value = "名称", hidden = true)
private String name;
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
private String dataScope = DataScopeEnum.THIS_LEVEL.getValue();
@Column(name = "level")
@ApiModelProperty(value = "级别,数值越小,级别越大")
private Integer level = 3;
@ApiModelProperty(value = "描述")
private String description;
private String remark;
@Override
public boolean equals(Object o) {

View File

@@ -41,7 +41,6 @@ public class User extends BaseEntity implements Serializable {
@Id
@Column(name = "role_id")
@NotNull(groups = {Update.class})
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty(value = "ID", hidden = true)
private Long id;
@@ -79,7 +78,7 @@ public class User extends BaseEntity implements Serializable {
@NotNull
@ApiModelProperty(value = "是否启用")
private Boolean is_used;
private String is_used;
@ApiModelProperty(value = "是否为admin账号", hidden = true)
private Boolean isAdmin = false;

View File

@@ -50,7 +50,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
*/
@Query(value = "SELECT r.* FROM sys_role r, sys_users_roles u WHERE " +
"r.role_id = u.role_id AND u.user_id = ?1",nativeQuery = true)
Set<Role> findByUserId(Long id);
List<Role> findByUserId(Long id);
/**
* 解绑角色菜单

View File

@@ -145,7 +145,7 @@ public class RoleController {
* @return /
*/
private int getLevels(Integer level){
List<Integer> levels = roleService.findByUsersId(StpUtil.getLoginIdAsLong()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList());
List<Integer> levels = roleService.findByUsersId(StpUtil.getLoginIdAsLong()).stream().map(Role::getLevel).collect(Collectors.toList());
int min = Collections.min(levels);
if(level != null){
if(level < min){

View File

@@ -30,6 +30,7 @@ import org.nl.modules.common.utils.RedisUtils;
import org.nl.modules.common.utils.RsaUtils;
import org.nl.modules.common.utils.SecurityUtils;
import org.nl.modules.logging.annotation.Log;
import org.nl.modules.system.domain.Role;
import org.nl.modules.system.domain.User;
import org.nl.modules.system.domain.vo.UserPassVo;
import org.nl.modules.system.service.DataService;
@@ -148,8 +149,8 @@ public class UserController {
@SaCheckPermission("user:del")
public ResponseEntity<Object> delete(@RequestBody Set<Long> ids) {
for (Long id : ids) {
Integer currentLevel = Collections.min(roleService.findByUsersId(StpUtil.getLoginIdAsLong()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer optLevel = Collections.min(roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer currentLevel = Collections.min(roleService.findByUsersId(StpUtil.getLoginIdAsLong()).stream().map(Role::getLevel).collect(Collectors.toList()));
Integer optLevel = Collections.min(roleService.findByUsersId(id).stream().map(Role::getLevel).collect(Collectors.toList()));
if (currentLevel > optLevel) {
throw new BadRequestException("角色权限不足,不能删除:" + userService.findById(id).getUsername());
}

View File

@@ -71,7 +71,7 @@ public interface RoleService {
* @param id 用户ID
* @return /
*/
List<RoleSmallDto> findByUsersId(Long id);
List<Role> findByUsersId(Long id);
/**
* 根据角色查询角色级别

View File

@@ -32,5 +32,4 @@ public class RoleSmallDto implements Serializable {
private Integer level;
private String dataScope;
}

View File

@@ -56,23 +56,23 @@ public class DataServiceImpl implements DataService {
// 用于存储部门id
Set<Long> deptIds = new HashSet<>();
// 查询用户角色
List<RoleSmallDto> roleSet = roleService.findByUsersId(user.getUser_id());
// List<RoleSmallDto> roleSet = roleService.findByUsersId(user.getUser_id());
// 获取对应的部门ID
for (RoleSmallDto role : roleSet) {
DataScopeEnum dataScopeEnum = DataScopeEnum.find(role.getDataScope());
switch (Objects.requireNonNull(dataScopeEnum)) {
case THIS_LEVEL:
/*if (ObjectUtil.isNotEmpty(user.getDept())){
deptIds.add(user.getDept().getId());
}*/
break;
case CUSTOMIZE:
deptIds.addAll(getCustomize(deptIds, role));
break;
default:
return new ArrayList<>(deptIds);
}
}
// for (RoleSmallDto role : roleSet) {
// DataScopeEnum dataScopeEnum = DataScopeEnum.
// switch (Objects.requireNonNull(dataScopeEnum)) {
// case THIS_LEVEL:
// /*if (ObjectUtil.isNotEmpty(user.getDept())){
// deptIds.add(user.getDept().getId());
// }*/
// break;
// case CUSTOMIZE:
// deptIds.addAll(getCustomize(deptIds, role));
// break;
// default:
// return new ArrayList<>(deptIds);
// }
// }
return new ArrayList<>(deptIds);
}

View File

@@ -17,6 +17,7 @@ package org.nl.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
@@ -122,8 +123,7 @@ public class RoleServiceImpl implements RoleService {
throw new EntityExistException(Role.class, "username", resources.getName());
}
role.setName(resources.getName());
role.setDescription(resources.getDescription());
role.setDataScope(resources.getDataScope());
role.setRemark(resources.getRemark());
role.setLevel(resources.getLevel());
roleRepository.save(role);
// 更新相关缓存
@@ -163,8 +163,8 @@ public class RoleServiceImpl implements RoleService {
}
@Override
public List<RoleSmallDto> findByUsersId(Long id) {
return roleSmallMapper.toDto(new ArrayList<>(roleRepository.findByUserId(id)));
public List<Role> findByUsersId(Long id) {
return roleRepository.findByUserId(id);
}
@Override

View File

@@ -22,6 +22,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
@@ -136,7 +137,7 @@ public class UserServiceImpl implements UserService {
User user = this.findById(resources.getUser_id());
redisUtils.del("user::username:" + user.getUsername());
// 如果用户被禁用,则清除用户登录信息
if(!resources.getIs_used()){
if("0".equals(resources.getIs_used())){
onlineUserService.kickOutForUsername(resources.getUsername());
}
resources.setPassword(SaSecureUtil.md5BySalt(resources.getPassword(), "salt"));
@@ -226,7 +227,7 @@ public class UserServiceImpl implements UserService {
map.put("用户名", userDTO.getUsername());
map.put("角色", userDTO.getRoles());
map.put("邮箱", userDTO.getEmail());
map.put("状态", userDTO.getIs_used() ? "启用" : "禁用");
map.put("状态", "1".equals(userDTO.getIs_used()) ? "启用" : "禁用");
map.put("手机号码", userDTO.getPhone());
map.put("修改密码的时间", userDTO.getPwdResetTime());
map.put("创建日期", userDTO.getCreate_time());

View File

@@ -49,11 +49,12 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT
sys_user.*,GROUP_CONCAT(DISTINCT dept_id),GROUP_CONCAT(DISTINCT role_id)
sys_user.*,GROUP_CONCAT(DISTINCT sys_dept.dept_id) as depts,GROUP_CONCAT(DISTINCT sys_dept.name) as deptnames,GROUP_CONCAT(DISTINCT role_id) as roles
FROM
sys_user
left join sys_user_dept on sys_user.user_id = sys_user_dept.user_id
left join sys_users_roles on sys_users_roles.user_id = sys_user.user_id
left join sys_dept on sys_user_dept.dept_id = sys_dept.dept_id
WHERE 1=1
OPTION 输入.id <> ""
sys_user.id = 输入.id