Esempio n. 1
0
        public async Task <IResultModel> QueryLatestSelect(Guid accountId, EmployeeLatestSelectQueryModel model)
        {
            var result   = new QueryResultModel <EmployeeEntity>();
            var employee = await _repository.GetByAccountId(accountId);

            if (employee == null)
            {
                return(ResultModel.Success(result));
            }

            result.Rows = await _latestSelectRepository.Query(employee.Id, model);

            result.Total = model.TotalCount;
            return(ResultModel.Success(result));
        }
Esempio n. 2
0
        public async Task <IList <EmployeeEntity> > Query(int employeeId, EmployeeLatestSelectQueryModel model)
        {
            var paging = model.Paging();

            var query     = Db.Find(m => m.EmployeeId == employeeId);
            var joinQuery = query.LeftJoin <EmployeeEntity>((t1, t2) => t1.RelationId == t2.Id && t2.Status == EmployeeStatus.Work)
                            .LeftJoin <DepartmentEntity>((t1, t2, t3) => t2.DepartmentId == t3.Id)
                            .LeftJoin <PostEntity>((t1, t2, t3, t4) => t2.PostId == t4.Id);

            joinQuery.WhereNotNull(model.Name, (t1, t2, t3, t4) => t2.Name.Contains(model.Name));
            joinQuery.OrderByDescending((t1, t2, t3, t4) => t1.Timestamp);
            joinQuery.Select((t1, t2, t3, t4) => new { t2, DepartmentPath = t3.FullPath, PostName = t4.Name });

            var list = await joinQuery.PaginationAsync <EmployeeEntity>(paging);

            model.TotalCount = paging.TotalCount;
            return(list);
        }
Esempio n. 3
0
 public Task <IResultModel> QueryLatestSelect([FromQuery] EmployeeLatestSelectQueryModel model)
 {
     return(_service.QueryLatestSelect(_loginInfo.AccountId, model));
 }