提交 2e704eb5 authored 作者: aiqingguo's avatar aiqingguo

接单限制

上级 9383aa1d
......@@ -11,6 +11,8 @@ import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecord
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
/**
* @author liruixin
* Date 2023-10-24
......@@ -20,7 +22,7 @@ public interface BreakContractDriverRecordDao extends BaseDao<BreakContractDrive
boolean updateSettlementNo(BreakContractDriverRecord item);
Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo);
Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo, LocalDateTime time);
IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param);
IPage<DriverBreakContractDriverRecordVO> driverPageByParam(DriverPageBreakContractDriverRecordParam param);
......
......@@ -14,6 +14,8 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
/**
* @author liruixin
* Date 2023-10-24
......@@ -31,11 +33,12 @@ public class BreakContractDriverRecordDaoImpl extends BaseDaoImpl<BreakContractD
}
@Override
public Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo) {
public Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo, LocalDateTime time) {
return Optional.of(driverUserNo)
.map(item -> lQrWrapper()
.eq(BreakContractDriverRecord::getDriverUserNo, item)
.isNotNull(BreakContractDriverRecord::getLimitTime)
.ge(BreakContractDriverRecord::getLimitTime, time)
.orderByDesc(BreakContractDriverRecord::getLimitTime)
.last("limit 1")
)
......
......@@ -1405,7 +1405,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* 司机接单限制
*/
private void driverTakeOrderLimit(Long driverUserNo){
Optional<BreakContractDriverRecord> limitOptional = breakContractDriverRecordDao.selectLastLimitTimeByDriverUserNo(driverUserNo);
Optional<BreakContractDriverRecord> limitOptional = breakContractDriverRecordDao.selectLastLimitTimeByDriverUserNo(driverUserNo, LocalDateTime.now());
if (limitOptional.isPresent()){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT,
PerformanceResultEnum.ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT.getMsg()+LocalDateTimeUtils.convertLocalDateTimeToString(limitOptional.get().getLimitTime(), "yyyy-MM-dd HH:mm"));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论