/// <summary> /// 接受/拒绝专题加入申请 /// </summary> /// <param name="groupIds">申请Id列表</param> /// <param name="isApproved">是否接受</param> public void ApproveTopicMemberApply(IEnumerable <long> applyIds, bool isApproved) { //设计要点: //1、仅允许对待处理状态的申请变更状态; //2、通过批准的申请,直接创建TopicMember IEnumerable <TopicMemberApply> TopicMemberApplies = TopicMemberApplyRepository.PopulateEntitiesByEntityIds(applyIds); TopicMemberApplyStatus applyStatus = isApproved ? TopicMemberApplyStatus.Approved : TopicMemberApplyStatus.Disapproved; string operationType = isApproved ? EventOperationType.Instance().Approved() : EventOperationType.Instance().Disapproved(); foreach (var apply in TopicMemberApplies) { if (apply.ApplyStatus != TopicMemberApplyStatus.Pending) { continue; } apply.ApplyStatus = applyStatus; TopicMemberApplyRepository.Update(apply); EventBus <TopicMemberApply> .Instance().OnAfter(apply, new CommonEventArgs(operationType)); if (isApproved) { TopicMember member = TopicMember.New(); member.UserId = apply.UserId; member.TopicId = apply.TopicId; CreateTopicMember(member); } } }
public ActionResult ManageMemberApplies(string spaceKey, TopicMemberApplyStatus? applyStatus, int pageIndex = 1, int pageSize = 20) { TopicEntity topic = topicService.Get(spaceKey); if (topic == null) return HttpNotFound(); pageResourceManager.InsertTitlePart(topic.TopicName); pageResourceManager.InsertTitlePart("管理专题成员申请页"); //已修改 PagingDataSet<TopicMemberApply> topicMemberApplies = topicService.GetTopicMemberApplies(topic.TopicId, applyStatus, pageSize, pageIndex); ViewData["topicId"] = topic.TopicId; TempData["TopicMenu"] = TopicMenu.ManageMember; return View(topicMemberApplies); }
/// <summary> /// 申请处理 /// </summary> /// <param name="siteUrls"></param> /// <param name="spaceKey"></param> /// <param name="groupId"></param> /// <param name="applyStatus"></param> /// <returns></returns> public static string ManageMemberAppliesOfTopic(this SiteUrls siteUrls, string spaceKey, TopicMemberApplyStatus? applyStatus = null) { RouteValueDictionary route = new RouteValueDictionary(); route.Add("spaceKey", spaceKey); if (applyStatus != null) route.Add("applyStatus", applyStatus); return CachedUrlHelper.Action("ManageMemberApplies", "TopicSpaceSettings", TopicAreaName, route); }
/// <summary> /// 获取专题的加入申请列表 /// </summary> /// <param name="groupId">专题Id</param> /// <param name="applyStatus">申请状态</param> /// <param name="pageSize">每页记录数</param> /// <param name="pageIndex">页码</param> /// <returns>加入申请分页数据</returns> public PagingDataSet<TopicMemberApply> GetTopicMemberApplies(long groupId, TopicMemberApplyStatus? applyStatus, int pageSize = 20, int pageIndex = 1) { //设计要点: //1、排序:申请状态正序、申请时间倒序(Id代替); return TopicMemberApplyRepository.GetTopicMemberApplies(groupId, applyStatus, pageSize, pageIndex); }