Пример #1
0
        /// <summary>
        /// 积分支付
        /// </summary>
        /// <param name="out_trade_no">外部订单号,商户网站订单系统中唯一的订单号</param>
        /// <param name="subject">订单名称</param>
        /// <param name="total_amout">会员帐号</param>
        /// <param name="OrderGid">订单Gid</param>
        /// <returns>返回调用结果</returns>
        /// <para name="result">200 是成功其他失败</para>
        /// <para name="data">结果提示</para>
        /// <remarks>
        /// 2016-06-30 林建生
        /// </remarks>
        public ActionResult MPay(string out_trade_no, string subject, string total_amout, Guid OrderGid)
        {
            Guid MemberGid = LCookie.GetMemberGid();

            using (EFDB db = new EFDB())
            {
                var     b     = db.Member.Where(l => l.Gid == MemberGid).FirstOrDefault();
                decimal Price = decimal.Parse(total_amout);
                if (b.Integral - Price >= 0)
                {
                    if (Helper.MoneyRecordAdd(OrderGid, MemberGid, 0, -Price, 1) != null)
                    {
                        if (db.Order.Where(l => l.OrderNo == out_trade_no).Update(l => new Order {
                            PayStatus = 1, PayTime = DateTime.Now
                        }) == 1)
                        {
                            return(new RedirectResult("/Pay/PayOK?OrderNo=" + out_trade_no));
                        }
                        else
                        {
                            LogManager.WriteLog("积分支付成功订单更新失败", out_trade_no);
                        }
                    }
                }
                return(Helper.Redirect("失败", "history.go(-1);", "积分支付异常"));
            }
        }
Пример #2
0
 /// <summary>
 /// 支付选择页面
 /// </summary>
 public ActionResult GoPay()
 {
     using (EFDB db = new EFDB())
     {
         //当前项目
         int Project = LCookie.Project();
         ViewBag.Project = Project;
         Guid MemberGid = LCookie.GetMemberGid();
         if (MemberGid.ToString() != "00000000-0000-0000-0000-000000000000")
         {
             var b = db.Address.Where(l => l.MemberGid == MemberGid && l.Default == 2).FirstOrDefault();
             if (b != null)
             {
                 ViewBag.Addr          = b.Addr;
                 ViewBag.RealName      = b.RealName;
                 ViewBag.ContactNumber = b.ContactNumber;
             }
             else
             {
                 ViewBag.RealName = "请设置你的收货地址";
             }
             //获取用户积分
             ViewBag.Integral = db.Member.Where(l => l.Gid == MemberGid).FirstOrDefault().Integral;
             //获取最低合伙人金额
             //ViewBag.BuyAmount = db.Level.Where(l => l.LV == 6).FirstOrDefault().BuyAmount;
             return(View());
         }
         else
         {
             return(Helper.Redirect("失败", "/Home/Login", "请先登录!"));
         }
     }
 }
Пример #3
0
        public JsonResult CartData()
        {
            Guid MemberGid = LCookie.GetMemberGid();

            using (EFDB db = new EFDB())
            {
                var b = db.Cart.Where(l => l.MemberGid == MemberGid).Select(l => new
                {
                    l.Gid,
                    l.ShopGid,
                    db.Shop.Where(s => s.Gid == l.ShopGid).FirstOrDefault().Name,
                    list = db.OrderDetails.Where(o => o.OrderGid == l.Gid).GroupJoin(db.ShopProduct,
                                                                                     x => x.ProductGid,
                                                                                     y => y.Gid,
                                                                                     (x, y) => new
                    {
                        x.Gid,
                        x.ProductGid,
                        x.Number,
                        y.FirstOrDefault().Name,
                        y.FirstOrDefault().Picture,
                        y.FirstOrDefault().Price,
                        y.FirstOrDefault().DFH
                    })
                });
                return(Json(new AjaxResult(new
                {
                    count = 888888,
                    pageindex = 1,
                    list = b.ToList()
                })));
            }
        }
Пример #4
0
 /// <summary>
 /// 设置推荐人
 /// </summary>
 public object Referee(string referee)
 {
     using (EFDB db = new EFDB())
     {
         Guid gid = LCookie.GetMemberGid();
         var  b   = db.Member.Where(l => l.Gid == gid).FirstOrDefault();
         if (b.MemberGid == null)
         {
             var m = db.Member.Where(l => l.Account == referee && l.Gid != gid).FirstOrDefault();
             if (m != null)
             {
                 b.MemberGid = m.Gid;
                 if (db.SaveChanges() == 1)
                 {
                     Helper.MLogin(gid);
                     List <Guid> list = new List <Guid>();
                     Helper.Member(gid, b.MemberGid, 1, 10, list);
                     return(new AjaxResult("设置推荐人成功"));
                 }
                 else
                 {
                     return(new AjaxResult(300, "设置推荐人失败,请重试"));
                 }
             }
             else
             {
                 return(new AjaxResult(300, "该帐号未注册"));
             }
         }
         else
         {
             return(new AjaxResult(300, "推荐人不能更改"));
         }
     }
 }
Пример #5
0
        public JsonResult AddCart(Guid ShopGid, Guid Gid, int Number, int DFH = 0)
        {
            Guid MemberGid = LCookie.GetMemberGid();

            if (MemberGid == Guid.Parse("00000000-0000-0000-0000-000000000000"))
            {
                return(Json(new AjaxResult(301, "请先登录!")));
            }
            else
            {
                //借用订单处理,待发货处理
                if (DFH == 3)
                {
                    using (EFDB db = new EFDB())
                    {
                        var c = db.Cart.Where(l => l.MemberGid == MemberGid).ToList();
                        foreach (var dr in c)
                        {
                            db.Cart.Where(l => l.Gid == dr.Gid).Delete();
                            db.OrderDetails.Where(l => l.OrderGid == dr.Gid && l.State != 1).Delete();
                        }
                    }
                }
                else
                {
                    //有其他产品时候 删除待发货的产品
                    using (EFDB db = new EFDB())
                    {
                        var cop = db.OrderDetails.Where(l => l.State != 1).GroupJoin(db.Cart.Where(c => c.MemberGid == MemberGid),
                                                                                     l => l.OrderGid,
                                                                                     j => j.Gid,
                                                                                     (l, j) => new
                        {
                            l.Gid,
                            l.ProductGid
                        }).GroupJoin(db.ShopProduct,
                                     l => l.ProductGid,
                                     j => j.Gid,
                                     (l, j) => new
                        {
                            l.Gid,
                            j.FirstOrDefault().DFH
                        }).Where(l => l.DFH == 3).ToList();
                        foreach (var dr in cop)
                        {
                            db.OrderDetails.Where(l => l.Gid == dr.Gid).Delete();
                        }
                    }
                }
                if (ShopOrder(Gid, ShopGid, MemberGid, Number))
                {
                    return(Json(new AjaxResult(Helper.OrderRMB(MemberGid))));
                }
                else
                {
                    return(Json(new AjaxResult(300, "库存不足")));
                }
            }
        }
Пример #6
0
 /// <summary>
 /// 产品详情
 /// </summary>
 /// <returns>返回调用结果</returns>
 /// <para name="result">200 是成功其他失败</para>
 /// <para name="data">结果提示</para>
 /// <remarks>
 /// 2016-06-30 林建生
 /// </remarks>
 public ActionResult Detail()
 {
     using (EFDB db = new EFDB())
     {
         Guid Gid = Guid.Parse(Request.QueryString["gid"]);
         var  b   = db.Product.Where(l => l.Gid == Gid).FirstOrDefault();
         if (b != null)
         {
             ViewBag.Gid     = b.Gid;
             ViewBag.Prefix  = b.Prefix;
             ViewBag.Name    = b.Name;
             ViewBag.Price   = b.Price;
             ViewBag.Company = b.Company;
             ViewBag.Picture = Help.Product + b.Picture;
             ViewBag.Brand   = b.Brand;
             ViewBag.Content = b.Content;
             b.Number        = b.Number + 1;
             db.SaveChanges();
         }
         ViewBag.RMB   = 0;
         ViewBag.Stock = "";
         if (LCookie.Project() == 2)
         {
             string ck = LCookie.GetCookie("linjiansheng");
             if (!string.IsNullOrEmpty(ck))
             {
                 Guid    MemberGid = LCookie.GetMemberGid();
                 var     m         = db.Member.Where(l => l.Gid == MemberGid).FirstOrDefault();
                 decimal BuyPrice  = 0;
                 if (m != null)
                 {
                     BuyPrice = m.BuyPrice;
                 }
                 if (string.IsNullOrEmpty(Request.QueryString["MPGid"]))
                 {
                     ViewBag.Stock = b.Stock;
                     //进货价是0就是产品价格X库存,有进货价的话就是进货价X库存
                     //ViewBag.Price = BuyPrice == 0 ? b.Price : BuyPrice * b.Stock;
                     //if (BuyPrice * b.Stock > b.Price)
                     //{
                     //    ViewBag.Price = b.Price;
                     //}
                     ViewBag.Price = ViewBag.RMB = b.Price;
                 }
                 else
                 {
                     //会员出售
                 }
             }
             else
             {
                 return(Helper.Redirect("请先登录", "/Home/Login", "登录查看你的购买价格!"));
             }
         }
     }
     return(View());
 }
Пример #7
0
        /// <summary>
        /// 购物车
        /// </summary>
        /// <returns>返回调用结果</returns>
        /// <para name="result">200 是成功其他失败</para>
        /// <para name="data">结果提示</para>
        /// <remarks>
        /// 2016-06-30 林建生
        /// </remarks>
        public ActionResult Cart()
        {
            Guid MemberGid = LCookie.GetMemberGid();

            if (MemberGid == Guid.Parse("00000000-0000-0000-0000-000000000000"))
            {
                return(new RedirectResult("/Home/Login"));
            }
            else
            {
                ViewBag.RMB = Helper.OrderRMB(MemberGid);
                return(View());
            }
        }
Пример #8
0
 /// <summary>
 /// 线下汇款
 /// </summary>
 public ActionResult Bank(string Type, string OrderNo, string base64Data)
 {
     using (EFDB db = new EFDB())
     {
         if (string.IsNullOrEmpty(base64Data))
         {
             return(View());
         }
         else
         {
             Guid   Gid     = LCookie.GetMemberGid();
             string picture = Helper.jsimg(Help.Voucher, base64Data);
             if (!string.IsNullOrEmpty(picture))
             {
                 if (Type == "1")
                 {
                     var b = db.Order.Where(l => l.MemberGid == Gid && l.OrderNo == OrderNo).FirstOrDefault();
                     b.Voucher = picture;
                     if (db.SaveChanges() == 1)
                     {
                         return(new RedirectResult("/Member/Order?tab=4"));
                     }
                     else
                     {
                         return(Helper.Redirect("失败", "history.go(-1);", "失败,请重试"));
                     }
                 }
                 else
                 {
                     var b = db.ShopOrder.Where(l => l.MemberGid == Gid && l.OrderNo == OrderNo).FirstOrDefault();
                     b.Voucher = picture;
                     if (db.SaveChanges() == 1)
                     {
                         return(new RedirectResult("/Member/ShopOrder?tab=4&ReturnType=0"));
                     }
                     else
                     {
                         return(Helper.Redirect("失败", "history.go(-1);", "失败,请重试"));
                     }
                 }
             }
             else
             {
                 return(Helper.Redirect("失败", "history.go(-1);", "图片上传失败"));
             }
         }
     }
 }
Пример #9
0
        public JsonResult TeamIntegralData()
        {
            string json = "";

            using (StreamReader sr = new StreamReader(Request.InputStream))
            {
                json = HttpUtility.UrlDecode(sr.ReadLine());
            }
            //解析参数
            JObject paramJson = JsonConvert.DeserializeObject(json) as JObject;
            //统计月份的第一天和最后一天
            DateTime MonthFirst = DTime.FirstDayOfMonth(DateTime.Parse("2018-08-08"));
            DateTime MonthLast  = DTime.LastDayOfMonth(DateTime.Now);
            string   date       = paramJson["date"].ToString();

            if (!string.IsNullOrEmpty(date))
            {
                //统计月份的第一天和最后一天
                MonthFirst = DTime.FirstDayOfMonth(DateTime.Parse(date + "-" + "01"));
                MonthLast  = DTime.LastDayOfMonth(DateTime.Parse(date + "-" + "01 23:59:59"));
            }
            using (EFDB db = new EFDB())
            {
                Guid MGid = LCookie.GetMemberGid();;
                var  b    = db.ShopRecord.Where(l => l.MemberGid == MGid && l.Type == 3 && l.AddTime >= MonthFirst && l.AddTime <= MonthLast).GroupJoin(db.ShopOrder,
                                                                                                                                                        l => l.OrderGid,
                                                                                                                                                        j => j.Gid,
                                                                                                                                                        (l, j) => new
                {
                    l.AddTime,
                    l.MIntegral,
                    j.FirstOrDefault().OrderNo
                }).AsQueryable();
                int pageindex = Int32.Parse(paramJson["pageindex"].ToString());
                int pagesize  = Int32.Parse(paramJson["pagesize"].ToString());
                return(Json(new AjaxResult(new
                {
                    other = "",
                    count = b.Count(),
                    pageindex,
                    list = b.OrderByDescending(l => l.AddTime).Skip(pagesize * (pageindex - 1)).Take(pagesize).ToList()
                })));
            }
        }
Пример #10
0
 /// <summary>
 /// 抢单
 /// </summary>
 /// <param name="gid">订单Gid</param>
 /// <returns>返回调用结果</returns>
 /// <para name="result">200 是成功其他失败</para>
 /// <para name="data">对象结果</para>
 /// <remarks>
 /// 2018-08-18 林建生
 /// </remarks>
 public object Rob(Guid gid)
 {
     using (EFDB db = new EFDB())
     {
         Guid MemberGid = LCookie.GetMemberGid();
         var  b         = db.Order.Where(l => l.Gid == gid).FirstOrDefault();
         if (b != null && b.PayStatus == 1 && b.RobGid == null)
         {
             //扣除库存
             var od = db.OrderDetails.Where(l => l.OrderGid == gid).ToList();
             foreach (var j in od)
             {
                 Stock s = db.Stock.Where(l => l.ProductGid == j.ProductGid && l.MemberGid == MemberGid).FirstOrDefault();
                 s.Number = s.Number - j.Number;
             }
             if (db.SaveChanges() != od.Count)
             {
                 LogManager.WriteLog("扣除库存失败", "MemberGid=" + MemberGid.ToString() + ",OrderGid=" + gid.ToString());
                 return(new AjaxResult(300, "抢单扣除库存异常"));
             }
             else
             {
                 //更新抢单信息
                 b.RobGid  = LCookie.GetMemberGid();
                 b.RobTime = DateTime.Now;
                 if (db.SaveChanges() == 1)
                 {
                     return(new AjaxResult("恭喜你,抢单成功.请录入物流信息"));
                 }
                 else
                 {
                     LogManager.WriteLog("扣除库存成功抢单失败", "MemberGid=" + MemberGid.ToString() + ",OrderGid=" + gid.ToString());
                     return(new AjaxResult(300, "抢单超时,请返回订单界面重新获取"));
                 }
             }
         }
         else
         {
             return(new AjaxResult(300, "你手慢了,订单已失效"));
         }
     }
 }
Пример #11
0
        /// <summary>
        /// 商城积分支付
        /// </summary>
        /// <param name="OrderNo">外部订单号,商户网站订单系统中唯一的订单号</param>
        /// <param name="subject">订单名称</param>
        /// <param name="PayPrice">支付金额</param>
        /// <param name="Integral">用户的积分</param>
        /// <returns>返回调用结果</returns>
        /// <para name="result">200 是成功其他失败</para>
        /// <para name="data">结果提示</para>
        /// <remarks>
        /// 2016-06-30 林建生
        /// </remarks>
        public ActionResult MShopPay(string OrderNo, string subject, decimal PayPrice, decimal Integral, string ReturnType = "0")
        {
            Guid MemberGid = LCookie.GetMemberGid();

            using (EFDB db = new EFDB())
            {
                if (Integral >= PayPrice)
                {
                    var b = db.ShopOrder.Where(l => l.OrderNo == OrderNo && l.PayStatus == 2).ToList();
                    if (b.Select(l => l.Price).Sum() == PayPrice)
                    {
                        db.ShopOrder.Where(l => l.OrderNo == OrderNo && l.PayStatus == 2).Update(l => new ShopOrder {
                            RMB = PayPrice
                        });
                        foreach (var dr in b)
                        {
                            if (Helper.MoneyRecordAdd(dr.Gid, MemberGid, 0, -dr.Price, 1) != null)
                            {
                                if (!Helper.ShopPayOrder(dr.Gid, "", 5, dr.Price))
                                {
                                    LogManager.WriteLog("积分支付成功更新订单失败", "订单=" + dr.Gid);
                                }
                            }
                        }
                        return(new RedirectResult("/Pay/PayOK?type=2&OrderNo=" + OrderNo + "&ReturnType=" + ReturnType));
                    }
                    else
                    {
                        LogManager.WriteLog("合并金额和支付金额不对", "OrderNo=" + OrderNo + ",PayPrice=" + PayPrice);
                        return(Helper.Redirect("失败", "history.go(-1);", "支付异常,请联系客服!"));
                    }
                }
                else
                {
                    return(Helper.Redirect("失败", "history.go(-1);", "积分不足!"));
                }
            }
        }
Пример #12
0
 /// <summary>
 /// 支付选择页面
 /// </summary>
 public ActionResult ShopPay()
 {
     using (EFDB db = new EFDB())
     {
         Guid MemberGid = LCookie.GetMemberGid();
         if (MemberGid.ToString() != "00000000-0000-0000-0000-000000000000")
         {
             if (db.Cart.Where(l => l.MemberGid == MemberGid && l.State == 1).Count() > 0)
             {
                 var b = db.Address.Where(l => l.MemberGid == MemberGid && l.Default == 2).FirstOrDefault();
                 if (b != null)
                 {
                     ViewBag.Addr          = b.Addr;
                     ViewBag.RealName      = b.RealName;
                     ViewBag.ContactNumber = b.ContactNumber;
                 }
                 else
                 {
                     ViewBag.RealName = "请设置你的收货地址";
                 }
                 //获取用户积分
                 ViewBag.Integral = db.Member.Where(l => l.Gid == MemberGid).FirstOrDefault().Integral;
                 //订单金额
                 ViewBag.RMB = Helper.OrderRMB(MemberGid);
             }
             else
             {
                 return(Helper.Redirect("失败", "/SMall/Index", "请先添加商品!"));
             }
             return(View());
         }
         else
         {
             return(Helper.Redirect("失败", "/Home/login", "请先登录!"));
         }
     }
 }
Пример #13
0
        public ActionResult Pay()
        {
            string RealName      = Request.Form["RealName"];
            string ContactNumber = Request.Form["ContactNumber"];
            string Address       = Request.Form["Addr"];
            string ProductList   = Request.Form["shopcart"];
            int    PayType       = int.Parse(Request.Form["PayType"]);
            string Remarks       = Request.Form["Remarks"];
            string OrderNo       = Request.Form["OrderNo"];
            //购买会员Gid
            Guid MemberGid = LCookie.GetMemberGid();
            //当前项目
            int Project = LCookie.Project();

            ViewBag.Project = Project;
            //订单信息
            string Order = "";

            //下单返回信息
            if (string.IsNullOrEmpty(OrderNo))
            {
                Order = Helper.CLOrder(4, 0, ProductList, MemberGid, Project, PayType, Remarks, Address, RealName, ContactNumber);
            }
            else
            {
                using (EFDB db = new EFDB())
                {
                    var b = db.Order.Where(l => l.OrderNo == OrderNo).FirstOrDefault();
                    if (b != null && b.PayStatus == 2 && b.ShopGid != MemberGid && b.ShopGid == b.MemberGid)
                    {
                        b.MemberGid = MemberGid;
                        if (db.SaveChanges() == 1)
                        {
                            Order = JsonConvert.SerializeObject(new { body = b.Product, b.Price, b.OrderNo, b.Gid });
                        }
                        else
                        {
                            return(Helper.Redirect("失败", "history.go(-1);", "获取订单失败!"));
                        }
                    }
                    else
                    {
                        return(Helper.Redirect("失败", "history.go(-1);", "下手慢了,被人抢了!"));
                    }
                }
            }
            if (!string.IsNullOrEmpty(Order))
            {
                JObject paramJson = JsonConvert.DeserializeObject(Order) as JObject;
                {
                    if (string.IsNullOrEmpty(paramJson["OrderNo"].ToString()))
                    {
                        return(Helper.Redirect(paramJson["Title"].ToString(), "history.go(-1);", paramJson["Error"].ToString()));
                    }
                    else
                    {
                        switch (PayType)
                        {
                        case 1:
                            return(Alipay(paramJson["OrderNo"].ToString(), paramJson["body"].ToString(), paramJson["TotalPrice"].ToString(), 1));

                        case 2:
                            if (!string.IsNullOrEmpty(LCookie.GetCookie("openid")))
                            {
                                string beizhu = "cl";    //备注
                                //开始微信统一下单
                                JObject j = WX.WXPay.Get_RequestHtml(LCookie.GetCookie("openid"), paramJson["OrderNo"].ToString(), "彩链订单", beizhu, paramJson["TotalPrice"].ToString());
                                return(Json(new AjaxResult(new
                                {
                                    OrderNo = paramJson["OrderNo"].ToString(),
                                    appId = j["appId"].ToString(),
                                    timeStamp = j["timeStamp"].ToString(),
                                    nonceStr = j["nonceStr"].ToString(),
                                    package = j["package"].ToString(),
                                    paySign = j["paySign"].ToString(),
                                    signType = j["signType"].ToString()
                                })));
                            }
                            else
                            {
                                return(Json(new AjaxResult(301, "微信支付,请在微信里打开重新登录进行支付")));
                            }

                        case 3:
                            return(new RedirectResult("/Home/Bank?Type=1&OrderNo=" + paramJson["OrderNo"].ToString() + "&Money=" + paramJson["TotalPrice"].ToString()));

                        default:
                            return(Helper.Redirect("失败", "history.go(-1);", "非法支付"));
                        }
                    }
                }
            }
            else
            {
                return(Helper.Redirect("失败", "history.go(-1);", "提交订单失败"));
            }
        }
Пример #14
0
        public ActionResult PayShop()
        {
            string RealName      = Request.Form["RealName"];
            string ContactNumber = Request.Form["ContactNumber"];
            string Address       = Request.Form["Addr"];
            string Remarks       = Request.Form["Remarks"];
            int    PayType       = int.Parse(Request.Form["PayType"]);
            //订单类型 Type=0 非借用订单
            int     ReturnType = int.Parse(Request.Form["ReturnType"]);
            string  OrderNo    = RandStr.CreateOrderNO();
            decimal RMB        = 0;//全部订单金额

            using (EFDB db = new EFDB())
            {
                Guid MGid = LCookie.GetMemberGid();
                //如果是积分支付先验证支付密码
                var m = db.Member.Where(l => l.Gid == MGid).FirstOrDefault();
                //待发货利润
                decimal DFHProfit = 0;
                //待发货等级比例
                decimal DFHLV = db.Level.Where(l => l.LV == m.CLLevel).FirstOrDefault().EquityProfit;
                if (PayType == 5)
                {
                    if (m.PayPWD != MD5.GetMD5ljsheng(Request.Form["PayPWD"]))
                    {
                        return(Helper.Redirect("失败", "history.go(-1);", "支付密码错误!"));
                    }
                }
                //购物车转化成订单
                var c = db.Cart.Where(l => l.MemberGid == MGid && l.State == 1).ToList();
                if (c != null)
                {
                    foreach (var dr in c)
                    {
                        //借用订单的产品Gid
                        string  pg    = "";
                        decimal Price = 0;//订单金额
                        //扣除库存
                        var od = db.OrderDetails.Where(l => l.OrderGid == dr.Gid).ToList();
                        foreach (var d in od)
                        {
                            var p = db.ShopProduct.Where(l => l.Gid == d.ProductGid).FirstOrDefault();
                            pg = p.Gid.ToString();
                            if (p.DFH == 3)
                            {
                                DFHProfit += p.Price * DFHLV;
                            }
                            if (ReturnType == 0 || (ReturnType != 0 && p.Borrow == 1 && db.ShopOrder.Where(l => l.Product == pg && l.PayStatus == 1).Count() == 0))
                            {
                                if (p.Stock >= d.Number)
                                {
                                    //扣除库存
                                    p.Stock = p.Stock - d.Number;
                                    if (db.SaveChanges() == 1)
                                    {
                                        //库存扣除状态
                                        if (db.OrderDetails.Where(l => l.Gid == d.Gid).Update(l => new OrderDetails {
                                            State = 1
                                        }) == 1)
                                        {
                                            RMB   += d.Number * p.Price;
                                            Price += d.Number * p.Price;
                                        }
                                        else
                                        {
                                            LogManager.WriteLog("库存扣除成功更新OD失败", "Gid=" + d.Gid);
                                        }
                                    }
                                }
                                else
                                {
                                    //库存不足的直接删除
                                    db.OrderDetails.Where(l => l.Gid == d.Gid).Delete();
                                }
                            }
                            else
                            {
                                return(Helper.Redirect("你下手慢了", "history.go(-1);", "你下手慢了,已被借用"));
                            }
                        }
                        //生成订单
                        var b = new ShopOrder();
                        b.Gid             = dr.Gid;
                        b.AddTime         = DateTime.Now;
                        b.MemberGid       = MGid;
                        b.ShopGid         = dr.ShopGid;
                        b.OrderNo         = OrderNo;
                        b.PayStatus       = 2;
                        b.PayType         = PayType;
                        b.RMB             = 0;
                        b.TotalPrice      = Price;
                        b.Price           = Price;
                        b.CouponPrice     = 0;
                        b.PayPrice        = 0;
                        b.Profit          = 0;
                        b.ConsumptionCode = RandStr.CreateValidateNumber(8);
                        b.ReturnType      = ReturnType;
                        if (ReturnType != 0)
                        {
                            b.BorrowTime = b.AddTime.AddMonths(3);
                            b.Product    = pg;
                        }
                        b.Status        = 1;
                        b.ExpressStatus = 1;
                        b.Remarks       = Remarks;
                        b.Address       = Address;
                        b.ContactNumber = ContactNumber;
                        b.RealName      = RealName;
                        //待发货
                        b.DFHProfit = DFHProfit;
                        b.DFHLV     = DFHLV;
                        b.DFHState  = 1;
                        b.DFH       = 1;
                        db.ShopOrder.Add(b);
                        if (db.SaveChanges() == 1)
                        {
                            if (ReturnType != 0 && pg != "")
                            {
                                Guid PGid = Guid.Parse(pg);
                                if (db.ShopProduct.Where(l => l.Gid == PGid).Update(l => new ShopProduct {
                                    Borrow = 2
                                }) != 1)
                                {
                                    LogManager.WriteLog("借用订单状态失败", "产品Gid=" + pg + ",订单号=" + b.Gid);
                                }
                            }
                            if (db.Cart.Where(l => l.Gid == dr.Gid).Delete() != 1)
                            {
                                LogManager.WriteLog("删除购物车订单失败", "Gid=" + dr.Gid);
                            }
                        }
                        else
                        {
                            LogManager.WriteLog("购物车转订单失败", "Gid=" + dr.Gid);
                            return(Helper.Redirect("失败", "history.go(-1);", "购物车转订单失败"));
                        }
                    }
                    if (RMB > 0)
                    {
                        switch (PayType)
                        {
                        case 1:
                            return(Alipay(OrderNo, "商城订单支付", RMB.ToString(), 2, Request.Form["ReturnType"]));                                                                                    //return MPay(paramJson["OrderNo"].ToString(), paramJson["body"].ToString(), paramJson["TotalPrice"].ToString(), Guid.Parse(paramJson["OrderGid"].ToString()));

                        case 5:
                            return(MShopPay(OrderNo, "商城订单支付", RMB, m.Integral, Request.Form["ReturnType"]));

                        case 3:
                            db.ShopOrder.Where(l => l.OrderNo == OrderNo && l.PayType == 3).Update(l => new ShopOrder {
                                RMB = RMB
                            });
                            return(new RedirectResult("/Home/Bank?Type=2&OrderNo=" + OrderNo + "&Money=" + RMB.ToString()));

                        case 2:
                            if (!string.IsNullOrEmpty(LCookie.GetCookie("openid")))
                            {
                                string beizhu = "shop";    //备注
                                //开始微信统一下单
                                JObject j = WX.WXPay.Get_RequestHtml(LCookie.GetCookie("openid"), OrderNo, "彩链商城订单", beizhu, RMB.ToString());
                                return(Json(new AjaxResult(new
                                {
                                    OrderNo,
                                    appId = j["appId"].ToString(),
                                    timeStamp = j["timeStamp"].ToString(),
                                    nonceStr = j["nonceStr"].ToString(),
                                    package = j["package"].ToString(),
                                    paySign = j["paySign"].ToString(),
                                    signType = j["signType"].ToString()
                                })));
                            }
                            else
                            {
                                return(Json(new AjaxResult(301, "微信支付,请在微信里打开重新登录进行支付")));
                            }

                        default:
                            return(Helper.Redirect("失败", "history.go(-1);", "非法支付"));
                        }
                    }
                    else
                    {
                        return(Helper.Redirect("失败", "history.go(-1);", "提交订单失败!"));
                    }
                }
                else
                {
                    return(Helper.Redirect("失败", "history.go(-1);", "购物车发生变化!"));
                }
            }
        }
Пример #15
0
 /// <summary>
 /// 抢单
 /// </summary>
 /// <param name="Name">分类名称</param>
 /// <returns>返回调用结果</returns>
 /// <para name="result">200 是成功其他失败</para>
 /// <para name="data">对象结果</para>
 /// <remarks>
 /// 2018-08-18 林建生
 /// </remarks>
 public object SendCL(int MID, int Number)
 {
     using (EFDB db = new EFDB())
     {
         var Member = db.Member.Where(l => l.MID == MID).FirstOrDefault();
         if (MID.ToString().Length == 8 && Member != null)
         {
             Guid   OrderGid  = Guid.NewGuid();         //订单的Gid
             Guid   MGid      = Member.Gid;             //接受人
             Guid   MemberGid = LCookie.GetMemberGid(); //转让人
             string msg       = "订单=" + OrderGid + ",转让人=" + MemberGid + ",接受人=" + MGid + ",MID=" + MID + ",Number=" + Number;
             if (Helper.IsMember(MGid, MemberGid))
             {
                 //商品Gid,有订单号为会员转让商品
                 Guid ProductGid = Helper.GetProductGid();
                 //扣除库存
                 if (Helper.CLStock(OrderGid, MGid, MemberGid, Number, 0, 0, Member.Account))
                 {
                     //订单详情
                     var od = new OrderDetails();
                     od.Gid        = Guid.NewGuid();
                     od.AddTime    = DateTime.Now;
                     od.OrderGid   = OrderGid;
                     od.ProductGid = ProductGid;
                     od.Number     = Number;
                     od.Money      = 0;
                     od.Integral   = 0;
                     od.Price      = 0;
                     od.State      = 1;
                     db.OrderDetails.Add(od);
                     if (db.SaveChanges() == 1)
                     {
                         //生成订单
                         var b = new Order();
                         b.Gid           = OrderGid;
                         b.AddTime       = DateTime.Now;
                         b.OrderNo       = "0";
                         b.MemberGid     = MGid;
                         b.ShopGid       = MemberGid;
                         b.CLLevel       = Member.CLLevel;
                         b.PayStatus     = 1;
                         b.PayType       = 4;
                         b.TotalPrice    = 0;
                         b.Price         = 0;
                         b.PayPrice      = 0;
                         b.CouponPrice   = 0;
                         b.ExpressStatus = 3;
                         b.Remarks       = "个人转让";
                         b.Product       = "个人转让";
                         b.Status        = 2;
                         b.Profit        = 0;
                         b.Money         = 0;
                         b.Integral      = 0;
                         b.StockRight    = 0;
                         b.Project       = 2;
                         b.Type          = 5;
                         db.Order.Add(b);
                         if (db.SaveChanges() == 1)
                         {
                             if (Helper.AddCLStock(OrderGid, MGid).Contains("增加数量"))
                             {
                                 return(new AjaxResult("转让成功"));
                             }
                             else
                             {
                                 LogManager.WriteLog("个人转让扣除库存成功订单成功增加失败", msg);
                                 return(new AjaxResult(300, "扣除成功转让失败"));
                             }
                         }
                         else
                         {
                             LogManager.WriteLog("个人转让扣除库存成功OrderDetails成功增加Order失败", msg);
                             db.OrderDetails.Where(l => l.OrderGid == OrderGid).Delete();
                         }
                     }
                     else
                     {
                         LogManager.WriteLog("个人转让扣除库存成功增加OrderDetails失败", msg);
                     }
                 }
                 else
                 {
                     return(new AjaxResult(300, "扣除库存异常"));
                 }
                 return(new AjaxResult(300, "转让失败"));
             }
             else
             {
                 return(new AjaxResult(300, "只能转让给自己的下线"));
             }
         }
         else
         {
             return(new AjaxResult(300, "请输入正确的下级ID"));
         }
     }
 }