package com.fs.hisStore.service;

import com.fs.common.core.domain.R;
import com.fs.hisStore.domain.FsIntegralOrderScrm;
import com.fs.hisStore.param.FsIntegralOrderCreateParam;
import com.fs.hisStore.param.FsIntegralOrderListUParam;
import com.fs.hisStore.param.FsIntegralOrderParam;
import com.fs.hisStore.vo.FsIntegralOrderListUVO;
import com.fs.hisStore.vo.FsIntegralOrderListVO;
import com.fs.hisStore.vo.FsIntegralOrderPVO;
import com.fs.hisStore.vo.FsStoreProductDeliverExcelVO;

import java.util.List;

/**
 * 积分商品订单Service接口
 *
 * @author fs
 * @date 2023-11-02
 */
public interface IFsIntegralOrderScrmService
{
    /**
     * 查询积分商品订单
     *
     * @param orderId 积分商品订单主键
     * @return 积分商品订单
     */
    public FsIntegralOrderScrm selectFsIntegralOrderByOrderId(Long orderId);

    /**
     * 查询积分商品订单列表
     *
     * @param fsIntegralOrder 积分商品订单
     * @return 积分商品订单集合
     */
    public List<FsIntegralOrderScrm> selectFsIntegralOrderList(FsIntegralOrderScrm fsIntegralOrder);

    /**
     * 新增积分商品订单
     *
     * @param fsIntegralOrder 积分商品订单
     * @return 结果
     */
    public int insertFsIntegralOrder(FsIntegralOrderScrm fsIntegralOrder);

    /**
     * 修改积分商品订单
     *
     * @param fsIntegralOrder 积分商品订单
     * @return 结果
     */
    public int updateFsIntegralOrder(FsIntegralOrderScrm fsIntegralOrder);

    /**
     * 批量删除积分商品订单
     *
     * @param orderIds 需要删除的积分商品订单主键集合
     * @return 结果
     */
    public int deleteFsIntegralOrderByOrderIds(Long[] orderIds);

    /**
     * 删除积分商品订单信息
     *
     * @param orderId 积分商品订单主键
     * @return 结果
     */
    public int deleteFsIntegralOrderByOrderId(Long orderId);

    List<FsIntegralOrderListVO> selectFsIntegralOrderListVO(FsIntegralOrderParam fsIntegralOrder);

    int sendGoods(FsIntegralOrderScrm fsIntegralOrder);

    List<FsIntegralOrderListUVO> selectFsIntegralOrderListUVO(FsIntegralOrderListUParam param);

    R createOrder(FsIntegralOrderCreateParam param);

    String importProductDeliver(List<FsStoreProductDeliverExcelVO> list);

    FsIntegralOrderPVO selectFsIntegralOrderPVO(Long orderId);
}
