예제 #1
0
        /// <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 <GroupMember> GetGroupMembers(long groupId, bool hasManager, SortBy_GroupMember 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_GroupMember.DateCreated_Asc:
                    sql.OrderBy("JoinDate asc");
                    break;

                case SortBy_GroupMember.DateCreated_Desc:
                    sql.OrderBy("JoinDate desc");
                    break;

                default:
                    sql.OrderBy("JoinDate asc");
                    break;
                }
                return sql;
            }));
        }
예제 #2
0
 /// <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 <GroupMember> GetGroupMembers(long groupId, bool hasManager = true, SortBy_GroupMember sortBy = SortBy_GroupMember.DateCreated_Asc, int pageSize = 20, int pageIndex = 1)
 {
     //设计要点:
     //1、排序:管理员排在前,其余按加入时间正序;
     //2、使用分区列表缓存
     return(groupMemberRepository.GetGroupMembers(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<GroupMember> GetGroupMembers(long groupId, bool hasManager = true, SortBy_GroupMember sortBy = SortBy_GroupMember.DateCreated_Asc, int pageSize = 20, int pageIndex = 1)
 {
     //设计要点:
     //1、排序:管理员排在前,其余按加入时间正序;
     //2、使用分区列表缓存
     return groupMemberRepository.GetGroupMembers(groupId, hasManager, sortBy, pageSize, pageIndex);
 }