public async Task <IActionResult> Edit(int id, [Bind("ID,UserID")] UserCoupons userCoupons) { if (id != userCoupons.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(userCoupons); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserCouponsExists(userCoupons.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(userCoupons)); }
private void AddUserCoupons(long userId, long couponId) { var newUserCoupon = new UserCoupons { CouponId = couponId, UserId = userId }; dbContext.UserCoupons.Add(newUserCoupon); dbContext.SaveChanges(); }
public async Task <IActionResult> Create([Bind("ID,UserID")] UserCoupons userCoupons) { if (ModelState.IsValid) { _context.Add(userCoupons); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(userCoupons)); }
public async Task <IActionResult> OnPostAsync(string id) { if (id == null) { return(NotFound()); } UserCoupons = await _context.UserCoupons.FindAsync(id); if (UserCoupons != null) { _context.UserCoupons.Remove(UserCoupons); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(string id) { if (id == null) { return(NotFound()); } UserCoupons = await _context.UserCoupons .Include(u => u.Coupon) .Include(u => u.MobileAppUser).FirstOrDefaultAsync(m => m.UserId == id); if (UserCoupons == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnGetAsync(string id) { if (id == null) { return(NotFound()); } UserCoupons = await _context.UserCoupons .Include(u => u.Coupon) .Include(u => u.MobileAppUser).FirstOrDefaultAsync(m => m.UserId == id); if (UserCoupons == null) { return(NotFound()); } ViewData["CouponId"] = new SelectList(_context.Coupons, "Id", "Id"); ViewData["UserId"] = new SelectList(_context.MobileAppUsers, "Id", "Id"); return(Page()); }
public void Update(UserCoupons item) { _databaseInstance.Update(item, TableName); }
public void Create(UserCoupons item) { item.id = _databaseInstance.Insert(item, TableName); }
public ActionResult ReceiveCoupons(int id) { int userId = 0; var cookieId = Request.Cookies[SessionKeys.USERID].Value.ToString(); int.TryParse(cookieId, out userId); var user = membershipService.GetUserById(userId) as AccountUser; if (user == null) { return(Json(new ResultMessage() { Code = -1, Msg = "用户不存在" })); } var tran = transactionHelper.BeginTransaction(); try { var conupon = couponsService.GetById(id); if (conupon == null || conupon.state != CouponsState.Normal) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已失效" })); } if (conupon.validity.HasValue) { if (conupon.validity > DateTime.Now.Date) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已失效" })); } if (conupon.quantity - conupon.leadersOfNum <= 0) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已领完" })); } } var userCoupons = new UserCoupons(); userCoupons.couponsId = conupon.id; userCoupons.receiveTime = DateTime.Now; userCoupons.state = UserCouponsState.NotUse; userCoupons.userId = userId; userCouponsService.Create(userCoupons); conupon.leadersOfNum += 1; couponsService.Update(conupon); tran.Commit(); return(Json(new ResultMessage() { Code = 0, Msg = "" })); } catch (Exception ex) { tran.Rollback(); log4NetService.Insert(ex); return(Json(new ResultMessage() { Code = -1, Msg = "领取异常,请联系管理员" })); } finally { tran.Dispose(); } }
public ActionResult CardPlaceOrder(int accountTypeId, int userCouponsId = 0) { var accountType = accountTypeService.GetById(accountTypeId); if (accountType == null) { return(Json(new ResultMessage() { Code = -1, Msg = "你要购买得卡不存在" })); } if (accountType.State != AccountTypeStates.Normal) { return(Json(new ResultMessage() { Code = -1, Msg = "此卡已下架,请选择购买其他卡" })); } int userId = 0; var cookieId = Request.Cookies[SessionKeys.USERID].Value.ToString(); int.TryParse(cookieId, out userId); var user = membershipService.GetUserById(userId) as AccountUser; if (user == null) { return(Json(new ResultMessage() { Code = -1, Msg = "用户不存在" })); } decimal price = accountType.Amount; //卡单价 string orderNo = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + userId; decimal deductible = 0; //优惠卷抵扣金额 decimal discount = 0; //折扣 string useScope = ""; //指定门店 int couponId = 0; //优惠卷id decimal amount = price; UserCoupons userCoupons = null; if (userCouponsId > 0) { userCoupons = userCouponsService.GetById(userCouponsId); if (userCoupons == null) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不存在" })); } if (userCoupons.state != UserCouponsState.NotUse) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已失效" })); } if (userCoupons.userId != userId) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不可用" })); } var coupon = couponsService.GetById(userCoupons.couponsId); if (coupon == null && coupon.state != CouponsState.Normal) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不存在" })); } if (coupon.validity.HasValue && coupon.validity > DateTime.Now.Date) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已过期" })); } if (coupon.couponsType == CouponsType.DiscountedVolume) { discount = coupon.discount; deductible = amount - (discount * amount); } else if (coupon.couponsType == CouponsType.FullVolumeReduction) { if (amount >= coupon.fullAmount) { deductible = coupon.reduceAmount; } } else if (coupon.couponsType == CouponsType.OffsetRoll) { deductible = coupon.deductibleAmount; } useScope = coupon.useScope; couponId = coupon.id; } var order = new Orders(); order.amount = price; order.orderNo = orderNo; order.deductible = deductible; order.orderState = OrderStates.awaitPay; order.payAmount = order.amount - deductible; order.subTime = DateTime.Now; order.type = OrderTypes.card; order.userId = userId; order.useScope = useScope; var orderDetial = new OrderDetial(); orderDetial.amount = price; orderDetial.cardNo = ""; orderDetial.num = 1; orderDetial.orderNo = orderNo; orderDetial.sourceId = accountType.AccountTypeId; orderDetial.subTime = DateTime.Now; var tran = transactionHelper.BeginTransaction(); try { ordersService.Create(order); orderDetialService.Create(orderDetial); if (couponId > 0) { var useCouponslog = new UseCouponslog(); useCouponslog.amount = deductible; useCouponslog.couponsId = couponId; useCouponslog.discount = discount; useCouponslog.orderNo = orderNo; useCouponslog.userId = userId; useCouponslog.useTime = DateTime.Now; useCouponslogService.Create(useCouponslog); if (userCoupons != null) { userCoupons.state = UserCouponsState.Used; userCouponsService.Update(userCoupons); } } //微信支付 JsApiPay jsApiPay = new JsApiPay(); jsApiPay.openid = user.openId; jsApiPay.total_fee = (int)(order.payAmount * 100); WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(order.orderNo); string wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数 WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam); tran.Commit(); return(Json(new ResultMessage() { Code = 0, Msg = wxJsApiParam })); //return Json(new ResultMessage() { Code = 0, Msg = "" }); } catch (Exception ex) { WxPayAPI.Log.Error(this.GetType().ToString(), ex.Message.ToString()); return(Json(new ResultMessage() { Code = -1, Msg = ex.Message.ToString() })); //Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>"); //submit.Visible = false; } finally { tran.Dispose(); } }
public ActionResult TicketPlaceOrders(string admissionTicketIds, string nums, int userCouponsId = 0) { var arrId = admissionTicketIds.Split(','); var arrNum = nums.Split(','); int userId = 0; var cookieId = Request.Cookies[SessionKeys.USERID].Value.ToString(); int.TryParse(cookieId, out userId); var user = membershipService.GetUserById(userId) as AccountUser; if (user == null) { return(Json(new ResultMessage() { Code = -1, Msg = "用户不存在" })); } if (arrId.Length != arrNum.Length) { return(Json(new ResultMessage() { Code = -1, Msg = "购买异常,请刷出后购买" })); } List <OrderDetial> OrderDetials = new List <OrderDetial>(); string orderNo = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + userId; decimal amount = 0; //总价格 for (int i = 0; i < arrId.Length; i++) { int admissionTicketId = string.IsNullOrWhiteSpace(arrId[i]) ? 0 : Int32.Parse(arrId[i]); int num = string.IsNullOrWhiteSpace(arrNum[i]) ? 0 : Int32.Parse(arrNum[i]); if (admissionTicketId <= 0 && num <= 0) { return(Json(new ResultMessage() { Code = -1, Msg = "购买异常,请刷出后购买" })); } var admissionTicket = admissionTicketService.GetById(admissionTicketId); if (admissionTicket == null) { return(Json(new ResultMessage() { Code = -1, Msg = "门票不存在" })); } if (admissionTicket.state != AdmissionTicketState.Normal) { return(Json(new ResultMessage() { Code = -1, Msg = "" + admissionTicket.name + "已下架,请选择购买其他门票" })); } decimal price = 0;//门票单价 if (DateHelper.m_IsWorkingDay()) { price = admissionTicket.amount; } else { price = admissionTicket.weekendAmount; } var orderDetial = new OrderDetial(); orderDetial.amount = price; orderDetial.cardNo = ""; orderDetial.num = num; orderDetial.orderNo = orderNo; orderDetial.sourceId = admissionTicket.id; orderDetial.subTime = DateTime.Now; OrderDetials.Add(orderDetial); amount += (price * num); } decimal deductible = 0; //优惠卷抵扣金额 decimal discount = 0; //折扣 string useScope = ""; //指定门店 int couponId = 0; //优惠卷id UserCoupons userCoupons = null; if (userCouponsId > 0) { userCoupons = userCouponsService.GetById(userCouponsId); if (userCoupons == null) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不存在" })); } if (userCoupons.state != UserCouponsState.NotUse) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已失效" })); } if (userCoupons.userId != userId) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不可用" })); } var coupon = couponsService.GetById(userCoupons.couponsId); if (coupon == null && coupon.state != CouponsState.Normal) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷不存在" })); } if (coupon.validity.HasValue && coupon.validity > DateTime.Now.Date) { return(Json(new ResultMessage() { Code = -1, Msg = "优惠卷已过期" })); } if (coupon.couponsType == CouponsType.DiscountedVolume) { discount = coupon.discount; deductible = amount - (discount * amount); } else if (coupon.couponsType == CouponsType.FullVolumeReduction) { if (amount >= coupon.fullAmount) { deductible = coupon.reduceAmount; } } else if (coupon.couponsType == CouponsType.OffsetRoll) { deductible = coupon.deductibleAmount; } useScope = coupon.useScope; couponId = coupon.id; } var order = new Orders(); order.amount = amount; order.orderNo = orderNo; order.deductible = deductible; order.orderState = OrderStates.awaitPay; order.payAmount = amount - deductible; order.subTime = DateTime.Now; order.type = OrderTypes.ticket; order.userId = userId; order.useScope = useScope; var tran = transactionHelper.BeginTransaction(); try { ordersService.Create(order); foreach (var orderDetial in OrderDetials) { orderDetialService.Create(orderDetial); } if (couponId > 0) { var useCouponslog = new UseCouponslog(); useCouponslog.amount = deductible; useCouponslog.couponsId = couponId; useCouponslog.discount = discount; useCouponslog.orderNo = orderNo; useCouponslog.userId = userId; useCouponslog.useTime = DateTime.Now; useCouponslogService.Create(useCouponslog); if (userCoupons != null) { userCoupons.state = UserCouponsState.Used; userCouponsService.Update(userCoupons); } } JsApiPay jsApiPay = new JsApiPay(); jsApiPay.openid = user.openId; jsApiPay.total_fee = (int)(order.payAmount * 100); string APPID = WxPayConfig.APPID; WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(order.orderNo); string wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数 WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam); tran.Commit(); return(Json(new ResultMessage() { Code = 0, Msg = wxJsApiParam })); //在页面上显示订单信息 //Response.Write("<span style='color:#00CD00;font-size:20px'>订单详情:</span><br/>"); //Response.Write("<span style='color:#00CD00;font-size:20px'>" + unifiedOrderResult.ToPrintStr() + "</span>"); } catch (Exception ex) { WxPayAPI.Log.Error(this.GetType().ToString(), ex.Message.ToString()); return(Json(new ResultMessage() { Code = -1, Msg = ex.Message.ToString() })); //Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>"); //submit.Visible = false; } finally { tran.Dispose(); } }