Browse Source

Merge branch 'master' of http://139.155.15.221:3000/zoulei/XdCxRhDW

wyq 1 year ago
parent
commit
48a8cd65ac
1 changed files with 73 additions and 47 deletions
  1. 73 47
      XdCxRhDW.WebApi/Controllers/PosController.cs

+ 73 - 47
XdCxRhDW.WebApi/Controllers/PosController.cs

@@ -129,10 +129,13 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
+                //var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
+                //var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
+                //var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
@@ -299,17 +302,20 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.AdjaCode);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adjaXl = xlInfoList.Where(w => w.SatCode == dto.AdjaCode);
+                var minTime2 = adjaXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adjaXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaCode}]的双行根数星历");
@@ -478,17 +484,20 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.AdjaCode);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+               var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adjaXl = xlInfoList.Where(w => w.SatCode == dto.AdjaCode);
+                var minTime2 = adjaXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adjaXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaCode}]的双行根数星历");
@@ -673,16 +682,20 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.AdjaCode);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+
+                var adjaXl = xlInfoList.Where(w => w.SatCode == dto.AdjaCode);
+                var minTime2 = adjaXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adjaXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaCode}]的双行根数星历");
@@ -864,25 +877,29 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.Adja1Code);
-                var parameter4 = new SQLiteParameter("@satcode", dto.Adja2Code);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adja1Xl = xlInfoList.Where(w => w.SatCode == dto.Adja1Code);
+                var minTime2 = adja1Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adja1Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                 }
 
-                var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
+                var adja2Xl = xlInfoList.Where(w => w.SatCode == dto.Adja2Code);
+                var minTime3 = adja2Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo3 = adja2Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime3).FirstOrDefault();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2Code}]的双行根数星历");
@@ -1068,25 +1085,29 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.Adja1Code);
-                var parameter4 = new SQLiteParameter("@satcode", dto.Adja2Code);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault(); 
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adja1Xl = xlInfoList.Where(w => w.SatCode == dto.Adja1Code);
+                var minTime2 = adja1Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adja1Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                 }
 
-                var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
+                var adja2Xl = xlInfoList.Where(w => w.SatCode == dto.Adja2Code);
+                var minTime3 = adja2Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo3 = adja2Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime3).FirstOrDefault();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2Code}]的双行根数星历");
@@ -1287,25 +1308,29 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.Adja1Code);
-                var parameter4 = new SQLiteParameter("@satcode", dto.Adja2Code);
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault(); 
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adja1Xl = xlInfoList.Where(w => w.SatCode == dto.Adja1Code);
+                var minTime2 = adja1Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adja1Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.Adja1Code}]的双行根数星历");
                 }
 
-                var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
+                var adja2Xl = xlInfoList.Where(w => w.SatCode == dto.Adja2Code);
+                var minTime3 = adja2Xl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo3 = adja2Xl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime3).FirstOrDefault();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2Code}]的双行根数星历");
@@ -1515,19 +1540,20 @@ namespace XdCxRhDW.App.WebAPI
             }
             using (RHDWPartContext db = RHDWPartContext.GetContext(dto.SigTime))
             {
-                var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
-                var parameter2 = new SQLiteParameter("@satcode", dto.MainCode);
-                var parameter3 = new SQLiteParameter("@satcode", dto.AdjaCode);
-                var xlInfo1List = await XlCache.GetAllAsync();
-                //var xlInfo1= xlInfo1List.Where(w=>w.TimeBJ- dto.SigTime)
-                var xlInfo1 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter2).FirstOrDefaultAsync();
+                var xlInfoList = await XlCache.GetAllAsync();
+
+                var mainXl = xlInfoList.Where(w => w.SatCode == dto.MainCode);
+                var minTime = mainXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo1 = mainXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime).FirstOrDefault();
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainCode}]的双行根数星历");
                     return Error<PosResDto>($"未找到卫星[{dto.MainCode}]的双行根数星历");
                 }
 
-                var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
+                var adjaXl = xlInfoList.Where(w => w.SatCode == dto.AdjaCode);
+                var minTime2 = adjaXl.Min(m => Math.Abs((m.TimeBJ - dto.SigTime).TotalSeconds));
+                var xlInfo2 = adjaXl.Where(w => Math.Abs((w.TimeBJ - dto.SigTime).TotalSeconds) == minTime2).FirstOrDefault();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaCode}]的双行根数星历");