public BaseResponse <QueryLogResult> QueryLog(QueryLogParameter param)
 {
     if (Validate(param))
     {
         return(logManager.QueryLog(param));
     }
     else
     {
         BaseResponse <QueryLogResult> response = new BaseResponse <QueryLogResult>();
         response.IsSuccessful = false;
         response.Reason       = "JWT_ERR";
         return(response);
     }
 }
예제 #2
0
        public BaseResponse <QueryLogResult> QueryLog(QueryLogParameter param)
        {
            BaseResponse <QueryLogResult> response = new BaseResponse <QueryLogResult>();
            QueryLogResult result = new QueryLogResult();

            try
            {
                var logQuerable = syslogRepsoitory.GetDatas <SysLog>(t => true, true);
                if (param.RoleID.HasValue && param.RoleID.Value > 0)
                {
                    logQuerable = logQuerable.Where(t => t.RoleID == param.RoleID.Value);
                }
                if (param.BeginTime.HasValue && param.BeginTime.Value != DateTime.MinValue)
                {
                    logQuerable = logQuerable.Where(t => t.OperationDate >= param.BeginTime.Value);
                }
                if (param.EndTime.HasValue && param.EndTime.Value != DateTime.MinValue)
                {
                    logQuerable = logQuerable.Where(t => t.OperationDate <= param.EndTime.Value);
                }
                if (!string.IsNullOrEmpty(param.Keyword))
                {
                    logQuerable = logQuerable.Where(t => (!string.IsNullOrEmpty(t.UserToken) && t.UserToken.ToUpper().Contains(param.Keyword.ToUpper())) || (!string.IsNullOrEmpty(t.OrganName) && t.OrganName.ToUpper().Contains(param.Keyword.ToUpper())));
                }

                int total = logQuerable.Count();

                ListSortDirection       sortOrder = param.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                PropertySortCondition[] sortList  = new PropertySortCondition[]
                {
                    new PropertySortCondition(param.Sort, sortOrder),
                    new PropertySortCondition("ID", sortOrder),
                };
                logQuerable.OrderBy(sortList);
                if (param.Page > 0)
                {
                    logQuerable = logQuerable
                                  .Skip((param.Page - 1) * param.PageSize)
                                  .Take(param.PageSize);
                }

                logQuerable.ToList().ForEach(l =>
                {
                    LogInfo logInfo         = new LogInfo();
                    logInfo.ID              = l.ID;
                    logInfo.OperationUserID = l.OperationUserID;
                    logInfo.UserToken       = l.UserToken;
                    logInfo.RoleID          = l.RoleID;
                    logInfo.RoleName        = l.RoleName;
                    logInfo.Content         = l.Content;
                    logInfo.OrganID         = l.OrganID;
                    logInfo.OrganName       = l.OrganName;
                    logInfo.IP              = l.IP;
                    logInfo.HTTPType        = l.HTTPType;
                    logInfo.OperationDate   = l.OperationDate;

                    result.LogList.Add(logInfo);
                });

                result.Total    = total;
                response.Result = result;
                return(response);
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                response.IsSuccessful = false;
                response.Reason       = e.Message;

                return(response);
            }
        }