/// <summary> /// 更换群主 /// </summary> /// <param name="groupId">专题Id</param> /// <param name="newOwnerUserId">新群主UserId</param> public void ChangeTopicOwner(long groupId, long newOwnerUserId) { //更换群主后,原群主转换成专题成员,如果新群主是专题成员则从成员中移除 TopicEntity group = groupRepository.Get(groupId); long oldOwnerUserId = group.UserId; group.UserId = newOwnerUserId; groupRepository.ChangeTopicOwner(groupId, newOwnerUserId); //原群主的专题数-1,加入专题数+1 OwnerDataService ownerDataService = new OwnerDataService(TenantTypeIds.Instance().User()); ownerDataService.Change(oldOwnerUserId, OwnerDataKeys.Instance().CreatedTopicCount(), -1); ownerDataService.Change(oldOwnerUserId, OwnerDataKeys.Instance().JoinedTopicCount(), 1); //原群主转换成专题成员 TopicMember TopicMember = TopicMember.New(); TopicMember.TopicId = groupId; TopicMember.UserId = oldOwnerUserId; TopicMemberRepository.Insert(TopicMember); //新群主的专题数+1,加入专题数-1 ownerDataService.Change(newOwnerUserId, OwnerDataKeys.Instance().CreatedTopicCount(), 1); //如果新群主是专题成员则从成员中移除 if (IsMember(groupId, newOwnerUserId)) { DeleteTopicMember(groupId, newOwnerUserId); } }