文档库--详情和删除修改
This commit is contained in:
+5
-3
@@ -155,9 +155,11 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteByConnectIdList(List<String> connectIdList) {
|
public void deleteByConnectIdList(List<String> connectIdList) {
|
||||||
LambdaQueryWrapper<OSSFile> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
if(connectIdList.size() != 0){
|
||||||
lambdaQueryWrapper.in(OSSFile::getConnectId,connectIdList);
|
LambdaQueryWrapper<OSSFile> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
this.remove(lambdaQueryWrapper);
|
lambdaQueryWrapper.in(OSSFile::getConnectId,connectIdList);
|
||||||
|
this.remove(lambdaQueryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -9,6 +9,7 @@ public enum FieldTypeEnum {
|
|||||||
TEXT("输入框","text"),
|
TEXT("输入框","text"),
|
||||||
LIST("下拉单选","list"),
|
LIST("下拉单选","list"),
|
||||||
LIST_MULTI("下拉多选","list_multi"),
|
LIST_MULTI("下拉多选","list_multi"),
|
||||||
|
FILE("文件","file"),
|
||||||
DATE("日期","date");
|
DATE("日期","date");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+81
-89
@@ -74,23 +74,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void deleteByIds(List<String> ids) {
|
public void deleteByIds(List<String> ids) {
|
||||||
|
|
||||||
//字段属性
|
//字段属性
|
||||||
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||||
//文件类型字段
|
//文件类型字段
|
||||||
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
|
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
|
||||||
//删除文件
|
|
||||||
|
|
||||||
//删除文件
|
//删除文件
|
||||||
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.in(BussDocumentLibraryEO::getId,ids);
|
lambdaQueryWrapper.in(BussDocumentLibraryEO::getId, ids);
|
||||||
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMaps(lambdaQueryWrapper);
|
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMaps(lambdaQueryWrapper);
|
||||||
|
|
||||||
List<String> connectIdList = new ArrayList<>();
|
List<String> connectIdList = new ArrayList<>();
|
||||||
for (OnlCgformField onlCgformField : fieldFileList) {
|
for (OnlCgformField onlCgformField : fieldFileList) {
|
||||||
String connectId = (String) mapList.get(0).get(onlCgformField.getDbFieldName());
|
String connectId = (String) mapList.get(0).get(onlCgformField.getDbFieldName());
|
||||||
if(StringUtils.isNotBlank(connectId)){
|
if (StringUtils.isNotBlank(connectId)) {
|
||||||
connectIdList.add(connectId);
|
connectIdList.add(connectId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,8 +159,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
for (OnlCgformField onlCgformField : fieldList) {
|
for (OnlCgformField onlCgformField : fieldList) {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
//单独处理发布日期和标准实施日期
|
//单独处理发布日期和标准实施日期
|
||||||
if("issue_time".equals(onlCgformField.getDbFieldName())
|
if ("issue_time".equals(onlCgformField.getDbFieldName())
|
||||||
|| "implement_time".equals(onlCgformField.getDbFieldName())){
|
|| "implement_time".equals(onlCgformField.getDbFieldName())) {
|
||||||
map.put("sort", "true");//列表排序标识
|
map.put("sort", "true");//列表排序标识
|
||||||
}
|
}
|
||||||
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
|
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
|
||||||
@@ -197,12 +194,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
|
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
|
||||||
for (OnlCgformField onlCgformField : fieldListTemp) {
|
for (OnlCgformField onlCgformField : fieldListTemp) {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
map.put("field_show_type", onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
|
mapPut(map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", onlCgformAreaTemp.getShowArea());
|
||||||
map.put("dict_field", onlCgformField.getDictField());
|
|
||||||
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
|
|
||||||
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名
|
|
||||||
map.put("db_field_en_name", onlCgformField.getDbFieldEnName());//字段英文名
|
|
||||||
map.put("area", onlCgformAreaTemp.getShowArea());//区域
|
|
||||||
map.put("field_must_input", onlCgformField.getFieldMustInput());//区域
|
map.put("field_must_input", onlCgformField.getFieldMustInput());//区域
|
||||||
result.add(map);
|
result.add(map);
|
||||||
}
|
}
|
||||||
@@ -237,77 +229,85 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
queryWrapper.eq(BussDocumentLibraryEO::getId, id);
|
queryWrapper.eq(BussDocumentLibraryEO::getId, id);
|
||||||
//通过id查询数据
|
//通过id查询数据
|
||||||
List<Map<String, Object>> dataList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
|
List<Map<String, Object>> dataList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
|
||||||
// //一下代码为查看已上传的文件(此处已经单独提出一个接口-->/sys/common/getFileInfos)
|
|
||||||
// //字段属性
|
|
||||||
// List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
|
||||||
// //文件类型字段
|
|
||||||
// List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
|
|
||||||
// for (OnlCgformField onlCgformField : fieldFileList) {
|
|
||||||
// String dbFieldName = onlCgformField.getDbFieldName();
|
|
||||||
// String value = (String) dataList.get(0).get(dbFieldName);
|
|
||||||
// if(StringUtils.isNotBlank(value)){
|
|
||||||
// List<OSSFile> fileInfos = iOSSFileService.getFileInfos(value);
|
|
||||||
// int a = 0;
|
|
||||||
// if(fileInfos.size() != 0){
|
|
||||||
// dataList.get(0).put(dbFieldName +"_file",fileInfos);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //区域管理
|
//区域管理
|
||||||
List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList(new OnlCgformArea());
|
List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList(new OnlCgformArea());
|
||||||
//字段属性
|
//字段属性
|
||||||
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1");
|
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1");
|
||||||
|
|
||||||
if(fieldList.size() != 0){
|
if (fieldList.size() != 0) {
|
||||||
//过滤出表单字段(is_show_form-->表单是否显示0否 1是)
|
//过滤出表单字段(is_show_form-->表单是否显示0否 1是)
|
||||||
fieldList = fieldList.stream().filter(e-> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))).collect(Collectors.toList());
|
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
List<Map<String,Object>> result = new ArrayList<>();
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
for (OnlCgformArea onlCgformAreaTemp : areaList) {
|
for (OnlCgformArea onlCgformAreaTemp : areaList) {
|
||||||
Map<String,Object> mapTemp = new HashMap<>();
|
Map<String, Object> mapTemp = new HashMap<>();
|
||||||
List<Map<String,Object>> resultTemp = new ArrayList<>();
|
List<Map<String, Object>> resultTemp = new ArrayList<>();
|
||||||
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e->onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
|
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
|
||||||
for (OnlCgformField onlCgformField : fieldListTemp) {
|
for (OnlCgformField onlCgformField : fieldListTemp) {
|
||||||
//处理文件
|
//字段
|
||||||
String dbFieldName = onlCgformField.getDbFieldName();
|
String dbFieldName = onlCgformField.getDbFieldName();
|
||||||
|
//字段类型
|
||||||
|
String fieldShowType = onlCgformField.getFieldShowType();
|
||||||
String value = "";
|
String value = "";
|
||||||
if(StringUtils.contains(dbFieldName,"_time")){
|
if (FieldTypeEnum.DATE.getValue().equals(fieldShowType)) {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
value = sdf.format(dataList.get(0).get(dbFieldName));
|
if (ObjectUtils.isNotEmpty(dataList.get(0).get(dbFieldName))) {
|
||||||
}else {
|
value = sdf.format(dataList.get(0).get(dbFieldName));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
value = (String) dataList.get(0).get(dbFieldName);
|
value = (String) dataList.get(0).get(dbFieldName);
|
||||||
}
|
}
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
if(StringUtils.isNotBlank(value)){
|
//处理文件
|
||||||
List<OSSFile> fileInfos = iOSSFileService.getFileInfosByConnectId(value);
|
if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) {
|
||||||
if(fileInfos.size() != 0){
|
if (StringUtils.isNotBlank(value)) {
|
||||||
dataList.get(0).put(dbFieldName +"_file",fileInfos);
|
List<OSSFile> fileInfos = iOSSFileService.getFileInfosByConnectId(value);
|
||||||
|
//多文件处理
|
||||||
|
if (fileInfos.size() > 1) {
|
||||||
|
if (fileInfos.size() != 0) {
|
||||||
|
for (OSSFile fileInfo : fileInfos) {
|
||||||
|
Map<String, Object> mapNew = new HashMap<>();
|
||||||
|
mapNew.put("value", fileInfo);
|
||||||
|
mapPut(mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", onlCgformAreaTemp.getShowArea());
|
||||||
|
resultTemp.add(mapNew);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//单个文件处理
|
||||||
|
map.put("value", fileInfos.get(0));
|
||||||
|
mapPut(map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", onlCgformAreaTemp.getShowArea());
|
||||||
|
resultTemp.add(map);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
//处理字段类型为文件之外的字段
|
||||||
|
if (dataList.size() != 0) {
|
||||||
|
dataList.get(0).entrySet().forEach(entry -> {
|
||||||
|
if (onlCgformField.getDbFieldName().equals(entry.getKey())) {
|
||||||
|
map.put("value", entry.getValue());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mapPut(map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", onlCgformAreaTemp.getShowArea());
|
||||||
}
|
}
|
||||||
|
if (map.size() != 0) {
|
||||||
Map<String,Object> map = new HashMap<>();
|
resultTemp.add(map);
|
||||||
if(dataList.size() != 0){
|
}
|
||||||
dataList.get(0).entrySet().forEach(entry->{
|
}
|
||||||
if(onlCgformField.getDbFieldName().equals(entry.getKey())){
|
mapTemp.put(onlCgformAreaTemp.getShowArea(), resultTemp);
|
||||||
map.put("value",entry.getValue());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
map.put("field_show_type",onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
|
|
||||||
map.put("dict_field",onlCgformField.getDictField());
|
|
||||||
map.put("db_field_name",onlCgformField.getDbFieldName());//字段
|
|
||||||
map.put("db_field_txt",onlCgformField.getDbFieldTxt());//字段中文名
|
|
||||||
map.put("db_field_en_name",onlCgformField.getDbFieldEnName());//字段英文名
|
|
||||||
map.put("area",onlCgformAreaTemp.getShowArea());//区域
|
|
||||||
resultTemp.add(map);
|
|
||||||
}
|
|
||||||
mapTemp.put(onlCgformAreaTemp.getShowArea(),resultTemp);
|
|
||||||
result.add(mapTemp);
|
result.add(mapTemp);
|
||||||
}
|
}
|
||||||
return dataList;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void mapPut(Map<String, Object> map, String field_show_type, String fieldShowType2, String dict_field, String dictField, String db_field_name, String dbFieldName2, String db_field_txt, String dbFieldTxt, String db_field_en_name, String dbFieldEnName, String area, String showArea) {
|
||||||
|
map.put(field_show_type, fieldShowType2);//类型(判断是下拉还是输入框,等等)
|
||||||
|
map.put(dict_field, dictField);
|
||||||
|
map.put(db_field_name, dbFieldName2);//字段
|
||||||
|
map.put(db_field_txt, dbFieldTxt);//字段中文名
|
||||||
|
map.put(db_field_en_name, dbFieldEnName);//字段英文名
|
||||||
|
map.put(area, showArea);//区域
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -319,9 +319,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
//字段属性
|
//字段属性
|
||||||
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||||
//时间类型字段
|
//时间类型字段
|
||||||
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> "Date".equals(e.getDbType())).collect(Collectors.toList());
|
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> FieldTypeEnum.DATE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
//文件类型字段
|
//文件类型字段
|
||||||
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
|
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
|
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
|
||||||
String mustValues = getMustValues();
|
String mustValues = getMustValues();
|
||||||
//字段
|
//字段
|
||||||
@@ -384,18 +384,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
//字段属性
|
//字段属性
|
||||||
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||||
//时间类型字段
|
//时间类型字段
|
||||||
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> "Date".equals(e.getDbType())).collect(Collectors.toList());
|
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> FieldTypeEnum.DATE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
//文件类型字段
|
//文件类型字段
|
||||||
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
|
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
//一下3行代码为测试数据(暂时保留)
|
|
||||||
// LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
// queryWrapper.eq(BussDocumentLibraryEO::getId,"1");
|
|
||||||
// List<Map<String, Object>> dateList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
|
|
||||||
//字段
|
//字段
|
||||||
StringBuilder fieldsBuilder = new StringBuilder();
|
StringBuilder fieldsBuilder = new StringBuilder();
|
||||||
//数据值
|
//数据值
|
||||||
StringBuilder valuesBuilder = new StringBuilder();
|
StringBuilder valuesBuilder = new StringBuilder();
|
||||||
// for (Map.Entry<String, Object> entry : dateList.get(0).entrySet()) {
|
|
||||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
Object value = entry.getValue();
|
Object value = entry.getValue();
|
||||||
@@ -441,18 +436,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
}
|
}
|
||||||
String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1);
|
String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1);
|
||||||
String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1);
|
String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1);
|
||||||
|
|
||||||
//编辑数据采用先删除在新增的方法
|
//编辑数据采用先删除在新增的方法
|
||||||
|
|
||||||
//删除文件
|
//删除文件
|
||||||
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(BussDocumentLibraryEO::getId,(String) map.get("id"));
|
lambdaQueryWrapper.eq(BussDocumentLibraryEO::getId, (String) map.get("id"));
|
||||||
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMaps(lambdaQueryWrapper);
|
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMaps(lambdaQueryWrapper);
|
||||||
|
|
||||||
List<String> connectIdList = new ArrayList<>();
|
List<String> connectIdList = new ArrayList<>();
|
||||||
for (OnlCgformField onlCgformField : fieldFileList) {
|
for (OnlCgformField onlCgformField : fieldFileList) {
|
||||||
String connectId = (String) mapList.get(0).get(onlCgformField.getDbFieldName());
|
String connectId = (String) mapList.get(0).get(onlCgformField.getDbFieldName());
|
||||||
if(StringUtils.isNotBlank(connectId)){
|
if (StringUtils.isNotBlank(connectId)) {
|
||||||
connectIdList.add(connectId);
|
connectIdList.add(connectId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -495,7 +488,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
fieldListNew.add(fieldTemp);
|
fieldListNew.add(fieldTemp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询条件
|
//查询条件
|
||||||
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
|
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user