package com.ruoyi.system.service; import java.util.List; import java.util.Map; import com.ruoyi.system.domain.AppleDoMain.OrderApple; import com.ruoyi.system.domain.Order; import com.ruoyi.system.domain.OrderTypeCount; /** * 服务订单Service接口 * * @author ruoyi * @date 2025-05-13 */ public interface IOrderService { /** * 查询服务订单 * * @param id 服务订单主键 * @return 服务订单 */ public Order selectOrderById(Long id); /** * 小程序查询服务订单列表 * * @param orderApple 服务订单 * @return 服务订单集合 */ public List selectOrderAppleList(OrderApple orderApple); public int updateOrderPhone(Long id); public int updateOrderCika(Long id); public Order selectOrderByOrderId(String orderId); /** * 查询服务订单列表 * * @param order 服务订单 * @return 服务订单集合 */ public List selectOrderList(Order order); public int selectCountOrderByUid(Long uid,Long status); public int selectAllCountOrderByUid(Long uid); /** * 新增服务订单 * * @param order 服务订单 * @return 结果 */ public int insertOrder(Order order); /** * 修改服务订单 * * @param order 服务订单 * @return 结果 */ public int updateOrder(Order order); /** * 批量删除服务订单 * * @param ids 需要删除的服务订单主键集合 * @return 结果 */ public int deleteOrderByIds(Long[] ids); /** * 删除服务订单信息 * * @param id 服务订单主键 * @return 结果 */ public int deleteOrderById(Long id); /** * 统计指定用户和类型的订单数量 * @param uid 用户id * @param type 订单类型 * @return 订单数量 */ Integer selectOrderCountByBigtype(Long uid, Integer type); // ========== 预约人数查询相关方法 ========== /** * 根据预约日期和时间段查询预约数量 * * @param params 查询参数,包含makeTime和makeHour * @return 预约数量 */ public Integer selectOrderCountByMakeTimeAndHour(Map params); /** * 根据预约日期查询所有预约订单 * * @param params 查询参数,包含makeTime * @return 预约订单列表 */ public List selectOrderListByMakeTime(Map params); /** * 根据预约日期和时间段查询预约订单列表 * * @param params 查询参数,包含makeTime和makeHour * @return 预约订单列表 */ public List selectOrderListByMakeTimeAndHour(Map params); /** * 查询指定日期范围内的预约统计 * * @param params 查询参数,包含startTime和endTime * @return 预约统计列表 */ public List> selectOrderCountByDateRange(Map params); /** * 查询指定日期和时间段的预约详情 * * @param params 查询参数,包含makeTime和makeHour * @return 预约订单列表 */ public List selectOrderDetailByMakeTimeAndHour(Map params); /** * 查询用户指定日期的预约数量 * * @param params 查询参数,包含uid和makeTime * @return 预约数量 */ public Integer selectUserOrderCountByMakeTime(Map params); /** * 查询指定日期和时间段的用户预约 * * @param params 查询参数,包含uid、makeTime和makeHour * @return 预约订单列表 */ public List selectUserOrderByMakeTimeAndHour(Map params); /** * 查询预约时间冲突的订单 * * @param params 查询参数,包含makeTime、makeHour和excludeOrderId * @return 冲突的订单列表 */ public List selectConflictingOrders(Map params); /** * 查询指定日期所有时间段的预约统计 * * @param params 查询参数,包含makeTime * @return 预约统计列表 */ public List> selectOrderCountByDate(Map params); /** * 查询指定日期和时间段的可用预约数量 * * @param params 查询参数,包含makeTime和makeHour * @return 可用预约数量 */ public Integer selectAvailableOrderCount(Map params); /** * 查询指定日期和时间段的预约用户列表 * * @param params 查询参数,包含makeTime和makeHour * @return 预约用户列表 */ public List> selectOrderUsersByMakeTimeAndHour(Map params); /** * 查找用户首次下单的订单ID * * @param userId 用户ID * @return 首次下单的订单ID,如果没有找到返回null */ public String selectUserFirstOrderId(Long userId); /** * 查询服务订单列表(导出专用,包含所有关联信息) * * @param order 服务订单 * @return 服务订单集合 */ public List selectOrderListForExport(Order order); }