Example #1
0
        /// <summary>
        /// 获取订单所属的团信息
        /// </summary>
        /// <param name="OrderCode"></param>
        /// <returns></returns>
        public TeamInfoEntity GetTeamInfoEntity(string OrderCode)
        {
            TeamInfoEntity entity = new TeamInfoEntity();

            entity = teamDal.GetTeamInfoEntity(OrderCode);

            return(entity);
        }
Example #2
0
        /// <summary>
        /// 团订单支付处理
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="OrderCode"></param>
        /// <param name="teamInfoEntity"></param>
        /// <param name="TradeNo"></param>
        /// <param name="PayBackRemark"></param>
        /// <param name="DeliveryRegion"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        public bool TeamOrderPay(OrderPaymentEntity entity, string OrderCode, TeamInfoEntity teamInfoEntity
                                 , string TradeNo, string PayBackRemark, int DeliveryRegion, int language)
        {
            if (entity.PayStatus != 1)
            {
                //LogHelper.Error("订单异常 发给支付宝的支付号为:" + OrderCode);
                return(false);
            }
            else
            {
                if (teamInfoEntity.TeamStatus == 2 || teamInfoEntity.TeamStatus == 3)
                {
                    //LogHelper.Error("团订单异常 发给支付宝的支付号为:" + OrderCode);
                    return(false);
                }

                // 组件订单支付信息对象
                OrderPaymentEntity orderPaymentEntity = BuildOrderPaymentEntity(TradeNo, entity, PayBackRemark);

                // 更新库存、支付和订单等信息
                UpdatePayInfo(TradeNo, entity, PayBackRemark, orderPaymentEntity, 2);

                //LogHelper.Info("--------TeamPayAfter----2-----" + teamInfoEntity);

                /// 获取团详情信息
                var teamDetailList = teamBll.GetTeamDetailListForStatus(teamInfoEntity.TeamCode);
                //LogHelper.Info("--------TeamPayAfter----3-----" + teamDetailList.Count());

                if (teamDetailList == null)
                {
                    return(false);
                }

                // 获得参团成功的团员数量
                int teamSucStatusCount = GetTeamSucStatusCount(teamDetailList);

                /// 团订单中最后一人支付成功
                if (teamSucStatusCount == (teamDetailList.First().TeamNumbers - 1))
                {
                    //LogHelper.Info("--------TeamPayAfter----4-----最后一人支付成功" + teamSucStatusCount);

                    // 团订单最后一人支付
                    TeamOrderLastPay(teamInfoEntity, entity, orderPaymentEntity
                                     , DeliveryRegion, language, teamDetailList);
                }
                /// 不是最后一人支付成功
                else
                {
                    //LogHelper.Info("--------TeamPayAfter----5-----" + teamSucStatusCount);

                    // 团订单不是最后一人支付
                    TeamOrderNotLastPay(teamInfoEntity, entity, orderPaymentEntity);
                }

                return(true);
            }
        }
Example #3
0
        /// <summary>
        /// 查看团的状态
        /// </summary>
        public JsonResult checkTeamStatus(string orderCode)
        {
            //判断团的状态
            TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(orderCode);

            if (teamInfoEntity != null)
            {
                return(Json(new { Type = 1, status = teamInfoEntity.TeamStatus }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { Type = 1, status = 0 }, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        /// <summary>
        /// 团订单不是最后一人支付
        /// </summary>
        /// <param name="teamInfoEntity"></param>
        /// <param name="entity"></param>
        /// <param name="orderPaymentEntity"></param>
        /// <returns></returns>
        public void TeamOrderNotLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity)
        {
            /// 订单状态为6
            int OrderStatus = 6;

            /// 更新TeamInfo表的TeamStatus字段为1,参团中
            teamInfoEntity.TeamStatus = 1;

            //LogHelper.Info("--------TeamPayAfter----15-----不是最后支付" + teamInfoEntity.TeamStatus);
            /// 团订单更新库存和订单信息表
            buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity);
        }
Example #5
0
        /// <summary>
        /// 关闭没有支付的订单
        /// </summary>
        /// <param name="teamInfoEntity"></param>
        /// <param name="DeliveryRegion"></param>
        /// <param name="language"></param>
        public void CloseNotPayOrderInfo(TeamInfoEntity teamInfoEntity, int DeliveryRegion, int language)
        {
            //LogHelper.Info("--------TeamPayAfter----close OrderInfo--111-----开始---团code:" + teamInfoEntity.TeamCode);
            /// 将下了订单没有支付的订单状态置为关闭
            IList <OrderInfoEntity> NeedCloseOrderInfoList = orderManager.GetNeedCloseOrderInfoByCode(teamInfoEntity.TeamCode);

            //LogHelper.Info("--------TeamPayAfter----close OrderInfo-----开始---需要关闭订单的数量:" + NeedCloseOrderInfoList.Count());

            foreach (OrderInfoEntity orderInfo in NeedCloseOrderInfoList)
            {
                var model = Bll.CancelOrder(orderInfo.UserId, DeliveryRegion, language, orderInfo.OrderCode);
                //LogHelper.Info("--------TeamPayAfter----close OrderInfo-----结束---关闭订单结果:" + model);
            }
        }
Example #6
0
        /// <summary>
        /// 团订单情况展示团详情页面逻辑
        /// </summary>
        /// <param name="OrderCode"></param>
        /// <param name="DeliveryRegion"></param>
        /// <returns></returns>
        public IList <TeamDetailEntity> TeamOrderPage(string OrderCode, int DeliveryRegion)
        {
            /// 获取订单所属的团信息
            TeamInfoEntity teamInfoEntity = GetTeamInfoEntity(OrderCode);

            if (teamInfoEntity == null)
            {
                //LogHelper.Info("----Team----" + "订单号:" + OrderCode + ",查询的团信息为null,teamInfoEntity=" + teamInfoEntity);
                return(null);
            }

            /// 获取团详情信息
            var teamDetailList = GetTeamDetailList(teamInfoEntity.TeamCode);

            return(teamDetailList);
        }
Example #7
0
        /// <summary>
        /// 团订单最后一人支付
        /// </summary>
        /// <param name="teamInfoEntity"></param>
        /// <param name="entity"></param>
        /// <param name="orderPaymentEntity"></param>
        /// <param name="DeliveryRegion"></param>
        /// <param name="language"></param>
        /// <param name="teamDetailList"></param>
        /// <returns></returns>
        public void TeamOrderLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity
                                     , int DeliveryRegion, int language, IList <TeamDetailEntity> teamDetailList)
        {
            /// 订单状态为6
            int OrderStatus = 6;

            /// 更新TeamInfo表的TeamStatus字段为3,组团成功
            teamInfoEntity.TeamStatus = 3;

            /// 团订单更新库存、订单信息表和团信息表状态
            buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity);

            // 根据团Code获得订单信息集合
            IList <OrderInfoEntity> OrderInfoList = orderManager.GetOrderInfoByTeamCode(teamInfoEntity.TeamCode);

            if (OrderInfoList != null && OrderInfoList.Count() != 0)
            {
                //LogHelper.Info("--------TeamPayAfter----4.1-----" + OrderInfoList.Count());

                // 更新订单相关信息和保存Push信息表
                UpdateAndSavePushOrderInfo(OrderInfoList, orderPaymentEntity, teamInfoEntity);

                int count = OrderInfoList.Where(d => d.OrderStatus != 6).Count();
                //LogHelper.Info("--------TeamPayAfter----4.0.1-----状态不是6的集合长度:" + count);
                if (count != 0)
                {
                    // 关闭没有支付的订单
                    CloseNotPayOrderInfo(teamInfoEntity, DeliveryRegion, language);
                }

                // 添加团订单消息信息
                AddTeamOrderInformationInfo(teamDetailList);

                // 团长订单的订单来源类型和订单来源值处理
                UpdateTeamHeadSource(teamDetailList);
            }
        }
Example #8
0
        /// <summary>
        /// 获得团详情页分享Json
        /// </summary>
        /// <param name="URL"></param>
        /// <returns></returns>
        private JsonResult TeamJoinDetail(string URL)
        {
            string     TeamCodeStr  = "";
            string     OrderCodeStr = "";
            JsonResult json         = null;

            Uri    uri      = new Uri(URL);
            int    index    = uri.Query.IndexOf("?");
            string urlQuery = uri.Query.Substring(index + 1, uri.Query.Length - 1);

            string[] urlParams = urlQuery.Split('&');
            foreach (string param in urlParams)
            {
                string[] items = param.Split('=');
                if (items[0].Equals("TeamCode"))
                {
                    TeamCodeStr = items[1];
                }
                else if (items[0].Equals("OrderCode"))
                {
                    OrderCodeStr = items[1];
                }
            }
            //LogHelper.Info("------------Shared-----URL1:" + URL);

            IList <TeamDetailEntity> teamDetailList = null;

            if (!string.IsNullOrEmpty(TeamCodeStr))
            {
                /// 获取团详情信息
                teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr);
                //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList);
            }
            else if (!string.IsNullOrEmpty(OrderCodeStr))
            {
                TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCodeStr);
                //LogHelper.Info("------------Shared-----teamInfoEntity:" + teamInfoEntity);
                if (teamInfoEntity != null)
                {
                    TeamCodeStr = teamInfoEntity.TeamCode;
                    //LogHelper.Info("------------Shared-----TeamCodeStr:" + TeamCodeStr);

                    /// 获取团详情信息
                    teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr);
                    //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList);
                }
            }
            else
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_TeamCodeIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            /// 判断集合是否为空
            if (teamDetailList == null || teamDetailList.Count() == 0)
            {
                return(Json(new
                {
                    type = (int)ShareUtils.JsonType.typeFailed,
                    content = ShareUtils.JsonContent_TeamListIsNull
                }, JsonRequestBehavior.AllowGet));
            }

            //LogHelper.Info("------------Shared-----URL2:" + URL);
            //LogHelper.Info("------------Shared-----ImagePath:" + teamDetailList.First().ImagePath);

            // 获得商品净重、净含量信息,再重新装配数据集合
            List <TeamDetailEntity> teamDetailProductList = new List <TeamDetailEntity>();

            foreach (TeamDetailEntity product in teamDetailList)
            {
                string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit);
                product.NetWeightUnit = neight;
                teamDetailProductList.Add(product);
            }

            /// 获得团详情页分享对象
            TeamSharedModel teamSharedModel = GetTeamSharedInfo(teamDetailProductList);

            /// 获得微信配置信息
            JSSDKModel JsSdkModel = GetWechatParams(URL);

            if (JsSdkModel.type == (int)ShareUtils.JsonType.typeFailed)
            {
                return(Json(new
                {
                    type = JsSdkModel.type,
                    content = JsSdkModel.content
                }, JsonRequestBehavior.AllowGet));
            }

            //LogHelper.Info("------------Shared-------TeamCode:" + TeamCodeStr);

            // 获得团成员剩余数量
            int value = teamSharedModel.RestTeamMemberNum;

            /*LogHelper.Info("------------Shared----RestTeamMemberNum-----RestTeamMemberNum:" + value);
             * LogHelper.Info("------------Shared-----Title:" + teamSharedModel.Title);
             * LogHelper.Info("------------Shared-----ImagePath:" + teamSharedModel.ImagePath);
             * LogHelper.Info("------------Shared-----Description:" + teamSharedModel.Description);
             * LogHelper.Info("------------Shared-----URL3:" + teamSharedModel.Url);*/

            json = Json(new
            {
                type = JsSdkModel.type,
                data = new
                {
                    appId       = JsSdkModel.appId,
                    timestamp   = JsSdkModel.timestamp,
                    nonceStr    = JsSdkModel.nonceStr,
                    signature   = JsSdkModel.signature,
                    jsApiList   = JsSdkModel.jsApiList,
                    Title       = teamSharedModel.Title,
                    ImagePath   = teamSharedModel.ImagePath,
                    Description = teamSharedModel.Description,
                    Url         = URL
                }
            }, JsonRequestBehavior.AllowGet);

            return(json);
        }
Example #9
0
        /// <summary>
        /// 团详情页
        /// </summary>
        /// <param name="TeamCode"></param>
        /// <returns></returns>
        public ActionResult TeamDetail(string TeamCode, string OrderCode, int Flag)
        {
            try
            {
                string teamCodeStr = "";

                if (OrderCode != null)
                {
                    /// 获取订单所属的团信息
                    TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCode);
                    teamCodeStr = teamInfoEntity.TeamCode;

                    /// 获得团成员UserId
                    int TeamUserId = teamBll.GetTeamUserId(OrderCode, teamCodeStr);
                    ViewBag.TeamUserId       = TeamUserId; /// 团成员UserId
                    ViewBag.IsOrderCodeInput = 1;          /// OrderCode有值
                }
                else
                {
                    teamCodeStr = TeamCode;
                }

                if (string.IsNullOrEmpty(teamCodeStr))
                {
                    return(View("Error"));
                }

                /// 获取团详情信息
                var teamDetailListInfo = teamBll.GetTeamDetailList(teamCodeStr);
                List <TeamDetailEntity> teamDetailList = new List <TeamDetailEntity>();
                foreach (TeamDetailEntity product in teamDetailListInfo)
                {
                    string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit);
                    product.NetWeightUnit = neight;
                    teamDetailList.Add(product);
                }

                /// 登录用户ID
                int LoginUserId = 0;

                if (base.LoginUser != null)
                {
                    LoginUserId = base.LoginUser.UserID;
                }

                /// 倒计时秒数
                double sec = 0.0;

                DateTime dtStartTime = DateTime.Now;
                DateTime dtEndTime   = Convert.ToDateTime(teamDetailList.First().EndTime);
                sec = dtEndTime.Subtract(dtStartTime).TotalSeconds;

                /// 组团成功
                if (teamDetailList.First().TeamStatus == 3)
                {
                    ViewBag.TeamStatus = 3;
                }
                /// 参团中
                else if (teamDetailList.First().TeamStatus == 1)
                {
                    if (sec > 0)
                    {
                        ViewBag.restTime = sec;
                    }
                    else
                    {
                        ViewBag.restTime = 0;
                    }
                    ViewBag.TeamStatus = teamDetailList.First().TeamStatus;/// 组团状态
                }
                /// 参团失败
                else
                {
                    ViewBag.TeamStatus = teamDetailList.First().TeamStatus;/// 组团状态
                }

                /// 设置页面属性值
                ViewBag.LoginUserId  = LoginUserId;
                ViewBag.TeamHead     = teamDetailList.First().TeamHead;                                                          /// 团长
                ViewBag.TeamNumbers  = teamDetailList.First().TeamNumbers;                                                       /// 几人团
                ViewBag.ListLength   = teamDetailList.Count();                                                                   /// 团详情集合长度
                ViewBag.productPrice = (teamDetailList.First().DiscountPrice *base.ExchangeRate).ToNumberRoundStringWithPoint(); /// 拼团价格
                ViewBag.RestNumber   = teamDetailList.First().TeamNumbers - teamDetailList.Count();                              /// 组团剩余人数
                ViewBag.Flag         = Flag;
                ///ViewBag.restTime = restTime;
                return(View(teamDetailList));
            }
            catch (Exception ex)
            {
                return(HandleError(ex));
            }
        }
Example #10
0
 /// <summary>
 /// 更新订单相关信息和保存Push信息表
 /// </summary>
 /// <param name="OrderInfoList"></param>
 /// <param name="orderPaymentEntity"></param>
 /// <param name="teamInfoEntity"></param>
 public void UpdateAndSavePushOrderInfo(IList <OrderInfoEntity> OrderInfoList, OrderPaymentEntity orderPaymentEntity, TeamInfoEntity teamInfoEntity)
 {
     foreach (OrderInfoEntity orderInfo in OrderInfoList)
     {
         //LogHelper.Info("--------TeamPayAfter----4.1.1-----" + orderInfo.OrderCode);
         //LogHelper.Info("--------TeamPayAfter----4.1.1-----状态:" + orderInfo.OrderStatus);
         if (orderInfo.OrderStatus == 6)
         {
             // 订单状态设置为1
             int OrderStatus = 1;
             /// 团订单更新订单信息表和团信息表状态
             buyOrderManager.TeamOrderPayOKForStatus(orderInfo.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity);
             /// 添加需要推送的订单信息到push表中
             orderManager.AddPushOrderInfo(orderInfo.OrderCode);
         }
     }
 }