package com.hys.app.service.erp;

import com.hys.app.framework.database.mybatisplus.base.BaseService;
import com.hys.app.model.erp.dos.OrderReturnDO;
import com.hys.app.model.erp.dto.OrderReturnStatisticsQueryParam;
import com.hys.app.model.erp.enums.OrderReturnStatusEnum;
import com.hys.app.model.erp.vo.OrderReturnVO;
import com.hys.app.model.erp.dto.OrderReturnDTO;
import com.hys.app.model.erp.dto.OrderReturnQueryParams;
import com.hys.app.framework.database.WebPage;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 订单退货业务层接口
 *
 * @author 张崧
 * @since 2023-12-14 15:42:07
 */
public interface OrderReturnManager extends BaseService<OrderReturnDO> {
    /**
     * 分页列表
     *
     * @param queryParams 查询条件
     * @return 分页数据
     */
    WebPage<OrderReturnVO> list(OrderReturnQueryParams queryParams);

    /**
     * 添加  原订单状态改成售后订单
     * 退貨的商品退货商品的数量加上
     * @param orderReturnDTO
     */
    void add(OrderReturnDTO orderReturnDTO);

    /**
     * 编辑
     * @param orderReturnDTO
     */
    void edit(OrderReturnDTO orderReturnDTO);

    /**
     * 查询详情
     * @param id
     * @return 
     */
    OrderReturnVO getDetail(String id);

    /**
     * 关闭订单 更改原订单的状态
     * @param id
     */
    void cancel(String edit,Long id);



    /**
     * 查询订单退货统计分页列表数据
     *
     * @param params 查询参数
     * @return
     */
    WebPage statistics(OrderReturnStatisticsQueryParam params);

    /**
     * 导出订单退货统计列表数据
     *
     * @param response
     * @param params 查询参数
     */
    void export(HttpServletResponse response, OrderReturnStatisticsQueryParam params);
}

