/// <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."); } }
/// <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."); } }