MrShi
昨天 7ee466ebc953bb5640bcf42f2b8e2a87aa471c21
server/services/src/main/java/com/doumee/service/business/OrdersService.java
@@ -3,7 +3,21 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Orders;
import com.doumee.dao.dto.CalculateLocalPriceDTO;
import com.doumee.dao.dto.CalculateRemotePriceDTO;
import com.doumee.dao.dto.CreateOrderDTO;
import com.doumee.dao.dto.DispatchDTO;
import com.doumee.dao.dto.MyOrderDTO;
import com.doumee.dao.vo.MyOrderDetailVO;
import com.doumee.dao.vo.MyOrderVO;
import com.doumee.dao.vo.OrderDetailVO;
import com.doumee.dao.vo.OrderDispatchVO;
import com.doumee.dao.vo.OrderSummaryVO;
import com.doumee.dao.vo.OverdueFeeVO;
import com.doumee.dao.vo.PayResponse;
import com.doumee.dao.vo.PriceCalculateVO;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -96,4 +110,154 @@
     */
    long count(Orders orders);
    /**
     * 查询订单详情
     *
     * @param id 主键
     * @return OrderDetailVO
     */
    OrderDetailVO findDetail(Integer id);
    /**
     * 会员端订单详情
     *
     * @param id       订单主键
     * @param memberId 会员主键
     * @return MyOrderDetailVO
     */
    MyOrderDetailVO findMyOrderDetail(Integer id, Integer memberId);
    /**
     * 会员取消订单(仅异地寄存)
     *
     * @param orderId   订单主键
     * @param memberId  会员主键
     * @param reason    取消原因
     */
    void cancelOrder(Integer orderId, Integer memberId, String reason);
    /**
     * 寄存订单支付回调处理
     *
     * @param outTradeNo 商户订单号
     * @param wxTradeNo  微信订单号
     */
    void handleStorageOrderPayNotify(String outTradeNo, String wxTradeNo);
    /**
     * 门店核销收件
     *
     * @param verifyCode 核销码
     * @param shopId     门店主键
     * @param images     图片地址列表(最多3张)
     * @param remark     备注
     */
    void shopVerifyOrder(String verifyCode, Integer shopId, List<String> images, String remark);
    /**
     * 门店端查询订单详情
     * 支持按订单主键或核销码查询,复用会员端详情逻辑
     *
     * @param orderId    订单主键(与verifyCode二选一)
     * @param verifyCode 核销码(与orderId二选一)
     * @return 订单详情
     */
    MyOrderDetailVO findShopOrderDetail(Integer orderId, String verifyCode);
    /**
     * 查询手动派单信息
     *
     * @param id 订单主键
     * @return OrderDispatchVO
     */
    OrderDispatchVO findDispatchInfo(Integer id);
    /**
     * 订单派单
     *
     * @param dto 派单参数
     */
    void dispatch(DispatchDTO dto);
    /**
     * 根据分页查询条件统计订单汇总
     *
     * @param pageWrap 分页查询条件
     * @return OrderSummaryVO
     */
    OrderSummaryVO findSummary(PageWrap<Orders> pageWrap);
    /**
     * 计算保价费用
     * @param declaredValue 报价金额
     * @return 保价费用
     */
    BigDecimal calculateInsuranceFee(BigDecimal declaredValue);
    /**
     * 计算就地存取预估费用
     * @param dto 就地存取计价请求参数
     * @return 价格计算结果
     */
    PriceCalculateVO calculateLocalPrice(CalculateLocalPriceDTO dto);
    /**
     * 计算异地存取预估费用
     * @param dto 异地存取计价请求参数
     * @return 价格计算结果
     */
    PriceCalculateVO calculateRemotePrice(CalculateRemotePriceDTO dto);
    /**
     * 创建订单并唤起微信支付
     * @param dto 创建订单请求参数
     * @param memberId 当前登录会员ID
     * @return 支付响应
     */
    PayResponse createOrder(CreateOrderDTO dto, Integer memberId);
    /**
     * 继续支付(待支付订单重新唤起微信支付)
     * @param orderId 订单主键
     * @param memberId 当前登录会员ID
     * @return 支付响应
     */
    PayResponse continuePay(Integer orderId, Integer memberId);
    /**
     * 小程序端-查询我的订单分页
     * @param pageWrap 分页查询参数(model含status)
     * @param memberId 会员主键
     * @return 分页结果
     */
    PageData<MyOrderVO> findMyOrderPage(PageWrap<MyOrderDTO> pageWrap, Integer memberId);
    /**
     * 查询订单超时费用
     * @param orderId 订单主键
     * @return 超时费用计算结果
     */
    OverdueFeeVO calculateOverdueFee(Integer orderId);
    /**
     * 司机核销(异地寄存且有取件门店)
     * 派送中(4) → 已到店(5),校验司机核销码
     *
     * @param verifyCode 司机核销码
     * @param images     图片地址列表(最多3张)
     * @param remark     备注
     * @param driverId   司机(会员)主键
     */
    void driverVerifyOrder(String verifyCode, List<String> images, String remark, Integer driverId);
    /**
     * 确认顾客已到店
     * 就地寄存/异地寄存,且存在取件门店,状态为待取件(5)
     * 检查逾期状态:逾期则标记逾期,未逾期则完成订单
     *
     * @param orderId 订单主键
     * @param shopId  当前操作门店主键
     */
    void confirmCustomerArrived(Integer orderId, Integer shopId);
}