Exemplo n.º 1
0
        /// <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 }));
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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 }));
            }
        }