fix: 修改收藏品文件上传接口。
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
package com.intc.collect.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.intc.common.core.domain.R;
|
||||
import com.intc.common.core.utils.DateUtils;
|
||||
import com.intc.system.api.RemoteFileService;
|
||||
import com.intc.system.api.domain.SysFile;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.intc.common.log.annotation.Log;
|
||||
import com.intc.common.log.enums.BusinessType;
|
||||
import com.intc.common.security.annotation.RequiresPermissions;
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import com.intc.collect.domain.vo.CollectFileVo;
|
||||
import com.intc.collect.domain.dto.CollectFileDto;
|
||||
import com.intc.collect.service.ICollectFileService;
|
||||
import com.intc.common.core.web.controller.BaseController;
|
||||
import com.intc.common.core.web.domain.AjaxResult;
|
||||
import com.intc.common.core.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.intc.common.core.web.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 收藏品文件Controller
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
@Api(tags=" 收藏品文件")
|
||||
@RestController
|
||||
@RequestMapping("/collectFile")
|
||||
public class CollectFileController extends BaseController
|
||||
{
|
||||
@Resource
|
||||
private ICollectFileService collectFileService;
|
||||
|
||||
@Autowired
|
||||
private RemoteFileService remoteFileService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询收藏品文件列表
|
||||
*/
|
||||
@ApiOperation(value="查询收藏品文件列表",response = CollectFileVo.class)
|
||||
@RequiresPermissions("collect:collectFile:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(CollectFileDto collectFileDto)
|
||||
{
|
||||
startPage();
|
||||
List<CollectFileVo> list = collectFileService.selectCollectFileList(collectFileDto);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出收藏品文件列表
|
||||
*/
|
||||
@ApiOperation(value="导出收藏品文件列表")
|
||||
@RequiresPermissions("collect:collectFile:export")
|
||||
@Log(title = "收藏品文件", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, CollectFileDto collectFileDto)
|
||||
{
|
||||
List<CollectFileVo> list = collectFileService.selectCollectFileList(collectFileDto);
|
||||
ExcelUtil<CollectFileVo> util = new ExcelUtil<CollectFileVo>(CollectFileVo.class);
|
||||
util.exportExcel(response, list, "收藏品文件数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收藏品文件详细信息
|
||||
*/
|
||||
@ApiOperation(value="获取收藏品文件详细信息")
|
||||
@RequiresPermissions("collect:collectFile:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(collectFileService.selectCollectFileById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增收藏品文件
|
||||
*/
|
||||
@ApiOperation(value="新增收藏品文件")
|
||||
@RequiresPermissions("collect:collectFile:add")
|
||||
@Log(title = "收藏品文件", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CollectFile collectFile)
|
||||
{
|
||||
return toAjax(collectFileService.insertCollectFile(collectFile));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收藏品文件
|
||||
*/
|
||||
@ApiOperation(value="修改收藏品文件")
|
||||
@RequiresPermissions("collect:collectFile:edit")
|
||||
@Log(title = "收藏品文件", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CollectFile collectFile)
|
||||
{
|
||||
return toAjax(collectFileService.updateCollectFile(collectFile));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除收藏品文件
|
||||
*/
|
||||
@ApiOperation(value="删除收藏品文件")
|
||||
@RequiresPermissions("collect:collectFile:remove")
|
||||
@Log(title = "收藏品文件", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(collectFileService.deleteCollectFileByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传收藏品图片
|
||||
*/
|
||||
@ApiOperation(value="上传收藏品图片")
|
||||
@PostMapping("/uploadFile")
|
||||
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file)
|
||||
{
|
||||
R<SysFile> sysFileR = remoteFileService.upload(file);
|
||||
SysFile sysFile = sysFileR.getData();
|
||||
Map<String,String> map = new HashMap<>();
|
||||
map.put("catalog", DateUtils.datePath());
|
||||
map.put("fileName",file.getOriginalFilename());
|
||||
map.put("name",sysFile.getName());
|
||||
map.put("url",sysFile.getUrl());
|
||||
|
||||
return AjaxResult.success(map);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增配电柜图片
|
||||
*/
|
||||
@ApiOperation(value="新增收藏品图片")
|
||||
@Log(title = "收藏品图片", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/addFile")
|
||||
public AjaxResult addFile(@Validated @RequestBody CollectFile collectFile)
|
||||
{
|
||||
return toAjax(collectFileService.insertCollectFile(collectFile));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.intc.collect.domain;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.intc.common.core.annotation.Excel;
|
||||
import com.intc.common.core.web.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import javax.validation.constraints.*;
|
||||
/**
|
||||
* 收藏品文件对象 col_collect_file
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
@ApiModel("收藏品文件对象")
|
||||
@Data
|
||||
public class CollectFile extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键id */
|
||||
private Long id;
|
||||
|
||||
/** 收藏品id */
|
||||
@ApiModelProperty(value="收藏品id")
|
||||
@Excel(name = "收藏品id")
|
||||
private Long collectId;
|
||||
|
||||
/** 目录 */
|
||||
@ApiModelProperty(value="目录")
|
||||
@Excel(name = "目录")
|
||||
private String catelog;
|
||||
|
||||
/** 源文件名 */
|
||||
@ApiModelProperty(value="源文件名")
|
||||
@Excel(name = "源文件名")
|
||||
private String fileName;
|
||||
|
||||
/** 文件名 */
|
||||
@ApiModelProperty(value="文件名")
|
||||
@Excel(name = "文件名")
|
||||
private String name;
|
||||
|
||||
/** url */
|
||||
@ApiModelProperty(value="url")
|
||||
@Excel(name = "url")
|
||||
private String url;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("collectId", getCollectId())
|
||||
.append("catelog", getCatelog())
|
||||
.append("fileName", getFileName())
|
||||
.append("name", getName())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("url", getUrl())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.intc.collect.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
@@ -77,6 +79,9 @@ public class CommemorativeCoin extends BaseEntity
|
||||
/** 删除标志(0代表存在 1代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
/** 文件信息 */
|
||||
private List<CollectFile> collectFileList;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
@@ -97,6 +102,7 @@ public class CommemorativeCoin extends BaseEntity
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("remark", getRemark())
|
||||
.append("collectFileList", getCollectFileList())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.intc.collect.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
/**
|
||||
* 收藏品文件Dto对象 col_collect_file
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
@ApiModel("收藏品文件Dto对象")
|
||||
@Data
|
||||
public class CollectFileDto implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 收藏品id */
|
||||
@ApiModelProperty(value="收藏品id")
|
||||
private Long collectId;
|
||||
|
||||
/** 目录 */
|
||||
@ApiModelProperty(value="目录")
|
||||
private String catelog;
|
||||
|
||||
/** 源文件名 */
|
||||
@ApiModelProperty(value="源文件名")
|
||||
private String fileName;
|
||||
|
||||
/** 文件名 */
|
||||
@ApiModelProperty(value="文件名")
|
||||
private String name;
|
||||
|
||||
/** url */
|
||||
@ApiModelProperty(value="url")
|
||||
private String url;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.intc.collect.domain.vo;
|
||||
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import lombok.Data;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
/**
|
||||
* 收藏品文件Vo对象 col_collect_file
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
@ApiModel("收藏品文件Vo对象")
|
||||
@Data
|
||||
public class CollectFileVo extends CollectFile
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.intc.collect.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import com.intc.collect.domain.dto.CollectFileDto;
|
||||
import com.intc.collect.domain.vo.CollectFileVo;
|
||||
|
||||
/**
|
||||
* 收藏品文件Mapper接口
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
public interface CollectFileMapper
|
||||
{
|
||||
/**
|
||||
* 查询收藏品文件
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 收藏品文件
|
||||
*/
|
||||
public CollectFileVo selectCollectFileById(Long id);
|
||||
|
||||
/**
|
||||
* 查询收藏品文件列表
|
||||
*
|
||||
* @param collectFileDto 收藏品文件
|
||||
* @return 收藏品文件集合
|
||||
*/
|
||||
public List<CollectFileVo> selectCollectFileList(CollectFileDto collectFileDto);
|
||||
|
||||
/**
|
||||
* 新增收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertCollectFile(CollectFile collectFile);
|
||||
|
||||
/**
|
||||
* 修改收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCollectFile(CollectFile collectFile);
|
||||
|
||||
/**
|
||||
* 删除收藏品文件
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCollectFileById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除收藏品文件
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCollectFileByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 逻辑删除收藏品文件
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int removeCollectFileById(Long id);
|
||||
|
||||
/**
|
||||
* 批量逻辑删除收藏品文件
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int removeCollectFileByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 批量新增信息
|
||||
*
|
||||
* @param collectFileList 信息列表
|
||||
* @return 结果
|
||||
*/
|
||||
public int batchInsertCollectFile(List<CollectFile> collectFileList);
|
||||
|
||||
/**
|
||||
* 通过主键删除信息
|
||||
*
|
||||
* @param id ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCollectFileByCollectId(Long id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.intc.collect.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import com.intc.collect.domain.dto.CollectFileDto;
|
||||
import com.intc.collect.domain.vo.CollectFileVo;
|
||||
|
||||
/**
|
||||
* 收藏品文件Service接口
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
public interface ICollectFileService
|
||||
{
|
||||
/**
|
||||
* 查询收藏品文件
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 收藏品文件
|
||||
*/
|
||||
public CollectFileVo selectCollectFileById(Long id);
|
||||
|
||||
/**
|
||||
* 查询收藏品文件列表
|
||||
*
|
||||
* @param collectFileDto 收藏品文件
|
||||
* @return 收藏品文件集合
|
||||
*/
|
||||
public List<CollectFileVo> selectCollectFileList(CollectFileDto collectFileDto);
|
||||
|
||||
/**
|
||||
* 新增收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertCollectFile(CollectFile collectFile);
|
||||
|
||||
/**
|
||||
* 修改收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCollectFile(CollectFile collectFile);
|
||||
|
||||
/**
|
||||
* 批量删除收藏品文件
|
||||
*
|
||||
* @param ids 需要删除的收藏品文件主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCollectFileByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除收藏品文件信息
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCollectFileById(Long id);
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.intc.collect.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import com.intc.common.core.utils.DateUtils;
|
||||
import com.intc.common.security.utils.SecurityUtils;
|
||||
import com.intc.common.core.utils.IdWorker;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.intc.collect.mapper.CollectFileMapper;
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import com.intc.collect.domain.dto.CollectFileDto;
|
||||
import com.intc.collect.domain.vo.CollectFileVo;
|
||||
import com.intc.collect.service.ICollectFileService;
|
||||
|
||||
/**
|
||||
* 收藏品文件Service业务层处理
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2026-02-21
|
||||
*/
|
||||
@Service
|
||||
public class CollectFileServiceImpl implements ICollectFileService
|
||||
{
|
||||
@Resource
|
||||
private CollectFileMapper collectFileMapper;
|
||||
|
||||
/**
|
||||
* 查询收藏品文件
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 收藏品文件
|
||||
*/
|
||||
@Override
|
||||
public CollectFileVo selectCollectFileById(Long id)
|
||||
{
|
||||
return collectFileMapper.selectCollectFileById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询收藏品文件列表
|
||||
*
|
||||
* @param collectFileDto 收藏品文件
|
||||
* @return 收藏品文件
|
||||
*/
|
||||
@Override
|
||||
public List<CollectFileVo> selectCollectFileList(CollectFileDto collectFileDto)
|
||||
{
|
||||
return collectFileMapper.selectCollectFileList(collectFileDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertCollectFile(CollectFile collectFile)
|
||||
{
|
||||
collectFile.setId(IdWorker.getId());
|
||||
collectFile.setCreateTime(DateUtils.getNowDate());
|
||||
collectFile.setCreateBy(SecurityUtils.getUsername());
|
||||
return collectFileMapper.insertCollectFile(collectFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收藏品文件
|
||||
*
|
||||
* @param collectFile 收藏品文件
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateCollectFile(CollectFile collectFile)
|
||||
{
|
||||
return collectFileMapper.updateCollectFile(collectFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除收藏品文件
|
||||
*
|
||||
* @param ids 需要删除的收藏品文件主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteCollectFileByIds(Long[] ids)
|
||||
{
|
||||
return collectFileMapper.removeCollectFileByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除收藏品文件信息
|
||||
*
|
||||
* @param id 收藏品文件主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteCollectFileById(Long id)
|
||||
{
|
||||
return collectFileMapper.removeCollectFileById(id);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
package com.intc.collect.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.intc.collect.domain.CollectFile;
|
||||
import com.intc.collect.mapper.CollectFileMapper;
|
||||
import com.intc.common.core.utils.DateUtils;
|
||||
import com.intc.common.core.utils.StringUtils;
|
||||
import com.intc.common.security.utils.SecurityUtils;
|
||||
import com.intc.common.core.utils.IdWorker;
|
||||
import javax.annotation.Resource;
|
||||
@@ -24,6 +29,9 @@ public class CommemorativeCoinServiceImpl implements ICommemorativeCoinService
|
||||
@Resource
|
||||
private CommemorativeCoinMapper commemorativeCoinMapper;
|
||||
|
||||
@Resource
|
||||
private CollectFileMapper collectFileMapper;
|
||||
|
||||
/**
|
||||
* 查询流通纪念币
|
||||
*
|
||||
@@ -60,7 +68,36 @@ public class CommemorativeCoinServiceImpl implements ICommemorativeCoinService
|
||||
commemorativeCoin.setId(IdWorker.getId());
|
||||
commemorativeCoin.setCreateBy(SecurityUtils.getUsername());
|
||||
commemorativeCoin.setCreateTime(DateUtils.getNowDate());
|
||||
return commemorativeCoinMapper.insertCommemorativeCoin(commemorativeCoin);
|
||||
int rows =commemorativeCoinMapper.insertCommemorativeCoin(commemorativeCoin);
|
||||
insertCollectFile(commemorativeCoin);
|
||||
return rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文件信息
|
||||
*
|
||||
* @param commemorativeCoin 对象
|
||||
*/
|
||||
public void insertCollectFile(CommemorativeCoin commemorativeCoin)
|
||||
{
|
||||
List<CollectFile> collectFileList = commemorativeCoin.getCollectFileList();
|
||||
Long id = commemorativeCoin.getId();
|
||||
if (StringUtils.isNotNull(collectFileList))
|
||||
{
|
||||
List<CollectFile> list = new ArrayList<CollectFile>();
|
||||
for (CollectFile collectFile : collectFileList)
|
||||
{
|
||||
collectFile.setCollectId(id);
|
||||
collectFile.setCreateTime(DateUtils.getNowDate());
|
||||
collectFile.setCreateBy(SecurityUtils.getUsername());
|
||||
collectFile.setId(IdWorker.getId());
|
||||
list.add(collectFile);
|
||||
}
|
||||
if (list.size() > 0)
|
||||
{
|
||||
collectFileMapper.batchInsertCollectFile(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,6 +111,7 @@ public class CommemorativeCoinServiceImpl implements ICommemorativeCoinService
|
||||
{
|
||||
commemorativeCoin.setUpdateBy(SecurityUtils.getUsername());
|
||||
commemorativeCoin.setUpdateTime(DateUtils.getNowDate());
|
||||
insertCollectFile(commemorativeCoin);;
|
||||
return commemorativeCoinMapper.updateCommemorativeCoin(commemorativeCoin);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user