public List <NotifyOrderModel> QueryOrdersList(ScanOrderCondition condition) { List <NotifyOrderEntity> list = null; List <NotifyOrderModel> modList = new List <NotifyOrderModel>(); list.ForEach(x => modList.Add(MappingHelper.From <NotifyOrderModel, NotifyOrderEntity>(x))); return(modList); }
private List <string> GetOrdersConditionList(ScanOrderCondition condition) { List <string> list = new List <string>(); list.Add(" 1=1 "); list.Add(" OrderStatus = @Status "); list.Add(" OutTime BETWEEN @StartTime AND @EndTime "); list.Add(" OrderId > @ScanOrderIdInit "); return(list); }
internal List <NotifyOrderEntity> QueryOrdersList(ScanOrderCondition condition) { string sql = ""; try { const string table = @" dbo.tblOrders WITH(NOLOCK) "; const string selectField = @"OrderId, OrderNo, OrderStatus,{0} OutTime,SalesmanID,ProviderID,ProxyerID"; string orderby = "OutTime" + " " + condition.OrderDirection; string sqlWhere = string.Join(" AND ", GetOrdersConditionList(condition).ToArray()); List <NotifyOrderEntity> list = CommonPage.GetData <NotifyOrderEntity, ScanOrderCondition>(table, string.Format(selectField, condition.OrderBy), orderby, sqlWhere, condition, out sql); DBLog.Process("", "", "", "JinRiDBQuery.QueryOrdersList", "", "获取订单信息", string.Format("sql:【{0}】,扫描查询条件ScanOrderCondition:【{1}】", sql, JsonConvert.SerializeObject(condition)), "Info"); return(list); } catch (Exception ex) { DBLog.Process("", "", "", "JinRiDBQuery.QueryOrdersList", "", "获取订单信息", string.Format("sql:【{0}】,扫描查询条件ScanOrderCondition:【{1}】,获取订单信息异常,ex:{2}", sql, JsonConvert.SerializeObject(condition), ex.Message), "Fatal"); List <NotifyOrderEntity> list = new List <NotifyOrderEntity>(); return(list); } }
/// <summary> /// 获取扫描订单信息 /// </summary> /// <param name="setting"></param> /// <param name="stime"></param> /// <param name="etime"></param> /// <returns></returns> public List <NotifyOrderEntity> GetOrdersList(ScanOrderCondition condition) { string sql = ""; try { const string sqlStr = @"SELECT OrderNo, OrderStatus,{0} OutTime,SalesmanID,ProviderID,ProxyerID FROM tblOrders WITH(NOLOCK) WHERE OrderStatus = @OrderStatus AND {0} BETWEEN @Stime AND @Etime AND OrderId > @OrderId {1} ORDER BY {0}"; string includes = ""; if (!string.IsNullOrWhiteSpace(condition.Includes)) { includes = string.Format(" AND SalesmanId IN ({0}) ", condition.Includes); } sql = string.Format(sqlStr, condition.OrderBy, includes); DynamicParameters parameter = new DynamicParameters(); parameter.Add("OrderStatus", condition.Status); parameter.Add("Stime", condition.StartTime); parameter.Add("Etime", condition.EndTime); parameter.Add("OrderId", condition.ScanOrderIdInit); parameter.Add("OrderByField", condition.OrderBy); DBLog.Process("sql", "sql", "", "sql", "sql", "sql", string.Format("sql:【{0}】,扫描查询条件ScanOrderCondition:【{1}】", sql, JsonConvert.SerializeObject(condition)), "sql"); using (var conn = new SqlConnection(ConnectionString.JinRiDB_SELECT)) { return(conn.Query <NotifyOrderEntity>(sql, parameter).ToList()); } } catch (Exception ex) { DBLog.Process("", "", "", "JinRiDBQuery.GetOrdersList", "", "获取订单信息", string.Format("sql:【{0}】,扫描查询条件ScanOrderCondition:【{1}】,获取订单信息异常,ex:{2}", sql, JsonConvert.SerializeObject(condition), ex.Message), "Fatal"); List <NotifyOrderEntity> list = new List <NotifyOrderEntity>(); return(list); } }
public ActionResult OrderList(ScanOrderCondition model) { #if DEBUG model.ScanOrderIdInit = 0; #else model.ScanOrderIdInit = 86000000; #endif if (model.Status == 1) { model.OrderBy = "PayTime"; } else if (model.Status == 2) { model.OrderBy = "OutTime"; } else if (model.Status == 7) { model.OrderBy = "Contingent7"; } else if (model.Status == 3) { model.OrderBy = "Rtime"; } else if (model.Status == 4) { model.OrderBy = "Rtime"; } else if (model.Status == 5) { model.OrderBy = "OverTime"; } List <NotifyOrderModel> list = m_diffBus.QueryOrdersList(model); var json = JsonConvert.SerializeObject(new { rows = list, total = model.RecordCount }, JsonConvertHelper.IsoDateTimeConverter); return(Content(json)); }
public void TestScanServerSettingCollection() { List <ScanServiceSetting.ScanSetting> current = ScanServiceSetting.ScanSettingList; foreach (ScanServiceSetting.ScanSetting setting in current) { DateTime stime = new DateTime(2015, 10, 1); DateTime etime = new DateTime(2015, 10, 30); ScanOrderCondition condition = new ScanOrderCondition(); condition.OrderBy = setting.OrderBy; condition.ScanOrderIdInit = setting.ScanOrderIdInit; condition.PageSize = setting.ScanCount; condition.Status = setting.OrderStatus; condition.StartTime = stime; condition.EndTime = etime; condition.Includes = string.Join(",", setting.Include.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); List <NotifyOrderEntity> list = JinRiDBFacade.Instance.GetOrdersList(condition); foreach (NotifyOrderEntity ent in list) { } } }
private void GetScanMessageList(object setting) { string ikey = Guid.NewGuid().ToString(); ScanServiceSetting.ScanSetting scanSetting = (ScanServiceSetting.ScanSetting)setting; Process.Debug("m_scanConditionDic", "m_scanConditionDic", string.Format("scanSetting:【{0}】", scanSetting.ScanCount), ""); int scanIntervalTime = scanSetting.IntervalTime * (-1); ScanOrderCondition con = new ScanOrderCondition(); con.OrderBy = scanSetting.OrderBy; con.ScanOrderIdInit = scanSetting.ScanOrderIdInit; con.PageSize = scanSetting.ScanCount; con.Status = scanSetting.OrderStatus; con.Includes = string.Join(",", scanSetting.Include.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); DateTime endTime = GetDateTimeNow(ikey); con.StartTime = endTime.AddSeconds(scanIntervalTime); con.EndTime = endTime; Handle.Debug(ikey, "订单扫描开始", "GetScanMessageList", scanSetting.MessType, string.Format("条件参数【{0}】,订单扫描初开始,间隔:{1}", JsonConvert.SerializeObject(con), scanIntervalTime.ToString()), ""); try { System.Diagnostics.Stopwatch execTime = new System.Diagnostics.Stopwatch(); while (true) { execTime.Restart(); ikey = Guid.NewGuid().ToString(); List <NotifyOrderEntity> orderList = GetOrdersList(con); if (orderList != null && orderList.Count > 0) { foreach (NotifyOrderEntity orderEnt in orderList) { if (!IsSendingDataCache(orderEnt, scanSetting.MessType)) { string errMsg = ""; NotifyMessage message = new NotifyMessage(); message.MessageKey = SetMessageKey(orderEnt, scanSetting.MessType); message.SourceFrom = "OrderScan手动扫描"; message.AppId = ConfigurationAppSetting.AppId; string data = string.Format("orderno={0}&OutTime={1}&SalesmanID={2}&ProviderID={3}&ProxyerID={4}", orderEnt.OrderNo, orderEnt.OutTime, orderEnt.SalesmanID, orderEnt.ProviderID, orderEnt.ProxyerID); message.NotifyData = data; message.MessagePriority = JinRi.Notify.Model.MessagePriorityEnum.None; message.MessageType = scanSetting.MessType; DateTime dt = DateTime.Now; bool ret = SendOrder(message, out errMsg); Double spendTime = (DateTime.Now - dt).TotalMilliseconds; Process.Debug(ikey, "订单扫描记录", "GetScanMessageList", orderEnt.OrderNo, string.Format("订单扫描记录:发送时间【{0}】,调用耗时【{1}】ms,返回结果:【{2}】", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), spendTime, errMsg), "发送"); if (!ret) { lock (m_repeatNotifyTimesLockObj) { //进入补偿推送队列 m_repeatNotifyTimes[orderEnt.OrderNo] = 1; } _repeatNotifyPool.Write(message); } } Process.Debug(ikey, "订单扫描记录", "GetScanMessageList", orderEnt.OrderNo, "订单扫描记录", "订单"); } } execTime.Stop(); Process.Debug(ikey, "订单扫描记录", "GetScanMessageList", scanSetting.MessType, string.Format("扫描开始时间:【{0}】,扫描截止时间:【{1}】,扫描条数【{2}】,执行时间【{3}】ms", con.StartTime, con.EndTime, orderList.Count, execTime.ElapsedMilliseconds), ""); int sleep = (int)execTime.ElapsedMilliseconds; if (scanSetting.IdleSleepTime > sleep) { Thread.Sleep(scanSetting.IdleSleepTime - sleep); } con.StartTime = endTime.AddSeconds(scanIntervalTime); con.EndTime = GetDateTimeNow(ikey); endTime = con.EndTime; TimeSpan timeSpan = con.EndTime - DateTime.Now; double sleepTime = timeSpan.TotalMilliseconds; if (sleepTime > 0) { Process.Debug(ikey, "订单扫描记录", "GetScanMessageList", scanSetting.MessType, string.Format("休眠时间【{0}】", sleepTime.ToString(), "")); Thread.Sleep((int)sleepTime); } } } catch (Exception ex) { Process.Fatal(ikey, "订单扫描记录", "GetScanMessageList", scanSetting.MessType, string.Format("重扫线程异常结束ex【{2}】,扫描开始时间:【{0}】,扫描截止时间:【{1}】", con.StartTime.ToString("yyyy-MM-dd HH:mm:ss"), con.EndTime.ToString("yyyy-MM-dd HH:mm:ss"), ex.ToString()), ""); ThreadPool.QueueUserWorkItem(x => { try { Scan(); } catch { } } ); } }
private List <NotifyOrderEntity> GetOrdersListBuSao(ScanOrderCondition condition) { // TODO return(null); }
/// <summary> /// 补扫 /// </summary> /// <param name="condition"></param> /// <returns></returns> public List <NotifyOrderEntity> GetOrdersListBuSao(ScanOrderCondition condition) { string sql = ""; try { List <NotifyOrderEntity> notifyList = new List <NotifyOrderEntity>(); List <NotifyOrderEntity> list1 = null; List <NotifyOrderEntity> list2 = null; List <NotifyOrderEntity> list3 = null; string includes = ""; if (!string.IsNullOrWhiteSpace(condition.Includes)) { includes = string.Format(" AND SalesmanId IN ({0}) ", condition.Includes); } #region 出票 string sqlStr = @"SELECT OrderNo, OrderStatus FROM tblOrders WITH(NOLOCK) WHERE OrderStatus =2 AND OutTime BETWEEN @Stime AND @Etime AND OrderId > @OrderId {0} ORDER BY OutTime"; sql = string.Format(sqlStr, includes); DynamicParameters parameter = new DynamicParameters(); parameter.Add("Stime", condition.StartTime); parameter.Add("Etime", condition.EndTime); parameter.Add("OrderId", condition.ScanOrderIdInit); using (var conn = new SqlConnection(ConnectionString.JinRiDB_SELECT)) { list1 = conn.Query <NotifyOrderEntity>(sql, parameter).ToList(); } #endregion #region 暂不能出票 sqlStr = @"SELECT OrderNo, OrderStatus FROM tblOrders WITH(NOLOCK) WHERE OrderStatus =7 AND Contingent7 BETWEEN @Stime AND @Etime AND OrderId > @OrderId {0} ORDER BY Contingent7"; sql = string.Format(sqlStr, includes); using (var conn = new SqlConnection(ConnectionString.JinRiDB_SELECT)) { list2 = conn.Query <NotifyOrderEntity>(sql, parameter).ToList(); } #endregion #region 退款成功 sqlStr = @"SELECT OrderNo, OrderStatus FROM tblOrders WITH(NOLOCK) WHERE OrderStatus =5 AND OverTime BETWEEN @Stime AND @Etime AND OrderId > @OrderId {0} ORDER BY OverTime"; sql = string.Format(sqlStr, includes); using (var conn = new SqlConnection(ConnectionString.JinRiDB_SELECT)) { list3 = conn.Query <NotifyOrderEntity>(sql, parameter).ToList(); } #endregion if (list1.Any()) { notifyList.AddRange(list1); } if (list2.Any()) { notifyList.AddRange(list2); } if (list3.Any()) { notifyList.AddRange(list3); } return(notifyList); } catch (Exception ex) { DBLog.Process("", "", "", "JinRiDBQuery.GetOrdersList", "", "获取订单信息", string.Format("sql:【{0}】,扫描查询条件ScanOrderCondition:【{1}】,获取订单信息异常,ex:{2}", sql, JsonConvert.SerializeObject(condition), ex.Message), "Fatal"); List <NotifyOrderEntity> list = new List <NotifyOrderEntity>(); return(list); } }
public List <NotifyOrderEntity> GetOrdersListBuSao(ScanOrderCondition condition) { return(JinRiDBQuery.Instance.GetOrdersListBuSao(condition)); }
public List <NotifyOrderEntity> QueryOrdersList(ScanOrderCondition condition) { return(JinRiDBQuery.Instance.QueryOrdersList(condition)); }