Commit 1a957f54 authored by data-爬虫-任锋's avatar data-爬虫-任锋

助贷资金路由状态消息接收+处理模块开发完成

parent dc467329
package com.quantgroup.asset.distribution.config.rabbitmq; package com.quantgroup.asset.distribution.config.rabbitmq;
import cn.quantgroup.tech.brave.service.ITechRabbitBuilder; import cn.quantgroup.tech.brave.service.ITechRabbitBuilder;
import com.alibaba.fastjson.JSONObject;
import com.quantgroup.asset.distribution.enums.funding.FundingResult;
import com.quantgroup.asset.distribution.service.funding.IAidFundRouteRecordService;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AcknowledgeMode; import org.springframework.amqp.core.AcknowledgeMode;
...@@ -9,6 +12,7 @@ import org.springframework.amqp.rabbit.annotation.*; ...@@ -9,6 +12,7 @@ import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar; import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -23,6 +27,11 @@ import java.io.IOException; ...@@ -23,6 +27,11 @@ import java.io.IOException;
@EnableRabbit @EnableRabbit
public class ConsumerConfig implements RabbitListenerConfigurer { public class ConsumerConfig implements RabbitListenerConfigurer {
@Autowired
private IAidFundRouteRecordService iAidFundRouteRecordService;
@Resource @Resource
private ITechRabbitBuilder techRabbitBuilder; private ITechRabbitBuilder techRabbitBuilder;
...@@ -48,16 +57,30 @@ public class ConsumerConfig implements RabbitListenerConfigurer { ...@@ -48,16 +57,30 @@ public class ConsumerConfig implements RabbitListenerConfigurer {
@RabbitListener(bindings = {@QueueBinding(value = @Queue(value = "funding.state"), exchange = @Exchange(value = "xyqb.change.fanout"))}) @RabbitListener(bindings = {@QueueBinding(value = @Queue(value = "funding.state"), exchange = @Exchange(value = "quota"))})
public void process(Message message, Channel channel) throws IOException { public void process(Message message, Channel channel) throws IOException {
String ms = null;
try{ try{
log.info("======接收到消息====== : {}",new String(message.getBody(),"utf-8")); ms = new String(message.getBody(), "utf-8");
log.info("助贷资金路由结果消息接收, 消息内容 : {} ",ms);
JSONObject jo = JSONObject.parseObject(ms);
String noticeType = jo.getString("noticeType");
if(FundingResult.FUAD_ASSIGN_FAIL.getText().equals(noticeType)
|| FundingResult.FUAD_ASSIGN_SUCC.getText().equals(noticeType)){
String applyNo = jo.getJSONObject("data").getString("applyNo");
iAidFundRouteRecordService.fundingResultNotity(applyNo,FundingResult.getAuditResultByDesc(noticeType));
log.info("助贷资金路由结果消息处理完毕, bizNo : {} ,noticeType : {} ",applyNo,noticeType);
}
// 采用手动应答模式, 手动确认应答更为安全稳定 // 采用手动应答模式, 手动确认应答更为安全稳定
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
}catch(IOException e){ }catch(IOException e){
log.error("助贷资金路由结果消息处理异常,消息 : {} ",ms,e);
//害怕队列堵住 暂放开
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
//重新放回队列 //重新放回队列
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); // channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} }
......
...@@ -2,7 +2,10 @@ package com.quantgroup.asset.distribution.service.funding.impl; ...@@ -2,7 +2,10 @@ package com.quantgroup.asset.distribution.service.funding.impl;
import com.quantgroup.asset.distribution.enums.funding.FundingResult; import com.quantgroup.asset.distribution.enums.funding.FundingResult;
import com.quantgroup.asset.distribution.service.funding.IAidFundRouteRecordService; import com.quantgroup.asset.distribution.service.funding.IAidFundRouteRecordService;
import com.quantgroup.asset.distribution.service.jpa.entity.AidLoanFundRouteRecord;
import com.quantgroup.asset.distribution.service.jpa.repository.IAidLoanFundRouteRecordRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -11,6 +14,14 @@ import org.springframework.stereotype.Service; ...@@ -11,6 +14,14 @@ import org.springframework.stereotype.Service;
@Service @Service
@Slf4j @Slf4j
public class AidFundRouteRecordServiceImpl implements IAidFundRouteRecordService { public class AidFundRouteRecordServiceImpl implements IAidFundRouteRecordService {
@Autowired
private IAidLoanFundRouteRecordRepository iAidLoanFundRouteRecordRepository;
/** /**
* 资金分配结果通知 * 资金分配结果通知
* *
...@@ -20,6 +31,13 @@ public class AidFundRouteRecordServiceImpl implements IAidFundRouteRecordService ...@@ -20,6 +31,13 @@ public class AidFundRouteRecordServiceImpl implements IAidFundRouteRecordService
@Override @Override
public void fundingResultNotity(String bizNo, FundingResult fundingResult) { public void fundingResultNotity(String bizNo, FundingResult fundingResult) {
//查询未完成的助贷资金路由 且唯一
AidLoanFundRouteRecord aidLoanFundRouteRecord = iAidLoanFundRouteRecordRepository.findByBizNoAndAidFundRouteStatus(bizNo, 1);
//更新助贷资金路由状态 2-成功 3-失败 1-未完成
if(aidLoanFundRouteRecord!=null){
aidLoanFundRouteRecord.setAidFundRouteStatus(fundingResult==FundingResult.FUAD_ASSIGN_SUCC?2:3);
iAidLoanFundRouteRecordRepository.save(aidLoanFundRouteRecord);
}
log.info("更新助贷资金路由状态结束,bizNo : {} , fundingResult : {} ,是否命中 : {} ",bizNo,fundingResult,aidLoanFundRouteRecord!=null);
} }
} }
...@@ -11,4 +11,7 @@ public interface IAidLoanFundRouteRecordRepository extends JpaRepository<AidLoan ...@@ -11,4 +11,7 @@ public interface IAidLoanFundRouteRecordRepository extends JpaRepository<AidLoan
AidLoanFundRouteRecord findByBizNoAndAidFundRouteStatus(String bizNo,Integer aidFundRouteStatus);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment