using System; using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Http; using ET; using FairyGUI; using UnityEngine; using UnityEngine.Networking; namespace GFGGame { public static class PoemGallerySProxy { //请求画廊主题 public static async ETTask ReqGalleryTheme() { S2C_GetGalleryTheme response = null; response = (S2C_GetGalleryTheme)await MessageHelper.SendToServer(new C2S_GetGalleryTheme()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.ThemeOrder = response.ThemeOrder; PoemGalleryDataManager.Instance.ThemeId = response.ThemeId; PoemGalleryDataManager.Instance.MyWorksCountOfTheme = response.MyWorksCountOfTheme; PoemGalleryDataManager.Instance.HasBonus = response.HasBonus; return true; } } return false; } //请求画廊列表,startIndex为0,则更新列表 public static async ETTask ReqGalleryList(int sortType, int startIndex, int Count) { S2C_GetGalleryList response = null; response = (S2C_GetGalleryList)await MessageHelper.SendToServer(new C2S_GetGalleryList() { SortType = sortType, StartIndex = startIndex, Count = Count }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List list = new List(); switch (response.SortType) { case (int)GallerySortType.Recommend: list = PoemGalleryDataManager.Instance.RecommendDatas; break; case (int)GallerySortType.Newest: list = PoemGalleryDataManager.Instance.NewestDatas; break; case (int)GallerySortType.Friend: list = PoemGalleryDataManager.Instance.FrinedDatas; break; case (int)GallerySortType.MyCollect: list = PoemGalleryDataManager.Instance.FavoriteDatas; break; case (int)GallerySortType.MyWorks: list = PoemGalleryDataManager.Instance.MySelfDatas; break; } if (response.StartIndex == 0) list.Clear(); for (int i = 0; i < response.WorksList.Count; i++) { PoemGalleryData data = PoemGalleryDataManager.Instance.GetGalleryDataById(response.WorksList[i].WorksId); if (data != null) { PoemGalleryDataManager.Instance.UpdateRoleInfo(response.WorksList[i].WorksId, response.WorksList[i].AuthorName); } else { data = new PoemGalleryData(); data.WorkId = response.WorksList[i].WorksId; data.AuthorId = response.WorksList[i].AuthorId; data.AuthorName = response.WorksList[i].AuthorName; data.VoteCount = response.WorksList[i].BelikedCount; data.CollectCount = response.WorksList[i].BeCollectedCount; data.VoteOrNot = response.WorksList[i].LikeOrNot; data.CollectOrNot = response.WorksList[i].CollectOrNot; data.CreateTime = response.WorksList[i].CreateTime; data.ThemeOrder = response.WorksList[i].ThemeOrder; data.ThemeId = response.WorksList[i].ThemeId; data.PictureTempUrl = response.WorksList[i].PictureTempUrl; PoemGalleryDataManager.Instance.UpdateGalleryData(data); } list.Add(data.WorkId); } return true; } } return false; } //获取画廊作品排行榜 public static async ETTask ReqRankList() { S2C_GetGalleryWorksRankList response = null; response = (S2C_GetGalleryWorksRankList)await MessageHelper.SendToServer(new C2S_GetGalleryWorksRankList()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List list = PoemGalleryDataManager.Instance.RankDatas; for (int i = 0; i < response.RankList.Count; i++) { PoemGalleryData data = PoemGalleryDataManager.Instance.GetGalleryDataById(response.RankList[i].WorksId); if (data != null) { PoemGalleryDataManager.Instance.UpdateRoleInfo(response.RankList[i].WorksId, response.RankList[i].AuthorName, i + 1); } else { data = new PoemGalleryData(); data.WorkId = response.RankList[i].WorksId; data.Rank = i + 1; data.AuthorId = response.RankList[i].AuthorId; data.AuthorName = response.RankList[i].AuthorName; data.VoteCount = response.RankList[i].BelikedCount; data.CollectCount = response.RankList[i].BeCollectedCount; data.VoteOrNot = response.RankList[i].LikeOrNot; data.CollectOrNot = response.RankList[i].CollectOrNot; data.CreateTime = response.RankList[i].CreateTime; data.ThemeOrder = response.RankList[i].ThemeOrder; data.ThemeId = response.RankList[i].ThemeId; data.PictureTempUrl = response.RankList[i].PictureTempUrl; PoemGalleryDataManager.Instance.UpdateGalleryData(data); } list.Add(data.WorkId); } return true; } } return false; } public static IEnumerator Download(List list, int startIndex) { for (int i = startIndex; i < list.Count; i++) { PoemGalleryData data = PoemGalleryDataManager.Instance.GetGalleryDataById(list[i]); if (data.Ntexture != null) continue; using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(data.PictureTempUrl)) { yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError) { PromptController.Instance.ShowFloatTextPrompt("下载失败"); yield return null; } else { Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture; data.Ntexture = new NTexture(texture); } } } ET.Log.Debug("Download finish!!!"); EventAgent.DispatchEvent(ConstMessage.GALLERY_DATA_CHANGE); } //请求投稿画廊作品 public static async ETTask ReqUpLoadGalleryWorks() { S2C_RequestUpLoadGalleryWorks response = null; response = (S2C_RequestUpLoadGalleryWorks)await MessageHelper.SendToServer(new C2S_RequestUpLoadGalleryWorks()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return new object[] { response.TempPictureUrl, response.WorksId }; } } ViewManager.Hide(); return null; } //通知服务端上传成功 public static async ETTask ReqNoticeGalleryWorksUploaded(long worksId) { S2C_NoticeGalleryWorksUploaded response = null; response = (S2C_NoticeGalleryWorksUploaded)await MessageHelper.SendToServer(new C2S_NoticeGalleryWorksUploaded() { WorksId = worksId }); ViewManager.Hide(); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.MyWorksCountOfTheme = PoemGalleryDataManager.Instance.MyWorksCountOfTheme + 1; PromptController.Instance.ShowFloatTextPrompt("上传成功"); return true; } } return false; } //删除我的作品 public static async ETTask ReqDeleteMyWorks(long worksId) { S2C_DeleteMyWorks response = null; response = (S2C_DeleteMyWorks)await MessageHelper.SendToServer(new C2S_DeleteMyWorks() { WorksId = worksId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.RemoveGalleryData(response.WorksId); return true; } } return false; } //收藏指定画廊作品 public static async ETTask ReqCollecteGalleryWorks(long worksId) { S2C_CollecteGalleryWorks response = null; response = (S2C_CollecteGalleryWorks)await MessageHelper.SendToServer(new C2S_CollecteGalleryWorks() { WorksId = worksId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.UpdateFavoriteState(response.WorksId, true, response.BeCollectedCount); return true; } } return false; } //取消收藏指定画廊作品 public static async ETTask ReqCancelCollecteGalleryWorks(long worksId) { S2C_CancelCollecteGalleryWorks response = null; response = (S2C_CancelCollecteGalleryWorks)await MessageHelper.SendToServer(new C2S_CancelCollecteGalleryWorks() { WorksId = worksId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.UpdateFavoriteState(response.WorksId, false, response.BeCollectedCount); return true; } } return false; } //点赞指定画廊作品 public static async ETTask ReqVoteGalleryWorks(long worksId) { S2C_LikeGalleryWorks response = null; response = (S2C_LikeGalleryWorks)await MessageHelper.SendToServer(new C2S_LikeGalleryWorks() { WorksId = worksId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.UpdateVoteiteState(response.WorksId, true, response.BelikedCount); return true; } } return false; } //领取排行榜奖励 public static async ETTask ReqGetGalleryRankBonus() { S2C_GetGalleryRankBonus response = null; response = (S2C_GetGalleryRankBonus)await MessageHelper.SendToServer(new C2S_GetGalleryRankBonus()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemGalleryDataManager.Instance.MyWorksRanks = response.MyWorksRanks; return true; } } return false; } } }