From b9f7560cbe0e562a40e9515a0559a3e951f0fee6 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期一, 07 四月 2025 09:16:01 +0800
Subject: [PATCH] 问题修改

---
 Wms/WMS.BLL/SysServer/Token.cs |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 1 deletions(-)

diff --git a/Wms/WMS.BLL/SysServer/Token.cs b/Wms/WMS.BLL/SysServer/Token.cs
index b73c03f..d4458a1 100644
--- a/Wms/WMS.BLL/SysServer/Token.cs
+++ b/Wms/WMS.BLL/SysServer/Token.cs
@@ -59,7 +59,7 @@
                 };
                 #endregion
 
-                #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp 鎴� mes
+                #region 閫氳繃鎺ュ彛鍙戦�佽嚦mes
                 //绯荤粺瀵规帴鍚庢斁寮�
                 var jsonData = JsonConvert.SerializeObject(data);
 
@@ -67,6 +67,96 @@
 
                 var obj = JsonConvert.DeserializeObject<MesTokenModel>(response);//瑙f瀽杩斿洖鏁版嵁
                 
+                
+                if (obj.status != "success")
+                {
+                    throw new Exception("涓婁紶澶辫触" + obj.message);
+                }
+                else
+                {
+                    var token = obj.Data.token;
+                    var expireTime = obj.Data.expire_time;
+                    var time = DateTime.Now.AddMilliseconds(double.Parse(expireTime));
+                    if (sysToken == null)//娣诲姞
+                    {
+                        var addToken = new SysToken()
+                        {
+                            SystemName = "MES",
+                            Token = token,
+                            ExpireTime = time,
+                            CreateUser = 0
+                        };
+                        Db.Insertable(addToken).ExecuteCommand();
+                        return token;
+                    }
+                    else //淇敼
+                    {
+                        sysToken.Token = token;
+                        sysToken.ExpireTime = time;
+                        sysToken.UpdateTime = DateTime.Now;
+                        Db.Updateable(sysToken).ExecuteCommand();
+                        return token;
+                    }
+                }
+                
+                #endregion 
+            }
+            catch (Exception)
+            {
+                return "";
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇璧嬬爜token浠ょ墝
+        /// </summary>
+        /// <param name="url">鑾峰彇璧嬬爜token浠ょ墝</param>
+        /// <returns></returns>
+        public string GetFuMaToken(string url)
+        {
+            try
+            {
+                var str = "";
+
+                //棣栧厛鍒ゆ柇绯荤粺鍐呮槸鍚︽湁token鍊硷紝鏁堟湡鏄惁澶辨晥
+                var sysToken = Db.Queryable<SysToken>().First(m => m.IsDel == "0" && m.SystemName == "FuMa");
+                if (sysToken != null && !string.IsNullOrWhiteSpace(sysToken.Token) && sysToken.ExpireTime > DateTime.Now)
+                {
+                    str = sysToken.Token;
+                    return str;  //杩斿洖token鍊�
+                }
+                //return str;
+                #region 鑾峰彇鏂扮殑浠ょ墝
+                //瀵规帴鏃舵洿鏀硅矾寰�
+                var user = MesConfig.MesUser;
+                var pass = MesConfig.MesPassWord;
+                var secretKey = Md5Tools.CalcMd5(pass);
+                var nonce = Guid.NewGuid().ToString("N");
+                var timestamp = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
+
+                var info = new string[] { user, secretKey, nonce, timestamp };
+                Array.Sort(info, string.CompareOrdinal); //ASCII鎺掑簭
+                var miyao = string.Join("", info); //鏁扮粍杞崲鎴愬瓧绗︿覆
+                var sign = Md5Tools.CalcMd5(miyao);  //绛惧悕
+
+                var data = new
+                {
+                    user = user,
+                    nonce = nonce,
+                    timestamp = timestamp,
+                    sign = sign,
+                    jwt = true,      //鏄惁杩斿洖JWT浠ょ墝
+                };
+                #endregion
+
+                #region 閫氳繃鎺ュ彛鍙戦�佽嚦璧嬬爜
+                //绯荤粺瀵规帴鍚庢斁寮�
+                var jsonData = JsonConvert.SerializeObject(data);
+
+                var response = HttpHelper.DoPost(url, jsonData, "FuMa鐢宠鑾峰彇浠ょ墝", "Fuma");
+
+                var obj = JsonConvert.DeserializeObject<MesTokenModel>(response);//瑙f瀽杩斿洖鏁版嵁
+
                 if (obj.status != "success")
                 {
                     throw new Exception("涓婁紶澶辫触" + obj.message);
@@ -105,5 +195,6 @@
                 return "";
             }
         }
+
     }
 }

--
Gitblit v1.8.0