Example #1
0
 /// <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;
 }
Example #2
0
        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" });
            }
        }