|
@@ -1,7 +1,6 @@
|
|
|
package com.fire.admin.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.hutool.json.JSON;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -12,7 +11,6 @@ import com.fire.admin.dto.AdditionalPaymentDto;
|
|
|
import com.fire.admin.mapper.AdditionalPaymentMapper;
|
|
|
import com.fire.admin.service.AdditionalPaymentService;
|
|
|
import com.fire.admin.service.CustomerService;
|
|
|
-import com.fire.admin.util.AliyunOSSUtil;
|
|
|
import com.fire.admin.util.SecurityUtil;
|
|
|
import com.fire.admin.vo.AdditionalPaymentVo;
|
|
|
import com.fire.common.exception.BaseException;
|
|
@@ -41,6 +39,7 @@ import static com.fire.common.constants.RocketTopic.TRANSACTION_TOPIC;
|
|
|
import static com.fire.common.constants.RocketTopic.UPDATE_TOPIC;
|
|
|
import static com.fire.dto.enums.RedisKey.*;
|
|
|
import static com.fire.dto.enums.RelationType.RELATION_CUSTOMER;
|
|
|
+import static com.fire.dto.enums.RelationType.RELATION_SUPPLIER;
|
|
|
import static com.fire.dto.enums.ServiceType.SERVICE_FINANCE_ADD;
|
|
|
import static com.fire.dto.enums.ServiceType.SERVICE_FINANCE_SUB;
|
|
|
|
|
@@ -322,6 +321,17 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
payment.setUndo(1);
|
|
|
AdditionalPayment additionalPayment = getAdditionalPaymentOne(additionalPaymentDto.getDistinguish(), additionalPaymentDto.getRelationId(), additionalPaymentDto.getId());
|
|
|
if (additionalPayment.getId().equals(payment.getId())) {
|
|
|
+ // TODO 构建撤销的对象
|
|
|
+ JSONObject param = JSONUtil.parseObj(createTransactionFlow(
|
|
|
+ Long.parseLong(jedisCluster.hget(SUPPLIER_AMOUNT.key(), SUPPLIER_AMOUNT.key().concat(payment.getRelationId()))),
|
|
|
+ payment.getAmount(),
|
|
|
+ RELATION_SUPPLIER.type(),
|
|
|
+ Long.parseLong(payment.getRelationId()),
|
|
|
+ DateUtils.strformatDatetime(LocalDateTime.now()).concat(" ".concat(username).concat(" 为供应商".concat(payment.getRelationId())).concat("款项撤销,撤销金额为:")).concat(additionalPaymentDto.getAmount().divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN).toString()),
|
|
|
+ additionalPaymentDto.getSupplierName(),
|
|
|
+ username,
|
|
|
+ SERVICE_FINANCE_SUB.type()
|
|
|
+ ));
|
|
|
// TODO 进行账户撤销
|
|
|
Long amount = redisAmountScript.changeAmount(SUPPLIER_AMOUNT.key(), Long.parseLong(payment.getRelationId()), "sub", payment.getAmount(), 100000000000L);
|
|
|
if (ObjectUtil.isNotEmpty(amount)) {
|
|
@@ -331,6 +341,11 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
if (count > 0) {
|
|
|
rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
|
|
|
}
|
|
|
+ // TODO 获取撤销的具体金额
|
|
|
+ BigDecimal canceprice = additionalPaymentDto.getAmount().divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN);
|
|
|
+ log.info("供应商款项撤销入流水队列,撤销之前的金额为:【{}】,操作金额为:【{}】,撤销之后的金额为:【{}】,详情为:【{}】", new BigDecimal(param.get("beforeAmount").toString()).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN), canceprice, new BigDecimal(param.get("afterAmount").toString()).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN), param);
|
|
|
+ log.info("供应商款项撤销。 供应商编号为:【{}】,供应商名称为:【{}】 撤销金额为:【{}】 剩余额度为:【{}】", payment.getRelationId(), param.get("name"), canceprice, new BigDecimal(amount).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN));
|
|
|
+ rocketMQTemplate.syncSend(TRANSACTION_TOPIC, MessageBuilder.withPayload(param).build());
|
|
|
return payment.getRelationId().concat("_").concat(amount.toString());
|
|
|
} else {
|
|
|
// TODO 撤销失败的处理
|
|
@@ -338,7 +353,7 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
throw new BaseException(Status.ACCOUNT_CANCEL_FAIL.status(), Status.ACCOUNT_CANCEL_FAIL.message());
|
|
|
}
|
|
|
} else {
|
|
|
- log.info("撤销失败,撤销不能撤销当前客户最近一次的加款记录。如果非要撤销请先加款一次再撤销本次记录");
|
|
|
+ log.info("撤销失败,撤销不能撤销当前客户最近一次的加款记录。若非要撤销请先加款一次再撤销本次记录");
|
|
|
throw new BaseException("577", "撤销失败");
|
|
|
}
|
|
|
|