package com.hfkj.service.order;

import com.hfkj.entity.BsOrderAfterSalesApply;
import com.hfkj.sysenum.order.OrderAfterSalesApplyTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * 订单售后申请
 * @className: BsOrderAfterSalesApplyService
 * @author: HuRui
 * @date: 2024/5/15
 **/
public interface BsOrderAfterSalesApplyService {

    /**
     * 编辑数据
     * @param data 数据
     */
    void editData(BsOrderAfterSalesApply data);

    /**
     * 创建售后申请
     * @param applyType  申请类型
     * @param childOrderNo 子订单号
     * @param productCount 产品数量
     * @param photo        图片
     * @param remarks      备注
     */
    void createApply(OrderAfterSalesApplyTypeEnum applyType, String childOrderNo, Integer productCount, String photo, String remarks);

    /**
     * 审核
     * @param applyNo  申请单号
     * @param applyStatus 审核状态 true:通过  false：驳回
     * @param remarks    备注
     * @param opUserId   操作人
     */
    void audit(String applyNo, Boolean applyStatus, String remarks, Long opUserId);

    /**
     * 邮寄
     * @param applyNo  申请单号
     * @param sendExpressNo  快递单号
     */
    void sendExpress(String applyNo, String sendExpressNo);

    /**
     * 完成
     * @param applyNo  申请单号
     */
    void finish(String applyNo, Long opUserId);

    /**
     * 查询详情
     * @param applyNo
     * @return
     */
    BsOrderAfterSalesApply getDetailByApplyNo(String applyNo);
    /**
     * 查询详情
     * @param childOrderNo
     * @return
     */
    BsOrderAfterSalesApply getDetailByChildOrderNo(String childOrderNo);

    /**
     * 查询列表
     * @param param
     * @return
     */
    List<BsOrderAfterSalesApply> getApplyList(Map<String,Object> param);


}
