/// <summary> /// 同步省市区数据 /// </summary> /// <param name="delete"></param> /// <returns></returns> public static int SynchronousArea(bool delete = false) { int result = 0; if (!System.IO.File.Exists(SqLiteDb)) { return(result); } DateTime?modifiedOn = new DateTime(2014, 01, 01); string dbConnection = "Data Source={StartupPath}/DataBase/STO.Bill.db;Pooling=true;FailIfMissing=false;Password=ZTO20149988"; dbConnection = dbConnection.Replace("{StartupPath}", System.Windows.Forms.Application.StartupPath); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, dbConnection)) { BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, BaseSystemInfo.UserInfo, BaseParameterEntity.TableName); var tableName = BaseAreaEntity.TableName; if (!delete) { var synchronous = parameterManager.GetParameter(BaseParameterEntity.TableName, "System", tableName, "Synchronous"); if (!string.IsNullOrEmpty(synchronous)) { modifiedOn = DateTime.Parse(synchronous); } } if (delete) { dbHelper.ExecuteNonQuery("DELETE FROM " + tableName); } result = SynchronousTable("UserCenter", tableName, new string[] { BaseAreaEntity.FieldId }, modifiedOn, "Bill", tableName, 20000, false); if (result > 0) { parameterManager.SetParameter(BaseParameterEntity.TableName, "System", tableName, "Synchronous", DateTime.Now.ToString(BaseSystemInfo.DateTimeFormat)); } } return(result); }
/// <summary> /// 设置参数值 /// </summary> /// <param name="userInfo">用户</param> /// <param name="categoryId">分类主键</param> /// <param name="parameterId">参数主键</param> /// <param name="parameterCode">参数编号</param> /// <param name="parameterContent">参数内容</param> /// <returns>影响行数</returns> public int SetParameter(BaseUserInfo userInfo, string categoryId, string parameterId, string parameterCode, string parameterContent) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif int returnValue = 0; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, userInfo); returnValue = parameterManager.SetParameter(categoryId, parameterId, parameterCode, parameterContent); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.ParameterService_SetParameter, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(returnValue); }
/// <summary> /// 登录前运行的方法 /// </summary> public static void BeforeLogOn() { // 0:若文件不存在,就退出数据同步,不进行数据同步 string sqLiteDb = System.Windows.Forms.Application.StartupPath + @"\DataBase\STO.Bill.db"; if (!System.IO.File.Exists(sqLiteDb)) { return; } try { // 01:打开业务数据库 string dbConnection = "Data Source={StartupPath}/DataBase/STO.Bill.db;Pooling=true;FailIfMissing=false;Password=ZTO20149988"; dbConnection = dbConnection.Replace("{StartupPath}", System.Windows.Forms.Application.StartupPath); IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, dbConnection); // 02: 先保存个同步时间标志,什么时间成功同步过本地数据库?这样不用每次都同步所有的数据,只同步那个时间之后的数据就可以了。 BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, BaseSystemInfo.UserInfo, BaseParameterEntity.TableName); // 03:用参数的方式读取同步时间 // 04:检查数据库里的版本号 var synchronous = parameterManager.GetParameter("Bill", "DBVersion", "Synchronous"); if (string.IsNullOrEmpty(synchronous)) { synchronous = "5.2015.7.15"; parameterManager.SetParameter("Bill", "DBVersion", "Synchronous", synchronous); } var versionEntity = new Version(synchronous); if (versionEntity < new Version("5.2015.08.14")) { Upgrade20150814(); } if (versionEntity < new Version("5.2015.08.21")) { Upgrade20150821(); } if (versionEntity < new Version("5.2015.08.23")) { if (Upgrade20150823()) { // InitExpressData(); } } if (versionEntity < new Version("5.2015.08.26")) { if (Upgrade20150826()) { if (Upgrade20150823()) { // InitExpressData(); parameterManager.SetParameter(BaseParameterEntity.TableName, "Bill", "DBVersion", "Synchronous", "5.2015.08.26"); } } } if (versionEntity < new Version("5.2015.09.14")) { Upgrade20150914(); } if (versionEntity < new Version("5.2015.10.15")) { Upgrade20151015(); } if (versionEntity < new Version("5.2015.10.25")) { Upgrade20151025(); } if (versionEntity < new Version("5.2015.11.05")) { Upgrade20151105(); } if (versionEntity < new Version("5.2015.11.11")) { Upgrade20151111(); } if (versionEntity < new Version("5.2015.12.12")) { Upgrade20151212(); } if (versionEntity < new Version("5.2016.01.20")) { Upgrade20160120(); } if (versionEntity < new Version("6.2016.06.20")) { Upgrade20160620(); } if (versionEntity < new Version("6.2016.07.20")) { Upgrade20160720(); } //if (versionEntity < new Version("6.2016.03.21")) //{ // parameterManager.SetParameter(BaseParameterEntity.TableName, "Bill", "DBVersion", "Synchronous", "6.2016.03.21"); //} InitExpressData(); } catch (Exception ex) { // 在本地记录异常 LogUtil.WriteException(ex); } }