public ActionResult ExchangeCoupon(string couponID) { Coupon c = db.Coupons.Find(couponID); Player p = db.Players.Find(Session["PlayerID"]); //排除不能兌換、已經兌換過的優惠券 if (c.IsExchangable && !p.PlayerCouponDetails.Any(m => m.Coupon.Equals(c))) { //從玩家扣除使用的點數 p.Points -= c.PointsRequired; //產生點數使用明細 UsefulTools.PointRecord(p.ID, "兌換優惠券", -c.PointsRequired); //產生玩家優惠券明細 PlayerCouponDetail couponDetail = new PlayerCouponDetail { CouponID = c.ID, PlayerID = p.ID, ExchangedDate = DateTime.Now, IsUsed = false }; db.PlayerCouponDetails.Add(couponDetail); db.SaveChanges(); return(RedirectToAction("ShopDetailForPlayer", "Shop", new { id = c.ShopID })); //應該要前往店家詳細頁(shopdetailforplayer),同時更動nav的active } //優惠券已無法兌換則顯示錯誤訊息 return(HttpNotFound()); }
public void ShowPlayerCouponDetail(PlayerCoupon _selectPlayerCoupon) { selectPlayerCoupon = _selectPlayerCoupon; if (playerCouponDetail == null) { GameObject item = AndaDataManager.Instance.GetItemInfoPrefab("PlayerCouponDetail"); item = Object.Instantiate(item); playerCouponDetail = item.GetComponent <PlayerCouponDetail>(); item.transform.parent = AndaUIManager.Instance.uIController.transform; item.transform.localPosition = Vector3.zero; item.transform.localScale = Vector3.one; } playerCouponDetail.Open(selectPlayerCoupon); }
//新增優惠券測試資料 public string CreateCouponTestData(string shopID, int n) { var players = db.Players.ToList(); Random r = new Random(); for (int i = 0; i < n; i++) { int limitedAmount = r.Next(10, 30); int exchangedAmount = limitedAmount * r.Next(1, 10) / 10; int usedAmount = exchangedAmount * r.Next(3, 10) / 10; //產生一張優惠券 Coupon coupon = new Coupon { ID = UsefulTools.GetNextID(db.Coupons, 1), BeginDate = DateTime.Parse("2010-10-10"), ExpireDate = DateTime.Parse("2010-10-11"), ShopID = shopID, Content = "測試用資料", IsAvailable = false, PointsRequired = 1, LimitedAmount = limitedAmount }; db.Coupons.Add(coupon); db.SaveChanges(); //產生隨機排序的玩家列表 players = players.OrderBy(p => Guid.NewGuid()).ToList(); //依序兌換及使用優惠券 for (int j = 0; j < exchangedAmount; j++) { //產生優惠券兌換明細 var p = players[j]; var detail = new PlayerCouponDetail { CouponID = coupon.ID, ExchangedDate = DateTime.Parse("2010-10-11"), PlayerID = p.ID, //只使用指定數量 IsUsed = j <= usedAmount }; db.PlayerCouponDetails.Add(detail); } db.SaveChanges(); } return("Success"); }