Commit 4a3e1500 authored by fangxinjiang's avatar fangxinjiang

登录服务相关调整-fxj

parent 7c44e233
...@@ -89,7 +89,7 @@ public class FileUploadServiceImpl implements FileUploadService { ...@@ -89,7 +89,7 @@ public class FileUploadServiceImpl implements FileUploadService {
true, true,
"1", authorities, "1", "1", authorities, "1",
null, null, null, null,
null); null,null);
attaInfo.setCreateBy(user.getId()); attaInfo.setCreateBy(user.getId());
attaInfo.setCreateName(user.getNickname()); attaInfo.setCreateName(user.getNickname());
attaInfo = tAttaInfoService.add(attaInfo); attaInfo = tAttaInfoService.add(attaInfo);
......
...@@ -1719,7 +1719,7 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE ...@@ -1719,7 +1719,7 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
true, true,
"1", authorities, "1", "1", authorities, "1",
null, null, null, null,
null); null,null);
} }
/** /**
......
...@@ -117,7 +117,7 @@ public class YifuTokenEndpoint { ...@@ -117,7 +117,7 @@ public class YifuTokenEndpoint {
CommonConstants.STATUS_NORMAL.equals(user.getLockFlag()), CommonConstants.STATUS_NORMAL.equals(user.getLockFlag()),
user.getUserGroup(),authorities, user.getLdapDn(), user.getUserGroup(),authorities, user.getLdapDn(),
info.getClientRoleMap(),info.getSettleIdList(), info.getClientRoleMap(),info.getSettleIdList(),
user.getType()); user.getType(),info.getCspPermMap());
thisUser.setClientRoleMap(info.getClientRoleMap()); thisUser.setClientRoleMap(info.getClientRoleMap());
return thisUser; return thisUser;
} }
......
...@@ -5,6 +5,8 @@ import cn.hutool.core.util.CharsetUtil; ...@@ -5,6 +5,8 @@ import cn.hutool.core.util.CharsetUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yifu.cloud.plus.v1.yifu.auth.constants.SecurityConstants; import com.yifu.cloud.plus.v1.yifu.auth.constants.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
......
...@@ -597,7 +597,7 @@ public class TCheckIdCardServiceImpl extends ServiceImpl<TCheckIdCardMapper, TCh ...@@ -597,7 +597,7 @@ public class TCheckIdCardServiceImpl extends ServiceImpl<TCheckIdCardMapper, TCh
true, true,
"1", authorities, "1", "1", authorities, "1",
null, null, null, null,
null); null,null);
// 调用以前的批量校验 // 调用以前的批量校验
R<List<TCheckIdCard>> returnR = this.checkSalaryIdCard(list, user); R<List<TCheckIdCard>> returnR = this.checkSalaryIdCard(list, user);
if (returnR != null) { if (returnR != null) {
......
package com.yifu.cloud.plus.v1.yifu.admin.api.vo; package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -33,7 +32,13 @@ public class UserPermissionVo implements Serializable { ...@@ -33,7 +32,13 @@ public class UserPermissionVo implements Serializable {
* 用户ID * 用户ID
*/ */
private String userId; private String userId;
/**
* 关联项目编码 fxj 2025-02-25
*/
private String projectNo;
/**
private Map<String,UserPermissionVo> permissionVoMap; * 关联项目名称 fxj 2025-02-25
*/
private String projectName;
} }
...@@ -92,9 +92,18 @@ public class YifuUser extends User { ...@@ -92,9 +92,18 @@ public class YifuUser extends User {
@Getter @Getter
@Setter @Setter
private List<String> settleIdList; private List<String> settleIdList;
/**
* @Author fxj
* @Description 客户服务平台 项目权限及项目对应的数据权限
* @Date 14:48 2025/2/25
**/
@Getter
@Setter
private List<UserPermissionVo> cspPermMap;
/** /**
* @Author fxj * @Author fxj
* @Description 员工类型 * @Description 员工类型 0 系统用户 1 LDAP用户 2 B端用户 3.微信用户 默认系统用户 4.甲方客户端
**/ **/
@Getter @Getter
private String type; private String type;
...@@ -104,7 +113,8 @@ public class YifuUser extends User { ...@@ -104,7 +113,8 @@ public class YifuUser extends User {
boolean credentialsNonExpired, boolean accountNonLocked, boolean credentialsNonExpired, boolean accountNonLocked,
String userGroup, Collection<? extends GrantedAuthority> authorities, String ldapDn, String userGroup, Collection<? extends GrantedAuthority> authorities, String ldapDn,
Map<String, List<Long>> clientRoleMap, Map<String, List<Long>> clientRoleMap,
List<String> settleIdList,String type) { List<String> settleIdList,String type,
List<UserPermissionVo> cspPermMap) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities); super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.id = id; this.id = id;
this.deptId = deptId; this.deptId = deptId;
...@@ -117,5 +127,6 @@ public class YifuUser extends User { ...@@ -117,5 +127,6 @@ public class YifuUser extends User {
this.clientRoleMap=clientRoleMap; this.clientRoleMap=clientRoleMap;
this.settleIdList=settleIdList; this.settleIdList=settleIdList;
this.type=type; this.type=type;
this.cspPermMap=cspPermMap;
} }
} }
...@@ -94,6 +94,6 @@ public class WxUserDetailService implements UserDetailsService { ...@@ -94,6 +94,6 @@ public class WxUserDetailService implements UserDetailsService {
user.getPhone(), true, true, true, user.getPhone(), true, true, true,
StrUtil.equals(user.getLockFlag(), CommonConstants.STATUS_NORMAL), StrUtil.equals(user.getLockFlag(), CommonConstants.STATUS_NORMAL),
user.getUserGroup(),authorities, user.getLdapDn(),info.getClientRoleMap(), user.getUserGroup(),authorities, user.getLdapDn(),info.getClientRoleMap(),
info.getSettleIdList(),user.getType()); info.getSettleIdList(),user.getType(),null);
} }
} }
...@@ -72,7 +72,7 @@ public interface YifuUserDetailsService extends UserDetailsService, Ordered { ...@@ -72,7 +72,7 @@ public interface YifuUserDetailsService extends UserDetailsService, Ordered {
user.getPhone(), true, true, true, user.getPhone(), true, true, true,
StrUtil.equals(user.getLockFlag(), CommonConstants.STATUS_NORMAL), StrUtil.equals(user.getLockFlag(), CommonConstants.STATUS_NORMAL),
user.getUserGroup(),authorities, user.getLdapDn(),info.getClientRoleMap(), user.getUserGroup(),authorities, user.getLdapDn(),info.getClientRoleMap(),
info.getSettleIdList(),user.getType()); info.getSettleIdList(),user.getType(),info.getCspPermMap());
} }
/** /**
......
...@@ -53,10 +53,6 @@ ...@@ -53,10 +53,6 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId> <artifactId>spring-boot-starter-undertow</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-common-core</artifactId>
</dependency>
</dependencies> </dependencies>
......
...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.admin.api.dto; ...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.admin.api.dto;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysPost; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysPost;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.UserPermissionVo;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -76,4 +77,11 @@ public class UserInfo implements Serializable { ...@@ -76,4 +77,11 @@ public class UserInfo implements Serializable {
* @Date 13:53 2023/1/3 * @Date 13:53 2023/1/3
**/ **/
private List<String> settleIdList; private List<String> settleIdList;
/**
* @Author fxj
* @Description 客户服务平台 项目权限及项目对应的数据权限
* @Date 14:48 2025/2/25
**/
private List<UserPermissionVo> cspPermMap;
} }
...@@ -23,6 +23,8 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -23,6 +23,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
/** /**
* 项目下用户部门及权限 * 项目下用户部门及权限
* *
...@@ -39,18 +41,26 @@ public class SysUserDeptPermission extends Model<SysUserDeptPermission> { ...@@ -39,18 +41,26 @@ public class SysUserDeptPermission extends Model<SysUserDeptPermission> {
@Schema(description = "主键id") @Schema(description = "主键id")
private String id; private String id;
@NotBlank(message = "用户id 不能为空")
@Schema(description = "用户id") @Schema(description = "用户id")
private String userId; private String userId;
@NotBlank(message = "部门id 不能为空")
@Schema(description = "部门id") @Schema(description = "部门id")
private Long deptId; private Long deptId;
@NotBlank(message = "关联项目编码 不能为空")
@Schema(description = "关联项目编码") @Schema(description = "关联项目编码")
private String projectNo; private String projectNo;
@NotBlank(message = "关联项目名称 不能为空")
@Schema(description = "关联项目名称")
private String projectName;
@Schema(description = "归属系统 0 mvp 1 甲方客户端") @Schema(description = "归属系统 0 mvp 1 甲方客户端")
private String client; private String client;
@NotBlank(message = "账号类型 不能为空")
@Schema(description = "账号类型:0 管理员, 1 普通成员") @Schema(description = "账号类型:0 管理员, 1 普通成员")
private String userType; private String userType;
......
/*
* Copyright (c) 2020 yifu4cloud Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysPost;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author lengleng
* @date 2019/2/1
*/
@Data
public class UserCspVO extends SysUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户Id
*/
private String userId;
/**
* 用户名
*/
@NotBlank(message = "用户名 不能为空")
private String username;
/**
* 用户昵称
*/
@NotBlank(message = "用户昵称 不能为空")
private String nickname;
/**
* 手机号码
*/
@NotBlank(message = "手机号码 不能为空")
private String phone;
/**
* 部门ID
*/
@NotBlank(message = "部门ID 不能为空")
private Long deptId;
//关系表数据开始
@NotBlank(message = "关联项目编码 不能为空")
@Schema(description = "关联项目编码")
private String projectNo;
@NotBlank(message = "关联项目名称 不能为空")
@Schema(description = "关联项目名称")
private String projectName;
@Schema(description = "归属系统 0 mvp 1 甲方客户端")
private String client;
@NotBlank(message = "账号类型 不能为空")
@Schema(description = "账号类型:0 管理员, 1 普通成员")
private String userType;
}
/*
* Copyright (c) 2020 yifu4cloud Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.yifu.cloud.plus.v1.yifu.admin.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.icbc.api.request.ErrorHandlingProRequestV1;
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysRole;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.HcmRoleInfoVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.RoleExcelVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.RoleVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysRoleMenuService;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysRoleService;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserDeptPermissionService;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @Author fxj
* @Description 客户服务平台 账号 部门 项目 关系表
* @Date 18:38 2025/2/25
* @Param
* @return
**/
@RestController
@RequiredArgsConstructor
@RequestMapping("/userDeprtPermission")
@Tag(name = "客户服务平台账号授权")
public class SysUserDeptPermissionController {
private final SysUserDeptPermissionService sysUserDeptPermissionService;
private final SysUserService sysUserService;
/**
* 新增
* @Description 新增用户
* @return success、false
*/
@SysLog("新增用户")
@PostMapping("add")
public R<Boolean> save(@Valid @RequestBody UserCspVO entity) {
long check = sysUserDeptPermissionService.count(Wrappers.<SysUserDeptPermission>query().lambda()
.eq(SysUserDeptPermission::getProjectNo,entity.getProjectNo())
.eq(SysUserDeptPermission::getUserId,entity.getUserId()));
if ( check > CommonConstants.ZERO_INT) {
return R.failed("已存在对应账户数据,请勿重复配置!");
}
long count = sysUserService.count(Wrappers.<SysUser>query().lambda()
.eq(SysUser::getUsername,entity.getUsername())
.eq(SysUser::getDelFlag, CommonConstants.ZERO_STRING));
if ( count > CommonConstants.ZERO_INT) {
return R.failed("已存在对应用户数据,请勿重复配置!");
}
return sysUserDeptPermissionService.saveAsso(entity);
}
/**
* 收回用户
* @param entity 角色信息
* @return success/false
*/
@SysLog("修改用户")
@PostMapping("/update")
public R<Boolean> update(@Valid @RequestBody UserCspVO entity) {
return sysUserDeptPermissionService.updateByIdAsso(entity);
}
/**
* 收回用户
* @param userId
* @return
*/
@SysLog("删除角色")
@DeleteMapping("/{userId}")
public R<Boolean> removeById(@PathVariable int userId) {
return sysUserDeptPermissionService.removeUserDeptPermissionById(userId);
}
}
...@@ -18,10 +18,14 @@ package com.yifu.cloud.plus.v1.yifu.admin.service; ...@@ -18,10 +18,14 @@ package com.yifu.cloud.plus.v1.yifu.admin.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserPermissionVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.UserPermissionVo;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 项目下用户部门及权限 * 项目下用户部门及权限
* *
...@@ -47,4 +51,11 @@ public interface SysUserDeptPermissionService extends IService<SysUserDeptPermis ...@@ -47,4 +51,11 @@ public interface SysUserDeptPermissionService extends IService<SysUserDeptPermis
*/ */
Map<String, UserPermissionVo> getUserPermissionFlush(String userId); Map<String, UserPermissionVo> getUserPermissionFlush(String userId);
List<UserPermissionVo> getUserPermission(String userId);
R<Boolean> saveAsso(UserCspVO entity);
R<Boolean> updateByIdAsso(UserCspVO entity);
R<Boolean> removeUserDeptPermissionById(int userId);
} }
...@@ -16,21 +16,29 @@ ...@@ -16,21 +16,29 @@
package com.yifu.cloud.plus.v1.yifu.admin.service.impl; package com.yifu.cloud.plus.v1.yifu.admin.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission; import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserPermissionVo; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptMapper; import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptMapper;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserDeptPermissionMapper; import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserDeptPermissionMapper;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysUserMapper;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserDeptPermissionService; import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserDeptPermissionService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil; import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.UserPermissionVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -49,6 +57,10 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer ...@@ -49,6 +57,10 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
private final SysDeptMapper sysDeptMapper; private final SysDeptMapper sysDeptMapper;
private final SysUserMapper sysUserMapper;
private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
@Override @Override
public UserPermissionVo getUserPermissionVo(String projectNo, String userId) { public UserPermissionVo getUserPermissionVo(String projectNo, String userId) {
UserPermissionVo authority = new UserPermissionVo(); UserPermissionVo authority = new UserPermissionVo();
...@@ -72,6 +84,7 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer ...@@ -72,6 +84,7 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
public Map<String, UserPermissionVo> getUserPermissionFlush(String userId) { public Map<String, UserPermissionVo> getUserPermissionFlush(String userId) {
UserPermissionVo authority; UserPermissionVo authority;
Map<String, UserPermissionVo> tPermissionMapByProject = new HashMap<>(); Map<String, UserPermissionVo> tPermissionMapByProject = new HashMap<>();
ArrayList permissionMapByProject = new ArrayList<>();
if (Common.isEmpty(userId)) { if (Common.isEmpty(userId)) {
log.error("获取用户权限失败,缺少用户信息"); log.error("获取用户权限失败,缺少用户信息");
return tPermissionMapByProject; return tPermissionMapByProject;
...@@ -100,6 +113,9 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer ...@@ -100,6 +113,9 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
continue; continue;
}else { }else {
authority = new UserPermissionVo(); authority = new UserPermissionVo();
authority.setProjectNo(projectNoStr);
authority.setProjectName(tPermissionInfo.getProjectName());
authority.setUserType(tPermissionInfo.getUserType());
if (CommonConstants.ZERO_STRING.equals(tPermissionInfo.getPermissionsType())) { if (CommonConstants.ZERO_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 全部数据 // 全部数据
authority.setHaveAll(true); authority.setHaveAll(true);
...@@ -181,4 +197,166 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer ...@@ -181,4 +197,166 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
return tPermissionMapByProject; return tPermissionMapByProject;
} }
@Override
public List<UserPermissionVo> getUserPermission(String userId) {
UserPermissionVo authority;
List permissionMapByProject = new ArrayList<>();
if (Common.isEmpty(userId)) {
log.error("获取用户权限失败,缺少用户信息");
return permissionMapByProject;
}
String deptIdSplit = "";
Long deptId = 0L;
Set<String> permissionDbSet = null;
List<SysUserDeptPermission> tPermissionInfoList = baseMapper.getUserDeptPermissionList(userId);
if (Common.isEmpty(tPermissionInfoList)) {
log.error("获取用户权限失败,未获取到用户在项目下的权限信息>>用户"+userId);
return permissionMapByProject;
}
Set<String> projectNoSet = tPermissionInfoList.stream().map(SysUserDeptPermission::getProjectNo).collect(Collectors.toSet());
Map<String, SysUserDeptPermission> tPermissionMap = tPermissionInfoList.stream().collect(Collectors.toMap(SysUserDeptPermission::getProjectNo, v -> v, (v1, v2) -> v1));
SysUserDeptPermission tPermissionInfo;
SysDept sysDept;
List<SysDept> sysDeptList;
String[] ancestorsSplit;
for (String projectNoStr : projectNoSet) {
tPermissionInfo = tPermissionMap.get(projectNoStr);
// 没有配置部门
if(Common.isEmpty(tPermissionInfo)){
authority = new UserPermissionVo();
log.error("获取用户权限失败,该用户指定项目权限{}", userId);
authority.setHaveAll(false);
continue;
}else {
authority = new UserPermissionVo();
authority.setProjectNo(projectNoStr);
authority.setProjectName(tPermissionInfo.getProjectName());
authority.setUserType(tPermissionInfo.getUserType());
if (CommonConstants.ZERO_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 全部数据
authority.setHaveAll(true);
// redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else if (CommonConstants.THREE_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 指定部门权限
if (Common.isNotKong(tPermissionInfo.getAppointDeptScope())) {
authority.setHaveAll(false);
String[] appointDeptIdArr = tPermissionInfo.getAppointDeptScope().split(CommonConstants.COMMA_STRING);
Set<String> appointDeptIdSet = Arrays.stream(appointDeptIdArr).collect(Collectors.toSet());
authority.setDepartIdSet(appointDeptIdSet);
authority.setUserId(userId);
// redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else {
log.error("获取用户权限失败,该用户指定部门权限为空{}", userId);
authority.setHaveAll(false);
continue;
}
} else {
sysDept = sysDeptMapper.selectById(tPermissionInfo.getDeptId());
if (Common.isNotKong(sysDept)) {
String ancestors = sysDept.getAncestors();
if (Common.isEmpty(ancestors)) {
log.error("获取用户权限失败,该用户所属部门关系为空{}", sysDept);
authority.setHaveAll(false);
continue;
}
ancestorsSplit = ancestors.split(CommonConstants.COMMA_STRING);
if (CommonConstants.ONE_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 二级部门及以下
if (ancestorsSplit.length == 2) {
deptIdSplit = ancestorsSplit[0] + CommonConstants.COMMA_STRING + ancestorsSplit[1] + CommonConstants.COMMA_STRING + sysDept.getDeptId();
deptId = sysDept.getDeptId();
} else if (ancestorsSplit.length > 2) {
deptIdSplit = ancestorsSplit[0] + CommonConstants.COMMA_STRING + ancestorsSplit[1] + CommonConstants.COMMA_STRING + ancestorsSplit[2];
deptId = Long.valueOf(ancestorsSplit[2]);
} else {
log.error("获取用户权限失败,该用户所在部门为顶级部门,未查到权限{}", sysDept);
authority.setHaveAll(false);
continue;
}
} else if (CommonConstants.TWO_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 本级部门及以下
deptIdSplit = ancestors + CommonConstants.COMMA_STRING + sysDept.getDeptId();
deptId = sysDept.getDeptId();
}
// 获取指定部门及下级部门的数据
sysDeptList = sysDeptMapper.getDeptListByDeptId(deptIdSplit, deptId);
if (Common.isNotKong(sysDeptList)) {
permissionDbSet = new HashSet<>();
for(SysDept deptOne : sysDeptList){
permissionDbSet.add(String.valueOf(deptOne.getDeptId()));
}
authority.setHaveAll(false);
authority.setDepartIdSet(permissionDbSet);
authority.setUserId(userId);
//redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else {
log.error("获取用户权限失败,该用户部门及以下权限为空{}", userId);
authority.setHaveAll(false);
continue;
}
} else {
log.error("获取用户权限失败,该用户所属部门不存在{}", userId);
authority.setHaveAll(false);
continue;
}
}
}
// 赋值用户在不同项目下的权限
permissionMapByProject.add(authority);
}
return permissionMapByProject;
}
@Override
public R<Boolean> saveAsso(UserCspVO entity) {
SysUser user = new SysUser();
user.setUserGroup("0");
user.setDeptId(entity.getDeptId());
user.setDeptName(entity.getDeptName());
user.setType(CommonConstants.FOUR_STRING);
user.setDelFlag(CommonConstants.STATUS_NORMAL);
user.setSystemFlag(CommonConstants.ONE_STRING);
user.setUsername(entity.getUsername());
user.setNickname(entity.getNickname());
user.setPhone(entity.getPhone());
user.setLockFlag(CommonConstants.STATUS_NORMAL);
if (Common.isNotNull(user.getPassword())){
user.setPassword(ENCODER.encode("123456"));
}
user.setPost("客户服务平台用户");
user.setLockFlag(CommonConstants.STATUS_NORMAL);
user.setDelFlag(CommonConstants.STATUS_NORMAL);
user.setCreateTime(LocalDateTime.now());
sysUserMapper.insert(user);
if (Common.isNotNull(user) && Common.isNotNull(user.getUserId())){
SysUserDeptPermission permission = new SysUserDeptPermission();
permission.setDeptId(entity.getDeptId());
permission.setUserId(user.getUserId());
permission.setClient("yifu-csp");
permission.setProjectName(entity.getProjectName());
permission.setProjectNo(entity.getProjectNo());
permission.setUserType(entity.getUserType());
baseMapper.insert(permission);
if (Common.isNotNull(permission) && Common.isNotNull(permission.getUserId())){
return R.ok(Boolean.TRUE,CommonConstants.SAVE_SUCCESS);
}
}
return R.failed(Boolean.FALSE,CommonConstants.SAVE_FAILED);
}
@Override
public R<Boolean> updateByIdAsso(UserCspVO entity) {
return null;
}
@Override
public R<Boolean> removeUserDeptPermissionById(int userId) {
int res = baseMapper.delete(Wrappers.<SysUserDeptPermission>query().lambda().eq(SysUserDeptPermission::getUserId,userId));
if (res > CommonConstants.ZERO_INT){
return R.ok(Boolean.TRUE,CommonConstants.RESULT_DATA_SUCESS);
}
return R.failed(Boolean.FALSE,CommonConstants.RESULT_DATA_FAIL);
}
} }
...@@ -36,6 +36,7 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.util.ParamResolver; ...@@ -36,6 +36,7 @@ import com.yifu.cloud.plus.v1.yifu.admin.api.util.ParamResolver;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.*; import com.yifu.cloud.plus.v1.yifu.admin.api.vo.*;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.*; import com.yifu.cloud.plus.v1.yifu.admin.mapper.*;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysMenuService; import com.yifu.cloud.plus.v1.yifu.admin.service.SysMenuService;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserDeptPermissionService;
import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserService; import com.yifu.cloud.plus.v1.yifu.admin.service.SysUserService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainListVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
...@@ -100,6 +101,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl ...@@ -100,6 +101,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private final PermissionDaprUtil permissionDaprUtil; private final PermissionDaprUtil permissionDaprUtil;
private final SysUserDeptPermissionService userDeptPermissionService;
@Value("${hrms.id}") @Value("${hrms.id}")
private String hcmId; private String hcmId;
...@@ -186,6 +189,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl ...@@ -186,6 +189,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
userInfo.setSettleIdList(sdRes.getData().getDeptIds()); userInfo.setSettleIdList(sdRes.getData().getDeptIds());
} }
userInfo.setClientRoleMap(clientRoleMap); userInfo.setClientRoleMap(clientRoleMap);
// 客户服务平台的项目权限及对应项目的数据权限
userInfo.setCspPermMap(userDeptPermissionService.getUserPermission(sysUser.getUserId()));
return userInfo; return userInfo;
} }
/** /**
......
...@@ -6,8 +6,8 @@ spring: ...@@ -6,8 +6,8 @@ spring:
activate: activate:
on-profile: test on-profile: test
redis: redis:
host: 192.168.1.65 host: 127.0.0.1
port: 22379 port: 6379
password: '@yf_2017' password: '@yf_2017'
datasource: datasource:
type: com.zaxxer.hikari.HikariDataSource type: com.zaxxer.hikari.HikariDataSource
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
<result column="user_id" property="userId"/> <result column="user_id" property="userId"/>
<result column="dept_id" property="deptId"/> <result column="dept_id" property="deptId"/>
<result column="project_no" property="projectNo"/> <result column="project_no" property="projectNo"/>
<result column="project_name" property="projectName"/>
<result column="client" property="client"/> <result column="client" property="client"/>
<result column="user_type" property="userType"/> <result column="user_type" property="userType"/>
<result column="permissions_type" property="permissionsType"/> <result column="permissions_type" property="permissionsType"/>
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
a.user_id, a.user_id,
a.dept_id, a.dept_id,
a.project_no, a.project_no,
a.project_name,
a.client, a.client,
a.user_type, a.user_type,
a.permissions_type, a.permissions_type,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment