| | |
| | | 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.CommentOrderDTO; |
| | | 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; |
| | | |
| | | /** |
| | |
| | | */ |
| | | 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); |
| | | |
| | | /** |
| | | * 逾期费用支付(唤起微信支付) |
| | | * |
| | | * @param orderId 寄存订单主键 |
| | | * @param memberId 当前登录会员ID |
| | | * @return 支付响应 |
| | | */ |
| | | PayResponse payOverdueFee(Integer orderId, Integer memberId); |
| | | |
| | | /** |
| | | * 逾期费用支付回调处理 |
| | | * |
| | | * @param outTradeNo 商户订单号 |
| | | * @param wxTradeNo 微信订单号 |
| | | */ |
| | | void handleOverdueFeePayNotify(String outTradeNo, String wxTradeNo); |
| | | |
| | | /** |
| | | * 取件门店确认出库 |
| | | * 就地寄存/异地寄存,存在取件门店,status=5,overdueStatus=0/2,confirmArriveTime不为空 |
| | | * 出库后订单完成 |
| | | * |
| | | * @param orderId 订单主键 |
| | | * @param shopId 当前操作门店主键 |
| | | * @param images 出库图片(最多3张) |
| | | * @param remark 出库备注 |
| | | */ |
| | | void confirmStoreOut(Integer orderId, Integer shopId, List<String> images, String remark); |
| | | |
| | | /** |
| | | * 计算并更新订单三方收益(存件门店/取件门店/司机) |
| | | * 就地寄存:仅存件门店收益 |
| | | * 异地寄存:存件门店 + 司机收益;有取件门店时加上取件门店收益 |
| | | * |
| | | * @param orderId 订单主键 |
| | | */ |
| | | void calculateAndSaveOrderFees(Integer orderId); |
| | | |
| | | /** |
| | | * 会员删除订单(逻辑删除,仅已完成/已取消/已退款订单可删除) |
| | | * |
| | | * @param orderId 订单主键 |
| | | * @param memberId 会员主键 |
| | | */ |
| | | void deleteMyOrder(Integer orderId, Integer memberId); |
| | | |
| | | /** |
| | | * 门店支付押金(唤起微信支付) |
| | | * |
| | | * @param shopId 门店主键 |
| | | * @return 支付响应 |
| | | */ |
| | | PayResponse payShopDeposit(Integer shopId); |
| | | |
| | | /** |
| | | * 门店押金支付回调处理 |
| | | * |
| | | * @param outTradeNo 商户订单号 |
| | | * @param wxTradeNo 微信订单号 |
| | | */ |
| | | void handleShopDepositPayNotify(String outTradeNo, String wxTradeNo); |
| | | |
| | | /** |
| | | * 订单结算:根据 SETTLEMENT_DATE 配置,将已完成的待结算订单进行结算 |
| | | * 更新订单结算状态、Revenue 入账状态、门店/司机余额 |
| | | */ |
| | | void settleOrders(); |
| | | |
| | | /** |
| | | * 订单评价 |
| | | * status=7且commentStatus=0时可评价,按对象(存件门店/取件门店/司机)分别记录评分 |
| | | * |
| | | * @param dto 评价请求 |
| | | * @param memberId 当前登录会员ID |
| | | */ |
| | | void commentOrder(CommentOrderDTO dto, Integer memberId); |
| | | |
| | | /** |
| | | * 门店端订单分页列表 |
| | | * 查询存件门店或取件门店等于当前登录门店的订单 |
| | | * |
| | | * @param pageWrap 分页查询参数(model含status/combinedStatus) |
| | | * @param shopId 当前登录门店主键 |
| | | * @return 分页结果 |
| | | */ |
| | | PageData<MyOrderVO> findShopOrderPage(PageWrap<MyOrderDTO> pageWrap, Integer shopId); |
| | | |
| | | } |