Example #1
0
 private void CallBackMethod(IAsyncResult ar)
 {
     try
     {
         GenerateQRDel del = (GenerateQRDel)ar.AsyncState;
         del.EndInvoke(ar);
     }
     catch (Exception)
     {
     }
 }
Example #2
0
        public ActionResult Exchange(string exchangeCode)
        {
            // 先判断传递进来的 兑换商品的编号是否为空
            if (string.IsNullOrEmpty(exchangeCode))
            {
                // 为空 就返回 Fasle
                return(Json("False", JsonRequestBehavior.AllowGet));
            }

            // 再获取当前用户的对象
            Member member = _memberBLL.GetMemberByOpenId(System.Web.HttpContext.Current.Session["member"].ToString());

            // 对象的空值判断
            if (member == null)
            {
                return(Json("False", JsonRequestBehavior.AllowGet));
            }
            ExchangeService es = _exchangeServiceBLL.GetNoDeletedExchangeServiceByCode(exchangeCode);

            if (es == null)
            {
                return(Json("False", JsonRequestBehavior.AllowGet));
            }

            if (es.Credit >= member.Credit)
            {
                return(Json("False", JsonRequestBehavior.AllowGet));
            }

            // 构造兑换服务记录
            ExchangeServiceRecord esr = new ExchangeServiceRecord();

            esr.Id                = Guid.NewGuid();
            esr.IsDeleted         = false;
            esr.IsUse             = false;
            esr.MemberId          = member.Id;
            esr.CreatedTime       = DateTime.Now;
            esr.Credit            = es.Credit;
            esr.DeletedTime       = DateTime.MinValue.AddHours(8);
            esr.ExchangeSerivceId = es.Id;

            // 兑换服务的二维码 先空出来 因为要异步生成二维码
            // 等生成之后再 补充
            esr.QRPath = "hehe";

            if (_exchangeServiceRecordBLL.Add(esr))
            {
                // 如果添加兑换服务成功  则 扣除当前积分
                ConsumeCreditDel conDel        = new ConsumeCreditDel(ConsumeCredit);
                IAsyncResult     consumeResult = conDel.BeginInvoke(member.Id, esr.Credit, CreditCallBackMethod, null);

                // 如果兑换服务记录表更新成功 则 异步生成二维码
                GenerateQRDel del    = new GenerateQRDel(GenerateQR);
                IAsyncResult  result = del.BeginInvoke(esr.Id, member.Id, CallBackMethod, null);
            }
            else
            {
                return(Json("False", JsonRequestBehavior.AllowGet));
            }

            return(Json("True", JsonRequestBehavior.AllowGet));
        }