public HttpResponseBase GetProductClickList()
 {
     string json = string.Empty;
     try
     {
         ProductClickQuery query = new ProductClickQuery();
         pcMgr = new ProductClickMgr(mySqlConnectionString);
         query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");
         query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");
         if (!string.IsNullOrEmpty(Request.Params["product_status"]))
         {
             query.product_status = uint.Parse(Request.Params["product_status"]);
         }
         //支持空格,中英文逗號隔開
         if (!string.IsNullOrEmpty(Request.Params["product_id"]))
         {
             //query.pids = Request.Params["product_id"].Replace(" ", ",");
             query.pids=Regex.Replace(Request.Params["product_id"].Trim(), "(\\s+)|(,)|(\\,)", ",");
             //query.pids = Request.Params["product_id"].Replace("|", ",");
         }
         if (!string.IsNullOrEmpty(Request.Params["brand_id"]))
         {
             query.brand_id = uint.Parse(Request.Params["brand_id"]);
         }
         if (!string.IsNullOrEmpty(Request.Params["prod_classify"]))
         {
             query.prod_classify = uint.Parse(Request.Params["prod_classify"]);
         }
         //if (!string.IsNullOrEmpty(Request.Params["startdate"]))
         //{
         //    query.sclick_year = int.Parse(Request.Params["startdate"].Substring(0, 4));
         //    query.sclick_month = int.Parse(Request.Params["startdate"].Substring(5, 2));
         //    query.sclick_day = int.Parse(Request.Params["startdate"].Substring(8, 2));
         //}
         //if (!string.IsNullOrEmpty(Request.Params["enddate"]))
         //{
         //    query.eclick_year = int.Parse(Request.Params["enddate"].Substring(0, 4));
         //    query.eclick_month = int.Parse(Request.Params["enddate"].Substring(5, 2));
         //    query.eclick_day = int.Parse(Request.Params["enddate"].Substring(8, 2));
         //}
         switch (Request.Params["type"])
         {
             case "b":
                 break;
             case "y":
                 query.click_year = 1;
                 break;
             case "m":
                 query.click_month = 1;
                 break;
             case "d":
                 query.click_day = 1;
                 break;
         }
         if (!string.IsNullOrEmpty(Request.Params["startdate"]))
         {
             query.sclick_id = uint.Parse(Request.Params["startdate"].Substring(0, 10).Replace("-", "") + "00");
         }
         if (!string.IsNullOrEmpty(Request.Params["enddate"]))
         {
             query.eclick_id = uint.Parse(Request.Params["enddate"].Substring(0, 10).Replace("-", "") + "23");
         }
         int totalCount = 0;
         DataTable dt = pcMgr.GetProductClickList(query, out totalCount);
         IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
         //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
         timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
         //listUser是准备转换的对象
         json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(dt, Formatting.Indented, timeConverter) + "}";//返回json數據
     }
     catch (Exception ex)
     {
         Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
         logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
         logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
         log.Error(logMessage);
         json = "{success:false,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
 public void OutProductClickExcel()
 {
     string json = string.Empty;
     try
     {
         ProductClickQuery query = new ProductClickQuery();
         pcMgr = new ProductClickMgr(mySqlConnectionString);
         query.IsPage = false;
         if (Request.Params["product_status"] != "null" && !string.IsNullOrEmpty(Request.Params["product_status"]))
         {
             query.product_status = uint.Parse(Request.Params["product_status"]);
         }
         if (!string.IsNullOrEmpty(Request.Params["product_id"]))
         {
             //支持空格,中英文逗號隔開
             if (!string.IsNullOrEmpty(Request.Params["product_id"]))
             {
                 query.pids = Regex.Replace(Request.Params["product_id"].Trim(), "(\\s+)|(,)|(\\,)", ",");
             }
         }
         if (Request.Params["brand_id"] != "null" && !string.IsNullOrEmpty(Request.Params["brand_id"]))
         {
             query.brand_id = uint.Parse(Request.Params["brand_id"]);
         }
         if (Request.Params["prod_classify"] != "null" && !string.IsNullOrEmpty(Request.Params["prod_classify"]))
         {
             query.prod_classify = uint.Parse(Request.Params["prod_classify"]);
         }
         //if (!string.IsNullOrEmpty(Request.Params["startdate"]))
         //{
         //    query.sclick_year = int.Parse(Request.Params["startdate"].Substring(0, 4));
         //    query.sclick_month = int.Parse(Request.Params["startdate"].Substring(5, 2));
         //    query.sclick_day = int.Parse(Request.Params["startdate"].Substring(8, 2));
         //}
         //if (!string.IsNullOrEmpty(Request.Params["enddate"]))
         //{
         //    query.eclick_year = int.Parse(Request.Params["enddate"].Substring(0, 4));
         //    query.eclick_month = int.Parse(Request.Params["enddate"].Substring(5, 2));
         //    query.eclick_day = int.Parse(Request.Params["enddate"].Substring(8, 2));
         //}
         switch (Request.Params["type"])
         {
             case "b":
                 break;
             case "y":
                 query.click_year = 1;
                 break;
             case "m":
                 query.click_month = 1;
                 break;
             case "d":
                 query.click_day = 1;
                 break;
         }
         if (!string.IsNullOrEmpty(Request.Params["startdate"]))
         {
             query.sclick_id = uint.Parse(Request.Params["startdate"].Substring(0, 10).Replace("-", "") + "00");
         }
         if (!string.IsNullOrEmpty(Request.Params["enddate"]))
         {
             query.eclick_id = uint.Parse(Request.Params["enddate"].Substring(0, 10).Replace("-", "") + "23");
         }
         int totalCount = 0;
         DataTable dt = pcMgr.GetProductClickList(query, out totalCount);
         dt.Columns["product_id"].ColumnName = "商品編號";
         dt.Columns["product_name"].ColumnName = "商品名稱";
         dt.Columns["brand_name"].ColumnName = "品牌名稱";
         dt.Columns["prod_classify"].ColumnName = "商品館別";
         dt.Columns["click_year"].ColumnName = "年";
         dt.Columns["click_month"].ColumnName = "月";
         dt.Columns["click_day"].ColumnName = "日";
         dt.Columns["click_total"].ColumnName = "點擊次數"; 
         switch (Request.Params["type"])
         {
             case "b":
                 break;
             case "y":
                 dt.Columns.Remove("月");
                 dt.Columns.Remove("日");
                 break;
             case "m":
                 dt.Columns.Remove("年");
                 dt.Columns.Remove("日");
                 break;
             case "d":
                 dt.Columns.Remove("年");
                 dt.Columns.Remove("月");
                 break;
         }               
         //dt.DefaultView.ToTable(false, new string[] { "product_id", "product_name", "brand_name_simple", "prod_classify" });              
         string fileName = "商品點擊次數統計_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
         MemoryStream ms = ExcelHelperXhf.ExportDT(dt, "");
         Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
         Response.BinaryWrite(ms.ToArray());
     }
     catch (Exception ex)
     {
         Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
         logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
         logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
         log.Error(logMessage);
     }
 }