You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

713 lines
25 KiB

using EasyBL.WebApi;
using EasyBL.WebApi.Common;
using EasyBL.WebApi.Message;
using EasyBL.WEBAPP.SYS;
using Entity.ShowEasyDtos;
using Entity.Sugar;
using Entity.ViewModels;
using Newtonsoft.Json;
using SqlSugar;
using SqlSugar.Base;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
namespace EasyBL.WEBAPP.ShowEasy
{
public class OnsiteService : ServiceBase
{
#region 所有服務的All服務類別
/// <summary>
/// 所有服務的服務類別
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetAllCategoryFilterList(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.QueryAllCategoryFilterList(sLanguageID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 服務列表的服務類別
/// <summary>
/// 所有服務的服務類別
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetCategoryFilterList(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.QueryCategoryFilterList(sLanguageID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 服務列表的位置
/// <summary>
/// 展覽管理(List API 展覽狀下拉選單)
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetLocationFilterList(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.QueryLocationFilterList(sLanguageID);
//返回token信息
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽狀下拉選單)
#region 服務管理(分頁查詢)
/// <summary>
/// 服務管理(分頁查詢)
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetOnsiteByPage(string sLangID, int PageIndex, int PageSize, string sSortField, string sSortOrder)
{
SuccessResponseMessage srm = null;
string sError = null;
var db = SugarBase.GetIntance();
if (string.IsNullOrEmpty(sLangID))
{
sLangID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
if (string.IsNullOrEmpty(sSortField))
{
sSortField = "CreateDate";
}
sSortField = "t1." + sSortField;
if (string.IsNullOrEmpty(sSortOrder))
{
sSortField = "desc";
}
try
{
do
{
var pml = new PageModel
{
PageIndex = PageIndex,
PageSize = PageSize
};
var iPageCount = 0;
var sORIGID = WebAppGlobalConstWord.TG_ORGID;
pml.DataList = db.Queryable<SETB_PDT_ONSiteBaseInfo, SETB_SCM_Supplier>
((t1, t2) =>
new object[] {
JoinType.Left, t1.OrgID == t2.OrgID && t1.SupplierID == t2.SupplierID && t1.LangID == t2.LangType
}
)
.Where((t1) => t1.LangID == sLangID && t1.Effective == "Y" && t1.OrgID == sORIGID)
.Select((t1, t2) => new ONSiteBaseListDTO
{
ServiceID = t1.ServiceID,
ServiceName = t1.ServiceName,
LangID=t1.LangID,
PreviewFile =t1.PreviewFile,
MinPrice=0,
PlaceName="",
ServiceCategoryName=t1.SubCategoryID,
ServiceNo=t1.ServiceNo
})
.OrderBy(sSortField, sSortOrder)
.ToPageList(pml.PageIndex, pml.PageSize, ref iPageCount);
pml.Total = iPageCount;
var saDataList = pml.DataList as List<ONSiteBaseListDTO>;
foreach (var ServiceBaseInfoModel in saDataList)
{
ServiceBaseInfoModel.PreviewFile = GetPreviewFile(ServiceBaseInfoModel.PreviewFile);
ServiceBaseInfoModel.PlaceName = GetPlaceName(ServiceBaseInfoModel.LangID, ServiceBaseInfoModel.ServiceID);
ServiceBaseInfoModel.ServiceCategoryName = GetServiceCategoryName(ServiceBaseInfoModel.LangID, ServiceBaseInfoModel.ServiceCategoryName);
}
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, pml);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
//取得適用地
public string GetPlaceName(string sLanguageID, string sServiceID)
{
var sSuitPlace = "";
var db = SugarBase.GetIntance();
try
{
do
{
//適用地區
var saSuitPlace = db.Queryable<SETB_PDT_ServiceBySuitPlace, SETB_SYS_Region, SETB_SYS_Country, SETB_UTL_City>
((t1, t2, t3, t4) =>
new object[] {
JoinType.Left, t1.RegionID == t2.RegionID && t1.LangID== t2.LangType ,
JoinType.Left, t1.CountryID == t3.CountryID && t1.LangID== t3.LangType ,
JoinType.Left, t1.CityID == t4.CityID && t1.LangID== t4.LangType
}
)
.Where((t1) => t1.LangID == sLanguageID && t1.ServiceID == sServiceID)
.Select((t1, t2, t3, t4) => new View_PDT_ServiceBySuitPlace
{
ServiceID = t1.ServiceID,
LangID = t1.LangID,
Guid = t1.Guid,
RegionID = t1.RegionID,
CountryID = t1.CountryID,
CityID = t1.CityID,
Name = SqlFunc.IsNull(SqlFunc.IsNull(t2.RegionName, t3.CountryName), t4.CityName)
})
.OrderBy(t1 => t1.RegionID)
.ToList();
if (saSuitPlace.Count > 0)
{
foreach (var SuitPlace in saSuitPlace)
{
sSuitPlace += SuitPlace.Name + ";";
}
}
return sSuitPlace;
} while (false);
}
catch (Exception ex)
{
}
return sSuitPlace;
}
//取得服務類別名稱
public string GetServiceCategoryName(string sLanguageID, string sSubCategoryID)
{
var sSuitPlace = "";
var db = SugarBase.GetIntance();
try
{
do
{
//適用地區
var saSuitPlace = db.Queryable<SETB_SYS_Category>
(
)
.Where((t1) => t1.LanguageID == sLanguageID && t1.Effective=="Y" && t1.DelStatus=="N" && sSubCategoryID.Contains(t1.CategoryID))
.OrderBy(t1 => t1.OrderByValue)
.ToList();
if (saSuitPlace.Count > 0)
{
foreach (var SuitPlace in saSuitPlace)
{
sSuitPlace += SuitPlace.CategoryName + ";";
}
}
return sSuitPlace;
} while (false);
}
catch (Exception ex)
{
}
return sSuitPlace;
}
//取得封面圖片
public string GetPreviewFile( string PreviewFile)
{
var sFilePath = "";
var db = SugarBase.GetIntance();
try
{
do
{
var sORIGID = WebAppGlobalConstWord.TG_ORGID;
string requestUrl = Common.ConfigGetValue("", "ida:RedirectUri");
var oFilePath = db.Queryable<OTB_SYS_Files>()
.Where(x => x.ParentID == PreviewFile && x.OrgID == sORIGID)
.Select(x => new FileDTO
{
FileID = x.FileID,
FileName = x.FileName,
FilePath = x.FilePath
})
.Single();
if (oFilePath != null)
{
sFilePath = requestUrl + "/" + oFilePath.FilePath.Replace("\\", "/");
}
return sFilePath;
} while (false);
}
catch (Exception ex)
{
}
return sFilePath;
}
#endregion 服務管理(分頁查詢)
#region 服務輪播圖片
/// <summary>
/// 服務輪播圖片
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetBannerFiles(string sLanguageID, string ServiceID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.QueryBannerFileList(sLanguageID, ServiceID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 包裝類型
/// <summary>
/// 包裝類型
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetPackingTypes(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetPackingTypes(sLanguageID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 領取地城市
/// <summary>
/// 領取地城市
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetReceivingCitys(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetTW(sLanguageID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 服務項目
/// <summary>
/// 服務項目
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetServiceItems(string sLanguageID, string ServiceID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetServiceItems(sLanguageID, ServiceID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 展覽年份
/// <summary>
/// 展覽年份
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetExtensionYears(string sLanguageID,string sServiceID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetExtensionYears(sLanguageID, sServiceID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 展覽月份
/// <summary>
/// 展覽月份
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetExtensionMonths(string sLanguageID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetExtensionMonths(sLanguageID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 展覽列表
/// <summary>
/// 展覽列表
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage QueryExhibitions(string sLanguageID, string ServiceID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.QueryExhibitions(sLanguageID, ServiceID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 展覽類別篩選器)
#region 服務細項
/// <summary>
/// 服務細項
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetOneOnsiteServiceInfo(string sLanguageID, string ServiceID)
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
if (string.IsNullOrEmpty(sLanguageID))
{
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
ONSiteMaintain_QryService em_qry = new ONSiteMaintain_QryService();
var rsResult = em_qry.GetOneOnsiteServiceInfo(sLanguageID, ServiceID);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
#endregion 展覽管理(List API 查詢展覽列表)
}
}