RiderMessageService.java 1.25 KB
package com.diligrp.rider.service;

import java.util.Map;

/**
 * 骑手端消息服务
 */
public interface RiderMessageService {

    /**
     * 获取骑手消息列表(分页)
     *
     * @param riderId  骑手ID
     * @param type     消息类型:1=订单 2=系统 null=全部
     * @param page     页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    Map<String, Object> listByRider(Long riderId, Integer type, Integer page, Integer pageSize);

    /**
     * 获取未读消息数
     *
     * @param riderId 骑手ID
     * @return {total: 总数, order: 订单消息数, system: 系统消息数}
     */
    Map<String, Integer> getUnreadCount(Long riderId);

    /**
     * 标记单条消息为已读
     *
     * @param riderId   骑手ID
     * @param messageId 消息ID
     */
    void markRead(Long riderId, Long messageId);

    /**
     * 批量标记已读
     *
     * @param riderId    骑手ID
     * @param messageIds 消息ID列表
     */
    void markReadBatch(Long riderId, java.util.List<Long> messageIds);

    /**
     * 全部标记已读
     *
     * @param riderId 骑手ID
     * @param type    消息类型:1=订单 2=系统 null=全部
     */
    void markAllRead(Long riderId, Integer type);
}