|
|
@@ -10,9 +10,11 @@ import com.qqflow.engine.config.security.LoginUser;
|
|
|
import com.qqflow.engine.domain.system.dto.LoginDTO;
|
|
|
import com.qqflow.engine.domain.system.dto.UserDTO;
|
|
|
import com.qqflow.engine.domain.system.entity.SysDept;
|
|
|
+import com.qqflow.engine.domain.system.entity.SysRole;
|
|
|
import com.qqflow.engine.domain.system.entity.SysUser;
|
|
|
import com.qqflow.engine.domain.system.entity.SysUserRole;
|
|
|
import com.qqflow.engine.domain.system.mapper.SysDeptMapper;
|
|
|
+import com.qqflow.engine.domain.system.mapper.SysRoleMapper;
|
|
|
import com.qqflow.engine.domain.system.mapper.SysUserMapper;
|
|
|
import com.qqflow.engine.domain.system.mapper.SysUserRoleMapper;
|
|
|
import com.qqflow.engine.domain.system.service.SysDeptService;
|
|
|
@@ -48,6 +50,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
|
|
|
private SysUserRoleMapper sysUserRoleMapper;
|
|
|
|
|
|
@Resource
|
|
|
+ private SysRoleMapper sysRoleMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
private SysDeptMapper sysDeptMapper;
|
|
|
|
|
|
@Resource
|
|
|
@@ -97,6 +102,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
|
|
|
sysUserRoleMapper.insert(userRole);
|
|
|
}
|
|
|
}
|
|
|
+ if (saved) {
|
|
|
+ this.syncEmployeeTypeRole(user);
|
|
|
+ }
|
|
|
return saved;
|
|
|
}
|
|
|
|
|
|
@@ -128,6 +136,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
|
|
|
sysUserRoleMapper.insert(userRole);
|
|
|
}
|
|
|
}
|
|
|
+ if (updated) {
|
|
|
+ this.syncEmployeeTypeRole(user);
|
|
|
+ }
|
|
|
return updated;
|
|
|
}
|
|
|
|
|
|
@@ -140,6 +151,34 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
|
|
|
return this.removeById(id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据 employeeType 自动为用户绑定同名的角色,保证前后端权限一致。
|
|
|
+ * common_user 不绑定任何角色。
|
|
|
+ */
|
|
|
+ private void syncEmployeeTypeRole(SysUser user) {
|
|
|
+ String employeeType = user.getEmployeeType();
|
|
|
+ if (employeeType == null || EMPLOYEE_TYPE_COMMON_USER.equals(employeeType)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ SysRole role = this.sysRoleMapper.selectByRoleCode(employeeType);
|
|
|
+ if (role == null || role.getId() == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Long userId = user.getId();
|
|
|
+ Long roleId = role.getId();
|
|
|
+ List<SysUserRole> existing = this.sysUserRoleMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<SysUserRole>()
|
|
|
+ .eq(SysUserRole::getUserId, userId)
|
|
|
+ .eq(SysUserRole::getRoleId, roleId));
|
|
|
+ if (!existing.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ SysUserRole userRole = new SysUserRole();
|
|
|
+ userRole.setUserId(userId);
|
|
|
+ userRole.setRoleId(roleId);
|
|
|
+ this.sysUserRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public SysUser getUserById(Long id) {
|
|
|
return this.getById(id);
|