| 
					
				 | 
			
			
				@@ -4,6 +4,7 @@ using OASystem.Domain; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.Domain.Dtos.SmallFun; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.Domain.ViewModels.JuHeExchangeRate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.Domain.ViewModels.SmallFun; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using StackExchange.Redis; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.DirectoryServices.Protocols; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Net.Http; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Net.Http.Json; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -338,8 +339,10 @@ namespace OASystem.API.OAMethodLib.JuHeAPI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #region 文本翻译 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /// 获取汇率 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 文本翻译 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="source">原文,数据类型为字符串,也可为数组(元素必须为字符串类型);每次请求的字符串长度之和尽量不要超过 </param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="trans_type">翻译方向:en2zh(英文-中文),zh2en(中文-英文),ja2zh(日文-中文),zh2ja(中文-日文),ko2zh(韩文-中文),zh2ko(中文-韩文)</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<JuHeAPIResult> GetTextTranslateAsync(string source,string trans_type = "zh2en") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -350,78 +353,43 @@ namespace OASystem.API.OAMethodLib.JuHeAPI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             #region 请求接口并存入缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             string url = string.Format("/finance/exchange/rmbquot"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var exchangeReq = await _httpClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        .PostAsync(url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                         new FormUrlEncodedContent(new List<KeyValuePair<string, string>>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var exchangeReq = await _httpClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    .PostAsync(url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     new FormUrlEncodedContent(new List<KeyValuePair<string, string>>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                              new KeyValuePair<string, string>("key",_appKey),//你申请的key  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                             new KeyValuePair<string, string>("source",source),   //两种格式(0或者1,默认为0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                             new KeyValuePair<string, string>("trans_type",trans_type)    //(0:工商银行,1:招商银行,2:建设银行,3:中国银行, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                                         //4:交通银行,5:农业银行,默认为:0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                         })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (exchangeReq.IsSuccessStatusCode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var stringResponse = await exchangeReq.Content.ReadAsStringAsync(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    result = System.Text.Json.JsonSerializer.Deserialize<JuHeAPIResult>(stringResponse, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (result.Resultcode == "200") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        List<ExchangeRateModel> rateList = new List<ExchangeRateModel>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        #region 处理数据类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        JArray jar = JArray.Parse(result.Result.ToJson()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for (int i = 0; i < jar.Count; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            JObject j = JObject.Parse(jar[i].ToString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (int x = 1; x < j.Count + 1; x++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                string rateName = "data" + x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                string rateDataStr = j[rateName].ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (!string.IsNullOrEmpty(rateDataStr)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    ExchangeRateModel exchangeRate = JsonConvert.DeserializeObject<ExchangeRateModel>(rateDataStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    rateList.Add(exchangeRate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                             new KeyValuePair<string, string>("source",source),    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                             new KeyValuePair<string, string>("trans_type",trans_type)     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (exchangeReq.IsSuccessStatusCode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var stringResponse = await exchangeReq.Content.ReadAsStringAsync(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TimeSpan ts = DateTime.Now.AddMinutes(120) - DateTime.Now; //设置redis 过期时间 120分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        await RedisRepository 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .RedisFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .CreateRedisRepository() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .StringSetAsync<string>("JuHeApiExchangeRate", rateList.ToJson(), ts);//string 存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        result.Result = rateList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        result.Reason = string.Format("聚合APIError[Error_Code:{0} Resultcode:{1} Msg:{2}]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            result.Error_code, result.Resultcode, result.Result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result = System.Text.Json.JsonSerializer.Deserialize<JuHeAPIResult>(stringResponse, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (result.Resultcode == "200") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    string resStr = (string)result.Result.GetType().GetProperty("res").GetValue(result.Result, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result.Result = resStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    result.Reason = "汇率接口请求失败!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result.Reason = string.Format("聚合APIError[Error_Code:{0} Resultcode:{1} Msg:{2}]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        result.Error_code, result.Resultcode, result.Result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            catch (Exception ex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result.Reason = ex.Message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result.Reason = "汇率接口请求失败!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |