package com.doumee.service.business;
|
|
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;
|
|
/**
|
* 寄存订单信息Service定义
|
* @author rk
|
* @date 2026/04/10
|
*/
|
public interface OrdersService {
|
|
/**
|
* 创建
|
*
|
* @param orders 实体对象
|
* @return Integer
|
*/
|
Integer create(Orders orders);
|
|
/**
|
* 主键删除
|
*
|
* @param id 主键
|
*/
|
void deleteById(Integer id);
|
|
/**
|
* 删除
|
*
|
* @param orders 实体对象
|
*/
|
void delete(Orders orders);
|
|
/**
|
* 批量主键删除
|
*
|
* @param ids 主键集
|
*/
|
void deleteByIdInBatch(List<Integer> ids);
|
|
/**
|
* 主键更新
|
*
|
* @param orders 实体对象
|
*/
|
void updateById(Orders orders);
|
|
/**
|
* 批量主键更新
|
*
|
* @param ordersList 实体集
|
*/
|
void updateByIdInBatch(List<Orders> ordersList);
|
|
/**
|
* 主键查询
|
*
|
* @param id 主键
|
* @return Orders
|
*/
|
Orders findById(Integer id);
|
|
/**
|
* 条件查询单条记录
|
*
|
* @param orders 实体对象
|
* @return Orders
|
*/
|
Orders findOne(Orders orders);
|
|
/**
|
* 条件查询
|
*
|
* @param orders 实体对象
|
* @return List<Orders>
|
*/
|
List<Orders> findList(Orders orders);
|
|
/**
|
* 分页查询
|
*
|
* @param pageWrap 分页对象
|
* @return PageData<Orders>
|
*/
|
PageData<Orders> findPage(PageWrap<Orders> pageWrap);
|
|
/**
|
* 条件统计
|
*
|
* @param orders 实体对象
|
* @return long
|
*/
|
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);
|
|
}
|