public ActionResult Join() { ActionResult result = null; var model = new JoinActivityModel(); var userManager = new UserManager(); var orderManager = new OrderManager(); var crmMemberModel = new CrmMemberModel(); var uid = userManager.GetUid(Constants.CompanyId, Request.Cookies["FromUserName"].Value); ViewBag.Uid = uid; PrepayRecord prepayRecord = crmMemberModel.HasJoinedOnlineVipGroup(uid); if (prepayRecord != null) { ViewBag.VerifyCode = prepayRecord.SId; result = View("Pass"); } else { result = View(model); } return(result); }
public bool UpdatePrepayRecord(PrepayRecord prepayRecord) { bool result = false; try { DbCommand cmd = null; string sql = @" UPDATE [dbo].[PrepayRecord] SET [Uid] = @Uid ,[PrepayMoney] = @PrepayMoney ,[PresentMoney] = @PresentMoney ,[AddMoney] = @AddMoney ,[PrepayDate] = @PrepayDate ,[PromotionId] = @PromotionId ,[PayModel] = @PayModel ,[UserId] = @UserId ,[SId] = @SId ,[BillPayId] = @BillPayId ,[RstId] = @RstId ,[ScoreVip] = @ScoreVip ,[PayByScore] = @PayByScore ,[RState] = @RState ,[AsureDate] = @AsureDate ,[RecMoney] = @RecMoney ,[DiscountlMoeny] = @DiscountlMoeny WHERE RecordId = @RecordId "; cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "Uid", DbType.String, prepayRecord.Uid); db.AddInParameter(cmd, "PrepayMoney", DbType.Decimal, prepayRecord.PrepayMoney); db.AddInParameter(cmd, "PresentMoney", DbType.Decimal, prepayRecord.PresentMoney); db.AddInParameter(cmd, "AddMoney", DbType.Decimal, prepayRecord.AddMoney); db.AddInParameter(cmd, "PrepayDate", DbType.DateTime, prepayRecord.PrepayDate); db.AddInParameter(cmd, "PromotionId", DbType.Int32, prepayRecord.PromotionId); db.AddInParameter(cmd, "PayModel", DbType.String, prepayRecord.PayModel); db.AddInParameter(cmd, "UserId", DbType.String, prepayRecord.UserId); db.AddInParameter(cmd, "SId", DbType.String, prepayRecord.SId); db.AddInParameter(cmd, "BillPayId", DbType.Guid, prepayRecord.BillPayId); db.AddInParameter(cmd, "RstId", DbType.Guid, prepayRecord.RstId); db.AddInParameter(cmd, "ScoreVip", DbType.Int32, prepayRecord.ScoreVip); db.AddInParameter(cmd, "PayByScore", DbType.Int32, prepayRecord.PayByScore); db.AddInParameter(cmd, "RState", DbType.String, prepayRecord.RState); db.AddInParameter(cmd, "AsureDate", DbType.DateTime, prepayRecord.AsureDate); db.AddInParameter(cmd, "RecMoney", DbType.Decimal, prepayRecord.RecMoney); db.AddInParameter(cmd, "DiscountlMoeny", DbType.Decimal, prepayRecord.DiscountlMoeny); db.AddInParameter(cmd, "RecordId", DbType.Int32, prepayRecord.RecordId); result = ExecSql(cmd) > 0; } catch (Exception ex) { Logger.Log(ex); } return(result); }
public PrepayRecord GetUserLastUnPaidComsumingPrepayRecordWithin5Minutes(string sourceAccountId) { PrepayRecord prepayRecord = null; try { string sql = @"select top 1 * from PrepayRecord pr left join CrmMember c on c.Uid = pr.Uid where c.SourceAccountId = @SourceAccountId and pr.PrepayDate > dateadd (MINUTE,-5,GETDATE()) and pr.AddMoney < 0 and pr.RState = '00' order by RecordId desc"; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "SourceAccountId", DbType.String, sourceAccountId); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { prepayRecord = new PrepayRecord() { AddMoney = reader.TryGetValue <Decimal?>("AddMoney"), AsureDate = reader.TryGetValue <DateTime?>("AsureDate"), BillPayId = reader.TryGetValue <Guid?>("BillPayId"), DiscountlMoeny = reader.TryGetValue <Decimal?>("DiscountlMoeny"), PayByScore = reader.TryGetValue <Int32?>("PayByScore"), PayModel = reader.TryGetValue <String>("PayModel"), PrepayDate = reader.TryGetValue <DateTime?>("PrepayDate"), PrepayMoney = reader.TryGetValue <Decimal?>("PrepayMoney"), PresentMoney = reader.TryGetValue <Decimal?>("PresentMoney"), PromotionId = reader.TryGetValue <Int32?>("PromotionId"), RecMoney = reader.TryGetValue <Decimal?>("RecMoney"), RecordId = reader.TryGetValue <Int32>("RecordId"), RState = reader.TryGetValue <String>("RState"), RstId = reader.TryGetValue <Guid?>("RstId"), ScoreVip = reader.TryGetValue <Int32?>("ScoreVip"), SId = reader.TryGetValue <String>("SId"), Uid = reader.TryGetValue <String>("Uid"), UserId = reader.TryGetValue <String>("UserId") }; } } } catch (Exception ex) { Logger.Log(ex); return(null); } return(prepayRecord); }
public PrepayRecord HasJoinedOnlineVipGroup(string uid) { PrepayRecord prepayRecord = null; try { string sql = @"select top 1 * from PrepayRecord where Uid=@Uid and UserId='JoinVipGroup';"; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "Uid", DbType.String, uid); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { prepayRecord = new PrepayRecord() { AddMoney = reader.TryGetValue <Decimal?>("AddMoney"), AsureDate = reader.TryGetValue <DateTime?>("AsureDate"), BillPayId = reader.TryGetValue <Guid?>("BillPayId"), DiscountlMoeny = reader.TryGetValue <Decimal?>("DiscountlMoeny"), PayByScore = reader.TryGetValue <Int32?>("PayByScore"), PayModel = reader.TryGetValue <String>("PayModel"), PrepayDate = reader.TryGetValue <DateTime?>("PrepayDate"), PrepayMoney = reader.TryGetValue <Decimal?>("PrepayMoney"), PresentMoney = reader.TryGetValue <Decimal?>("PresentMoney"), PromotionId = reader.TryGetValue <Int32?>("PromotionId"), RecMoney = reader.TryGetValue <Decimal?>("RecMoney"), RecordId = reader.TryGetValue <Int32>("RecordId"), RState = reader.TryGetValue <String>("RState"), RstId = reader.TryGetValue <Guid?>("RstId"), ScoreVip = reader.TryGetValue <Int32?>("ScoreVip"), SId = reader.TryGetValue <String>("SId"), Uid = reader.TryGetValue <String>("Uid"), UserId = reader.TryGetValue <String>("UserId") }; break; } } } catch (Exception ex) { Logger.Log(ex); } return(prepayRecord); }
public PrepayRecord GetPrepayRecordByOrderId(string orderId) { PrepayRecord prepayRecord = null; try { string sql = @"select top 1 * from PrepayRecord where SId=@orderId;"; DbCommand cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "orderId", DbType.String, orderId.ToString()); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { prepayRecord = new PrepayRecord() { AddMoney = reader.TryGetValue <Decimal?>("AddMoney"), AsureDate = reader.TryGetValue <DateTime?>("AsureDate"), BillPayId = reader.TryGetValue <Guid?>("BillPayId"), DiscountlMoeny = reader.TryGetValue <Decimal?>("DiscountlMoeny"), PayByScore = reader.TryGetValue <Int32?>("PayByScore"), PayModel = reader.TryGetValue <String>("PayModel"), PrepayDate = reader.TryGetValue <DateTime?>("PrepayDate"), PrepayMoney = reader.TryGetValue <Decimal?>("PrepayMoney"), PresentMoney = reader.TryGetValue <Decimal?>("PresentMoney"), PromotionId = reader.TryGetValue <Int32?>("PromotionId"), RecMoney = reader.TryGetValue <Decimal?>("RecMoney"), RecordId = reader.TryGetValue <Int32>("RecordId"), RState = reader.TryGetValue <String>("RState"), RstId = reader.TryGetValue <Guid?>("RstId"), ScoreVip = reader.TryGetValue <Int32?>("ScoreVip"), SId = reader.TryGetValue <String>("SId"), Uid = reader.TryGetValue <String>("Uid"), UserId = reader.TryGetValue <String>("UserId") }; } } } catch { throw; } return(prepayRecord); }
public ActionResult CancelOrder(string uid, string orderId, bool isEdit) { ActionResult result = Content("FAILED"); try { bool success = true; var orderManager = new OrderManager(); var order = orderManager.GetOrderSummary(Guid.Parse(orderId)); if (order != null) { OrderModel orderModel = new OrderModel(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { PrepayRecordModel prepayRecordModel = new PrepayRecordModel(); CrmMemberModel crmMemberModel = new CrmMemberModel(); if (isEdit) { if (order.Status == OrderStatus.New) { success = orderModel.UpdateOrderStatus(Guid.Parse(orderId), OrderStatus.Cancelled); var prepayRecord = prepayRecordModel.GetPrepayRecordByOrderId(orderId); if (prepayRecord != null) { //取消订单,支付失败 prepayRecord.AsureDate = DateTime.Now; prepayRecord.RState = "99"; success = success && prepayRecordModel.UpdatePrepayRecord(prepayRecord); } } else { success = false; } } else { if (OrderStatus.Paid == order.Status) { PrepayRecord prepayRecord = null; PrepayRecord newPrepayRecord = null; PrepayAccount prepayAccount = null; prepayAccount = crmMemberModel.GetPrepayAccount(uid); prepayRecord = prepayRecordModel.GetPrepayRecordByOrderId(orderId); //已退款 prepayRecord.RState = "02"; prepayRecord.AsureDate = DateTime.Now; newPrepayRecord = new PrepayRecord(); newPrepayRecord.AddMoney = -prepayRecord.AddMoney; newPrepayRecord.AsureDate = DateTime.Now; newPrepayRecord.BillPayId = Guid.NewGuid(); newPrepayRecord.DiscountlMoeny = 0; newPrepayRecord.PayByScore = 0; newPrepayRecord.PayModel = "02"; newPrepayRecord.PrepayDate = DateTime.Now; newPrepayRecord.PrepayMoney = -0; newPrepayRecord.PresentMoney = 0; newPrepayRecord.PromotionId = 0; newPrepayRecord.RecMoney = 0; newPrepayRecord.RecordId = -1; newPrepayRecord.RState = ""; newPrepayRecord.RstId = order.RestaurantId; newPrepayRecord.ScoreVip = 0; newPrepayRecord.SId = ""; newPrepayRecord.Uid = uid; newPrepayRecord.UserId = "System"; prepayAccount.AccountMoney += newPrepayRecord.AddMoney.Value; newPrepayRecord.PrepayDate = DateTime.Now; newPrepayRecord.AsureDate = DateTime.Now; success = orderModel.UpdateOrderStatus(Guid.Parse(orderId), OrderStatus.Refunded); success = success && prepayRecordModel.AddPrepayRecord(newPrepayRecord); success = success && crmMemberModel.UpdatePrepayAccount(prepayAccount); success = success && prepayRecordModel.UpdatePrepayRecord(prepayRecord); } else { success = false; } } if (success) { result = Content("SUCCESS"); scope.Complete(); } else { result = Content("FAILED"); scope.Dispose(); } } } else { result = Content("FAILED"); } } catch (Exception ex) { Logger.Log(ex); } return(result); }
public ActionResult Join(JoinActivityModel model) { ActionResult result = null; try { var verifyCodes = new string[] { "M2J6", "N4W2", "YW45", "32KU", "L624", "8B8C", "92M2", "9P62", "C9X6", "527H", "5C32", "LP52", "5W2Q", "HK66", "67AM", "E6R3" }; CrmMemberModel crmMemberModel = new CrmMemberModel(); string uid = crmMemberModel.getCrmMemberListInfoData(Request.Cookies["FromUserName"].Value).First().Uid; PrepayRecord prepayRecord = crmMemberModel.HasJoinedOnlineVipGroup(uid); if (prepayRecord == null) { if (ModelState.IsValid) { var pass = verifyCodes.FirstOrDefault(v => v.Equals(model.VerifyCode, StringComparison.OrdinalIgnoreCase)); if (pass != null) { #region 在这里面去给用户加钱 if (crmMemberModel.JoinOnlineVipGroup(uid, pass)) { //验证功过并且钱加好了之后跳转到这个页面,让用户分享 ViewBag.VerifyCode = pass; result = View("Pass"); } #endregion } else//验证失败 { var famous = FamousManList[random.Next(FamousManList.Count)]; result = View("Failed", famous); } } else { var famous = FamousManList[random.Next(FamousManList.Count)]; result = View("Failed", famous); } } else { ViewBag.VerifyCode = prepayRecord.SId; var famous = FamousManList[random.Next(FamousManList.Count)]; result = View("Failed", famous); } } catch (Exception ex) { Logger.Log(ex); result = Content("页面加载出错"); } return(result); }
public bool JoinOnlineVipGroup(string uid, string verifyCode) { bool result = false; try { PrepayRecordModel prepayRecordModel = new PrepayRecordModel(); CrmMemberModel crmMemberModel = new CrmMemberModel(); PrepayRecord prepayRecord = null; PrepayAccount prepayAccount = null; prepayRecord = new PrepayRecord(); prepayRecord.AddMoney = 30m; prepayRecord.AsureDate = DateTime.Now; prepayRecord.BillPayId = Guid.Empty; prepayRecord.DiscountlMoeny = 0; prepayRecord.PayByScore = 0; prepayRecord.PayModel = "00"; prepayRecord.PrepayDate = DateTime.Now; prepayRecord.PrepayMoney = 0; prepayRecord.PresentMoney = 30m; prepayRecord.PromotionId = 0; prepayRecord.RecMoney = 0; prepayRecord.RecordId = -1; prepayRecord.RState = "01"; prepayRecord.RstId = Guid.Empty; prepayRecord.ScoreVip = 0; prepayRecord.SId = "邀请码:" + verifyCode; prepayRecord.Uid = uid; prepayRecord.UserId = "JoinVipGroup"; prepayAccount = crmMemberModel.GetPrepayAccount(uid); if (prepayAccount != null) { prepayAccount.PresentMoney += 30m; prepayAccount.TotalPresent += 30m; prepayAccount.TotalMoney += 30m; } using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { if (crmMemberModel.UpdatePrepayAccount(prepayAccount) && prepayRecordModel.AddPrepayRecord(prepayRecord)) { result = true; scope.Complete(); } else { scope.Dispose(); } } } catch (Exception ex) { Logger.Log(ex); } return(result); }