RiderHoldLimitService.java 793 Bytes
package com.diligrp.rider.service;

import com.diligrp.rider.entity.Rider;
import com.diligrp.rider.vo.DispatchRuleTemplateVO;

import java.util.List;
import java.util.Map;

public interface RiderHoldLimitService {
    /** 当前持单量(status=3/4) */
    int countCurrentLoad(Long riderId);

    /** 批量查询当前持单量(status=3/4) */
    Map<Long, Integer> getCurrentLoadMap(List<Long> riderIds);

    /** 解析骑手个人持单上限,null 表示不限制 */
    Integer resolveHoldOrderLimit(Rider rider);

    /** 解析抢单场景生效上限,null 表示不限制 */
    Integer resolveGrabLimit(Rider rider, DispatchRuleTemplateVO rule);

    /** 校验骑手是否还能继续接单 */
    void assertWithinLimit(Long riderId, Integer limit, String message);
}