package com.cdzy.user.service; import com.cdzy.common.model.request.PageParam; import com.cdzy.user.model.dto.EbikeUserCyclingDto; import com.cdzy.user.model.dto.EbikeUserCyclingEndDto; import com.cdzy.user.model.entity.EbikeOrder; import com.cdzy.user.model.vo.EbikeBikeInfoVo; import com.cdzy.user.model.vo.EbikeOrderDetailVo; import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo; import com.cdzy.user.model.vo.EbikeUserAllOrdersVo; import com.ebike.feign.model.dto.FeignEbikeDto; import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto; import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo; import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import java.util.List; /** * 用户订单 服务层 * * @author yanglei * @since 2025-10-15 17:06 */ public interface EbikeOrderService extends IService { /** * 生成骑行订单 * * @param orderDto 用户骑行信息 * @return 骑行订单 */ EbikeOrder saveRide(EbikeUserCyclingDto orderDto); /** * 检查历史订单 * * @param userId 用户id */ EbikeOrder checkHistoryOrder(Long userId); /** * 订单发起退款 * * @param orderId 订单ID */ void refundApply(Long orderId); /** * 订单退款 * * @param orderId 订单ID */ void refund(Long orderId); /** * 订单退款驳回 * * @param orderId 订单ID */ void rejectRefund(Long orderId); /** * 获取半径内车辆信息 * * @param feignEbikeBikeRadiusVo 半径内查询参数 * @return 所有车辆信息 */ List userRadiusList(FeignEbikeBikeRadiusVo feignEbikeBikeRadiusVo); /** * 获取车辆基本信息 * * @param bikeCode 车辆编码 * @return 车辆基本信息 */ EbikeBikeInfoVo queryBikeInfo(String bikeCode); /** * 结束骑行 * * @param endDto 结束骑行参数 * @return 订单id */ Long doneRide(EbikeUserCyclingEndDto endDto); /** * 根据订单Id查询订单状态 * * @param orderId 订单ID * @return 订单状态 */ Integer getOrderStatus(Long orderId); /** * 根据用户id获取用户所有订单 * * @param userId 用户id * @return 用户订单 */ Page getUserAllOrder(Long userId, Integer orderStatus, PageParam page); /** * 获取营收统计 * * @return 营收统计 */ List getRevenueStatistics(); /** * 根据订单id查看订单详情 * @param orderId 订单id * @return 订单详情 */ EbikeOrderDetailVo getInfo(Long orderId); /** * 查询不同运营商的订单数据及订单金额 * * @param dto 订单请求参数 * @return 订单数据及订单金额 */ FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto); }