wjc
2023-02-03 c484347d42f8c14f03f498e689069a14a45abc93
HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -86,7 +86,7 @@
                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                d.Add("deviceIds", functionIds);
                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus, "刷新设备状态");
                if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
                if (!this.dataChecking(responsePackNew))
                {
                    return;
                }
@@ -110,11 +110,11 @@
        }
        /// <summary>
        /// 获取音乐列表
        /// 获取当前播放音乐列表
        /// </summary>
        /// <param name="music"></param>
        /// <param name="music">音乐播放器</param>
        /// <returns></returns>
        public void GetPalyList(Function music)
        public void GetCurrentPalyList(Function music)
        {
            try
            {
@@ -122,21 +122,21 @@
                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                d.Add("deviceIds", new List<string> { music.deviceId });
                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList, "获取音乐列表");
                if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
                if (!this.dataChecking(responsePackNew))
                {
                    return;
                }
                //数据返序列化为Function对象
                var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data);
                var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyListInfo>>(str);
                var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyerSongListInfo>>(str);
                if (palyLists == null)
                {
                    palyLists =new List<PalyListInfo>();
                    palyLists = new List<PalyerSongListInfo>();
                }
                if (palyLists.Count > 0)
                {
                    ///默认拿第一个列表
                    A31MusicModel.Current.palyLists = palyLists[0].playlist;
                    A31MusicModel.Current.CurrentPlayMusicInfoList = palyLists[0].playlist;
                }
            }
            catch
@@ -145,20 +145,27 @@
        }
        /// <summary>
        /// 获取列表名列表
        /// 获取【多个音乐源】列表名列表
        /// </summary>
        /// <param name="music"></param>
        /// <param name="source">音乐源为null,支持多个源获取</param>
        /// <returns></returns>
        public List<GroupList> GetListName(Function music)
        public List<GroupList> GetMultipleSourceListName(Function music, string source)
        {
            try
            {
                Dictionary<string, object> d = new Dictionary<string, object>();
                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);
                d.Add("deviceIds", new List<string> { music.deviceId });
                Dictionary<string, object> deviceIds = new Dictionary<string, object>();
                deviceIds.Add("deviceId", music.deviceId);
                if (!string.IsNullOrEmpty(source))
                {
                    deviceIds.Add("source", source);
                }
                d.Add("deviceInfos", new List<Dictionary<string, object>> { deviceIds });
                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupList, "获取列表名列表");
                if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
                if (!this.dataChecking(responsePackNew))
                {
                    return new List<GroupList>();
                }
@@ -176,13 +183,35 @@
                return new List<GroupList>();
            }
        }
        /// <summary>
        /// 获取列表音乐
        /// 获取【单个音乐源】列表名列表(默认取定列表中一个)
        /// </summary>
        /// <param name="music"></param>
        /// <param name="source">音乐源</param>
        /// <returns></returns>
        public GroupList GetSingleSourceListNameList(Function music, string source)
        {
            List<GroupList> groupList = this.GetMultipleSourceListName(music, source);
            if (groupList.Count == 0)
            {
                return new GroupList();
            }
            ////默认取定列表中一个
            return groupList.Count > 0 ? groupList[0] : new GroupList();
        }
        /// <summary>
        /// 通过列表名获取【多个歌曲列表】
        /// </summary>
        /// <param name="music"></param>
        /// <param name="listName">列表名</param>
        /// <param name="source">音乐源</param>
        /// <returns></returns>
        public PalyList GetListMusic(Function music, string listName)
        public List<PalyerSongListInfo> GetMultipleSongListM(Function music, string listName, string source)
        {
            try
            {
@@ -193,34 +222,65 @@
                d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);
                d2.Add("group", listName);
                d1.Add("sid", music.sid);
                if (!string.IsNullOrEmpty(source))
                {
                    d1.Add("source", source);
                }
                d1.Add("groupList", new List<Dictionary<string, object>> { d2 });
                d.Add("sidGroups", new List<Dictionary<string, object>> { d1 });
                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupPlayerList, "获取列表音乐");
                if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupPlayerList, "通过列表名获取歌曲列表");
                if (!this.dataChecking(responsePackNew))
                {
                    return new PalyList();
                    return new List<PalyerSongListInfo>();
                }
                //数据返序列化为Function对象
                var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data);
                var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyListInfo>>(str);
                var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyerSongListInfo>>(str);
                if (palyLists == null)
                {
                    palyLists = new List<PalyListInfo>();
                    return new List<PalyerSongListInfo>();
                }
                if (palyLists.Count == 0)
                {
                    return new PalyList();
                }
                //默认第一个列表里面第一个音乐列表
                return palyLists[0].playlist.Count > 0 ? palyLists[0].playlist[0] : new PalyList();
                return palyLists;
            }
            catch
            {
                return new PalyList();
                return new List<PalyerSongListInfo>();
            }
        }
        /// <summary>
        /// 通过列表名获取【单个歌曲列表】(默认取定列表中一个歌曲列表)
        /// </summary>
        /// <param name="music"></param>
        /// <param name="listName">列表名</param>
        /// <param name="source">音乐源</param>
        /// <returns></returns>
        public SongList GetSingleSongList(Function music, string listName, string source)
        {
            List<PalyerSongListInfo> listInfos = this.GetMultipleSongListM(music, listName, source);
            if (listInfos.Count == 0)
            {
                return new SongList();
            }
            ////默认第一个列表里面第一个音乐列表
            SongList songList = listInfos[0].playlist.Count > 0 ? listInfos[0].playlist[0] : new SongList();
            return songList;
        }
        /// <summary>
        /// 检验数据回复成功或者失败
        /// </summary>
        /// <param name="responsePackNew">回复数据对象</param>
        /// <returns></returns>
        private bool dataChecking(ResponsePackNew responsePackNew)
        {
            if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
            {
                return false;
            }
            return true;
        }
        /// <summary>
@@ -232,7 +292,7 @@
        /// <returns></returns>
        public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 5)
        {
            JObject jobject = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(o));
            JObject jobject = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(o));
            return UI2.Intelligence.Automation.Send.Current.RequestServerhomeId(jobject, api_Url, tag, mTimeout);
        }
    }