/// <summary> /// 创建新的 ExchangLogs 对象。 /// </summary> /// <param name="eL_ID">EL_ID 属性的初始值。</param> public static ExchangLogs CreateExchangLogs(global::System.Int32 eL_ID) { ExchangLogs exchangLogs = new ExchangLogs(); exchangLogs.EL_ID = eL_ID; return exchangLogs; }
public ActionResult ExchangeInfo() { string row = Request.Form["rows"]; Users user = Session["user"] as Users; JavaScriptSerializer serializer = new JavaScriptSerializer(); List<ExchangLogs> logList = serializer.Deserialize<List<ExchangLogs>>(row); List<ExchangGifts> giftList = serializer.Deserialize<List<ExchangGifts>>(row); try { ExchangLogs el = new ExchangLogs(); MemCardsBLL mcBll = new MemCardsBLL(); ExchangLogsBLL elBll = new ExchangLogsBLL(); ExchangGiftsBLL exBll = new ExchangGiftsBLL(); //事务处理,优点:确保数据统一完整;缺点:锁表 using (TransactionScope ts = new TransactionScope()) { string idorm = Request.Form["idorm"]; MemCards mc = mcBll.SelectWhere(s => s.MC_CardID == idorm || s.MC_Mobile == idorm).FirstOrDefault(); double percent = (double)mc.CardLevels.CL_Percent; double sum = 0; int total = (int)mc.MC_Point; for (int i = 0; i < logList.Count; i++) { int point = Convert.ToInt32(giftList[i].EG_Point); int number = Convert.ToInt32(logList[i].EL_Number); //添加兑换记录表 el.S_ID = user.S_ID; el.U_ID = user.U_ID; el.MC_ID = mc.MC_ID; el.MC_CardID = idorm; el.MC_Name = mc.MC_Name; el.EG_ID = giftList[i].EG_ID; el.EG_GiftCode = logList[i].EG_GiftCode; el.EG_GiftName = logList[i].EG_GiftName; el.EL_Number = number; el.EL_Point = point * number; el.EL_CreateTime = DateTime.Now; elBll.Add(el); sum += (double)point * number * percent; //更新礼品表 int eId = Convert.ToInt32(logList[i].EG_ID); ExchangGifts eGift = exBll.SelectWhere(m => m.EG_ID == eId).FirstOrDefault(); eGift.EG_ExchangNum = number + eGift.EG_ExchangNum; } if (total >= Math.Ceiling(sum)) { //更新会员表 int subpoint = (int)(mc.MC_Point - sum); mc.MC_Point = subpoint; //保存 mcBll.SaveChanges(); elBll.SaveChanges(); exBll.SaveChanges(); ts.Complete(); return Json(new { result = "ok", data = subpoint }); } return Json(new { result = "no", data = "可兑换积分不足" + Math.Ceiling(sum) + "!" }); } } catch { return Json(new { result = "error" }); } }