/// <summary> /// 新增优惠券 /// </summary> /// <param name="maxProductID"></param> private static void Add(int maxID, ISqlBLL iBLL, IMySqlBLL iMysqlBLL, string tbName) { int errorCount = 0; DataTable dTable = null; int errorSum = 0; int sucessSum = 0; while (true) { // 查询新数据 dTable = iBLL.GetAddList(maxID, Program.UpdateTime, Program.UpdateMaxCount, tbName); if (dTable == null || dTable.Rows.Count <= 0) { break; } // 保存 if (!iMysqlBLL.Add(dTable, out errorCount)) { errorSum += errorCount; Console.WriteLine(string.Format("{0} 表总共需添加 {1} 条数据,失败:{2}", tbName, dTable.Rows.Count, errorCount)); } else { sucessSum += dTable.Rows.Count; Console.WriteLine(string.Format("{0} 表已添加 {1} 条数据", tbName, sucessSum)); } maxID = Convert.ToInt32(dTable.Rows[dTable.Rows.Count - 1][GetTbIDStrByTbName(tbName)]); } }
/// <summary> /// 订单相关表数据更新 /// </summary> /// <param name="maxID">最大ID</param> /// <param name="iBLL"></param> /// <param name="iMysqlBLL"></param> /// <param name="tbName"></param> /// <param name="flag">更新3个月之前数据还是最近3个月的数据,3个月之前 - true,最近3个月 - false</param> private static void AddOrders(int maxID, ISqlBLL iBLL, IMySqlBLL iMysqlBLL, string tbNameAll, string tbName, bool flag) { int errorCount = 0; DataTable dTable = null; int errorSum = 0; int sucessSum = 0; string msg = string.Empty; string msgError = string.Empty; if (flag) { msg = "{0}表往相应的历史库已添加 {1} 条数据"; msgError = "{0} 表往相应的历史库总共需添加 {1} 条数据,失败数:{2}"; } else { msg = "{0}表往相应的库已添加 {1} 条数据"; msgError = "{0} 表往相应的库总共需添加 {1} 条数据,失败数:{2}"; } while (true) { // 查询新数据 dTable = iBLL.GetAddList(maxID, Program.UpdateTime, Program.UpdateMaxCount, tbNameAll); if (dTable == null || dTable.Rows.Count <= 0) { break; } // 保存 if (!iMysqlBLL.Add(dTable, out errorCount)) { errorSum += errorCount; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(string.Format(msgError, tbName, dTable.Rows.Count, errorCount)); } else { sucessSum += dTable.Rows.Count; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(string.Format(msg, tbName, sucessSum)); } maxID = Convert.ToInt32(dTable.Rows[dTable.Rows.Count - 1][GetTbIDStrByTbName(tbName)]); } }
/// <summary> /// 订单相关表数据更新 /// </summary> /// <param name="iBLL"></param> /// <param name="iMysqlBLL"></param> /// <param name="tbName"></param> private static void MySqlUpdateOrders(ISqlBLL iBLL, IMySqlBLL iMysqlBLL, string tbName) { string tableName = string.Empty; string msgInfo = string.Empty; try { tableName = tbName.Split('-')[0]; string msg = tbName.Split('-')[1]; bool flag = true; if (msg == "before") { msgInfo = "3个月前数据更新"; flag = true; } else { msgInfo = "3个月后数据更新"; flag = false; } Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(string.Format("========== {0}:{1} BEGIN ==========", tableName, msgInfo)); int maxID = 0; // 批量添加 AddOrders(maxID, iBLL, iMysqlBLL, tbName, tableName, flag); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(string.Format("{0}:{1} 失败:{2}", tableName, msgInfo, ex.Message)); } finally { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(string.Format("========== {0}:{1} END ==========", tableName, msgInfo)); } // 通知主线程MySql数据库更新结束 OnNotifyMainThreadCompleted(++completeCount); }
/// <summary> /// 更新mysql 优惠券相关表的公共方法 /// </summary> /// <typeparam name="T">表的实体</typeparam> /// <param name="iBLL">sql server数据库相关接口</param> /// <param name="iMysqlBLL">my server数据库相关接口</param> /// <param name="msg">不同表提示信息</param> private static void MySqlUpdate(ISqlBLL iBLL, IMySqlBLL iMysqlBLL, string tbName) { try { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(string.Format("========== {0} BEGIN ==========", tbName)); // Mysql 商品相关表的最大ID int maxID = 0; //iMysqlBLL.GetMaxID(); // 批量添加 Add(maxID, iBLL, iMysqlBLL, tbName); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(string.Format("{0} 更新失败:{1}", tbName, ex.Message)); } finally { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(string.Format("========== {0} END ==========", tbName)); } // 通知主线程MySql数据库更新结束 OnNotifyMainThreadCompleted(++completeCount); }