import request from '../request'


/**
 * 订单类接口
 * @param * 
 * @return *
*/
const order = {
    /***********************************************************
     * 获取商户订单数量（统计）
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    Get_store_rder_count_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetStoreOrderCountInfo', 'GET', params)
    },


    /***********************************************************
     * 获取售后单（统计）
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    Get_store_afs_order_countinfo: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetStoreAfsOrderCountInfo', 'GET', params)
    },


    /***********************************************************
     * 获取对应状态的订单数据
     * @param {object} params 请求参数
     * @return {object} code：状态 data：{totalCount：总条数，data：分页数据} desc：错误信息
     */
    get_orders: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetOrders', 'GET', params)
    },


    /*************************************************************
     * 确认接单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据，desc：错误信息
     */
    accept_or_refuse_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/AcceptOrRefuseOrder', 'POST', params)
    },


    /*************************************************************
     * 获取打印机状态
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_printer_status: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetPrinterStatus', 'GET', params)
    },


    /*************************************************************
     * 网络打印机打印订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    print_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/PrintOrder', 'PUT', params)
    },


    /*************************************************************
     * 拣货完成
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    finished_pickup: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/FinishedPickup', 'POST', params)
    },


    /*************************************************************
     * 自提订单 京西订单不用自提 id
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    confirm_self_take: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/ConfirmSelfTake', 'POST', params)
    },


    /*************************************************************
     * 确认送送达
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    self_delivered: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/SelfDelivered', 'POST', params)
    },


    /*************************************************************
     * 获取售后订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_afs_orders: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetAfsOrders', 'GET', params)
    },


    /*************************************************************
     * 非饿百订单 退货退款
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    agree_orRefuse_refund: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/AgreeOrRefuseRefund', 'PUT', params)
    },


    /*************************************************************
     * @description 扫码枪 到店扫码支付订单退款 收获退款 post jxorder/RefundOnlineOrder
     * @Param token           header    string  true  "认证token"
     * @Param vendorOrderID  formData   string  true  "订单ID"
     * @Param skuIds         formData   string  true  "[key:value]退款商品 skuId:count,int"  Map类型
     * @Param Reason         formData   string  true  "退单原因"
     */
    refund_online_order: async(params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/jxorder/RefundOnlineOrder','POST', params)
    },

    /*************************************************************
     * 饿佰取消订单  京东的异常单售后
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    agree_or_refuse_cancel: async (params: AnyObject): Promise<AnyObject> => {
        // 原来饿百订单退款或者驳回的接口有问题，更换成原来的退款
        return await request.api('/v2/order/AgreeOrRefuseCancel', 'PUT', params)
    },


    /*************************************************************
     * 退货待确认
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    confirm_received_return_goods: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/ConfirmReceivedReturnGoods', 'PUT', params)
    },


    /*************************************************************
     * 退货待确认
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_order_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetOrderInfo', 'GET', params)
    },


    /*************************************************************
     * 查询取消订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    getafs_orders: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/getafsOrders', 'POST', params)
    },


    /*************************************************************
     * 取消订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    cancel_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/CancelOrder', 'PUT', params)
    },


    /*************************************************************
     * 获取条形码
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    create_qrOr_bar_code: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/cms/CreateQrOrBarCode', 'POST', params)
    },


    /*************************************************************
     * 查询是否是京西新用户
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_order_user_buy_first: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetOrderUserBuyFirst', 'GET', params)
    },


    /*************************************************************
     * 获取运单状态
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_order_status_list: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetOrderStatusList', 'GET', params)
    },


    /*************************************************************
     * 获取商品列表
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_order_sku_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetOrderSkuInfo', 'GET', params)
    },


    /*************************************************************
     * 获取订单差评骑手列表
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    complaint_rider_list: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/ComplaintRiderList', 'GET', params)
    },


    /*************************************************************
     * 差评骑手
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    complaint_rider: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/ComplaintRider', 'POST', params)
    },


    /*************************************************************
     * 商品部分退款
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    part_refund_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/PartRefundOrder', 'PUT', params)
    },


    /*************************************************************
     * 商品全额退款并创建售后单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    refund_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/RefundOrder', 'PUT', params)
    },


    /*************************************************************
     * 直接部分退款
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    adjust_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/AdjustOrder', 'PUT', params)
    },


    /*************************************************************
     * 售后商品
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_afs_order_sku_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetAfsOrderSkuInfo', 'GET', params)
    },


    /*************************************************************
     * 获取运单费用
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    query_order_waybill_fee_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/QueryOrderWaybillFeeInfo', 'GET', params)
    },


    /*************************************************************
     * 获取品牌余额
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_brands: async (params?: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/store/GetBrands', 'GET', params)
    },



    /*************************************************************
     * 获取门店账号余额
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    get_store_acct_balance: async (params?: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/store/GetStoreAcctBalance', 'GET', params)
    },


    /*************************************************************
     * 创建订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    create_store_acct_order: async (params?: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/jxorder/CreateStoreAcctOrder', 'POST', params)
    },


    /*************************************************************
     * 支付订单
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    pay4_user: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/jxorder/Pay4User', 'POST', params)
    },


    /*************************************************************
     * 非抖音订单转自送
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    self_delivering: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/SelfDelivering', 'POST', params)
    },


    /*************************************************************
     * 添加小费
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    update_order_waybill_tip: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/UpdateOrderWaybillTip', 'POST', params)
    },


    /*************************************************************
     * 切换发单方式
     * @param {object} params 请求参数
     * @return {object} code：状态 data：数据 desc：错误信息
     */
    update_store_courier_map: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/store/UpdateStoreCourierMap', 'PUT', params)
    },


    /*************************************************************
    * 创建三方配送
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    create_waybill_on_providers: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/CreateWaybillOnProviders', 'POST', params)
    },


    /*************************************************************
    * 取消订单
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    cancel_waybill: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/CancelWaybill', 'POST', params)
    },


    /*************************************************************
    * 骑手
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    accept_or_refuse_failed_get_order: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/AcceptOrRefuseFailedGetOrder', 'PUT', params)
    },


    /*************************************************************
    * 重新召唤骑手
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    callP_m_courier: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/CallPMCourier', 'PUT', params)
    },


    /*************************************************************
    * 退回货物
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    confirm_receive_goods: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/ConfirmReceiveGoods', 'PUT', params)
    },


    /*************************************************************
    * 查看客户距离
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    get_ST_o_U_riding_distance: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/cms/GetSToURidingDistance', 'GET', params)
    },


    /*************************************************************
    * 获取骑手位置
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    get_rider_lng: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetRiderLng', 'POST', params)
    },

    /*************************************************************
    * 获取骑手位置(实时)
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    get_store_to_riding_distance: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/cms/GetSToURidingDistance2', 'GET', params)
    },

    /*************************************************************
    * 取消所有三方运单（取消所有配送）
    * @param {object} params 请求参数
    * @return {object} code：状态 data：数据 desc：错误信息
    */
    cancel_all_3rd_waybills: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/CancelAll3rdWaybills', 'POST', params)
    },

    /**
     * 测试推送消息(订单)
     * @param vendorOrderID  订单id
     */
    test_uni_app_push: async (params?: string): Promise<AnyObject> => {
        return await request.api(`/v2/event/TestUniAppPush?vendorOrderID=${params}`, 'GET', params)
    },


    /***************************************************************
     * 查询发票信息，美团
     * @Param	storeId			formData	int		        false	  "门店id"
     * @Param	startTime		formData	string	        true	  "开始时间"
     * @Param	endTime			formData	string	        true	  "结束时间"
     * @Param	status			formData	string	        false	  "发票回复状态[1未回复/2回复]"
     * @Param	offset			query		  int		    false	  "结果起始序号（以0开始，缺省为0）"
     * @Param	pageSize		query		  int		    false	  "结果页大小（缺省为50，-1表示全部）"
     */
    query_mt_invoice: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/GetInvoiceRecord', 'POST', params)
    },


    /**
     * 上传发票图片
     * @Param	token			  header		string	true	"认证token"
     * @Param	orderId			  formData	    string	true	"订单ID"
     * @Param	invoiceUrl		  formData	    string	true	"发票地址[10M内pdf/png/jpeg/jpg]"
     * @Param	invoiceId		  formData	    string	true	"发票号码"
     */
    upload_invoice_img: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/UploadOrderInvoice', 'POST', params)
    },


    /**
     * 发票设置 饿百
     * @Title 批量更新门店发票设置
     * @Description 批量更新门店发票设置
     * @Param	token			        header		    string	true	"认证token"
     * @Param	vendorId			    formData		string	true	"平台ID"
     * @Param	vendorStoreID		    formData		string	true	"平台门店ID"
     * @Param	payload			        formData		string	true	"json数据,格式为 ebaiapi.StoreInvoiceSetting"，见JXC4-BACKSTAGE
     */
    bath_update_invoice_setting: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/BathUpdateInvoiceSetting', 'POST', params)
    },


    /**
     * 查询饿百门店发票设置
     */
    query_invoice_setting: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/QueryInvoiceSetting', 'GET', params)
    },


    /**
     * 获取发票申请列表 饿百
     */
    get_invoice_info: async (params: AnyObject): Promise<AnyObject> => {
        return await request.api('/v2/order/QueryUnansweredInvoice', 'GET', params)
    },
    
}


export default order