提交 5ba1d3f9 authored 作者: huyufan's avatar huyufan

接单是否逾期判断

上级 aaefc560
...@@ -16,8 +16,9 @@ public enum OwnerRePaymentEnum { ...@@ -16,8 +16,9 @@ public enum OwnerRePaymentEnum {
public enum Status { public enum Status {
PAY_WAIT(10, "待付款"), PAY_WAIT(10, "待付款"),
PAYING(40, "付款中"), PAYING(40, "付款中"),
PAY_SUCCESS(50, "付款成功"), PAY_FAIL(50, "付款失败"),
PAY_FAIL(60, "付款失败"), PAY_SUCCESS(60, "付款成功"),
; ;
private final Integer code; private final Integer code;
......
...@@ -21,6 +21,8 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum; ...@@ -21,6 +21,8 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum; import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.event.OwnerRepaymentUpdateEvent;
import com.clx.performance.event.SettlementUpdateEvent;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OwnerRunningWaterRecord; import com.clx.performance.model.OwnerRunningWaterRecord;
...@@ -37,6 +39,7 @@ import lombok.AllArgsConstructor; ...@@ -37,6 +39,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -70,6 +73,8 @@ public class OrderChildLoanComponent { ...@@ -70,6 +73,8 @@ public class OrderChildLoanComponent {
private final RedissonClient redissonClient; private final RedissonClient redissonClient;
private final ApplicationEventPublisher applicationEventPublisher;
/** /**
* 接单校验判断 * 接单校验判断
* *
...@@ -150,8 +155,8 @@ public class OrderChildLoanComponent { ...@@ -150,8 +155,8 @@ public class OrderChildLoanComponent {
} }
//借款账户钱够,判断是否逾期 //借款账户钱够,判断是否逾期
log.info("10.借款账户钱够,判断是否逾期"); log.info("10.借款账户钱够,判断是否逾期");
Optional<OwnerRepayment> optional = ownerRepaymentDao.getLimitOneByField(OwnerRepayment::getBeOverdue, OwnerRePaymentEnum.BeOverdue.YES.getCode()); boolean beOverdue = this.beOverdue(ownerInfoFeignVO.getUserNo());
if (optional.isPresent()) { if (beOverdue) {
//逾期:不允许 //逾期:不允许
log.info("11.当前货主存在逾期借款"); log.info("11.当前货主存在逾期借款");
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_SAVE_FAIL, "货主已欠款"); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_SAVE_FAIL, "货主已欠款");
...@@ -406,6 +411,21 @@ public class OrderChildLoanComponent { ...@@ -406,6 +411,21 @@ public class OrderChildLoanComponent {
} }
} }
private boolean beOverdue(Long ownerUserNo) {
//查询未付款成功还款单
List<OwnerRepayment> ownerRepaymentList = ownerRepaymentDao.selectListByStatusAndOwnerUserNo(OwnerRePaymentEnum.Status.PAY_SUCCESS.getCode(), ownerUserNo);
for (OwnerRepayment ownerRepayment : ownerRepaymentList) {
if (OwnerRePaymentEnum.BeOverdue.YES.getCode().equals(ownerRepayment.getBeOverdue())) {
return true;
} else {
if (ownerRepayment.getLoanRepaymentTime().equals(LocalDateTime.now())) {
applicationEventPublisher.publishEvent(new OwnerRepaymentUpdateEvent(this, ownerRepayment.getId()));
}
}
}
return false;
}
/** /**
* 抵扣金额 * 抵扣金额
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerRepaymentDao; import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.mapper.loan.OwnerRepaymentMapper; import com.clx.performance.mapper.loan.OwnerRepaymentMapper;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam; import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
...@@ -13,6 +14,7 @@ import com.msl.common.dao.impl.BaseDaoImpl; ...@@ -13,6 +14,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -59,4 +61,11 @@ public class OwnerRepaymentDaoImpl extends BaseDaoImpl<OwnerRepaymentMapper, Own ...@@ -59,4 +61,11 @@ public class OwnerRepaymentDaoImpl extends BaseDaoImpl<OwnerRepaymentMapper, Own
return baseMapper.pageByParam(page,param); return baseMapper.pageByParam(page,param);
} }
@Override
public List<OwnerRepayment> selectListByStatusAndOwnerUserNo(Integer status, Long ownerUserNo) {
return baseMapper.selectList(lQrWrapper().eq(OwnerRepayment::getOwnerUserNo, ownerUserNo)
.lt(OwnerRepayment::getStatus, status)
);
}
} }
...@@ -8,6 +8,8 @@ import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner; ...@@ -8,6 +8,8 @@ import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO; import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.util.List;
/** /**
* @author kavin * @author kavin
* Date 2024-01-20 * Date 2024-01-20
...@@ -18,4 +20,11 @@ public interface OwnerRepaymentDao extends BaseDao<OwnerRepaymentMapper, OwnerRe ...@@ -18,4 +20,11 @@ public interface OwnerRepaymentDao extends BaseDao<OwnerRepaymentMapper, OwnerRe
IPage<OwnerRepaymentVO> pageByParam(PageOwnerRepaymentOfOwner param); IPage<OwnerRepaymentVO> pageByParam(PageOwnerRepaymentOfOwner param);
/**
* 查询未付款成功还款单
* @param status
* @param ownerUserNo
* @return
*/
List<OwnerRepayment> selectListByStatusAndOwnerUserNo(Integer status, Long ownerUserNo);
} }
...@@ -2,9 +2,12 @@ package com.clx.performance.event; ...@@ -2,9 +2,12 @@ package com.clx.performance.event;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao; import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao;
import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.loan.OrderChildLoanRetryRecord; import com.clx.performance.model.loan.OrderChildLoanRetryRecord;
import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -15,7 +18,7 @@ import org.springframework.stereotype.Component; ...@@ -15,7 +18,7 @@ import org.springframework.stereotype.Component;
@Component @Component
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
public class SettlementListener { public class EventListenerComponent {
private final SettlementOwnerDetailDao settlementOwnerDetailDao; private final SettlementOwnerDetailDao settlementOwnerDetailDao;
...@@ -23,6 +26,8 @@ public class SettlementListener { ...@@ -23,6 +26,8 @@ public class SettlementListener {
private final OrderChildLoanRetryRecordDao orderChildLoanRetryRecordDao; private final OrderChildLoanRetryRecordDao orderChildLoanRetryRecordDao;
private final OwnerRepaymentDao ownerRepaymentDao;
@EventListener(classes = {SettlementUpdateEvent.class}) @EventListener(classes = {SettlementUpdateEvent.class})
public void listen(SettlementUpdateEvent event) { public void listen(SettlementUpdateEvent event) {
...@@ -38,4 +43,12 @@ public class SettlementListener { ...@@ -38,4 +43,12 @@ public class SettlementListener {
// 保存重试记录 // 保存重试记录
orderChildLoanRetryRecordDao.saveEntity(entity); orderChildLoanRetryRecordDao.saveEntity(entity);
} }
@EventListener(classes = {OwnerRepaymentUpdateEvent.class})
public void listen(OwnerRepaymentUpdateEvent event) {
OwnerRepayment update = new OwnerRepayment();
update.setId(event.getId());
update.setBeOverdue(OwnerRePaymentEnum.BeOverdue.YES.getCode());
ownerRepaymentDao.updateEntityByKey(update);
}
} }
package com.clx.performance.event;
import org.springframework.context.ApplicationEvent;
public class OwnerRepaymentUpdateEvent extends ApplicationEvent {
private Integer id;
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public OwnerRepaymentUpdateEvent(Object source) {
super(source);
}
public OwnerRepaymentUpdateEvent(Object source, Integer id) {
super(source);
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
...@@ -302,7 +302,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -302,7 +302,7 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK); throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
} }
//接单判断 //接单借款判断
orderChildLoanComponent.getChildDetermine(orderInfo, ownerInfo, orderGoods, childNo); orderChildLoanComponent.getChildDetermine(orderInfo, ownerInfo, orderGoods, childNo);
OrderChild orderChild = new OrderChild(); OrderChild orderChild = new OrderChild();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论