From 07f672d0537c36e81127109ff979c8860ca11869 Mon Sep 17 00:00:00 2001 From: alina <1449359159@qq.com> Date: Wed, 15 Mar 2023 07:35:02 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=B8=E6=93=87=E3=80=8E=E5=B9=B4=E4=BB=BD?= =?UTF-8?q?=E3=80=8F=E3=80=81=E3=80=8E=E6=9C=88=E4=BB=BD=E3=80=8F=E5=BE=8C?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E6=9C=83=E5=8B=95=E6=85=8B=E8=AA=BF=E6=95=B4?= =?UTF-8?q?=E4=B8=8B=E6=96=B9=E5=87=BA=E7=8F=BE=E7=9A=84=E5=B1=95=E6=9C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShowEasy/ONSiteMaintain_QryService.cs | 100 +++++++++++++++--- .../EasyBL.WEBAPP/ShowEasy/OnsiteService.cs | 4 +- .../WebApp/Controllers/OnsiteController.cs | 2 +- 3 files changed, 89 insertions(+), 17 deletions(-) diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs index 3832c14..0e9036d 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/ONSiteMaintain_QryService.cs @@ -1528,9 +1528,9 @@ namespace EasyBL.WEBAPP.ShowEasy } //展覽列表 - public List QueryExhibitions(string sLanguageID, string sServiceID) + public List QueryExhibitions(string sLanguageID, string sServiceID,string sYear, string sMonth) { - List saExhibition = new List(); + List saReturnExhibition = new List(); var db = SugarBase.GetIntance(); try { @@ -1546,20 +1546,92 @@ namespace EasyBL.WEBAPP.ShowEasy if (objONSiteBaseInfo.ExhibitionID != "[]" && objONSiteBaseInfo.ExhibitionID != "") { + if (!string.IsNullOrEmpty(sYear) && string.IsNullOrEmpty(sMonth)) + { + + var saExhibition2 = db.Queryable((t1, t2) => + new object[] { + JoinType.Inner, t1.OrgID == t2.OrgID && t1.ExhibitionID == t2.ExhibitionID && t1.LanguageID==t2.LanguageID + }) + .Where((t1, t2) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID) && t2.Year == sYear) + + .Select((t1, t2) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + //防止重複 + if (saExhibition2.Count() > 0) + { + saReturnExhibition.Add(saExhibition2[0]); + foreach (var ExhibitionYearModel in saExhibition2) + { + + var Flag = saReturnExhibition.Where(x => x.ArgumentID == ExhibitionYearModel.ArgumentID).Single(); + if (Flag == null) + { + saReturnExhibition.Add(ExhibitionYearModel); + } + } + } - saExhibition = db.Queryable - () - .Where((t1) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID)) - .Select((t1) => new ArgumentDTO - { - ArgumentID=t1.ExhibitionID, - ArgumentValue = t1.ExhibitionName - }) - .ToList(); - + } + else if (!string.IsNullOrEmpty(sYear) && !string.IsNullOrEmpty(sMonth)) + { + + var rMonthStart = new DateTime(); + var rMonthEnd = new DateTime(); + rMonthStart = SqlFunc.ToDate(sYear + "/" + sMonth.Split('-')[0] + "/01"); + rMonthEnd = SqlFunc.ToDate(sYear + "/" + sMonth.Split('-')[1] + "/01").AddMonths(1).AddDays(-1); + var saExhibition3 = db.Queryable((t1, t2) => + new object[] { + JoinType.Inner, t1.OrgID == t2.OrgID && t1.ExhibitionID == t2.ExhibitionID && t1.LanguageID==t2.LanguageID + }) + .Where((t1, t2) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID) && t2.Year == sYear) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.EndDate >= SqlFunc.ToDate(rMonthStart)) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.StartDate <= SqlFunc.ToDate(rMonthEnd)) + .WhereIF(!string.IsNullOrEmpty(sMonth), (t1, t2) => t2.StartDate <= SqlFunc.ToDate(rMonthEnd) && t2.EndDate >= SqlFunc.ToDate(rMonthStart)) + .Select((t1, t2) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + + //防止重複 + if (saExhibition3.Count() > 0) + { + saReturnExhibition.Add(saExhibition3[0]); + foreach (var ExhibitionYearModel in saExhibition3) + { + + var Flag = saReturnExhibition.Where(x => x.ArgumentID == ExhibitionYearModel.ArgumentID).Single(); + if (Flag == null) + { + saReturnExhibition.Add(ExhibitionYearModel); + } + } + } + } + else { + var saExhibition = db.Queryable() + .Where((t1) => t1.LanguageID == sLanguageID && objONSiteBaseInfo.ExhibitionID.Contains(t1.ExhibitionID)) + .Select((t1) => new ArgumentDTO + { + ArgumentID = t1.ExhibitionID, + ArgumentValue = t1.ExhibitionName + }) + .ToList(); + + + saReturnExhibition = saExhibition; + } } - return saExhibition; + return saReturnExhibition; } while (false); @@ -1569,7 +1641,7 @@ namespace EasyBL.WEBAPP.ShowEasy } - return saExhibition; + return saReturnExhibition; } diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs index 46c4cd5..ec7fb0a 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/OnsiteService.cs @@ -684,7 +684,7 @@ namespace EasyBL.WEBAPP.ShowEasy /// /// /// - public HttpResponseMessage QueryExhibitions(string sLanguageID, string ServiceID) + public HttpResponseMessage QueryExhibitions(string sLanguageID, string ServiceID,string Year, string Month) { SuccessResponseMessage srm = null; string sError = null; @@ -697,7 +697,7 @@ namespace EasyBL.WEBAPP.ShowEasy sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE; } ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService(); - var rsResult = em_qry.QueryExhibitions(sLanguageID, ServiceID); + var rsResult = em_qry.QueryExhibitions(sLanguageID, ServiceID, Year, Month); srm = new SuccessResponseMessage(null, null); srm.DATA.Add(BLWording.REL, rsResult); diff --git a/EuroTran/WebApp/Controllers/OnsiteController.cs b/EuroTran/WebApp/Controllers/OnsiteController.cs index daae390..bfba810 100644 --- a/EuroTran/WebApp/Controllers/OnsiteController.cs +++ b/EuroTran/WebApp/Controllers/OnsiteController.cs @@ -99,7 +99,7 @@ namespace WebApp.Controllers [HttpGet] public HttpResponseMessage Exhibitions(string Lang,string ServiceID,string Year,string Month) { - return new OnsiteService().QueryExhibitions(Lang, ServiceID); + return new OnsiteService().QueryExhibitions(Lang, ServiceID, Year, Month); } //服務細項目