Browse Source

添加设置管理员和通过手机号、邮箱、醍摩豆ID查询账户信息,暂时使用IES5的连接秘钥

Li 3 years ago
parent
commit
1b34a619ea

+ 29 - 1
TEAMModelBI/Controllers/BIServer/BiServersController.cs

@@ -15,6 +15,9 @@ using System.Text;
 using System.Net;
 using System.Net;
 using HTEXLib.COMM.Helpers;
 using HTEXLib.COMM.Helpers;
 using System.Net.Http.Json;
 using System.Net.Http.Json;
+using TEAMModelOS.SDK;
+using TEAMModelBI.Filter;
+using Microsoft.AspNetCore.Authorization;
 
 
 namespace TEAMModelBI.Controllers.BIServer
 namespace TEAMModelBI.Controllers.BIServer
 {
 {
@@ -31,14 +34,39 @@ namespace TEAMModelBI.Controllers.BIServer
         private readonly IConfiguration _configuration;
         private readonly IConfiguration _configuration;
 
 
         private readonly IHttpClientFactory _http;
         private readonly IHttpClientFactory _http;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
 
 
-        public BiServersController(AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration, IHttpClientFactory http)
+
+        public BiServersController(AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration, IHttpClientFactory http, CoreAPIHttpService coreAPIHttpService)
         {
         {
             _azureCosmos = azureCosmos;
             _azureCosmos = azureCosmos;
             _dingDing = dingDing;
             _dingDing = dingDing;
             _option = option?.Value;
             _option = option?.Value;
             _configuration = configuration;
             _configuration = configuration;
             _http = http;
             _http = http;
+            _coreAPIHttpService = coreAPIHttpService;
+        }
+
+        /// <summary>
+        /// 通过手机号、醍摩豆账户、邮箱查询信息
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [AuthToken(Roles = "admin")]
+        [HttpPost("get-coreinfo")]
+        public async Task<IActionResult> GetCoreInfo(JsonElement jsonElement)
+        {
+            try
+            {
+                var content = new StringContent(jsonElement.ToString(), Encoding.UTF8, "application/json");
+                string json = await _coreAPIHttpService.GetUserInfos(content);
+                return Ok(new { state = 200, infos = json.ToObject<JsonElement>() });
+            }
+            catch (Exception ex)
+            {
+                await _dingDing.SendBotMsg($"BI, {_option} /biservers/get-coreinfo  \n {ex.Message} {ex.StackTrace}", GroupNames.成都开发測試群組);
+                return BadRequest();
+            }
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 8 - 2
TEAMModelBI/Controllers/DingDingStruc/TableDingDingInfoController.cs

@@ -168,13 +168,19 @@ namespace TEAMModelBI.Controllers.DingDingStruc
                 //List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos);  //只是保存至Table
                 //List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos);  //只是保存至Table
                 //查询数据的数据 并和钉钉查询的数据对比,找出不同的数据,并删除  待后期测试
                 //查询数据的数据 并和钉钉查询的数据对比,找出不同的数据,并删除  待后期测试
                 var users = await table.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "PartitionKey", $"{divide}" } });
                 var users = await table.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "PartitionKey", $"{divide}" } });
+
                 List<DingDingUserInfo> noExisits = new();
                 List<DingDingUserInfo> noExisits = new();
+
                 if (users.Count > 0)
                 if (users.Count > 0)
                 {
                 {
                     List<DingDingUserInfo> existsUserInfo = users.Where(u => !tempddUserInfos.Exists(e => u.userId.Equals(e.userId) && u.PartitionKey.Equals(e.PartitionKey))).ToList();
                     List<DingDingUserInfo> existsUserInfo = users.Where(u => !tempddUserInfos.Exists(e => u.userId.Equals(e.userId) && u.PartitionKey.Equals(e.PartitionKey))).ToList();
-                    existsUserInfo.AddRange(tempddUserInfos.Where(e => !users.Exists(u => e.userId.Equals(u.userId) && e.PartitionKey.Equals(u.PartitionKey))).ToList());
-                    noExisits = await table.DeleteAll(existsUserInfo);
+                    //existsUserInfo.AddRange(tempddUserInfos.Where(e => !users.Exists(u => e.userId.Equals(u.userId) && e.PartitionKey.Equals(u.PartitionKey))).ToList());
+
+                    ////List<DingDingUserInfo> existsUserInfo = users.Where((x, i) => users.FindIndex(z => z.userId.Equals(x.userId) && x.PartitionKey.Equals(divide)) == i).Select(x => x).ToList();
+
+                    noExisits = await table.DeleteAll(users);
                 }
                 }
+
                 List<DingDingUserInfo> UserInfo = await table.SaveOrUpdateAll(tempddUserInfos);  //保存和修改至Table
                 List<DingDingUserInfo> UserInfo = await table.SaveOrUpdateAll(tempddUserInfos);  //保存和修改至Table
                 return Ok(new { state = 200, UserInfo, noExisits });
                 return Ok(new { state = 200, UserInfo, noExisits });
             }
             }

+ 1 - 0
TEAMModelBI/Startup.cs

@@ -94,6 +94,7 @@ namespace TEAMModelBI
             services.AddHttpClient();
             services.AddHttpClient();
             services.AddHttpClient<DingDing>(); 
             services.AddHttpClient<DingDing>(); 
             services.AddHttpClient<NotificationService>();
             services.AddHttpClient<NotificationService>();
+            services.AddCoreAPIHttpService(Configuration);
             services.AddHttpClient<CoreAPIHttpService>();
             services.AddHttpClient<CoreAPIHttpService>();
             services.AddMemoryCache();
             services.AddMemoryCache();
             services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.IgnoreNullValues = false; });
             services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.IgnoreNullValues = false; });

+ 4 - 2
TEAMModelBI/appsettings.Development.json

@@ -42,8 +42,10 @@
     "Account": "https://account.teammodel.cn",
     "Account": "https://account.teammodel.cn",
     "CoreAPI": "https://api2.teammodel.cn",
     "CoreAPI": "https://api2.teammodel.cn",
     "CoreService": {
     "CoreService": {
-      "clientID": "73266ca3-62b1-4304-b837-c672a8c88001",      //大陆站的ClientId
-      "clientSecret": "E4Sr6[ezaT.b=3DYWoIATmqRDn4HlJb?",     //大陆站的密钥
+      "clientID": "c7317f88-7cea-4e48-ac57-a16071f7b884", //大陆站IES5 ClientId
+      "clientSecret": "kguxh:V.PLmxBdaI@jnrTrDSth]A3346", //大陆站IES5 ClientId
+      //"clientID": "73266ca3-62b1-4304-b837-c672a8c88001",      //大陆站的ClientId
+      //"clientSecret": "E4Sr6[ezaT.b=3DYWoIATmqRDn4HlJb?",     //大陆站的密钥
       //"clientID": "c01d78c2-a72e-416e-94d9-c8d3e4b8eb11",   //国际站的ClientId
       //"clientID": "c01d78c2-a72e-416e-94d9-c8d3e4b8eb11",   //国际站的ClientId
       //"clientSecret": "68-Bz:/5Xv:u6PVAFE@s3.=P2PCq5@ux",   //国际站的密钥
       //"clientSecret": "68-Bz:/5Xv:u6PVAFE@s3.=P2PCq5@ux",   //国际站的密钥
       "deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
       "deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",

+ 4 - 2
TEAMModelBI/appsettings.json

@@ -58,8 +58,10 @@
     "Account": "https://account.teammodel.cn",
     "Account": "https://account.teammodel.cn",
     "CoreAPI": "https://api2.teammodel.cn",
     "CoreAPI": "https://api2.teammodel.cn",
     "CoreService": {
     "CoreService": {
-      "clientID": "73266ca3-62b1-4304-b837-c672a8c88001",     //大陆站的ClientId
-      "clientSecret": "E4Sr6[ezaT.b=3DYWoIATmqRDn4HlJb?",     //大陆站的密钥
+      "clientID": "c7317f88-7cea-4e48-ac57-a16071f7b884",
+      "clientSecret": "kguxh:V.PLmxBdaI@jnrTrDSth]A3346",
+      //"clientID": "73266ca3-62b1-4304-b837-c672a8c88001",     //大陆站的ClientId
+      //"clientSecret": "E4Sr6[ezaT.b=3DYWoIATmqRDn4HlJb?",     //大陆站的密钥
       //"clientID": "c01d78c2-a72e-416e-94d9-c8d3e4b8eb11",   //国际站的ClientId
       //"clientID": "c01d78c2-a72e-416e-94d9-c8d3e4b8eb11",   //国际站的ClientId
       //"clientSecret": "68-Bz:/5Xv:u6PVAFE@s3.=P2PCq5@ux",   //国际站的密钥
       //"clientSecret": "68-Bz:/5Xv:u6PVAFE@s3.=P2PCq5@ux",   //国际站的密钥
       "deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
       "deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",