Browse Source

[WHAT] 查詢收藏展覽列表 API

Dev
berlin-tzen 2 years ago
parent
commit
c14f484627
  1. 31
      EuroTran/EasyBL.WEBAPP/ShowEasy/ExhibMaintain_QryService.cs
  2. 30
      EuroTran/EasyBL.WEBAPP/ShowEasy/ExhibitionService.cs
  3. 103
      EuroTran/EasyBL.WEBAPP/ShowEasy/FavoriteMaintain_QryService.cs
  4. 75
      EuroTran/EasyBL.WEBAPP/ShowEasy/FavoriteService.cs
  5. 24
      EuroTran/WebApp/Controllers/FavoriteController.cs

31
EuroTran/EasyBL.WEBAPP/ShowEasy/ExhibMaintain_QryService.cs

@ -829,34 +829,11 @@ namespace EasyBL.WEBAPP.SYS
rsExhibitionList = FilterByQuery(rsExhibitionList, sQuery);
}
var Cards = rsExhibitionList
.Select(t1 => new ExhibitionCardDTO
{
ExhibitionID = t1.ExhibitionID,
AbbreviatedName = t1.AbbreviatedName,
ExhibitionName = t1.ExhibitionName,
MainCategoryList = t1.MainCategories,
SubCategoryList = t1.SubCategories,
Logo = t1.Logo,
RegionID = t1.Region.RegionID,
RegionName = t1.Region.RegionName,
CountryID = t1.Country.CountryID,
CountryName = t1.Country.CountryName,
CityID = t1.City.CityID,
CityName = t1.City.CityName,
StartDate = t1.StartDate,
EndDate = t1.EndDate,
ExhibStatus = t1.Status,
Intro = t1.Intro,
IsRecommend = t1.IsRecommend,
ExhibitorCount = t1.ExhibitorCount,
VisitorCount = t1.VisitorCount
var Cards = new List<ExhibitionCardDTO>();
})
.ToList();
foreach (var Exhibition in rsExhibitionList) {
Cards.Add(ExhibitionService.ExhibitionDTOtoExhibitionCardDTO(Exhibition));
}
if (!string.IsNullOrEmpty(sSortType))
{

30
EuroTran/EasyBL.WEBAPP/ShowEasy/ExhibitionService.cs

@ -814,5 +814,35 @@ namespace EasyBL.WEBAPP.SYS
}
public static ExhibitionCardDTO ExhibitionDTOtoExhibitionCardDTO(ExhibitionDTO Exhibition) {
var Card = new ExhibitionCardDTO();
Card.ExhibitionID = Exhibition.ExhibitionID;
Card.ExhibStatus = Exhibition.Status;
Card.IsRecommend = Exhibition.IsRecommend;
//Card.IsFavorite = "Y";
Card.Logo = Exhibition.Logo;
Card.AbbreviatedName = Exhibition.AbbreviatedName;
Card.ExhibitionName = Exhibition.ExhibitionName;
Card.RegionID = Exhibition.Region.RegionID;
Card.RegionName = Exhibition.Region.RegionName;
Card.CountryID = Exhibition.Country.CountryID;
Card.CountryName = Exhibition.Country.CountryName;
Card.CityID = Exhibition.City.CityID;
Card.CityName = Exhibition.City.CityName;
Card.MainCategoryList = Exhibition.MainCategories;
Card.SubCategoryList = Exhibition.SubCategories;
Card.Intro = Exhibition.Intro;
Card.StartDate = Exhibition.StartDate;
Card.EndDate = Exhibition.EndDate;
Card.ExhibitorCount = Exhibition.ExhibitorCount;
Card.VisitorCount = Exhibition.VisitorCount;
return Card;
}
}
}

103
EuroTran/EasyBL.WEBAPP/ShowEasy/FavoriteMaintain_QryService.cs

@ -4,6 +4,7 @@ using Entity.Sugar;
using SqlSugar.Base;
using System;
using System.Collections.Generic;
using System.Linq;
namespace EasyBL.WEBAPP.SYS
{
@ -79,5 +80,107 @@ namespace EasyBL.WEBAPP.SYS
}
#endregion 收藏管理(以ID查詢)
public Dictionary<string, FavoriteDTO> FindAllByIDsAsDictionary(string sAccount, string sType) {
var db = SugarBase.GetIntance();
string sMsg = null;
Dictionary<string, FavoriteDTO> saDataDict = new Dictionary<string, FavoriteDTO>();
try
{
do
{
var saDataList = db.Queryable<SETB_CMS_Member_Favorite>()
.Where(t1 => t1.MemberID == sAccount)
.WhereIF(!string.IsNullOrEmpty(sType), t1 => t1.Type == sType)
.Select(t1 => new FavoriteDTO
{
FavoriteID = t1.FavoriteID,
MemberID = t1.MemberID,
Type = t1.Type,
ParentID = t1.ParentID,
Memo = t1.Memo,
})
.ToList();
foreach (var Favoriate in saDataList)
{
saDataDict[Favoriate.FavoriteID] = Favoriate;
}
return saDataDict;
} while (false);
}
catch (Exception ex)
{
sMsg = Util.GetLastExceptionMsg(ex);
}
return saDataDict;
}
#region 收藏管理(List 查詢收藏展覽列表)
/// <summary>
/// 收藏管理(List 查詢收藏展覽列表)
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
///
public Dictionary<string, ExhibitionCardDTO> QueryFavoriteExhibition(string sLanguageID, string sAccount, List<string> SubCategoryIDList, List<string> CountryIDList)
{
if (string.IsNullOrEmpty(sLanguageID)) {
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
var rsExhibitionList = new List<ExhibitionDTO>();
var rsExhibitionCardDic = new Dictionary<string, ExhibitionCardDTO>();
var FavoriateDic = FindAllByIDsAsDictionary(sAccount, "Exhibition");
ExhibMaintain_QryService em_qry = new ExhibMaintain_QryService();
var ExhibitionDic = em_qry.QueryAllDetailExhibitionAsDictionary(sLanguageID);
foreach (var Favoriate in FavoriateDic.Values) {
if (ExhibitionDic.ContainsKey(Favoriate.ParentID)) {
var Exhibition = ExhibitionDic[Favoriate.ParentID];
rsExhibitionList.Add(Exhibition);
}
}
if (SubCategoryIDList.Count > 0) {
rsExhibitionList = em_qry.FilterBySubCategoryIDs(rsExhibitionList, SubCategoryIDList);
}
if (CountryIDList.Count > 0)
{
rsExhibitionList = em_qry.FilterByLocationIDs(rsExhibitionList, new List<string>(), CountryIDList, new List<string>());
}
rsExhibitionList = rsExhibitionList.OrderByDescending(o => (o.StartDate - DateTime.Now)).ToList();
foreach (var Exhibition in rsExhibitionList) {
rsExhibitionCardDic[Exhibition.ExhibitionID] = ExhibitionService.ExhibitionDTOtoExhibitionCardDTO(Exhibition);
}
return rsExhibitionCardDic;
}
#endregion 收藏管理(List 查詢收藏展覽列表)
}
}

75
EuroTran/EasyBL.WEBAPP/ShowEasy/FavoriteService.cs

@ -6,6 +6,7 @@ using EasyBL.WEBAPP.WSM;
using Entity.ShowEasyDtos;
using Entity.Sugar;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
@ -109,6 +110,80 @@ namespace EasyBL.WEBAPP.SYS
#endregion 收藏管理(HttpResponseMessage API 保存收藏)
#region 收藏管理(HttpResponseMessage API 分頁查詢收藏展覽列表)
/// <summary>
/// 收藏管理(HttpResponseMessage API 分頁查詢收藏展覽列表)
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetFavoriteExhibition(
string sLanguageID,
string sAccount,
int iPageIndex,
int iPageSize,
List<string> SubCategoryIDList,
List<string> CountryIDList )
{
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
FavoriteMaintain_QryService fm_qry = new FavoriteMaintain_QryService();
var rsResult = fm_qry.QueryFavoriteExhibition(sLanguageID, sAccount, SubCategoryIDList, CountryIDList).Values.ToList();
// Pagination
if (iPageSize <= 0)
{
iPageSize = 10;
}
if (iPageIndex <= 0)
{
iPageIndex = 1;
}
var pml = new PageModel
{
PageIndex = iPageIndex,
PageSize = iPageSize
};
pml.Total = rsResult.Count;
rsResult = rsResult.Skip(iPageSize * (iPageIndex - 1)).Take(iPageSize).ToList();
pml.DataList = rsResult.ToList();
//返回token信息
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));
}
#endregion 收藏管理(HttpResponseMessage API 分頁查詢收藏展覽列表)

24
EuroTran/WebApp/Controllers/FavoriteController.cs

@ -63,5 +63,29 @@ namespace WebApp.Controllers
return new FavoriteService().GetFavorites(favorite);
}
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage ExhibitionList(string Lang, int PageIndex, int PageSize, string SubCategoryIDs, string CountryIDs)
{
List<string> SubCategoryIDList = new List<string>();
List<string> CountryIDList = new List<string>();
if (!string.IsNullOrEmpty(SubCategoryIDs)) {
SubCategoryIDList = JsonConvert.DeserializeObject<List<string>>(SubCategoryIDs);
}
if (!string.IsNullOrEmpty(CountryIDs))
{
CountryIDList = JsonConvert.DeserializeObject<List<string>>(CountryIDs);
}
// get authtoken
var SEToken = SETokenUtil.GetToken(this.Request);
var sAccount = SEToken.Email;
return new FavoriteService().GetFavoriteExhibition(Lang, sAccount, PageIndex, PageSize, SubCategoryIDList, CountryIDList);
}
}
}
Loading…
Cancel
Save