|
@@ -18,13 +18,17 @@ import com.fire.dto.CustomerInfo;
|
|
|
import com.fire.dto.enums.Status;
|
|
|
import com.fire.utils.date.DateUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.messaging.support.MessageBuilder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import redis.clients.jedis.JedisCluster;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
+import static com.fire.common.constants.RocketTags.SUPPLIER_TAG;
|
|
|
+import static com.fire.common.constants.RocketTopic.UPDATE_TOPIC;
|
|
|
import static com.fire.dto.enums.RedisKey.*;
|
|
|
|
|
|
/**
|
|
@@ -41,13 +45,15 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
private RedisAmountScript redisAmountScript;
|
|
|
private CustomerService customerService;
|
|
|
private JedisCluster jedisCluster;
|
|
|
+ private RocketMQTemplate rocketMQTemplate;
|
|
|
|
|
|
@Autowired
|
|
|
- public AdditionalPaymentServiceImpl(AliyunOSSUtil aliyunOSSUtil, RedisAmountScript redisAmountScript, CustomerService customerService, JedisCluster jedisCluster) {
|
|
|
+ public AdditionalPaymentServiceImpl(AliyunOSSUtil aliyunOSSUtil, RedisAmountScript redisAmountScript, CustomerService customerService, JedisCluster jedisCluster, RocketMQTemplate rocketMQTemplate) {
|
|
|
this.aliyunOSSUtil = aliyunOSSUtil;
|
|
|
this.redisAmountScript = redisAmountScript;
|
|
|
this.customerService = customerService;
|
|
|
this.jedisCluster = jedisCluster;
|
|
|
+ this.rocketMQTemplate = rocketMQTemplate;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -80,6 +86,7 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
int count = this.additionalPayment(additionalPaymentDto);
|
|
|
Long amount = redisAmountScript.changeAmount(SUPPLIER_AMOUNT.key(), Long.parseLong(additionalPaymentDto.getRelationId()), "add", additionalPaymentDto.getAmount().multiply(new BigDecimal(10000)).longValue(), 0L);
|
|
|
if (count > 0 && ObjectUtil.isNotEmpty(amount)) {
|
|
|
+ rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
|
|
|
log.info("供应商加款成功,供应商编号为:【{}】,加款金额为:【{}】", additionalPaymentDto.getRelationId(), additionalPaymentDto.getAmount());
|
|
|
} else {
|
|
|
// 供应商加款失败,删除该条加款记录
|
|
@@ -174,7 +181,10 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
public void updAdditionPayment(AdditionalPaymentDto additionalPaymentDto) {
|
|
|
|
|
|
AdditionalPayment payment = AdditionalPayment.builder().id(additionalPaymentDto.getId()).certificate(additionalPaymentDto.getCertificate()).build();
|
|
|
- baseMapper.updateById(payment);
|
|
|
+ int count = baseMapper.updateById(payment);
|
|
|
+ if (count > 0) {
|
|
|
+ rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -212,7 +222,10 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
|
|
|
Long amount = redisAmountScript.changeAmount(SUPPLIER_AMOUNT.key(), Long.parseLong(payment.getRelationId()), "sub", payment.getAmount(), 100000000000L);
|
|
|
if (ObjectUtil.isNotEmpty(amount)) {
|
|
|
// TODO 修改记录的撤销状态
|
|
|
- baseMapper.updateById(payment);
|
|
|
+ int count = baseMapper.updateById(payment);
|
|
|
+ if (count > 0) {
|
|
|
+ rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
|
|
|
+ }
|
|
|
log.info("供应商款项撤销。 供应商编号为:【{}】 撤销金额为:【{}】 剩余额度为:【{}】", payment.getRelationId(), additionalPaymentDto.getAmount(), new BigDecimal(amount).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_DOWN));
|
|
|
return payment.getRelationId().concat("_").concat(amount.toString());
|
|
|
} else {
|