/// <summary> /// 获取专题成员 /// </summary> /// <param name="groupId">专题Id</param> /// <param name="hasManager">是否包含管理员</param> /// <param name="sortBy">排序字段</param> /// <param name="pageSize">每页记录数</param> /// <param name="pageIndex">页码</param> /// <returns>专题成员分页数据</returns> public PagingDataSet <TopicMember> GetTopicMembers(long groupId, bool hasManager = true, SortBy_TopicMember sortBy = SortBy_TopicMember.DateCreated_Asc, int pageSize = 20, int pageIndex = 1) { //设计要点: //1、排序:管理员排在前,其余按加入时间正序; //2、使用分区列表缓存 return(TopicMemberRepository.GetTopicMembers(groupId, hasManager, sortBy, pageSize, pageIndex)); }
/// <summary> /// 获取专题成员 /// </summary> /// <param name="groupId">专题Id</param> /// <param name="hasManager">是否包含管理员</param> /// <param name="sortBy">排序字段</param> /// <param name="pageSize">每页记录数</param> /// <param name="pageIndex">页码</param> /// <returns>专题成员分页数据</returns> public PagingDataSet<TopicMember> GetTopicMembers(long groupId, bool hasManager = true, SortBy_TopicMember sortBy = SortBy_TopicMember.DateCreated_Asc, int pageSize = 20, int pageIndex = 1) { //设计要点: //1、排序:管理员排在前,其余按加入时间正序; //2、使用分区列表缓存 return TopicMemberRepository.GetTopicMembers(groupId, hasManager, sortBy, pageSize, pageIndex); }
/// <summary> /// 获取专题成员 /// </summary> /// <param name="groupId">专题Id</param> /// <param name="hasManager">是否包含管理员</param> /// <param name="sortBy">排序字段</param> /// <param name="pageSize">每页记录数</param> /// <param name="pageIndex">页码</param> /// <returns>专题成员分页数据</returns> public PagingDataSet <TopicMember> GetTopicMembers(long groupId, bool hasManager, SortBy_TopicMember sortBy, int pageSize, int pageIndex) { return(GetPagingEntities(pageSize, pageIndex, CachingExpirationType.UsualObjectCollection, () => { StringBuilder cacheKey = new StringBuilder(); cacheKey.Append(RealTimeCacheHelper.GetListCacheKeyPrefix(CacheVersionType.AreaVersion, "GroupId", groupId)); cacheKey.AppendFormat("PagingGroupMembers::GroupId-{0}:hasManager-{1}", groupId, hasManager); return cacheKey.ToString(); }, () => { Sql sql = Sql.Builder; sql.Select("*") .From("spb_GroupMembers") .Where("GroupId = @0", groupId); if (!hasManager) { sql.Where("IsManager = 0"); } sql.OrderBy("IsManager desc"); switch (sortBy) { case SortBy_TopicMember.DateCreated_Asc: sql.OrderBy("JoinDate asc"); break; case SortBy_TopicMember.DateCreated_Desc: sql.OrderBy("JoinDate desc"); break; default: sql.OrderBy("JoinDate asc"); break; } return sql; })); }