Esempio n. 1
0
        public JsonResult Query(BehaviorStatModel query)
        {
            RequestQueryBehaviorStatQuery queryCon = new RequestQueryBehaviorStatQuery();

            queryCon.BusinessmanCode = query.BusinessmanCode;
            queryCon.BusinessmanName = query.BusinessmanName;
            queryCon.BusinessmanType = query.BusinessmanType;
            queryCon.StartDateTime   = Convert.ToDateTime(query.StartDateTime);
            queryCon.EndDateTime     = Convert.ToDateTime(query.EndDateTime);
            queryCon.PageIndex       = query.page;
            queryCon.PageSize        = query.rows;
            queryCon.Sort            = query.sort;
            queryCon.Order           = query.order;

            DataPack <ResponseBehaviorStat> dpList = null;

            CommunicateManager.Invoke <IBehaviorStatService>(service =>
            {
                dpList = service.Query(queryCon);
            });
            if (dpList == null)
            {
                return(Json(new { total = 0, rows = new List <ResponseBehaviorStat>() }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { total = dpList.TotalCount, rows = dpList.List }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        /// <summary>
        /// 查询用户操作行为
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public DataPack <ResponseBehaviorStat> Query(RequestQueryBehaviorStatQuery query)
        {
            string carriercode = AuthManager.GetCurrentUser().Code;
            var    contactName = AuthManager.GetCurrentUser().ContactName;
            var    isAdmin     = AuthManager.GetCurrentUser().IsAdmin;
            int    pSize       = query.PageSize ?? 10;
            int    count       = ((query.PageIndex == default(int) ? 1 : query.PageIndex) - 1) * pSize;

            var result = behaviorStatRepository.FindAll();

            if (!string.IsNullOrEmpty(carriercode))
            {
                result = result.Where(p => p.CarrierCode.ToLower().Equals(carriercode.ToLower()));
            }
            if (!string.IsNullOrEmpty(query.BusinessmanCode))
            {
                result = result.Where(p => p.BusinessmanCode.ToLower().Equals(query.BusinessmanCode.ToLower()));
            }
            if (!string.IsNullOrEmpty(query.BusinessmanName))
            {
                result = result.Where(p => p.BusinessmanName.ToLower().Contains(query.BusinessmanName.ToLower()));
            }
            if (!string.IsNullOrEmpty(query.BusinessmanType))
            {
                result = result.Where(p => p.BusinessmanType.ToLower().Equals(query.BusinessmanType.ToLower()));
            }
            if (!isAdmin && !string.IsNullOrEmpty(contactName))
            {
                result = result.Where(p => p.ContactName.ToLower().Equals(contactName.ToLower()));
            }
            if (query.StartDateTime != null)
            {
                var date = query.StartDateTime.Value.Date;
                result = result.Where(p => p.OpDateTime >= date);
            }
            if (query.EndDateTime != null)
            {
                var date = query.EndDateTime.Value.Date.AddDays(1).AddSeconds(-1);
                result = result.Where(p => p.OpDateTime <= date);
            }

            var res = ProcessBehaviorStatsToResponseBehaviorStats(result);

            if (string.IsNullOrWhiteSpace(query.Sort) || string.IsNullOrWhiteSpace(query.Order))
            {
                res = res.OrderByDescending(p => p.OutTicketCount).ToList();
            }
            else
            {
                if (query.Order == "desc")
                {
                    switch (query.Sort)
                    {
                    case "LoginCount":
                        res = res.OrderByDescending(p => p.LoginCount).ToList();
                        break;

                    case "QueryCount":
                        res = res.OrderByDescending(p => p.QueryCount).ToList();
                        break;

                    case "ImportCount":
                        res = res.OrderByDescending(p => p.ImportCount).ToList();
                        break;

                    case "OutTicketCount":
                        res = res.OrderByDescending(p => p.OutTicketCount).ToList();
                        break;

                    case "BackTicketCount":
                        res = res.OrderByDescending(p => p.BackTicketCount).ToList();
                        break;

                    case "AbolishTicketCount":
                        res = res.OrderByDescending(p => p.AbolishTicketCount).ToList();
                        break;

                    case "AccessCount":
                        res = res.OrderByDescending(p => p.AccessCount).ToList();
                        break;

                    case "FinancingCount":
                        res = res.OrderByDescending(p => p.FinancingCount).ToList();
                        break;

                    case "UseCount":
                        res = res.OrderByDescending(p => p.UseCount).ToList();
                        break;

                    default:
                        res = res.OrderByDescending(p => p.OutTicketCount).ToList();
                        break;
                    }
                }
                else
                {
                    switch (query.Sort)
                    {
                    case "LoginCount":
                        res = res.OrderBy(p => p.LoginCount).ToList();
                        break;

                    case "QueryCount":
                        res = res.OrderBy(p => p.QueryCount).ToList();
                        break;

                    case "ImportCount":
                        res = res.OrderBy(p => p.ImportCount).ToList();
                        break;

                    case "OutTicketCount":
                        res = res.OrderBy(p => p.OutTicketCount).ToList();
                        break;

                    case "BackTicketCount":
                        res = res.OrderBy(p => p.BackTicketCount).ToList();
                        break;

                    case "AbolishTicketCount":
                        res = res.OrderBy(p => p.AbolishTicketCount).ToList();
                        break;

                    case "AccessCount":
                        res = res.OrderBy(p => p.AccessCount).ToList();
                        break;

                    case "FinancingCount":
                        res = res.OrderBy(p => p.FinancingCount).ToList();
                        break;

                    case "UseCount":
                        res = res.OrderBy(p => p.UseCount).ToList();
                        break;

                    default:
                        res = res.OrderBy(p => p.OutTicketCount).ToList();
                        break;
                    }
                }
            }

            var totalCount = res.Count();

            res = res.Skip(count).Take(pSize).ToList();
            var dataPack = new DataPack <ResponseBehaviorStat>();

            dataPack.TotalCount = totalCount;
            dataPack.List       = res;
            return(dataPack);
        }
Esempio n. 3
0
        public FileResult Export(BehaviorStatModel query)
        {
            ExportExcelContext export = new ExportExcelContext("Excel2003");
            DataTable          dt     = new DataTable("用户行为");
            List <KeyValuePair <string, Type> > headArray = new List <KeyValuePair <string, Type> >
            {
                //  new KeyValuePair<string,Type>("查询日期",typeof(string)),
                new KeyValuePair <string, Type>("业务经理", typeof(string)),
                // new KeyValuePair<string,Type>("操作员",typeof(string)),
                new KeyValuePair <string, Type>("商户号", typeof(string)),
                new KeyValuePair <string, Type>("公司名称", typeof(string)),
                new KeyValuePair <string, Type>("商户类型", typeof(string)),
                new KeyValuePair <string, Type>("登录次数", typeof(int)),
                new KeyValuePair <string, Type>("(机票)查询次数", typeof(int)),
                new KeyValuePair <string, Type>("(机票)导入次数 ", typeof(int)),
                new KeyValuePair <string, Type>("(机票)出票量 ", typeof(int)),
                new KeyValuePair <string, Type>("(机票)退票量 ", typeof(int)),
                new KeyValuePair <string, Type>("(机票)废票量 ", typeof(int)),
                new KeyValuePair <string, Type>("(理财)访问次数 ", typeof(int)),
                new KeyValuePair <string, Type>("(理财)理财笔数 ", typeof(int)),
                new KeyValuePair <string, Type>("(信用)使用笔数 ", typeof(int)),
            };

            headArray.ForEach(p => dt.Columns.Add(p.Key, p.Value));

            var queryCon = new RequestQueryBehaviorStatQuery();

            queryCon.BusinessmanCode = query.BusinessmanCode;
            queryCon.BusinessmanName = query.BusinessmanName;
            queryCon.BusinessmanType = query.BusinessmanType;
            queryCon.StartDateTime   = Convert.ToDateTime(query.StartDateTime);
            queryCon.EndDateTime     = Convert.ToDateTime(query.EndDateTime);
            queryCon.PageIndex       = 1;
            queryCon.PageSize        = 65535;
            queryCon.Sort            = query.sort;
            queryCon.Order           = query.order;

            CommunicateManager.Invoke <IBehaviorStatService>(service =>
            {
                service.Query(queryCon).List.ForEach(m =>
                {
                    var businessType = "";
                    if (m.BusinessmanType.ToLower().Equals("buyer"))
                    {
                        businessType = "采购商";
                    }
                    else if (m.BusinessmanType.ToLower().Equals("supplier"))
                    {
                        businessType = "供应商";
                    }
                    else
                    {
                        businessType = "运营商";
                    }
                    dt.Rows.Add(
                        //  m.OpDateTime.ToString("yyyy-MM-dd"),
                        m.ContactName,
                        // m.OperatorName,
                        m.BusinessmanCode,
                        m.BusinessmanName,
                        businessType,
                        m.LoginCount,
                        m.QueryCount,
                        m.ImportCount,
                        m.OutTicketCount,
                        m.BackTicketCount,
                        m.AbolishTicketCount,
                        m.AccessCount,
                        m.FinancingCount,
                        m.UseCount
                        );
                });
            });
            return(File(export.GetMemoryStream(dt), "application/ms-excel", HttpUtility.UrlEncode(string.Format("{1}.{0}", export.TypeName, dt.TableName + query.StartDateTime + "至" + query.EndDateTime), Encoding.UTF8)));
        }