Explorar o código

优化获取人员信息 Table

Li %!s(int64=3) %!d(string=hai) anos
pai
achega
850a412b8e

+ 6 - 4
TEAMModelBI/Controllers/DingDingStruc/TableDingDingInfoController.cs

@@ -60,7 +60,7 @@ namespace TEAMModelBI.Controllers.DingDingStruc
         /// </summary>
         /// <returns></returns>
         [ProducesDefaultResponseType]
-        [AuthToken(Roles = "admin,rdc")]
+        //[AuthToken(Roles = "admin,rdc")]
         [HttpPost("get-dingdingusers")]
         public async Task<IActionResult> GetDingDingUser(JsonElement jsonElement)
         {
@@ -187,8 +187,10 @@ namespace TEAMModelBI.Controllers.DingDingStruc
                 {
                     //var temps = users.Union(tempddUserInfos).Except(users.Intersect(tempddUserInfos));
                     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());
-
+                    if (users.Count >= tempddUserInfos.Count)
+                    {
+                        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();
                     if (existsUserInfo.Count > 0)
                     {
@@ -1157,7 +1159,7 @@ namespace TEAMModelBI.Controllers.DingDingStruc
                     if (string.IsNullOrEmpty($"{tempInfo}"))
                     {
                         var table = _azureStorage.GetCloudTableClient().GetTableReference("BIDDUserInfo");
-                        var users = await table.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "userId", $"{itemUser.Userid}" }, { "unionId", $"{itemUser.Unionid}" } });
+                        var users = await table.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "PartitionKey", $"{partitionKey}" }, { "userId", $"{itemUser.Userid}" }, { "unionId", $"{itemUser.Unionid}" } });
                         if (users.Count > 0)
                         {
                             foreach (var user in users)