using FLY.OBJComponents.Server; using FObjBase; using SQLite; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FLY.Integrated.Server.Model { /// <summary> /// 数据库 写操作 /// </summary> public class HistoryDb { DbModel dbModel; public BufferSQLite<Db_Width> WidthBuffer; public BufferSQLite<Db_WinderInfo> WinderInfoBuffer; public BufferError ErrorBuffer; /// <summary> /// /// </summary> /// <param name="dBModel"></param> public void Init(DbModel dBModel) { this.dbModel = dBModel; WidthBuffer = new BufferSQLite<Db_Width>(); WidthBuffer.Init(dBModel.TbWidth); WinderInfoBuffer = new BufferSQLite<Db_WinderInfo>(); WinderInfoBuffer.Init(dBModel.TbWinderInfo); ErrorBuffer = new BufferError(); ErrorBuffer.Init(dBModel.TbError); } /// <summary> /// 按时间删除数据库 /// </summary> /// <param name="month"></param> public void KeepDBSize(int month) { if (month <= 3) month = 3; DateTime del_time = DateTime.Now - TimeSpan.FromDays(month * 30); string det_time_str = del_time.ToStringOfSQLiteFieldType(); List<string> sqls = new List<string>(); sqls.Add( $"DELETE FROM {dbModel.TbWidth.TableName}" + $" WHERE Time < {det_time_str}"); sqls.Add( $"DELETE FROM {dbModel.TbWinderInfo.TableName}" + $" WHERE Time < {det_time_str}"); sqls.Add( $"DELETE FROM {dbModel.TbError.TableName}" + $" WHERE Time < {det_time_str}"); dbModel.sqliteHelper.QueryTran(sqls); } public void AddWidth( Db_Width width ) { WidthBuffer.Add(width); } public void AddWidthRange(IEnumerable<Db_Width> widths) { WidthBuffer.AddRange(widths); } public void AddWinderInfo( Db_WinderInfo winderInfo ) { WinderInfoBuffer.Add(winderInfo); } public void AddWinderInfos(IEnumerable<Db_WinderInfo> winderInfos) { WinderInfoBuffer.AddRange(winderInfos); } } }