/// <summary>
 ///     根据用户id查看用户购买订单是否正确
 /// </summary>
 /// <param name="userId"></param>
 /// <param name="dbNumber"></param>
 /// <param name="redisHelperSpecial"></param>
 /// <returns></returns>
 private bool CheckPurchaseOrderInfo(string userId, int dbNumber, List <YemUserProductDto> yemUserProductDtos, RedisHelperSpecial redisHelperSpecial)
 {
     try
     {
         //获取Asset对象
         //string oldPurchaseOrder = "OldPurchaseOrder";
         //CloudTable assertIdsTable = this.tableClient.GetTableReference(this.loadAppSettings.SearchUserInfoAzureTable);
         //TableQuery<YemUserProductDto> queryYemProduct = new TableQuery<YemUserProductDto>()
         //    .Where($"PartitionKey eq  '{oldPurchaseOrder}'  and IsLock eq false and UserId eq '{userId}'");
         //YemUserProductDto yemUserProductDto = assertIdsTable.ExecuteQuery(queryYemProduct).FirstOrDefault();
         YemUserProductDto yemUserProductDto = yemUserProductDtos.FirstOrDefault(p => p.UserId == userId);
         //获取融资金额以及剩余金额
         if (yemUserProductDto == null)
         {
             //记录下来
             Logger.LoadData(@"CheckOneRedisUserAssetInfo\ErrorInfoUserInfo.txt", $"{userId}:根据userId拉取AzureTable数据异常---" + DateTime.UtcNow.ToChinaStandardTime());
             return(false);
         }
         long purchaseAmount  = yemUserProductDto.PurchaseMoney;
         long remainingAmount = yemUserProductDto.RemainingAmount;
         //再从reedis中拉出所有的资产的下对应
         List <UserAssetRatio> listUserAssetInfos = new RedisHelperSpecial(dbNumber).GetRedisUserAssetRatiosAsync(userId).ToList();
         long sumPurchaseAmount = 0;
         if (listUserAssetInfos.Count > 0)
         {
             sumPurchaseAmount += listUserAssetInfos.Sum(info => info.Capital);
         }
         //最后的节点
         List <UserAssetRatio> listEndUserAssetinfos = redisHelperSpecial.GetRedisUserAssetRatiosAsync(userId).ToList();
         if (listEndUserAssetinfos.Count > 0)
         {
             sumPurchaseAmount += listEndUserAssetinfos.Sum(info => info.Capital);
         }
         if (purchaseAmount - sumPurchaseAmount != remainingAmount)
         {
             //记录下来
             Logger.LoadData(@"CheckOneRedisUserAssetInfo\ErrorInfoUserInfo.txt", $"{userId}:该用户购买订单总购买金额减去所有本金不等于剩余金额" + DateTime.UtcNow.ToChinaStandardTime());
             return(false);
         }
         return(true);
     }
     catch (Exception e)
     {
         Logger.LoadData(@"CheckOneRedisUserAssetInfo\Error.txt", $"{userId}:该资产发生异常{e.Message}");
         return(false);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void button1_Click(object sender, EventArgs e)
        {
            List <int> numbers = new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8
            };
            long totalNums = 0;

            for (int i = 0; i < numbers.Count; i++)
            {
                int number = numbers[i];
                RedisHelperSpecial redisHelperSpecial = new RedisHelperSpecial(number);
                //啦list
                List <string> userids = redisHelperSpecial.GetRedisUserInfos().Select(u => u.UserId).ToList();
                for (int j = 0; j < userids.Count; j++)
                {
                    //获取list
                    totalNums += redisHelperSpecial.GetRedisUserAssetRatiosAsync(userids[j]).Count;
                }
            }
            //
            MessageBox.Show(totalNums.ToString());
        }