Merge remote-tracking branch 'origin/1007-认证人和组织权限需要匹配,只显示启用了该组织进项功能的人' into release

release
wangrangrang 2 years ago
commit 81d4cb8d05
  1. 9
      dxhy-admin/src/main/java/com/dxhy/admin/sys/dao/SysUserDao.java
  2. 11
      dxhy-admin/src/main/java/com/dxhy/admin/sys/model/UserModel.java
  3. 39
      dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java
  4. 26
      dxhy-admin/src/main/resources/mapper/sys/SysUserDao.xml

@ -86,6 +86,15 @@ public interface SysUserDao extends BaseMapper<SysUserEntity> {
*/
List<UserModel> getUserCompanyList(@Param("company") String company);
/**
* 根据公司编码获取税号
*
* @param
*
* @return 税号
*/
List<UserModel> getUserAuthList(@Param("deptId") String deptId,@Param("deptIdList")List<Long> deptIdList);
/**
* 根据邮箱获取用户信息
*

@ -2,6 +2,8 @@ package com.dxhy.admin.sys.model;
import lombok.Data;
import java.util.List;
/**
* @author jiaohongyang焦红阳
* @date 2020-11-11
@ -22,4 +24,13 @@ public class UserModel {
* 登录名
*/
private String loginname;
/**
* 登录名
*/
private String deptId;
private String dId;
private List<String> deptIdList;
}

@ -8,6 +8,7 @@ import javax.annotation.Resource;
import com.dxhy.common.util.StringHelper;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -339,7 +340,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
user.setUserOrg(userOrgEntity);
user.setUserBusiness(businessList);
user.setCompanyCodes(companyEntitys);
user.setUserModels(this.getUserCompanyList(userEntity.getCompany()));
List<UserModel> userModels = setUserModels(userEntity, userId);
user.setUserModels(userModels);
// 刷新菜单缓存处理
this.setMetnuRedis(userEntity.getUserId());
user.setEmailCodes(emailCodes);
@ -350,10 +352,45 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
return user;
}
@NotNull
private List<UserModel> setUserModels(SysUserEntity userEntity, long userId) {
List<SysDeptEntity> deptEntities = sysUserOrgService.queryOrgCodes(userId);
List<Long> deptIds = deptEntities.stream().map(SysDeptEntity::getDeptId).collect(Collectors.toList());
List<UserModel> models = this.getUserAuthList(String.valueOf(userId),deptIds);
models.forEach(e->e.setDeptIdList(Arrays.asList(e.getDId().split(","))));
//手动添加Admin
List<String> depts = new ArrayList<>();
deptIds.forEach(e->depts.add(String.valueOf(e)));
if (models.stream().noneMatch(e -> "admin".equals(e.getUsername()))) {
UserModel userModel = new UserModel();
userModel.setUsername("admin");
userModel.setDeptIdList(depts);
models.add(userModel);
}else {
for (UserModel model : models) {
if ("admin".equals(model.getUsername())){
model.setDeptIdList(depts);
}
}
}
log.info("models={}",models);
return models;
}
private List<UserModel> getUserCompanyList(String company) {
return baseMapper.getUserCompanyList(company);
}
private List<UserModel> getUserAuthList(String deptId,List<Long> deptIds) {
return baseMapper.getUserAuthList(deptId,deptIds);
}
private MenuModel setMetnuRedis(long userId) {
MenuModel menuModel = new MenuModel();
List<SysMenuEntity> userMenuList = sysMenuService.getUserMenuList(userId);

@ -59,9 +59,29 @@
<select id="getUserCompanyList" resultType="com.dxhy.admin.sys.model.UserModel">
SELECT user_id, username, loginname
FROM sys_user
WHERE company = #{company}
SELECT
u.user_id,
u.username,
u.loginname,
u.dept_id,
FROM
sys_user u
WHERE u.company = #{company}
</select>
<select id="getUserAuthList" resultType="com.dxhy.admin.sys.model.UserModel">
select u.user_id,
u.username,
u.loginname,
GROUP_CONCAT(d.dept_id) as dId,
d.dept_id
from sys_user u inner join sys_user_org uo on u.user_id = uo.userid
inner join sys_dept d on d.dept_id = uo.dept_id
where d.dept_id in
<foreach collection="deptIdList" item="deptId" open="(" close=")" separator=",">
#{deptId}
</foreach>
group by u.user_id
</select>
<select id="queryUserByEmail" resultType="com.dxhy.admin.sys.entity.SysUserEntity">

Loading…
Cancel
Save