/// <summary> /// 扣除播放数量 /// </summary> /// <param name="member_gid">会员gid</param> /// <param name="product_gid">产品gid</param> /// <param name="type">[1=vip 2=数量 3=次数]</param> /// <param name="login_identifier">登陆标识</param> /// <param>修改备注</param> /// 2014-5-20 林建生 public static object videoNumber(Guid member_gid, Guid product_gid, int type, string login_identifier) { try { using (EFDB db = new EFDB()) { var member = db.member.Where(l => l.gid == member_gid).FirstOrDefault(); if (member.login_identifier == login_identifier) { if (type == 2) { if (db.video_record.Where(l => l.member_gid == member_gid && l.product_gid == product_gid).Update(l => new video_record { number = l.number - 1, video_time = DateTime.Now }) > 0) { return(new AjaxResult("ok")); } else { LogManager.WriteLog("扣除观看次数失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } } else if (type == 3) { if (db.member.Where(l => l.gid == member_gid).Update(l => new member { number = l.number - 1 }) > 0) { var vr = new video_record(); vr.gid = Guid.NewGuid(); vr.add_time = DateTime.Now; vr.product_gid = product_gid; vr.member_gid = member_gid; vr.video_time = DateTime.Now; vr.number = (int)db.product.Where(l => l.gid == product_gid).FirstOrDefault().extend4 - 1; db.video_record.Add(vr); if (db.SaveChanges() != 1) { LogManager.WriteLog("增加观看记录失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } return(new AjaxResult("ok")); } } else { return(new AjaxResult(300, "未知数据=" + type.ToString())); } return(new AjaxResult(300, "扣除操作失败")); } else { return(new AjaxResult(300, "请重新登录!")); } } } catch (Exception err) { return(new AjaxResult(new { Message = err.Message, Source = err.Source, StackTrace = err.StackTrace })); } }
/// <summary> /// 支付成功更新订单 /// </summary> /// <param name="order_no">网站订单号</param> /// <param name="trade_no">网银订单号</param> /// <param name="pay_type">支付类型</param> /// <param name="pay_amount">在线支付金额</param> /// <param name="remarks">返回的支付备注信息</param> /// <returns>返回调用结果</returns> public static bool payOrder(string order_no) { using (EFDB db = new EFDB()) { bool isok = false; string pay = WXPay.Get_Order(order_no); if (!string.IsNullOrEmpty(pay)) { //获取返回的支付参数 JObject payJson = JsonConvert.DeserializeObject(pay) as JObject; string trade_no = payJson["trade_no"].ToString(); string attach = payJson["attach"].ToString(); int pay_type = Int32.Parse(payJson["pay_type"].ToString()); decimal pay_amount = decimal.Parse(payJson["pay_amount"].ToString()); //解析备注信息 JObject paramJson = JsonConvert.DeserializeObject(attach) as JObject; int type = Int32.Parse(paramJson["type"].ToString()); string LogMsg = "订单号:" + order_no + ",网银订单号:" + trade_no + ",支付类型:" + pay_type.ToString() + ",网上支付金额:" + pay_amount.ToString() + ",备注:" + attach; //支付类型 string payname = ((PayType)Enum.Parse(typeof(LJShengHelper.PayType), pay_type.ToString())).ToString(); var b = db.lorder.Where(l => l.order_no == order_no).FirstOrDefault(); if (b != null && b.pay_status == 2) { if (b.price == pay_amount) { b.pay_status = 1; } else { b.pay_status = 5; } b.trade_no = trade_no; b.pay_time = DateTime.Now; b.pay_type = pay_type; b.pay_price = pay_amount; b.express_status = 1; //b.remarks = remarks; if (db.SaveChanges() == 1) { //type[1 = 真柏 2 = 视频 3 = 课程] if (type == 2) { Guid product_gid = (Guid)b.product_gid; Guid member_gid = b.member_gid; var p = db.product.Where(l => l.gid == product_gid).FirstOrDefault(); if (p != null) { //套餐逻辑 if (p.sort >= 10000) { int number = (int)p.extend4; if (db.member.Where(l => l.gid == member_gid).Update(l => new member { number = l.number + number }) == 1) { isok = true; } else { LogManager.WriteLog("对账增加会员次数失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } } else { //单独购买视频 var vr = new video_record(); vr.gid = Guid.NewGuid(); vr.add_time = DateTime.Now; vr.product_gid = product_gid; vr.member_gid = member_gid; vr.video_time = DateTime.Now; vr.number = (int)db.product.Where(l => l.gid == product_gid).FirstOrDefault().extend4; db.video_record.Add(vr); if (db.SaveChanges() == 1) { isok = true; } else { LogManager.WriteLog("对账增加观看记录失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } } } } else { isok = true; //扣除库存 Guid ordergid = db.lorder.Where(l => l.order_no == order_no).FirstOrDefault().gid; var od = db.order_details.Where(l => l.order_gid == ordergid).ToList(); foreach (var dr in od) { db.product.Where(l => l.gid == dr.product_gid).Update(l => new product { extend4 = l.extend4 - dr.number }); } } } else { LogManager.WriteLog("支付成功更新订单失败", LogMsg); } } } else { LogManager.WriteLog("查询订单失败", order_no); } return(isok); } }
/// <summary> /// 扣除播放数量 /// </summary> /// <param>修改备注</param> /// 2014-5-20 林建生 public object videoNumber(HttpContext context) { try { //会员的gid Guid member_gid = Guid.Parse(context.Request.Form["member_gid"]); //会员的登录标识 string login_identifier = context.Request.Form["login_identifier"]; //当前产品的gid Guid product_gid = Guid.Parse(context.Request.Form["searchKeyword"]); //当前扣除的类型 type[1=vip 2=个数 3=次数] int type = int.Parse(context.Request.Form["type"]); using (EFDB db = new EFDB()) { var member = db.member.Where(l => l.gid == member_gid).FirstOrDefault(); if (member.login_identifier == login_identifier) { if (type == 3) { var b = db.video_record.Where(l => l.member_gid == member_gid && l.product_gid == product_gid).FirstOrDefault(); if (b != null) { b.number = b.number - 1; b.video_time = DateTime.Now; if (db.SaveChanges() == 1) { if (b.number <= 0) { db.video_record.Where(l => l.member_gid == member_gid && l.product_gid == product_gid).Delete(); } return(new AjaxResult("ok")); } else { LogManager.WriteLog("扣除观看次数失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } } else { LogManager.WriteLog("用户没有观看记录", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } } else if (type == 2) { if (db.member.Where(l => l.gid == member_gid).Update(l => new member { number = l.number - 1 }) > 0) { var vr = new video_record(); vr.gid = Guid.NewGuid(); vr.add_time = DateTime.Now; vr.product_gid = product_gid; vr.member_gid = member_gid; vr.video_time = DateTime.Now; vr.number = (int)db.product.Where(l => l.gid == product_gid).FirstOrDefault().extend4 - 1; db.video_record.Add(vr); if (db.SaveChanges() != 1) { LogManager.WriteLog("扣除个数成功增加记录失败", "product_gid=" + product_gid.ToString() + ",member_gid=" + member_gid.ToString()); } return(new AjaxResult("ok")); } } else { return(new AjaxResult(300, "未知数据=" + type.ToString())); } return(new AjaxResult(300, "扣除操作失败")); } else { return(new AjaxResult(300, "请重新登录!")); } } } catch (Exception err) { return(new AjaxResult(300, new { Message = err.Message, Source = err.Source, StackTrace = err.StackTrace })); } }