Exemplo n.º 1
0
        /// <summary>
        /// 帮他砍一刀
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="classid"></param>
        /// <returns></returns>
        public ActionResult BargainClass(string ownOpenid, string openid, string classid)
        {
            try
            {
                OrderBC bc     = new OrderBC();
                var     result = "success";
                LogHelp.WriteLog("ownOpenid:::" + ownOpenid + "openid::: " + openid + "classid::: " + classid);
                //获取砍价上下限
                var     config     = bc.GetBargainConfigByClassId(classid);
                var     top        = config.BargainTop;
                var     floor      = config.BargainFloor;
                decimal cutPrce    = Convert.ToDecimal(CommonHelper.GetRandNum(floor * 100, top * 100) * 0.01);
                var     floorPrice = config.FloorPrice;
                //更新最新价格,插入砍价记录表
                var bargainEntity = bc.GetBargainByOpenIdAndClassId(classid, ownOpenid);
                var nowPrice      = bargainEntity.NowPrice;
                if (nowPrice - floorPrice < cutPrce)
                {
                    cutPrce = nowPrice - floorPrice;
                }
                nowPrice = nowPrice - cutPrce;
                bc.UpdateBargainNowPrice(bargainEntity.BargainId, nowPrice);
                BargainLogEntity log = new BargainLogEntity()
                {
                    BargainId    = bargainEntity.BargainId,
                    OpenId       = openid,
                    BargainPrice = cutPrce,
                };
                bc.AddBargainLog(log, openid);

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                LogHelp.WriteLog(ex.Message);
                return(Json("false", JsonRequestBehavior.AllowGet));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 支付完成
        /// </summary>
        /// <returns></returns>
        public ActionResult rechargesucc(string openId, string orderNo)
        {
            OrderBC bc     = new OrderBC();
            var     result = bc.GetOrderByOrderNo(orderNo);

            //支付成功,1.更新订单状态;2.更新课程热度;3.增加用户积分;4.删除购物车
            UpdateOrderStatus(orderNo, 2);//1

            var goods = bc.GetOrderGoodsListByOrderId(result.OrderId);

            if (goods != null && goods.Count > 0)
            {
                foreach (var item in goods)
                {
                    new ClassBC().UpdateClassHot(item.ClassId);             //2
                    new ShopCarBC().EnableShopCar(openId, item.ClassId, 2); //4
                }
            }

            var point = bc.GetPointsByOpenid(openId);//3

            if (point == null)
            {
                PointsEntity points = new PointsEntity()
                {
                    OpenId = openId,
                    Points = result.PayPrice,
                };
                bc.AddPoint(points, openId);
                PointsLogEntity log = new PointsLogEntity()
                {
                    OrderId = result.OrderId,
                    LogType = "1",
                    Points  = result.PayPrice,
                    OpenId  = openId,
                };
                bc.AddPointLog(log, openId);
            }
            else
            {
                bc.UpdatePonits(openId, result.PayPrice);
                PointsLogEntity log = new PointsLogEntity()
                {
                    OrderId = result.OrderId,
                    LogType = "1",
                    Points  = result.PayPrice,
                    OpenId  = openId,
                };
                bc.AddPointLog(log, openId);
            }



            //根据订单来源,变更不同推广状态
            switch (result.OrderSource)
            {
            case "1":    //单独购买
                break;

            case "2":    //砍价
                foreach (var item in goods)
                {
                    var barginEntity = bc.GetBargainByOpenIdAndClassId(item.ClassId, openId);
                    bc.UpdateBargainStatus(barginEntity.BargainId, 2);
                }
                break;

            case "3":                          //团购
                UpdateOrderStatus(orderNo, 3); //1

                foreach (var item in goods)
                {
                    var gbEntity = bc.GetGroupBuyByClassId(item.ClassId);
                    if (gbEntity != null)    //该商品已有团购,更新团购人数
                    {
                        bc.UpdateGroupBuyCount(gbEntity.GroupBuyId);
                    }
                    else    //该商品没有团购,新增团购数据
                    {
                        GroupBuyEntity buy = new GroupBuyEntity()
                        {
                            ClassId  = item.ClassId,
                            NowCount = 1,
                        };
                        bc.AddGroupBuy(buy, openId);
                    }
                    gbEntity = bc.GetGroupBuyByClassId(item.ClassId);
                    //记录团购成员表
                    GroupBuyMemberEntity member = new GroupBuyMemberEntity()
                    {
                        GroupBuyId = gbEntity.GroupBuyId,
                        GroupPrice = item.Price,
                        openId     = openId
                    };
                    bc.AddGroupBuyMember(member, openId);

                    var nowCountEntity = bc.GetGroupBuyByClassId(item.ClassId);
                    var nowCount       = nowCountEntity.NowCount;
                    var needCount      = bc.GetGroupBuyConfigByClassId(item.ClassId).NeedCount;

                    if (nowCount == needCount)    //团购人数已满,变更团购状态为已完成(2)
                    {
                        bc.UpdateGroupBuyStatus(nowCountEntity.GroupBuyId, 2);
                        //更新成员表中所有成员的订单状态
                        var members = bc.GetGroupBuyMember(nowCountEntity.GroupBuyId);
                        foreach (var i in members)
                        {
                            var order = bc.GetOrderByOpenIdandClassId(i.openId, item.ClassId);
                            UpdateOrderStatus(order.OrderNo, 2);    //1
                        }
                    }
                }

                break;

            case "4":    //助力

                break;
            }


            ViewBag.OrderNo = orderNo;
            ViewBag.OpenId  = openId;
            ViewBag.Price   = result.PayPrice;

            return(View());
        }