package com.ylx.massage.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ylx.common.core.domain.R; import com.ylx.massage.domain.TOrder; import com.ylx.massage.domain.vo.HomeBlock; import com.ylx.massage.domain.vo.OrderVerificationVo; import com.ylx.massage.domain.vo.TechnicianAvailabilityVo; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * 订单表 服务类 */ public interface TOrderService extends IService { /** * 添加订单 */ public TOrder addOrder(TOrder order); /** * 支付订单 */ public R payOrder(TOrder order) throws Exception; /** * 拒绝订单 */ public Boolean jujue(TOrder order); /** * 确认服务完成 * @param order * @return */ public Boolean confirm(TOrder order); /** * 取消订单 * @param order * @return */ public Boolean cancle(TOrder order); public TOrder getByNo(String orderNo); /** * 分页查询订单数据 * @param page * @param param * @return Page */ public Page getAll(Pagepage, TOrder order); void takingOrders(TOrder order); /** * * @param outTradeNo */ void payNotifyOrder(String outTradeNo); Object updateAddressById(TOrder borrow); Object depart(TOrder order); Integer getOrderNum(String jsid, Date startDate, Date endDate); Integer getAddNum(String jsid, Date startDate, Date endDate); Integer getUpgradeNum(String id, Date startDate, Date endDate); BigDecimal getTurnover(String id, Date startDate, Date endDate); TOrder transferOrder(TOrder order); List getBlock(Date start, Date end, String deptId); OrderVerificationVo verification(TOrder order); /** * 获取技师当天可预约时间 * @param technicianId 技师ID * @param dateStr 查询日期(格式:yyyy-MM-dd),为null则查询当天 * @return 技师当天可预约时间VO */ TechnicianAvailabilityVo getTechnicianAvailability(String technicianId, String dateStr); /** * 申请取消订单(退单申请) * @param cId 订单ID * @param cancelReason 退单原因 * @return 申请结果 */ Boolean applyCancle(String cId, String cancelReason); /** * 取消退单申请 * 用户主动取消退单申请,恢复订单状态 * * 业务流程: * 1. 参数校验(订单ID不能为空) * 2. 查询订单和退单申请记录 * 3. 校验订单状态必须为"退单待审核"(6) * 4. 校验退单申请状态必须为"待审核"(0) * 5. 调用退单申请服务取消申请 * 6. 恢复订单状态到申请前的原始状态 * * @param order 订单对象,需要包含cId(订单ID) * @return 操作结果 */ Boolean cancelApplyCancle(TOrder order); int countCompletedOrders(String openId, Date queryTime); }