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

接单是否逾期判断

上级 aaefc560
......@@ -16,8 +16,9 @@ public enum OwnerRePaymentEnum {
public enum Status {
PAY_WAIT(10, "待付款"),
PAYING(40, "付款中"),
PAY_SUCCESS(50, "付款成功"),
PAY_FAIL(60, "付款失败"),
PAY_FAIL(50, "付款失败"),
PAY_SUCCESS(60, "付款成功"),
;
private final Integer code;
......
......@@ -21,6 +21,8 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
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.OrderGoods;
import com.clx.performance.model.OwnerRunningWaterRecord;
......@@ -37,6 +39,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
......@@ -70,6 +73,8 @@ public class OrderChildLoanComponent {
private final RedissonClient redissonClient;
private final ApplicationEventPublisher applicationEventPublisher;
/**
* 接单校验判断
*
......@@ -150,8 +155,8 @@ public class OrderChildLoanComponent {
}
//借款账户钱够,判断是否逾期
log.info("10.借款账户钱够,判断是否逾期");
Optional<OwnerRepayment> optional = ownerRepaymentDao.getLimitOneByField(OwnerRepayment::getBeOverdue, OwnerRePaymentEnum.BeOverdue.YES.getCode());
if (optional.isPresent()) {
boolean beOverdue = this.beOverdue(ownerInfoFeignVO.getUserNo());
if (beOverdue) {
//逾期:不允许
log.info("11.当前货主存在逾期借款");
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_SAVE_FAIL, "货主已欠款");
......@@ -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;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
......@@ -13,6 +14,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Objects;
/**
......@@ -59,4 +61,11 @@ public class OwnerRepaymentDaoImpl extends BaseDaoImpl<OwnerRepaymentMapper, Own
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;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @author kavin
* Date 2024-01-20
......@@ -18,4 +20,11 @@ public interface OwnerRepaymentDao extends BaseDao<OwnerRepaymentMapper, OwnerRe
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;
import cn.hutool.json.JSONUtil;
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.SettlementOwnerDetailDao;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
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.SettlementOwnerDetail;
import lombok.AllArgsConstructor;
......@@ -15,7 +18,7 @@ import org.springframework.stereotype.Component;
@Component
@Slf4j
@AllArgsConstructor
public class SettlementListener {
public class EventListenerComponent {
private final SettlementOwnerDetailDao settlementOwnerDetailDao;
......@@ -23,6 +26,8 @@ public class SettlementListener {
private final OrderChildLoanRetryRecordDao orderChildLoanRetryRecordDao;
private final OwnerRepaymentDao ownerRepaymentDao;
@EventListener(classes = {SettlementUpdateEvent.class})
public void listen(SettlementUpdateEvent event) {
......@@ -38,4 +43,12 @@ public class SettlementListener {
// 保存重试记录
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 {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
}
//接单判断
//接单借款判断
orderChildLoanComponent.getChildDetermine(orderInfo, ownerInfo, orderGoods, childNo);
OrderChild orderChild = new OrderChild();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论