修改提示语
This commit is contained in:
+10
-10
@@ -40,18 +40,18 @@ public class PayIncomeContract implements Serializable {
|
||||
/**合同编号*/
|
||||
@Excel(name = "合同编号", width = 15)
|
||||
@ApiModelProperty(value = "合同编号")
|
||||
@NotEmpty(message = "合同编号不能为空!")
|
||||
@NotEmpty(message = "合同编号不能为空")
|
||||
@Size(max = 50, message = "合同编号长度不能大于50个字符")
|
||||
private java.lang.String contractNum;
|
||||
/**合同名称*/
|
||||
@Excel(name = "合同名称", width = 15)
|
||||
@ApiModelProperty(value = "合同名称")
|
||||
@NotEmpty(message = "合同名称不能为空!")
|
||||
@NotEmpty(message = "合同名称不能为空")
|
||||
@Size(max = 50, message = "合同名称长度不能大于50个字符")
|
||||
private java.lang.String contractName;
|
||||
/**签订单位id*/
|
||||
@ApiModelProperty(value = "签订单位id")
|
||||
@NotEmpty(message = "签订单位id不能为空!")
|
||||
@NotEmpty(message = "签订单位id不能为空")
|
||||
@Size(max = 32, message = "签订单位id长度不能大于32个字符")
|
||||
private java.lang.String signedCompanyId;
|
||||
/**临时签订单位id*/
|
||||
@@ -67,7 +67,7 @@ public class PayIncomeContract implements Serializable {
|
||||
/**签订单位联系人id*/
|
||||
@Excel(name = "签订单位联系人id", width = 15)
|
||||
@ApiModelProperty(value = "签订单位联系人id")
|
||||
@NotEmpty(message = "签订单位联系人id不能为空!")
|
||||
@NotEmpty(message = "签订单位联系人id不能为空")
|
||||
@Size(max = 32, message = "签订单位联系人id长度不能大于32个字符")
|
||||
private java.lang.String signedContactsId;
|
||||
/**临时签订单位联系人id*/
|
||||
@@ -89,7 +89,7 @@ public class PayIncomeContract implements Serializable {
|
||||
/**负责人id*/
|
||||
@Excel(name = "负责人id", width = 15)
|
||||
@ApiModelProperty(value = "负责人id")
|
||||
@NotEmpty(message = "负责人id不能为空!")
|
||||
@NotEmpty(message = "负责人id不能为空")
|
||||
@Size(max = 32, message = "负责人id长度不能大于32个字符")
|
||||
private java.lang.String principalId;
|
||||
/**负责人名称*/
|
||||
@@ -105,21 +105,21 @@ public class PayIncomeContract implements Serializable {
|
||||
/**签订合同金额*/
|
||||
@Excel(name = "签订合同金额", width = 15)
|
||||
@ApiModelProperty(value = "签订合同金额")
|
||||
@NotNull(message = "签订合同金额不能为空!")
|
||||
@NotNull(message = "签订合同金额不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "签订合同金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal contractAmount;
|
||||
/**税率*/
|
||||
@Excel(name = "税率", width = 15)
|
||||
@ApiModelProperty(value = "税率")
|
||||
@NotNull(message = "税率不能为空!")
|
||||
@NotNull(message = "税率不能为空")
|
||||
@Max(value = 100,message = "税率格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal rate;
|
||||
/**未税金额*/
|
||||
@Excel(name = "未税金额", width = 15)
|
||||
@ApiModelProperty(value = "未税金额")
|
||||
@NotNull(message = "未税金额不能为空!")
|
||||
@NotNull(message = "未税金额不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "未税金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal noTaxAmount;
|
||||
@@ -143,14 +143,14 @@ public class PayIncomeContract implements Serializable {
|
||||
/**应收金额*/
|
||||
@Excel(name = "应收金额", width = 15)
|
||||
@ApiModelProperty(value = "应收金额")
|
||||
@NotNull(message = "应收金额不能为空!")
|
||||
@NotNull(message = "应收金额不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "应收金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal accountsReceivableAmount;
|
||||
/**已收金额*/
|
||||
@Excel(name = "已收金额", width = 15)
|
||||
@ApiModelProperty(value = "已收金额")
|
||||
@NotNull(message = "已收金额不能为空!")
|
||||
@NotNull(message = "已收金额不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "已收金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal amountReceived;
|
||||
|
||||
+7
-7
@@ -40,13 +40,13 @@ public class PaySpendingContract implements Serializable {
|
||||
/**合同编号*/
|
||||
@Excel(name = "合同编号", width = 15)
|
||||
@ApiModelProperty(value = "合同编号")
|
||||
@NotEmpty(message = "合同编号不能为空!")
|
||||
@NotEmpty(message = "合同编号不能为空")
|
||||
@Size(max = 50, message = "合同编号长度不能大于50个字符")
|
||||
private String contractNum;
|
||||
/**合同名称*/
|
||||
@Excel(name = "合同名称", width = 15)
|
||||
@ApiModelProperty(value = "合同名称")
|
||||
@NotEmpty(message = "合同名称不能为空!")
|
||||
@NotEmpty(message = "合同名称不能为空")
|
||||
@Size(max = 50, message = "合同名称长度不能大于50个字符")
|
||||
private String contractName;
|
||||
/**签订单位id*/
|
||||
@@ -99,21 +99,21 @@ public class PaySpendingContract implements Serializable {
|
||||
/**签订合同总金额*/
|
||||
@Excel(name = "签订合同总金额", width = 15)
|
||||
@ApiModelProperty(value = "签订合同总金额")
|
||||
@NotNull(message = "签订合同金额不能为空!")
|
||||
@NotNull(message = "签订合同金额不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "签订合同金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal contractAmount;
|
||||
/**税率*/
|
||||
@Excel(name = "税率", width = 15)
|
||||
@ApiModelProperty(value = "税率")
|
||||
@NotNull(message = "税率不能为空!")
|
||||
@NotNull(message = "税率不能为空")
|
||||
@DecimalMax(value = "9999999999.99",message = "税率格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal rate;
|
||||
/**未税金额*/
|
||||
@Excel(name = "未税金额", width = 15)
|
||||
@ApiModelProperty(value = "未税金额")
|
||||
@NotNull(message = "未税金额不能为空!")
|
||||
@NotNull(message = "未税金额不能为空")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
@DecimalMax(value = "9999999999.99",message = "未税金额格式错误")
|
||||
private BigDecimal noTaxAmount;
|
||||
@@ -137,14 +137,14 @@ public class PaySpendingContract implements Serializable {
|
||||
/**应收金额*/
|
||||
@Excel(name = "应收金额", width = 15)
|
||||
@ApiModelProperty(value = "应收金额")
|
||||
@NotNull(message = "应收金额不能为空!")
|
||||
@NotNull(message = "应收金额不能为空")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
@DecimalMax(value = "9999999999.99",message = "应收金额格式错误")
|
||||
private BigDecimal accountsReceivableAmount;
|
||||
/**已收金额*/
|
||||
@Excel(name = "已收金额", width = 15)
|
||||
@ApiModelProperty(value = "已收金额")
|
||||
@NotNull(message = "已收金额不能为空!")
|
||||
@NotNull(message = "已收金额不能为空")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
@DecimalMax(value = "9999999999.99",message = "已收金额格式错误")
|
||||
private BigDecimal amountReceived;
|
||||
|
||||
+29
-29
@@ -356,28 +356,28 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContractInstallment.setPhaseName(sub.get(mm));
|
||||
if(!StringUtils.isBlank(sub.get(mm + 1))){
|
||||
if(!pattern.matcher(sub.get(mm + 1)).matches()){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setAccountsReceivableAmount(new BigDecimal(sub.get(mm + 1)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 2))){
|
||||
if(!DateUtils.isValidDate(sub.get(mm + 2))){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收时间日期格式不正确,请修改! <br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收时间日期格式不正确,请修改。 <br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setAccountsReceivableTime(DateUtils.str2Date(sub.get(mm + 2),new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 3))){
|
||||
if(!pattern.matcher(sub.get(mm + 3)).matches()){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setPaidAmount(new BigDecimal(sub.get(mm + 3)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 4))) {
|
||||
if (!DateUtils.isValidDate(sub.get(mm + 4))) {
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收时间日期格式不正确,请修改 <br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收时间日期格式不正确,请修改。<br/>");
|
||||
} else {
|
||||
paySpendingContractInstallment.setPaidTime(DateUtils.str2Date(sub.get(mm + 4), new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
@@ -419,7 +419,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
List<PaySpendingContract> listPaySpendingContractNew = listPaySpendingContract.stream().filter(item->
|
||||
Objects.equals(item.getContractNum(),paySpendingContract.getContractNum())).collect(Collectors.toList());
|
||||
if(!CollectionUtils.isEmpty(listPaySpendingContractNew)){
|
||||
sb.append("第").append(n + 1).append("行:合同编号在excel中重复,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:合同编号在excel中重复,请修改。<br/>");
|
||||
}
|
||||
listPaySpendingContract.add(paySpendingContract);
|
||||
|
||||
@@ -429,42 +429,42 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
List<PaySpendingContract> listDB = listDBContractNum.stream().filter(item->
|
||||
Objects.equals(item.getContractNum(),paySpendingContract.getContractNum())).collect(Collectors.toList());
|
||||
if(!CollectionUtils.isEmpty(listDB)){
|
||||
sb.append("第").append(n + 1).append("行:合同编号已存在,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:合同编号已存在,请修改。<br/>");
|
||||
}
|
||||
}else{
|
||||
sb.append("第").append(n + 1).append("行:合同编号不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:合同编号不能为空,请修改。<br/>");
|
||||
}
|
||||
// 验证数据库中是否存在负责人
|
||||
if(!StringUtils.isBlank(paySpendingContract.getContractName())){
|
||||
List<SysUser> listDB = listDBPrincipalName.stream().filter(item->
|
||||
Objects.equals(item.getRealname(),paySpendingContract.getPrincipalName())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(listDB)){
|
||||
sb.append("第").append(n + 1).append("行:负责人不存在,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:负责人不存在,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setPrincipalId(listDB.get(0).getId());
|
||||
// 验证数据库中是否存在部门名称
|
||||
Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(Collections.singletonList(listDB.get(0).getId()));
|
||||
if(!Objects.isNull(useDepNames)){
|
||||
if(!Objects.equals(useDepNames.get(listDB.get(0).getId()),paySpendingContract.getDepartmentName())){
|
||||
sb.append("第").append(n + 1).append("行:部门名称不存在,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:部门名称不存在,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setDepartmentName(useDepNames.get(listDB.get(0).getId()));
|
||||
}
|
||||
}else{
|
||||
sb.append("第").append(n + 1).append("行:部门名称不存在,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:部门名称不存在,请修改。<br/>");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
sb.append("第").append(n + 1).append("行:负责人不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:负责人不能为空,请修改。<br/>");
|
||||
}
|
||||
if(!Objects.isNull(paySpendingContract.getPack()) && Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1) && StringUtils.isBlank(paySpendingContract.getPackYear())){
|
||||
sb.append("第").append(n + 1).append("行:打包年份不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:打包年份不能为空,请修改。<br/>");
|
||||
}
|
||||
if(!Objects.isNull(paySpendingContract.getAccountsReceivableAmount()) && !Objects.isNull(paySpendingContract.getAmountReceived())){
|
||||
if(paySpendingContract.getAccountsReceivableAmount().compareTo(paySpendingContract.getAmountReceived()) < 0){
|
||||
sb.append("第").append(n + 1).append("行:已收金额大于应收金额,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:已收金额大于应收金额,请修改。<br/>");
|
||||
}else if(!Objects.isNull(paySpendingContract.getOutstandingAmount()) && paySpendingContract.getAccountsReceivableAmount().subtract(paySpendingContract.getAmountReceived()).compareTo(paySpendingContract.getOutstandingAmount()) != 0){
|
||||
sb.append("第").append(n + 1).append("行:未收金额不正确,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:未收金额不正确,请修改。<br/>");
|
||||
}
|
||||
}
|
||||
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = p.getListInstallment();
|
||||
@@ -473,7 +473,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
int c = listPaySpendingContractInstallment.indexOf(item) + 1;
|
||||
if(!Objects.isNull(item.getAccountsReceivableAmount()) && !Objects.isNull(item.getPaidAmount())
|
||||
&& item.getAccountsReceivableAmount().compareTo(item.getPaidAmount()) < 0){
|
||||
sb.append("第").append(n + 1).append("行:").append(c).append("阶段实收大于应收,请修改!<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(c).append("阶段实收大于应收,请修改。<br/>");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -499,7 +499,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
// 负责人名称
|
||||
SysUser principalName = sysUserService.getById(paySpendingContract.getPrincipalId());
|
||||
if(Objects.isNull(principalName)){
|
||||
throw new JeroBootException("负责人名称为空,请修改!");
|
||||
throw new JeroBootException("负责人名称为空,请修改。");
|
||||
}
|
||||
paySpendingContract.setPrincipalId(principalName.getId());
|
||||
paySpendingContract.setPrincipalName(principalName.getRealname());
|
||||
@@ -535,7 +535,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContract.setContractName(map.get(1));
|
||||
paySpendingContract.setSignedCompanyTemporaryName(map.get(2));
|
||||
if(StringUtils.isEmpty(map.get(3))){
|
||||
sb.append("第").append(n).append("行:负责人不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:负责人不能为空,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setSignedContactsTemporaryName(map.get(3));
|
||||
}
|
||||
@@ -547,7 +547,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
});
|
||||
if(Objects.isNull(paySpendingContract.getOpening())){
|
||||
sb.append("第").append(n).append("行:是否开口格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:是否开口格式错误,请修改。<br/>");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -555,35 +555,35 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContract.setDepartmentName(map.get(6));
|
||||
if(!StringUtils.isBlank(map.get(7))){
|
||||
if(!pattern.matcher(map.get(7)).matches()){
|
||||
sb.append("第").append(n).append("行:签订合同总金额格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:签订合同总金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setContractAmount(new BigDecimal(map.get(7)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(8))){
|
||||
if(!pattern.matcher(map.get(8)).matches()){
|
||||
sb.append("第").append(n).append("行:税率格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:税率格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setRate(new BigDecimal(map.get(8)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(9)) ){
|
||||
if(!pattern.matcher(map.get(9)).matches()){
|
||||
sb.append("第").append(n).append("行:未税金额格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:未税金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setNoTaxAmount(new BigDecimal(map.get(9)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(10)) ){
|
||||
if(!DateUtils.isValidDate(map.get(10))){
|
||||
sb.append("第").append(n).append("行:合同签订日期格式不正确,请修改! <br/>");
|
||||
sb.append("第").append(n).append("行:合同签订日期格式不正确,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setContractDate(DateUtils.str2Date(map.get(10),new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(11))){
|
||||
if(!DateUtils.isValidDate(map.get(11))) {
|
||||
sb.append("第").append(n).append("行:合同终止日期格式不正确,请修改! <br/>");
|
||||
sb.append("第").append(n).append("行:合同终止日期格式不正确,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setTerminationDate(DateUtils.str2Date(map.get(11),new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
@@ -591,21 +591,21 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContract.setContractTimePoints(map.get(13));
|
||||
if(!StringUtils.isBlank(map.get(13))){
|
||||
if(!pattern.matcher(map.get(13)).matches()){
|
||||
sb.append("第").append(n).append("行:应收金额格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:应收金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setAccountsReceivableAmount(new BigDecimal(map.get(13)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(14))){
|
||||
if(!pattern.matcher(map.get(14)).matches()){
|
||||
sb.append("第").append(n).append("行:已收金额格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:已收金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setAmountReceived(new BigDecimal(map.get(14)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(15))){
|
||||
if(!pattern.matcher(map.get(15)).matches()){
|
||||
sb.append("第").append(n).append("行:未收金额格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:未收金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setOutstandingAmount(new BigDecimal(map.get(15)));
|
||||
}
|
||||
@@ -613,7 +613,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
|
||||
paySpendingContract.setContractPaymentTimes(map.get(17));
|
||||
if(StringUtils.isEmpty(map.get(18))){
|
||||
sb.append("第").append(n).append("行:是否打包不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:是否打包不能为空,请修改。<br/>");
|
||||
}else{
|
||||
mapPack.forEach((k,v)->{
|
||||
if(Objects.equals(map.get(18),k)){
|
||||
@@ -621,13 +621,13 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
});
|
||||
if(Objects.isNull(paySpendingContract.getPack())){
|
||||
sb.append("第").append(n).append("行:是否打包格式错误,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:是否打包格式错误,请修改。<br/>");
|
||||
paySpendingContract.setPack(2);
|
||||
}
|
||||
// 打包获取打包年份
|
||||
if(Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
if(StringUtils.isEmpty(map.get(19))){
|
||||
sb.append("第").append(n).append("行:打包年份不能为空,请修改!<br/>");
|
||||
sb.append("第").append(n).append("行:打包年份不能为空,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setPackYear(map.get(19));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user