HDL_ON/DAL/Server/IMessageCommon.cs
@@ -9,7 +9,7 @@
    /// </summary>
    public class IMessageCommon
    {
        /// <summary>
        /// 接口类的返回信息
        /// </summary>
@@ -30,15 +30,21 @@
                return m_Current;
            }
        }
        /// <summary>
        /// 是否在获取token
        /// </summary>
        public bool isGetingToken;
        /// <summary>
        /// 无视错误(访问云端时,此操作将不会弹出错误)
        /// </summary>
        public bool IgnoreError = false;
        /// <summary>
        /// 全部信息
        /// </summary>
        private Dictionary<string, Dictionary<string, int>> dicMsg = null;
        ///// <summary>
        ///// 全部信息
        ///// </summary>
        //private Dictionary<string, Dictionary<string, int>> dicMsg = null;
        /// <summary>
        /// 通用错误码
@@ -51,7 +57,7 @@
        /// </summary>
        public void InitAllMsg()
        {
            dicMsg = new Dictionary<string, Dictionary<string, int>>();
            //dicMsg = new Dictionary<string, Dictionary<string, int>>();
            #region 共通错误码
            stateCodeDic = new Dictionary<string, int>();
            //与服务器通讯失败
@@ -69,14 +75,16 @@
            //验证码发送频繁,请稍后再试!
            stateCodeDic["15"] = HDL_ON.StringId.VerificationCodeSentFrequently;
            //会话超时,请更新token
            stateCodeDic["10001"] = HDL_ON.StringId.NotLogin;
            stateCodeDic[StateCode.TOKEN_EXPIRED] = HDL_ON.StringId.NotLogin;
            ////登录失败,账号或者密码错误
            stateCodeDic["10008"] = HDL_ON.StringId.LoginFailed_AccountOrPasswordError;
            //账号不存在
            stateCodeDic[StateCode.ACCOUNT_NOT_EXIST] = HDL_ON.StringId.AccountNotExist;
            //账号已存在
            stateCodeDic["10012"] = HDL_ON.StringId.AccountExist;
            //#endregion
            ////调用用户模块接口失败
            //stateCodeDic["10213"] = HDL_ON.StringId;
            #endregion
            ////return;
            //#region 2020-09-18 新对接错误码
@@ -184,7 +192,6 @@
            #endregion
            #endregion
        }
@@ -195,7 +202,7 @@
        /// <param name="revertObj">云端返回的数据</param>
        /// <param name="pra">请求参数</param>
        /// <returns></returns>
        public string GetMsgByRequestName(string requestName, string statuCode)
        public string GetMsgByRequestName(string statuCode)
        {
            if (IgnoreError == true)
            {
@@ -209,11 +216,11 @@
                return Language.StringByID(stateCodeDic[statuCode]);
            }
            if (dicMsg.ContainsKey(requestName) == true && dicMsg[requestName].ContainsKey(statuCode) == true)
            {
                //在册的Msg
                return Language.StringByID(dicMsg[requestName][statuCode]);
            }
            //if (dicMsg.ContainsKey(requestName) == true && dicMsg[requestName].ContainsKey(statuCode) == true)
            //{
            //    //在册的Msg
            //    return Language.StringByID(dicMsg[requestName][statuCode]);
            //}
            return Language.StringByID(HDL_ON.StringId.FailedRequestServer) + "\n(" + statuCode + ")";
        }
@@ -226,28 +233,76 @@
        /// <param name="statuCode"></param>
        /// <param name="isTipStyle"></param>
        /// <param name="tipStr">补充的错误提示</param>
        public void ShowErrorInfoAlter(string requestName, string statuCode, bool isTipStyle = false, string tipStr = "")
        public void ShowErrorInfoAlter(string statuCode, bool isTipStyle = true, int closeTime = 2, string tipStr = "")
        {
            try
            {
                string mes = GetMsgByRequestName(requestName, statuCode);
                if (mes == null) return;
                if (!string.IsNullOrEmpty(tipStr))
                //如果是token过期则刷新token
                if (statuCode == StateCode.TOKEN_EXPIRED)
                {
                    mes = tipStr + "\n" + mes;
                }
                if (isTipStyle)
                {
                    //MainPage.AddTip(mes);
                    StartRefreshToken();
                }
                else
                {
                    Application.RunOnMainThread(() => {
                        new Alert("", mes, Language.StringByID(HDL_ON.StringId.Close)).Show();
                    });
                    string mes = GetMsgByRequestName(statuCode);
                    if (mes == null) return;
                    if (!string.IsNullOrEmpty(tipStr))
                    {
                        mes = tipStr + "\n" + mes;
                    }
                    if (isTipStyle)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            var tip = new Tip()
                            {
                                Text = mes,
                                CloseTime = closeTime,
                                Direction = AMPopTipDirection.None
                            };
                            tip.Show(MainPage.BaseView);
                        });
                    }
                    else
                    {
                        Application.RunOnMainThread(() =>
                        {
                            new Alert("", mes, Language.StringByID(HDL_ON.StringId.Close)).Show();
                        });
                    }
                }
            }
            catch { }
        }
        /// <summary>
        /// StartRefreshToken
        /// </summary>
        public void StartRefreshToken()
        {
            if (isGetingToken) return;
            new System.Threading.Thread(() =>
            {
                isGetingToken = true;
                try
                {
                    var success = new HttpServerRequest().RefreshToken();
                    if (success) {
                        Utlis.WriteLine("RefreshToken success");
                    }
                }
                catch
                {
                }
                finally
                {
                    isGetingToken = false;
                }
            })
            { IsBackground = true }.Start();
        }
    }
@@ -261,9 +316,14 @@
        /// </summary>
        public const string SUCCESS = "0";
        /// <summary>
        /// 会话超时,请更新token
        /// </summary>
        public const string TOKEN_EXPIRED = "10001";
        /// <summary>
        /// 账号不存在的错误码
        /// </summary>
        public const string ACCOUNT_NOT_EXIST = "10010";
    }
}