用户viewer角色时添加品牌跟责任领域

This commit is contained in:
CD
2022-11-15 16:21:13 +08:00
parent 1f29b0bf36
commit ea4d8bc82f
20 changed files with 161 additions and 95 deletions
@@ -0,0 +1,29 @@
package com.jero.modules.system.controller;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.system.entity.ProjectUserBrand;
import com.jero.modules.system.service.IProjectUserBrandService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description: 用户品牌表
* @Author: jero-boot
* @Date: 2022-11-15
* @Version: V1.0
*/
@Api(tags="用户品牌表")
@RestController
@RequestMapping("/project/projectUserBrand")
@Slf4j
public class ProjectUserBrandController extends JeroController<ProjectUserBrand, IProjectUserBrandService> {
@Autowired
private IProjectUserBrandService projectUserBrandService;
}
@@ -0,0 +1,29 @@
package com.jero.modules.system.controller;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.system.entity.ProjectUserDutyTerritory;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description: 用户责任领域
* @Author: jero-boot
* @Date: 2022-11-15
* @Version: V1.0
*/
@Api(tags="用户责任领域")
@RestController
@RequestMapping("/project/projectUserDutyTerritory")
@Slf4j
public class ProjectUserDutyTerritoryController extends JeroController<ProjectUserDutyTerritory, IProjectUserDutyTerritoryService> {
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
}
@@ -41,6 +41,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.ExcelImportUtil;
@@ -111,6 +112,12 @@ public class SysUserController {
@Resource
private BaseCommonService baseCommonService;
@Autowired
private IProjectUserBrandService projectUserBrandService;
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
/**
* 获取用户列表数据
*
@@ -227,6 +234,11 @@ public class SysUserController {
Result<SysUser> result = new Result<SysUser>();
try {
String ids = jsonObject.getString("ids");
String roles = jsonObject.getString("selectedroles");
String dutyTerritories = jsonObject.getString("dutyTerritories");
String brands = jsonObject.getString("brands");
List<ProjectUserBrand> projectUserBrandList = new ArrayList<>();
List<ProjectUserDutyTerritory> projectUserDutyTerritoryList = new ArrayList<>();
List<String> idList = Arrays.asList(ids.split(","));
for (String id : idList) {
SysUser sysUser = sysUserService.getById(id);
@@ -238,11 +250,20 @@ public class SysUserController {
user.setId(id);
user.setUpdateTime(new Date());
String roles = jsonObject.getString("selectedroles");
sysUserService.editUserWithRole(user, roles);
if (ObjectUtils.isNotEmpty(roles)) {
//如果角色包含viewer,设置责任领域权限和品牌权限
sysUserService.setBrandAndDutyTerritory(roles, dutyTerritories, brands, projectUserBrandList, projectUserDutyTerritoryList, id);
}
result.success("修改成功!");
}
}
if (ObjectUtils.isNotEmpty(projectUserBrandList)) {
projectUserBrandService.saveBatch(projectUserBrandList);
}
if (ObjectUtils.isNotEmpty(projectUserDutyTerritoryList)) {
projectUserDutyTerritoryService.saveBatch(projectUserDutyTerritoryList);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -1,4 +1,4 @@
package com.jero.modules.project.entity;
package com.jero.modules.system.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -1,4 +1,4 @@
package com.jero.modules.project.entity;
package com.jero.modules.system.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -10,6 +10,7 @@ public enum ProjectRoleEnum {
REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer"),
MANAGER("领导角色","11","R&H Manager"),
ADMIN("系统管理员","12","admin"),
VIEWER("Viewer","","Viewer"),
;
String name;
@@ -1,9 +1,6 @@
package com.jero.modules.project.mapper;
package com.jero.modules.system.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProjectUserBrand;
import com.jero.modules.system.entity.ProjectUserBrand;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
@@ -1,9 +1,6 @@
package com.jero.modules.project.mapper;
package com.jero.modules.system.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProjectUserDutyTerritory;
import com.jero.modules.system.entity.ProjectUserDutyTerritory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.ProjectUserBrandMapper">
<resultMap id="ProjectUserBrandResultMap" type="com.jero.modules.project.entity.ProjectUserBrand">
<mapper namespace="com.jero.modules.system.mapper.ProjectUserBrandMapper">
<resultMap id="ProjectUserBrandResultMap" type="com.jero.modules.system.entity.ProjectUserBrand">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="brand_type" property="brandType" />
</resultMap>
</mapper>
</mapper>
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.ProjectUserDutyTerritoryMapper">
<resultMap id="ProjectUserDutyTerritoryResultMap" type="com.jero.modules.project.entity.ProjectUserDutyTerritory">
<mapper namespace="com.jero.modules.system.mapper.ProjectUserDutyTerritoryMapper">
<resultMap id="ProjectUserDutyTerritoryResultMap" type="com.jero.modules.system.entity.ProjectUserDutyTerritory">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="duty_territory" property="dutyTerritory" />
</resultMap>
</mapper>
</mapper>
@@ -1,6 +1,6 @@
package com.jero.modules.project.service;
package com.jero.modules.system.service;
import com.jero.modules.project.entity.ProjectUserBrand;
import com.jero.modules.system.entity.ProjectUserBrand;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -1,6 +1,6 @@
package com.jero.modules.project.service;
package com.jero.modules.system.service;
import com.jero.modules.project.entity.ProjectUserDutyTerritory;
import com.jero.modules.system.entity.ProjectUserDutyTerritory;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -8,9 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysUserCacheInfo;
import com.jero.modules.system.entity.PPEmployee;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.entity.*;
import com.jero.modules.system.model.DepartIdModel;
import com.jero.modules.system.model.SysUserSysDepartModel;
import org.springframework.transaction.annotation.Transactional;
@@ -301,4 +299,6 @@ public interface ISysUserService extends IService<SysUser> {
* @return
*/
boolean isRegulationOwner(LoginUser currentUser);
void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List<ProjectUserBrand> projectUserBrandList, List<ProjectUserDutyTerritory> projectUserDutyTerritoryList, String userId);
}
@@ -1,11 +1,11 @@
package com.jero.modules.project.service.impl;
package com.jero.modules.system.service.impl;
import com.jero.modules.project.entity.ProjectUserBrand;
import com.jero.modules.project.mapper.ProjectUserBrandMapper;
import com.jero.modules.project.service.IProjectUserBrandService;
import com.jero.modules.system.entity.ProjectUserBrand;
import com.jero.modules.system.mapper.ProjectUserBrandMapper;
import com.jero.modules.system.service.IProjectUserBrandService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
@@ -1,11 +1,11 @@
package com.jero.modules.project.service.impl;
package com.jero.modules.system.service.impl;
import com.jero.modules.project.entity.ProjectUserDutyTerritory;
import com.jero.modules.project.mapper.ProjectUserDutyTerritoryMapper;
import com.jero.modules.project.service.IProjectUserDutyTerritoryService;
import com.jero.modules.system.entity.ProjectUserDutyTerritory;
import com.jero.modules.system.mapper.ProjectUserDutyTerritoryMapper;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
@@ -17,14 +17,19 @@ import com.jero.common.util.oConvertUtils;
import com.jero.modules.base.service.BaseCommonService;
import com.jero.modules.system.entity.*;
import com.jero.modules.system.enums.PPSyncEnum;
import com.jero.modules.system.enums.ProjectRoleEnum;
import com.jero.modules.system.enums.RoleEnum;
import com.jero.modules.system.mapper.*;
import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.service.IProjectUserBrandService;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import com.jero.modules.system.service.ISysRoleService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysUserDepVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
@@ -67,8 +72,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private SysDepartRoleMapper sysDepartRoleMapper;
@Resource
private BaseCommonService baseCommonService;
@Autowired
private ISysRoleService sysRoleService;
@Autowired
private IProjectUserBrandService projectUserBrandService;
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
@Override
@Override
@CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
public Result<?> resetPassword(String username, String oldpassword, String newpassword, String confirmpassword) {
SysUser user = userMapper.getUserByName(username);
@@ -698,4 +710,36 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
return result;
}
@Override
public void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List<ProjectUserBrand> projectUserBrandList, List<ProjectUserDutyTerritory> projectUserDutyTerritoryList, String userId) {
List<String> roleCodes = sysRoleService.listByIds(Arrays.asList(roles.split(","))).stream().map(SysRole::getRoleCode).collect(Collectors.toList());
if (roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) {
//先删后加
QueryWrapper<ProjectUserBrand> brandDelWrapper = new QueryWrapper<>();
brandDelWrapper.eq("user_id", userId);
projectUserBrandService.remove(brandDelWrapper);
QueryWrapper<ProjectUserDutyTerritory> dutyTerritoryDelWrapper = new QueryWrapper<>();
dutyTerritoryDelWrapper.eq("user_id", userId);
projectUserDutyTerritoryService.remove(dutyTerritoryDelWrapper);
if (ObjectUtils.isNotEmpty(dutyTerritories)) {
for (String dutyTerritory : dutyTerritories.split(",")) {
ProjectUserDutyTerritory projectUserDutyTerritory = new ProjectUserDutyTerritory();
projectUserDutyTerritory.setUserId(userId);
projectUserDutyTerritory.setDutyTerritory(dutyTerritory);
projectUserDutyTerritoryList.add(projectUserDutyTerritory);
}
}
if (ObjectUtils.isNotEmpty(brands)) {
for (String brand : brands.split(",")) {
ProjectUserBrand projectUserBrand = new ProjectUserBrand();
projectUserBrand.setUserId(userId);
projectUserBrand.setBrandType(brand);
projectUserBrandList.add(projectUserBrand);
}
}
}
}
}
@@ -1,29 +0,0 @@
package com.jero.modules.project.controller;
import com.jero.modules.project.entity.ProjectUserBrand;
import com.jero.modules.project.service.IProjectUserBrandService;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
/**
* @Description: 用户品牌表
* @Author: jero-boot
* @Date: 2022-11-15
* @Version: V1.0
*/
@Api(tags="用户品牌表")
@RestController
@RequestMapping("/project/projectUserBrand")
@Slf4j
public class ProjectUserBrandController extends JeroController<ProjectUserBrand, IProjectUserBrandService> {
@Autowired
private IProjectUserBrandService projectUserBrandService;
}
@@ -1,28 +0,0 @@
package com.jero.modules.project.controller;
import com.jero.modules.project.entity.ProjectUserDutyTerritory;
import com.jero.modules.project.service.IProjectUserDutyTerritoryService;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
/**
* @Description: 用户责任领域
* @Author: jero-boot
* @Date: 2022-11-15
* @Version: V1.0
*/
@Api(tags="用户责任领域")
@RestController
@RequestMapping("/project/projectUserDutyTerritory")
@Slf4j
public class ProjectUserDutyTerritoryController extends JeroController<ProjectUserDutyTerritory, IProjectUserDutyTerritoryService> {
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
}
@@ -135,6 +135,9 @@ public class ProjectLibraryBase implements Comparable<ProjectLibraryBase> {
@TableField(exist = false)
private List<ProjectLibraryBase> children;
//品牌
private String brand;
@Override
public int compareTo(ProjectLibraryBase o) {
return Integer.valueOf(this.projectVersion)-Integer.valueOf(o.projectVersion);//升序
@@ -20,6 +20,7 @@
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="brand" property="brand" />
</resultMap>
<sql id="select_item">
@@ -49,7 +50,8 @@
plb.explanation,
plb.software_version,
plb.sort,
plb.flag
plb.flag,
plb.brand
from project_library_base as plb
left join project_name_info as pni on plb.project_name_id=pni.id
left join sys_user as studiouser on plb.studio_engineer=studiouser.id