import { request } from 'umi';
import { api, erpApi } from '../api';
import { Paging, SortProps } from './rankingList';
let wapi = api + '/gameData'

/**
 * 订单列表
 * @param data 
 * @returns 
 */
export interface OrderListType extends Paging, SortProps {
    // 广告账号
    accountId?: string,
    // 渠道ID
    channelId?: string,
    // cp名称
    cpName?: string,
    // CP订单号
    cpOrderId?: string
    // CP通知状态 // 1为待处理，2为成功，-1为失败
    cpStatus?: string,
    // 操作系统
    deviceSystem?: string,
    // 游戏ID
    gameId?: number
    // 是否首充 0 否 1 是
    isFirstRecharge?: string,
    // 商户号
    merchantNo?: string
    // 第三方支付订单号
    merchantOrderNo?: string,
    // 订单ID
    orderId?: string,
    // 支付方式 wxpaymap;mpay;wxpay
    payWay?: string
    // 归因投放人员
    pitcherId?: string,
    // 产品名称
    productName?: string,
    // 游戏角色
    roleName?: string,
    // 服务器名称
    serverName?: string,
    // 支付状态
    status?: string
    // 玩家ID
    userId?: string,
    // 玩家账号
    username?: string
    // 玩家注册时间-开始
    regTimeStart?: string
    // 玩家注册时间-结束
    regTimeEnd?: string

    // 下单时间开始
    beginDate?: string,
    // 下单时间结束
    endDate?: string
    // 支付时间 开始
    payTimeStart?: string,
    // 支付时间 结束
    payTimeEnd?: string
    // 充值到支付的间隔时间（分）
    regPayIntervalTimeMax?: number
    // 充值到支付的间隔时间（分）
    regPayIntervalTimeMin?: number
}
export async function getOrderListApi(data: OrderListType) {
    return request(wapi + `/order/list`, {
        method: 'POST',
        data
    });
}

/**
 * 订单详情列表总计
 * @param data 
 * @returns 
 */
export async function getOrderTotalApi(data: OrderListType) {
    return request(wapi + `/order/list/total`, {
        method: 'POST',
        data
    });
}

/** 获取通知CP记录 */
export interface CpLogListProps {
    pageNum: number,
    pageSize: number,
    orderId?: string  // 订单ID
}
/**
 * cp通知记录
 * @param data 
 * @returns 
 */
export async function getOrderCpNoticeApi(data: CpLogListProps) {
    return request(wapi + `/order/detail`, {
        method: 'POST',
        data
    });
}

/**
 * 回传
 * @param param0 
 * @returns 
 */
export async function setBackApi({ type, ...data }: { type: 'byte' | 'tencent_mini' | 'tencent_h5', ids: string, splitOrder: boolean, splitMoney?: number[], money?: number }) {
    switch (type) {
        case 'byte':
            return request(erpApi + `/gameBack/oceanengine/orderReport`, {
                method: 'POST',
                data
            });
        case 'tencent_mini':
            return request(erpApi + `/gameBack/tencentMiniGame/orderReport`, {
                method: 'POST',
                data
            });
        case 'tencent_h5':
            return request(erpApi + `/gameBack/tencent/orderReport`, {
                method: 'POST',
                data
            });
    }
}


/**
 * 回传日志
 * @param param0 
 * @returns 
 */
export async function getBackLogApi({ type, orderId }: { type: 'byte' | 'tencent_mini' | 'tencent_h5' | 'oceanengine_app' | 'tencent_app' | 'tencent_app_api', orderId: string }) {
    switch (type) {
        case 'byte':
            return request(erpApi + `/gameBack/oceanengine/orderSplitList/${orderId}`, {
                method: 'GET'
            });
        case 'tencent_mini':
            return request(erpApi + `/gameBack/tencentMiniGame/orderSplitList/${orderId}`, {
                method: 'GET'
            });
        case 'tencent_h5':
            return request(erpApi + `/gameBack/tencent/orderSplitList/${orderId}`, {
                method: 'GET'
            });
        case 'oceanengine_app':
            return request(erpApi + `/gameBack/oceanengineApp/orderSplitList/${orderId}`, {
                method: 'GET'
            });
        case 'tencent_app': // 腾讯app
        case 'tencent_app_api': // 腾讯企微app先宇19:29
            return request(erpApi + `/gameBack/xxxxx/${orderId}`, {
                method: 'GET'
            });
    }
}