/// <summary>
        /// 获取指定部门下的用户
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public WebFxsResult <PagingResult <User> > GetUserByDepartment(GetUserByDepartmentRQ request)
        {
            var result = new WebFxsResult <PagingResult <User> >
            {
                ReturnCode = ReturnCodeType.Error,
                Content    = new PagingResult <User>()
            };

            var pagingUsers = repository.GetUserByDepartment(request);

            result.ReturnCode = ReturnCodeType.Success;
            result.Content    = pagingUsers;

            return(result);
        }
        /// <summary>
        /// 获取指定部门下的所有用户(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PagingResult <User> GetUserByDepartment(GetUserByDepartmentRQ request)
        {
            var result        = new PagingResult <User>();
            var departmentIds = request.DeptIds.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(p => p.ToInt()).ToList();

            DBHelper.NoLockInvokeDB(() =>
            {
                using (var db = new WebFrameworksDB())
                {
                    var query = db.User.GroupJoin(db.UserDepartment, user => user.Id, userDepart => userDepart.UserId, (user, userDepart) => new { user, userDepart = userDepart.FirstOrDefault() })
                                .GroupJoin(db.Department, ud => ud.userDepart.DepartmentId, depart => depart.Id, (ud, depart) => new { ud, depart = depart.FirstOrDefault() })
                                .Where(p => departmentIds.Contains(p.depart.Id))
                                .Select(p => p.ud.user);
                    result = query.OrderByDescending(p => p.CreatedTime)
                             .Paging(request.PageIndex, request.PageSize);
                }
            });

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取部门下的所有用户
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetUserByDepartment(GetUserByDepartmentRQ request, int page, int rows)
        {
            var result = string.Empty;

            if (request == null)
            {
                request = new GetUserByDepartmentRQ();
            }
            request.PageIndex = page;
            request.PageSize  = rows;
            using (var factory = new ChannelFactory <IWebFxsDepartmentService>("*"))
            {
                var client = factory.CreateChannel();
                var rs     = client.GetUserByDepartment(request);
                if (rs.ReturnCode == ReturnCodeType.Success)
                {
                    result = "{\"total\": " + rs.Content.TotalCount + ",\"rows\":" + rs.Content.Entities.ToJson(dateTimeFormat: DateFormat.DATETIME) + "}";
                }
            }

            return(Content(result));
        }