/// <summary> /// 新增或修改渠道 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //获取渠道类型列表数据 ViewState["ChannelTypeList"] = new ChannelTypeBll().GetEntities(); //修改渠道,首先获取渠道数据 int id; if (int.TryParse(Request.QueryString["id"], out id)) { ViewState["Channel"] = new ChannelBll().GetEntityById(id); } } else { //将渠道新增或修改的数据保存到数据库 var entity = new ChannelEntity() { ID = Request.Form["ID"] == null ? 0 : int.Parse(Request.Form["ID"]), Name = Request.Form["Name"], ChannelTypeId = int.Parse(Request.Form["ChannelTypeId"]) }; new ChannelBll().UpdateOrInsertEntity(entity); //回到渠道列表页面 Response.Redirect("ChannelList.aspx"); Response.End(); } }
/// <summary> /// 删除渠道 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { //获取渠道ID int id; if (int.TryParse(Request.QueryString["id"], out id)) { //删除渠道并返回删除结果 bool result = new ChannelBll().DeleteEntityById(id); Response.Write(result.ToString()); Response.End(); } }
/// <summary> /// 下载渠道二维码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { //获取渠道ID int id; if (int.TryParse(Request.QueryString["id"], out id)) { var entity = new ChannelBll().GetEntityById(id); //将数据库中Base64String格式图片转换为Image格式,返回给浏览器 string base64Image = File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/") + entity.Qrcode); byte[] arr = Convert.FromBase64String(base64Image); MemoryStream ms = new MemoryStream(arr); Response.ContentType = "image/jpeg"; ms.WriteTo(Response.OutputStream); Response.End(); } }
/// <summary> /// 保存扫描记录 /// </summary> /// <param name="openId">微信用户OpenId</param> /// <param name="sceneId">扫描的二维码的参数</param> /// <param name="scanType">扫描类型</param> public void SaveScan(string openId, int sceneId, ScanType scanType) { //微信公众平台要求微信公众号服务器必须在5秒内返回相应结果,否则会重新发送请求,一共重试三次 //为了避免微信公众号服务器重复接收到同一条扫描记录,造成数据重复,导致统计失真,这里将保存扫描记录的操作放到线程池中异步执行,尽快返回相应结果给微信服务器 ThreadPool.QueueUserWorkItem(e => { int channelId = new ChannelBll().GetChannelIdBySceneId(sceneId); if (channelId <= 0) { return; } ChannelScanEntity entity = new ChannelScanEntity() { ChannelId = channelId, ScanTime = DateTime.Now, OpenId = openId, ScanType = scanType }; new ChannelScanDll().AddEntity(entity.GetDataEntity(entity)); }); }
/// <summary> /// 渠道列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { //获取渠道列表数据 ViewState["ChannelList"] = new ChannelBll().GetEntities(); }