private void CreditCallBackMethod(IAsyncResult ar) { try { ConsumeCreditDel del = (ConsumeCreditDel)ar.AsyncState; del.EndInvoke(ar); } catch (Exception) { } }
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)); }