package com.webmanage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.webmanage.common.PageResult; import com.webmanage.dto.CreateOrderDTO; import com.webmanage.dto.FileCheckDTO; import com.webmanage.dto.OrderQueryDTO; import com.webmanage.dto.UpdateOrderDetailDTO; import com.webmanage.entity.OrderInfo; import com.webmanage.vo.OrderDetailVO; import com.webmanage.dto.OrderApprovalDTO; /** * 订单信息Service接口 */ public interface OrderInfoService extends IService { /** * 分页查询买家订单列表 */ PageResult getBuyerOrderPage(OrderQueryDTO queryDTO); /** * 分页查询卖家订单列表 */ PageResult getSellerOrderPage(OrderQueryDTO queryDTO); /** * 分页查询买家订单列表(支持产品条件) */ PageResult getBuyerOrderPageWithProductConditions(OrderQueryDTO queryDTO); /** * 分页查询卖家订单列表(支持产品条件) */ PageResult getSellerOrderPageWithProductConditions(OrderQueryDTO queryDTO); /** * 分页查询待审批订单列表 */ PageResult getPendingApprovalOrderPage(OrderQueryDTO queryDTO); /** * 获取订单详情 */ OrderDetailVO getOrderDetail(String orderId); /** * 创建订单(包含订单头与明细插入),返回订单编号 */ OrderInfo createOrder(CreateOrderDTO createOrderDTO); /** * 上传订单附件 */ Long uploadOrderAttachment(String orderId, String fileName, String originalName, String fileType, Long fileSize, String fileUrl, String bucketName, String objectName, Long uploadUserId, String uploadUserName, String attachmentType, String description); /** * 添加订单评价 */ boolean addOrderEvaluation(String orderId, Long evaluatorId, String evaluatorName, String evaluatorType, String content, Integer rating, Integer serviceRating, Integer qualityRating, Integer deliveryRating, Boolean isAnonymous); /** * 更新订单状态到下一个状态 * @param orderId 订单ID * @return 是否更新成功 */ boolean updateOrderStatusToNext(String orderId); /** * 删除订单附件 * @param attachmentId 附件ID * @return 是否删除成功 */ boolean deleteOrderAttachment(Long attachmentId); /** * 更新订单状态到上一个状态 * @param orderId 订单ID * @return 是否更新成功 */ boolean updateOrderStatusToPrevious(String orderId); /** * 交易确认 */ boolean confirmTransaction(String orderId, Long userId); /** * 回复评价 */ boolean replyEvaluation(Long evaluationId, String replyContent, Long replyUserId); /** * 更新订单详情(包含订单状态和详情备注) */ boolean updateOrderDetail(UpdateOrderDetailDTO updateOrderDetailDTO); /** * 文件核查 */ boolean checkFiles(FileCheckDTO fileCheckDTO); /** * 审批通过 */ boolean approveOrder(OrderApprovalDTO orderApprovalDTO); /** * 检查订单是否包含协议类型的子订单 * @param orderId 订单ID * @return 是否包含协议类型子订单 */ boolean hasAgreementPriceType(String orderId); /** * 只更新订单详情的备注信息(不更新订单状态) * @param updateOrderDetailDTO 更新订单详情DTO * @return 是否更新成功 */ boolean updateOrderDetailRemarksOnly(UpdateOrderDetailDTO.UpdateOrderDetailRemarksOnlyDTO updateOrderDetailDTO); /** * 取消订单 * @param orderId 订单ID * @return 是否取消成功 */ boolean cancelOrder(String orderId); /** * 根据订单ID更新工作流ID * @param orderId 订单ID * @param workflowId 工作流实例ID * @return 是否更新成功 */ boolean updateWorkflowId(String orderId, String workflowId); }