package com.mcwl.pay.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.domain.IdsParam;
import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.vo.IncomeVo;
import com.mcwl.pay.domain.vo.TrendVo;
import com.mcwl.resource.domain.dto.ProductRes;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * @Author：ChenYan
 * @Project：McWl
 * @Package：com.mcwl.pay.service
 * @Filename：OrderTradeService
 * @Description TODO
 * @Date：2025/1/3 14:51
 */
public interface OrderTradeService extends IService<OrderTrade> {
    List<OrderTrade> selectMallProductList(OrderTrade orderTrade);

    int insertMallProduct(OrderTrade orderTrade);

    void deleteMallProductByIds(IdsParam ids);

    int updateMallProduct(OrderTrade orderTrade);


    void orderHandler(OrderTrade orderTrade, String suffix, Map<String, String> params) throws ExecutionException;

    void productHandler(ProductRes productRes);

    /**
     * 根据商品名称分页查询
     * @param pageDomain 分页参数
     * @param productName 商品名称
     * @return TableDataInfo
     */
    TableDataInfo getRecord(PageDomain pageDomain, String productName);

    /**
     * 获取今日收益
     * @return Double
     */
    Double getTodayIncome();

    /**
     * 获取本月收益
     * @return Double
     */
    Double getMonthIncome();

    /**
     * 获取年度收益
     * @return Double
     */
    Double getYearIncome();

    /**
     * 获取总收益
     * @return Double
     */
    Double getTotalIncome();

    /**
     * 获取收益同比增长率
     * @return Double
     */
    Double getYoYTrend();

    /**
     * 获取收益环比增长
     * @return Double
     */
    Double getMoMTrend();

    /**
     * 获取收益
     * @return IncomeVo
     */
    IncomeVo getIncome();

    /**
     * 获取收益趋势
     * @return IncomeVo
     */
    TrendVo getTrend();
}
