/// <summary> /// 获取网关数据/api/business/batchordersearch /// </summary> /// <returns></returns> public static async Task <int> GetOrderSearch(string orderId) { HttpResponseMessage httpResponseMesage = new HttpResponseMessage(); try { //记录下需要插入的资产ids httpResponseMesage = await InitialHttpClient().PostAsJsonAsync("api/business/ordersearch", new { orderId }); OrderSearchResponse response = await httpResponseMesage.Content.ReadAsAsync <OrderSearchResponse>(); switch (response.Status) { case "S": return(1); case "F": case null: return(-1); } return(-2); } catch (Exception ex) { //log记录日志 Logger.LoadData(@"BankError\Error.txt", ex.Message + "---------" + await httpResponseMesage.Content.ReadAsStringAsync()); return(-2); } }
public OrderSearchResponse Search(OrderSearchRequest request) { var response = new OrderSearchResponse(); response.List = _facade.Search(request.Filter, request.PaginationInfo); return(response); }
public override async Task <OrderSearchResponse> Order_Search(OrderSearchRequest request, ServerCallContext context) { //TODO 从底层ES中查找订单数据, //可以设计成DDD 方式来进行ES的操作,这里我就为了演示直接硬编码了 var response = new OrderSearchResponse(); try { response.Data.Add(new OrderRepsonse() { Amount = 100.00, Count = 10, Name = "订单名称测试", OrderId = DateTime.Now.ToString("yyyyMMddHHmmss"), Time = DateTime.Now.ToString() }); response.Data.Add(new OrderRepsonse() { Amount = 200.00, Count = 10, Name = "订单名称测试2", OrderId = DateTime.Now.ToString("yyyyMMddHHmmss"), Time = DateTime.Now.ToString() }); response.Data.Add(new OrderRepsonse() { Amount = 300.00, Count = 10, Name = "订单名称测试2", OrderId = DateTime.Now.ToString("yyyyMMddHHmmss"), Time = DateTime.Now.ToString() }); response.Success = true; } catch (Exception ex) { response.ErrorMsg = ex.Message; _logger.LogWarning("异常"); } return(response); }
private List <OrderInfo> GetOrderList(DateTime startDate, DateTime endDate, string orderState, int page, int pageSize, out Int32 totalCount, bool recursive) { try { OrderSearchRequest request = new OrderSearchRequest(); request.StartDate = startDate; request.EndDate = endDate; request.OrderState = orderState; request.Page = page; request.PageSize = pageSize; OrderSearchResponse response = Client.Execute(request, AppContext.AccessToken.Token); if (!response.IsError) { List <OrderInfo> list = new List <OrderInfo>(); if (response.OrderSearch == null || response.OrderSearch.OrderInfoList == null || response.OrderSearch.OrderInfoList.Count == 0) { totalCount = 0; return(list); } list.AddRange(response.OrderSearch.OrderInfoList); if (recursive && page * pageSize < response.OrderSearch.OrderTotal) { list.AddRange(GetOrderList(startDate, endDate, orderState, ++page, pageSize, out totalCount, true)); } totalCount = response.OrderSearch.OrderTotal; return(list); } else { throw new Exception(response.ErrCode + ":" + response.ErrMsg); } } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取网关数据/api/business/batchordersearch /// </summary> /// <returns></returns> private async Task <bool> GetOrderSearch(string orderId) { HttpResponseMessage httpResponseMesage = new HttpResponseMessage(); try { //记录下需要插入的资产ids httpResponseMesage = await this.httpClient.PostAsJsonAsync($"{this.loadAppSettings.BankGatewayUrl}api/business/ordersearch", new { orderId }); OrderSearchResponse response = await httpResponseMesage.Content.ReadAsAsync <OrderSearchResponse>(); if (response.Status == "S") { return(true); } return(false); } catch (Exception ex) { //log记录日志 Logger.LoadData(@"CountHasCreditAssignment\Error.txt", ex.Message + "---------" + await httpResponseMesage.Content.ReadAsStringAsync()); return(false); } }
public async Task <bool> OmsSyncWineWorldOrder() { try { //防止多次抓取订单造成错误 Monitor.Enter(_MyLock); //获取排它锁 string method = "wineworld.order.search"; string app_key = "oms"; string v = "1.0"; string sd_id = "501"; string order_state = "WAIT_SELLER_STOCK_OUT"; string page_no = "1"; string page_size = "50"; string data = null; OrderAssistParamsModel orderAssistParamsModel = _orderSyncService.OrderAssistOmsApi(method, app_key, v, sd_id, order_state, page_no, page_size, data); //处理SSL问题 var httpClientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true }; using (var http = new HttpClient(httpClientHandler)) { var postParamJson = orderAssistParamsModel.ToJson(); //#region JWTBearer授权校验信息 //_workContext.CurrentHttpContext.Request.Cookies.TryGetValue("wms_token", out string token); //if (string.IsNullOrEmpty(token)) { token = await GetWMSOauthToken(); } //http.DefaultRequestHeaders.Add("Authorization", string.Format("Bearer {0}", token)); //#endregion var content = new StringContent(postParamJson, Encoding.UTF8, "application/json"); var postUrl = _configuration.GetSection("OrderAssistOmsApi")["domain"].ToString(); var response = http.PostAsync(postUrl, content).Result; var result = await response.Content.ReadAsStringAsync(); //if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) // 未授权 //{ // await GetWMSOauthToken(); // Logger.Error("OMS抓取商城下单信息同步到订单表失败,原因是API授权失败!请重试。"); // return false; //} if (response.StatusCode == System.Net.HttpStatusCode.OK) { //var account = _workContext.CurrentUser.Id; var test = JsonMapper.ToObject <RespDataOrderInfo>(result); if (test != null) { OrderSearchResponse orderSearchResponse = test.resp_data; if (orderSearchResponse != null) { List <OrderInfo> orderInfoList = orderSearchResponse.order_info_list; List <OrderNotification> orderNotifications = new List <OrderNotification>(); if (orderInfoList.Count > 0 && orderInfoList != null) { _orderSyncService.OrderSync(orderInfoList, sd_id, out orderNotifications); } if (orderNotifications.Count > 0 && orderNotifications != null) { OrderNotification(orderNotifications); } } } return(true); } else { _logService.Error(string.Format("OMS抓取商城下单信息同步到订单表失败,状态码:{0},RequestMessage:{1}", response.StatusCode, response.RequestMessage)); return(false); } } } catch (Exception ex) { _logService.Error(string.Format("OMS抓取商城下单信息同步到订表异常:{0}", ex.Message)); return(false); } finally { Monitor.Exit(_MyLock); //释放排它锁 } }
/// <summary> /// 京东订单检索(360buy.order.search) /// 定时同步时使用 /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <param name="orderState"></param> /// <param name="page"></param> /// <param name="pageSize"></param> /// <param name="totalCount"></param> /// <param name="recursive"></param> /// <returns></returns> public string GetOrderList(string startDate, string endDate, string orderState, string page, string pageSize, out Int32 totalCount, bool recursive) { try { int count = 0; string AppKey = "0901C6C9E495BDB7FEEAE8EEA47D13F2"; //xMorderInfoApp.AppKey; string AppSecret = "1916857c7087437095775f29763f527b"; //xMorderInfoApp.AppSecret; string CallbackUrl = "http://www.hozest.com"; // xMorderInfoApp.CallbackUrl; string AccessToken = "032ecc44-7ac6-46c3-a4b7-7e844f7ea1b4"; // xMorderInfoApp.AccessToken; Jd.Api.IJdClient Client = new DefaultJdClient("http://gw.api.360buy.com/routerjson", AppKey, AppSecret, AccessToken); OrderSearchRequest request = new OrderSearchRequest(); // request.startDate = startDate.ToString(); //开始时间 request.endDate = endDate.ToString(); //结束时间 request.orderState = orderState; request.page = page.ToString(); request.pageSize = pageSize.ToString(); request.optionalFields = "order_id,vender_id,pay_type,order_total_price,order_payment,order_seller_price,freight_price,seller_discount,order_state,delivery_type,invoice_info,order_remark,order_start_time,order_end_time,modified,payment_confirm_time,pin,consignee_info,coupon_detail_list,item_info_list,logistics_id,waybill,vender_remark"; OrderSearchResponse response = Client.Execute(request); string s = "\"consignee_info\":\"\","; string ns = "\"consignee_info\":null,"; string str = response.Body.Replace(s, ns); OrderSearchResponse m = JsonConvert.DeserializeObject <OrderSearchResponse>(str); if (m.orderSearch == null) { for (int i = 1; i < 10; i++) { Client = new DefaultJdClient("http://gw.api.360buy.com/routerjson", AppKey, AppSecret, AccessToken); OrderSearchRequest requestfor = new OrderSearchRequest(); requestfor.startDate = startDate; //付款开始时间 requestfor.endDate = endDate; //付款结束时间 requestfor.orderState = orderState; requestfor.page = page; requestfor.pageSize = pageSize; requestfor.optionalFields = "order_id,vender_id,pay_type,order_total_price,order_payment,order_seller_price,freight_price,seller_discount,order_state,delivery_type,invoice_info,order_remark,order_start_time,order_end_time,modified,payment_confirm_time,pin,consignee_info,coupon_detail_list,item_info_list,logistics_id,waybill,vender_remark"; OrderSearchResponse responsefor = Client.Execute(requestfor); string sfor = "\"consignee_info\":\"\","; string nsfor = "\"consignee_info\":null,"; string strfor = responsefor.Body.Replace(sfor, nsfor); OrderSearchResponse mfor = JsonConvert.DeserializeObject <OrderSearchResponse>(strfor); if (mfor.orderSearch != null) { if (!responsefor.IsError) { count = mfor.orderSearch.Count(); totalCount = count; return(""); ; } else { throw new Exception("错误代码:" + responsefor.ErrCode + "错误信息:" + responsefor.ErrMsg); } } } } else { if (!response.IsError) { //count = m.Child.OrderSearch.OrderTotal; totalCount = count; //return m.Child.OrderSearch.OrderInfoList; return(""); } else { throw new Exception("错误代码:" + response.ErrCode + "错误信息:" + response.ErrMsg); } } totalCount = count; } catch (Exception ex) { //throw new Exception(ex.Message); //BusinessLogic.ErrorLog.RecordErrorLogs.WriteError(ex.Message.ToString(), CRMContext.Current.User.CustomerID.ToString()); totalCount = 0; IoC.Resolve <IRecordErrorLogs>().WriteErrorLog("负责人:" + HozestERPContext.Current.User.CustomerID.ToString() + "; 方法名:GetOrderList; 异常提示:" + ex.Message.ToString() + "; InnerException:" + ex.InnerException); } return(null); }
public async Task <IActionResult> Search([FromBody] SearchRequest request) { SAPContext context = HttpContext.RequestServices.GetService(typeof(SAPContext)) as SAPContext; SAPbobsCOM.Recordset oRecSet = (SAPbobsCOM.Recordset)context.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); List <string> where = new List <string>(); if (request.columns[0].search.value != String.Empty) { where.Add($"LOWER(ord.\"DocNum\") Like LOWER('%{request.columns[0].search.value}%')"); } if (request.columns[1].search.value != String.Empty) { where.Add($"LOWER(contact.\"CardFName\") Like LOWER('%{request.columns[1].search.value}%')"); } if (request.columns[2].search.value != String.Empty) { where.Add($"LOWER(contact.\"CardName\") Like LOWER('%{request.columns[2].search.value}%')"); } if (request.columns[3].search.value != String.Empty) { where.Add($"LOWER(warehouse.\"WhsName\") Like LOWER('%{request.columns[3].search.value}%')"); } if (request.columns[4].search.value != String.Empty) { List <string> whereOR = new List <string>(); if ("Abierto".Contains(request.columns[4].search.value, StringComparison.CurrentCultureIgnoreCase)) { whereOR.Add(@"ord.""DocStatus"" = 'O' "); } if ("Cerrado".Contains(request.columns[4].search.value, StringComparison.CurrentCultureIgnoreCase)) { whereOR.Add(@"ord.""DocStatus"" = 'C' "); } if ("Cancelado".Contains(request.columns[4].search.value, StringComparison.CurrentCultureIgnoreCase)) { whereOR.Add(@"ord.""CANCELED"" = 'Y' "); } string whereORClause = "(" + String.Join(" OR ", whereOR) + ")"; where.Add(whereORClause); } if (request.columns[5].search.value != String.Empty) { where.Add($"to_char(to_date(SUBSTRING(ord.\"DocDate\", 0, 10), 'YYYY-MM-DD'), 'DD-MM-YYYY') Like '%{request.columns[5].search.value}%'"); } string orderby = ""; if (request.order[0].column == 0) { orderby = $" ORDER BY ord.\"DocNum\" {request.order[0].dir}"; } else if (request.order[0].column == 1) { orderby = $" ORDER BY contact.\"CardFName\" {request.order[0].dir}"; } else if (request.order[0].column == 2) { orderby = $" ORDER BY contact.\"CardName\" {request.order[0].dir}"; } else if (request.order[0].column == 3) { orderby = $" ORDER BY warehouse.\"WhsName\" {request.order[0].dir}"; } else if (request.order[0].column == 4) { orderby = $" ORDER BY ord.\"DocStatus\" {request.order[0].dir}"; } else if (request.order[0].column == 5) { orderby = $" ORDER BY ord.\"DocDate\" {request.order[0].dir}"; } else { orderby = $" ORDER BY ord.\"DocNum\" DESC"; } string whereClause = String.Join(" AND ", where); string query = @" Select ord.""DocEntry"", ord.""DocNum"", to_char(to_date(SUBSTRING(ord.""DocDate"", 0, 10), 'YYYY-MM-DD'), 'DD-MM-YYYY') as ""DocDate"", (case when ord.""CANCELED"" = 'Y' then 'Cancelado' when ord.""DocStatus"" = 'O' then 'Abierto' when ord.""DocStatus"" = 'C' then 'Cerrado' else ord.""DocStatus"" end) AS ""DocStatus"", ord.""CardName"", contact.""CardFName"", warehouse.""WhsName"" From ODLN ord LEFT JOIN NNM1 serie ON ord.""Series"" = serie.""Series"" LEFT JOIN OWHS warehouse ON serie.""SeriesName"" = warehouse.""WhsCode"" LEFT JOIN OCRD contact ON ord.""CardCode"" = contact.""CardCode"" "; if (where.Count != 0) { query += "Where " + whereClause; } query += orderby; query += " LIMIT " + request.length + " OFFSET " + request.start + ""; oRecSet.DoQuery(query); var orders = context.XMLTOJSON(oRecSet.GetAsXML())["ODLN"].ToObject <List <OrderSearchDetail> >(); string queryCount = @" Select Count (*) as COUNT From ODLN ord LEFT JOIN NNM1 serie ON ord.""Series"" = serie.""Series"" LEFT JOIN OWHS warehouse ON serie.""SeriesName"" = warehouse.""WhsCode"" LEFT JOIN OCRD contact ON ord.""CardCode"" = contact.""CardCode"" "; if (where.Count != 0) { queryCount += "Where " + whereClause; } oRecSet.DoQuery(queryCount); int COUNT = context.XMLTOJSON(oRecSet.GetAsXML())["ODLN"][0]["COUNT"].ToObject <int>(); OrderSearchResponse respose = new OrderSearchResponse { data = orders, draw = request.Draw, recordsFiltered = COUNT, recordsTotal = COUNT, }; return(Ok(respose)); }