Exemplo n.º 1
0
 /// <summary>
 /// 处理推荐关系
 /// </summary>
 /// <param name="contextFrom"></param>
 /// <param name="contextTo"></param>
 /// <param name="sql">获取源数据sql</param>
 /// <param name="targetUserId">目标用户id</param>
 private void DealRecommendInfo(IRepositoryContext <Transfer> contextFrom, IRepositoryContext <Transfer> contextTo, string sql, object targetUserId)
 {
     using (var reader = contextFrom.ExecuteReader(sql))
     {
         var  parents  = new List <UserRecommend>();
         int  level    = 1;
         long parentId = 0;
         while (reader.Read())
         {
             //var toUser = _usersTo[(reader["username"].ToString()];//_usersTo.FirstOrDefault(d => d["UserName"].Equals(reader["username"]));
             if (!_usersTo.TryGetValue(reader["username"].ToTLower(), out IDictionary <string, object> toUser))
             {
                 continue;
             }
             //if (toUser != null)
             //{
             var ur = new UserRecommend {
                 UserId = toUser["Id"].ToLong(), ParentLevel = level++
             };
             parents.Add(ur);
             parentId = ur.UserId;
             //    }
         }
         var parentMap = parents.ToJson();
         sql = $"UPDATE User_User SET ParentMap='{parentMap}',ParentId={parentId} WHERE Id={targetUserId}";
         this.Log($"Executing UserRecommend:{sql}");
         contextTo.Execute(sql);
         this.Log($"Execute User Recommend :[{sql}] SUCCESS.");
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 处理安置关系
        /// </summary>
        /// <param name="contextFrom"></param>
        /// <param name="contextTo"></param>
        /// <param name="sql">源数据sql</param>
        /// <param name="targetUserId">目标用户</param>
        private void DealRelation(IRepositoryContext <Transfer> contextFrom, IRepositoryContext <Transfer> contextTo, string sql, object targetUserId, object position, object userFromId)
        {
            using (var reader = contextFrom.ExecuteReader(sql))
            {
                var          parents  = new List <UserRelation>();
                int          level    = 1;
                long         parentId = 0;
                UserRelation ur       = null;
                while (reader.Read())
                {
                    if (!_usersTo.TryGetValue(reader["username"].ToTLower(), out IDictionary <string, object> toUser))
                    {
                        continue;
                    }

                    //var toUser = _usersTo.FirstOrDefault(d => d["UserName"].Equals(reader["username"]));
                    //if (toUser != null)
                    //{
                    ur = new UserRelation {
                        UserId = toUser["Id"].ToLong(), ParentLevel = level++, Location = reader["location"].ToInt()
                    };
                    parents.Add(ur);
                    parentId = ur.UserId;
                    //}
                }
                if (ur == null)
                {
                    return;
                }
                var parentMap = parents.ToJson();

                IDictionary <string, object> row = new Dictionary <string, object>();
                row["Level"]     = level;
                row["Location"]  = position; //ur.Location;
                row["ParentId"]  = ur.UserId;
                row["UserId"]    = targetUserId;
                row["ParentMap"] = parentMap;
                row["SrcId"]     = userFromId;//reader["userId"];

                contextTo.Execute("User_PlacementRelation", row);
                this.Log($"Execute Relation :{row.CollToString()} SUCCESS.");
            }
        }