/// <inheritdoc /> public async Task <WebCallResult <BitfinexWriteResult <BitfinexOrder> > > PlaceOrderAsync( string symbol, Enums.OrderSide side, Enums.OrderType type, decimal quantity, decimal price, int?flags = null, int?leverage = null, int?groupId = null, int?clientOrderId = null, decimal?priceTrailing = null, decimal?priceAuxLimit = null, decimal?priceOcoStop = null, DateTime?cancelTime = null, string?affiliateCode = null, CancellationToken ct = default) { symbol.ValidateBitfinexSymbol(); if (side == Enums.OrderSide.Sell) { quantity = -quantity; } var parameters = new Dictionary <string, object> { { "symbol", symbol }, { "type", JsonConvert.SerializeObject(type, new OrderTypeConverter(false)) }, { "price", price.ToString(CultureInfo.InvariantCulture) }, { "amount", quantity.ToString(CultureInfo.InvariantCulture) } }; parameters.AddOptionalParameter("gid", groupId); parameters.AddOptionalParameter("cid", clientOrderId); parameters.AddOptionalParameter("flags", flags); parameters.AddOptionalParameter("lev", leverage); parameters.AddOptionalParameter("price_trailing", priceTrailing?.ToString(CultureInfo.InvariantCulture)); parameters.AddOptionalParameter("price_aux_limit", priceAuxLimit?.ToString(CultureInfo.InvariantCulture)); parameters.AddOptionalParameter("price_oco_stop", priceOcoStop?.ToString(CultureInfo.InvariantCulture)); parameters.AddOptionalParameter("tif", cancelTime?.ToString("yyyy-MM-dd HH:mm:ss")); parameters.AddOptionalParameter("meta", new Dictionary <string, string?>() { { "aff_code", affiliateCode ?? _baseClient.AffiliateCode } }); var result = await _baseClient.SendRequestAsync <BitfinexWriteResult <JArray> >(_baseClient.GetUrl(PlaceOrderEndpoint, "2"), HttpMethod.Post, ct, parameters, true).ConfigureAwait(false); if (!result) { return(result.As <BitfinexWriteResult <BitfinexOrder> >(default));
/// <summary> /// 根据订单类型判断订单是否支持返积分 /// </summary> /// <param name="orderType"></param> /// <param name="groupbuyType"></param> /// <returns></returns> public bool IsCanRebateScoreByOrderType(Enums.OrderType orderType, string groupbuyType = null) { bool result = false; var websiteInfo = GetWebsiteInfoModelFromDataBase(); if (orderType == Enums.OrderType.Normal) { result = websiteInfo.IsOrderRebateScoreByMallOrder == 1; } if (orderType == Enums.OrderType.GroupBuy && groupbuyType == "leader") { result = websiteInfo.IsOrderRebateScoreByCreateGroupBuy == 1; } if (orderType == Enums.OrderType.GroupBuy && groupbuyType == "member") { result = websiteInfo.IsOrderRebateScoreByJoinGroupBuy == 1; } return(result); }