认证清单-获取当前用户拥有的角色列表接口开发。增加责任人、接口人角色。
This commit is contained in:
+3
@@ -12,6 +12,9 @@ public enum ProjectRoleEnum {
|
|||||||
ADMIN("系统管理员","12","admin"),
|
ADMIN("系统管理员","12","admin"),
|
||||||
VIEWER("Viewer","13","Viewer"),
|
VIEWER("Viewer","13","Viewer"),
|
||||||
BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator"),
|
BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator"),
|
||||||
|
// 项目库-认证清单使用。
|
||||||
|
INTERFACE_PERSON("接口人","20","Interface person"),
|
||||||
|
PERSON_LIABLE("责任人","21","Person liable"),
|
||||||
;
|
;
|
||||||
|
|
||||||
String name;
|
String name;
|
||||||
|
|||||||
+13
-5
@@ -2,18 +2,19 @@ package com.jero.modules.project.controller;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
|
|
||||||
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
||||||
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.modules.system.entity.SysRole;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -179,17 +180,24 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
|
|||||||
return this.projectCertificationInventoryEOService.batchAdd(json);
|
return this.projectCertificationInventoryEOService.batchAdd(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AutoLog(value = "认证虚拟清单详情表-批量设置")
|
@AutoLog(value = "项目库-认证清单表-批量设置")
|
||||||
@ApiOperation(value="认证虚拟清单详情表-批量设置", notes="认证虚拟清单详情表-批量设置")
|
@ApiOperation(value="项目库-认证清单表-批量设置", notes="项目库-认证清单表-批量设置")
|
||||||
@PostMapping(value = "/setBatch")
|
@PostMapping(value = "/setBatch")
|
||||||
public Result<?> setBatch(@RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
|
public Result<?> setBatch(@RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
|
||||||
return this.projectCertificationInventoryEOService.setBatch(projectCertificationInventoryEO);
|
return this.projectCertificationInventoryEOService.setBatch(projectCertificationInventoryEO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AutoLog(value = "认证虚拟清单详情表-studio发布")
|
@AutoLog(value = "项目库-认证清单表-studio发布")
|
||||||
@ApiOperation(value="认证虚拟清单详情表-studio发布", notes="认证虚拟清单详情表-studio发布")
|
@ApiOperation(value="项目库-认证清单表-studio发布", notes="项目库-认证清单表-studio发布")
|
||||||
@PostMapping(value = "/issue")
|
@PostMapping(value = "/issue")
|
||||||
public Result<?> issue(@RequestBody JSONObject json) {
|
public Result<?> issue(@RequestBody JSONObject json) {
|
||||||
return this.projectCertificationInventoryEOService.issue(json);
|
return this.projectCertificationInventoryEOService.issue(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "项目库-认证清单表-当前登录用户角色")
|
||||||
|
@ApiOperation(value="项目库-认证清单表-当前登录用户角色", notes="项目库-认证清单表-当前登录用户角色")
|
||||||
|
@GetMapping(value = "/getRoleByUserId")
|
||||||
|
public Result<List<SysRole>> getRoleByUserId(@RequestParam Map<String,Object> params) {
|
||||||
|
return this.projectCertificationInventoryEOService.getRoleByUserId(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -5,10 +5,12 @@ import com.jero.common.api.vo.Result;
|
|||||||
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.jero.modules.system.entity.SysCategory;
|
import com.jero.modules.system.entity.SysCategory;
|
||||||
|
import com.jero.modules.system.entity.SysRole;
|
||||||
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
|
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
|
||||||
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
|
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 项目库-认证清单表
|
* @Description: 项目库-认证清单表
|
||||||
@@ -98,4 +100,6 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
|
|||||||
void addProcessInfoEO(ProcessInfoEO processInfoEO, String projectLibraryId);
|
void addProcessInfoEO(ProcessInfoEO processInfoEO, String projectLibraryId);
|
||||||
|
|
||||||
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, ProcessInfoEO processInfoEO);
|
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, ProcessInfoEO processInfoEO);
|
||||||
|
|
||||||
|
Result<List<SysRole>> getRoleByUserId(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|||||||
+167
-4
@@ -6,16 +6,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
import com.jero.common.util.DateUtils;
|
import com.jero.common.util.DateUtils;
|
||||||
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
||||||
import com.jero.modules.project.entity.ProjectLibraryBase;
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||||
import com.jero.modules.project.enums.*;
|
import com.jero.modules.project.enums.*;
|
||||||
|
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||||
|
import com.jero.modules.system.enums.ProjectRoleEnum;
|
||||||
import com.jero.modules.project.mapper.ProjectCertificationInventoryEOMapper;
|
import com.jero.modules.project.mapper.ProjectCertificationInventoryEOMapper;
|
||||||
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
||||||
import com.jero.modules.project.service.IProjectLibraryBaseService;
|
import com.jero.modules.project.service.IProjectLibraryBaseService;
|
||||||
import com.jero.modules.system.entity.SysCategory;
|
import com.jero.modules.system.entity.SysCategory;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
|
import com.jero.modules.system.entity.SysRole;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
|
import com.jero.modules.system.mapper.SysRoleMapper;
|
||||||
import com.jero.modules.system.service.ISysCategoryService;
|
import com.jero.modules.system.service.ISysCategoryService;
|
||||||
import com.jero.modules.system.service.ISysDictItemService;
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
@@ -26,16 +32,14 @@ import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum;
|
|||||||
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
|
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
|
||||||
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
|
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
|
||||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -67,6 +71,10 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
private IProcessInfoEOService processInfoEOService;
|
private IProcessInfoEOService processInfoEOService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProcessInfoDetailEOService processInfoDetailEOService;
|
private IProcessInfoDetailEOService processInfoDetailEOService;
|
||||||
|
@Autowired
|
||||||
|
private IProjectRelatedPersonnelService projectRelatedPersonnelService;
|
||||||
|
@Autowired
|
||||||
|
private SysRoleMapper sysRoleMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
@@ -365,4 +373,159 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
this.processInfoDetailEOService.remove(deleteDetailWrap);
|
this.processInfoDetailEOService.remove(deleteDetailWrap);
|
||||||
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
|
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<List<SysRole>> getRoleByUserId(Map<String, Object> params) {
|
||||||
|
Result<List<SysRole>> result = new Result<>();
|
||||||
|
String projectLibraryId = (String) params.get("projectLibraryId");
|
||||||
|
String cut = (String) params.get("cut");
|
||||||
|
|
||||||
|
List<SysRole> sysRoles = new LinkedList<>();
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
|
||||||
|
//项目详情中取R&H Studio和认证工程师
|
||||||
|
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseService.queryById(projectLibraryId,null);
|
||||||
|
String certificationEngineerName = "";
|
||||||
|
if(projectLibraryBases.size() != 0){
|
||||||
|
certificationEngineerName = projectLibraryBases.get(0).getCertificationEngineerName();
|
||||||
|
String studioEngineerName = projectLibraryBases.get(0).getStudioEngineerName();
|
||||||
|
// studio
|
||||||
|
if(StringUtils.isNotBlank(studioEngineerName) && studioEngineerName.equals(loginUser.getUsername())){
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
sysRole.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.STUDIO_ENGINEER.getName());
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.STUDIO_ENGINEER.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 认证
|
||||||
|
if((StringUtils.isNotBlank(certificationEngineerName) && certificationEngineerName.contains(loginUser.getUsername()))){
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
sysRole.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getName());
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getCode());
|
||||||
|
}
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 法规
|
||||||
|
//相关人员名单中取法规工程师
|
||||||
|
List<ProjectRelatedPersonnel> projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null);
|
||||||
|
List<String> lawEngineerNameList = new ArrayList<>();
|
||||||
|
if(projectRelatedPersonnels.size() != 0){
|
||||||
|
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
|
||||||
|
String lawEngineerName = projectRelatedPersonnel.getLawEngineerName();
|
||||||
|
if(StringUtils.isNotBlank(lawEngineerName)){
|
||||||
|
lawEngineerName = lawEngineerName.replaceAll(" ","");
|
||||||
|
lawEngineerNameList.addAll(Arrays.asList(lawEngineerName.split(",")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(lawEngineerNameList.contains(loginUser.getUsername())){
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
sysRole.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.REGULATI_ENGINEER.getName());
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.REGULATI_ENGINEER.getCode());
|
||||||
|
}
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 接口人
|
||||||
|
QueryWrapper<ProjectCertificationInventoryEO> querySdtCountWrap = new QueryWrapper<>();
|
||||||
|
querySdtCountWrap.lambda().eq(ProjectCertificationInventoryEO::getSdt,loginUser.getId());
|
||||||
|
Integer sdtCount = this.baseMapper.selectCount(querySdtCountWrap);
|
||||||
|
if(sdtCount > 0){
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
sysRole.setRoleCode(ProjectRoleEnum.INTERFACE_PERSON.getValue());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getName());
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getCode());
|
||||||
|
}
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 责任人
|
||||||
|
QueryWrapper<ProjectCertificationInventoryEO> queryDutyPersonCountWrap = new QueryWrapper<>();
|
||||||
|
queryDutyPersonCountWrap.lambda().eq(ProjectCertificationInventoryEO::getDutyPerson,loginUser.getId());
|
||||||
|
Integer dutyPersonCount = this.baseMapper.selectCount(queryDutyPersonCountWrap);
|
||||||
|
if(dutyPersonCount > 0){
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
sysRole.setRoleCode(ProjectRoleEnum.PERSON_LIABLE.getValue());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getName());
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getCode());
|
||||||
|
}
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 领导、系统管理员、Viewer、品牌管理员 处理
|
||||||
|
List<SysRole> roleList = this.sysRoleMapper.getRoleByUserId(loginUser.getId());
|
||||||
|
if (roleList.size() != 0) {
|
||||||
|
List<SysRole> manager = roleList.stream().filter(e -> ProjectRoleEnum.MANAGER.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
|
||||||
|
List<SysRole> admin = roleList.stream().filter(e -> ProjectRoleEnum.ADMIN.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
|
||||||
|
List<SysRole> Viewer = roleList.stream().filter(e -> ProjectRoleEnum.VIEWER.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
|
||||||
|
List<SysRole> brandAdministrator = roleList.stream().filter(e -> ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
|
||||||
|
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||||
|
if (manager.size() != 0) {
|
||||||
|
manager.get(0).setRoleCode(ProjectRoleEnum.MANAGER.getValue());
|
||||||
|
sysRoles.addAll(manager);
|
||||||
|
}
|
||||||
|
if (admin.size() != 0) {
|
||||||
|
admin.get(0).setRoleCode(ProjectRoleEnum.ADMIN.getValue());
|
||||||
|
sysRoles.addAll(admin);
|
||||||
|
}
|
||||||
|
if (Viewer.size() != 0) {
|
||||||
|
Viewer.get(0).setRoleCode(ProjectRoleEnum.VIEWER.getValue());
|
||||||
|
sysRoles.addAll(Viewer);
|
||||||
|
}
|
||||||
|
if (brandAdministrator.size() != 0) {
|
||||||
|
brandAdministrator.get(0).setRoleCode(ProjectRoleEnum.BRAND_ADMINISTRATOR.getValue());
|
||||||
|
sysRoles.addAll(brandAdministrator);
|
||||||
|
}
|
||||||
|
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
if (manager.size() != 0) {
|
||||||
|
manager.get(0).setRoleCode(ProjectRoleEnum.MANAGER.getValue());
|
||||||
|
manager.get(0).setRoleName(ProjectRoleEnum.MANAGER.getCode());
|
||||||
|
sysRoles.addAll(manager);
|
||||||
|
}
|
||||||
|
if (admin.size() != 0) {
|
||||||
|
admin.get(0).setRoleCode(ProjectRoleEnum.ADMIN.getValue());
|
||||||
|
admin.get(0).setRoleName(ProjectRoleEnum.ADMIN.getCode());
|
||||||
|
sysRoles.addAll(admin);
|
||||||
|
}
|
||||||
|
if (Viewer.size() != 0) {
|
||||||
|
Viewer.get(0).setRoleCode(ProjectRoleEnum.VIEWER.getCode());
|
||||||
|
Viewer.get(0).setRoleName(ProjectRoleEnum.VIEWER.getCode());
|
||||||
|
sysRoles.addAll(Viewer);
|
||||||
|
}
|
||||||
|
if (brandAdministrator.size() != 0) {
|
||||||
|
brandAdministrator.get(0).setRoleCode(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode());
|
||||||
|
brandAdministrator.get(0).setRoleName(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode());
|
||||||
|
sysRoles.addAll(brandAdministrator);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sysRoles==null||sysRoles.size()<=0) {
|
||||||
|
result.error500("未找到角色信息");
|
||||||
|
}else {
|
||||||
|
result.setResult(sysRoles);
|
||||||
|
result.setSuccess(true);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user