/// <summary> /// “关注”指定的目标用户(异步) /// </summary> /// <param name="userId">用户编号</param> /// <param name="targetUserId">被关注的目标用户编号</param> public static async void FollowedTargetUser(int userId, int targetUserId) { await Task.Run(() => { UserFollowed uFollowed = new UserFollowed { UserId = userId, FollowedUserId = targetUserId, CreateDate = DateTime.Now }; bool result = SocialData.ChangedFollowedWithTargetUser(uFollowed, 1); if (result) { SocialConfig config = SocialConfigs.GetSocialConfigCache(); if (config.BeFollowedExpChanged != 0) { UserBiz.UpdateUserExp(targetUserId, config.BeFollowedExpChanged, "被关注"); } if (config.BeFollowedCoinChanged != 0) { UserBiz.UpdateUserCoin(targetUserId, config.BeFollowedCoinChanged, "被关注"); } UserBiz.SetUserCacheInfo(userId); UserBiz.SetUserCacheInfo(targetUserId); //发送系统消息给被关注对象,提醒该用户被“关注” //Todo.... } }); }
/// <summary> /// 创建群组 /// </summary> /// <param name="userId"></param> /// <param name="groupName"></param> /// <param name="interest"></param> /// <param name="iconData"></param> /// <param name="iconExtName"></param> /// <returns></returns> public static GroupInfo CreateGroup(int userId, string groupName, string interest, byte[] iconData, string iconExtName) { SocialConfig config = SocialConfigs.GetSocialConfigCache(); GroupInfo groupInfo = new GroupInfo { GroupName = groupName, GroupIcon = config.DefaultGroupIcon, Comment = string.Empty, CreatorId = userId, GroupType = 0, InterestCode = interest, QuickJoinCode = string.Empty, MaxMemberCount = config.GroupMaxMemberCount < 1 ? 20 : config.GroupMaxMemberCount, MemberCount = 0, CreateDate = DateTime.Now }; UserCacheInfo userCache = UserBiz.ReadUserCacheInfo(userId); SocialData.CreateGroup(groupInfo, userCache.UserSite); if (groupInfo.GroupId > 0) { //更新快速加入码和图标 groupInfo.QuickJoinCode = Convert.ToBase64String(groupInfo.GroupId.GetIntOffsetBytes()).TrimEnd('=').ToUpper(); string iconUrl = iconData.SaveMediaFile(FileTarget.Group, groupInfo.GroupId, MediaType.Image, iconExtName); if (!string.IsNullOrEmpty(iconUrl)) { groupInfo.GroupIcon = iconUrl; } SocialData.UpdateGroupInfo(groupInfo); //缓存群信息和成员列表信息 groupInfo.MemberCount++; SetGroupCacheInfo(groupInfo.GroupId, groupInfo); List <UserCacheInfo> memberList = new List <UserCacheInfo>(1) { UserBiz.ReadUserCacheInfo(userId) }; SetGroupMembersCacheInfo(groupInfo.GroupId, memberList); return(groupInfo); } return(null); }