Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool Add(OrderPaymentEntity entity)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into OrderPayment(");
            strSql.Append("PayCode,TradeCode,UserId,OrderType,OrderCode,PayAmount,PaidAmount,PayPlatform,PayType,PayStatus,PayTerminal,PayCompleteTime,PayBackRemark,Remark,CreateTime,CreateBy)");
            strSql.Append(" values (");
            strSql.Append("@PayCode,@TradeCode,@UserId,@OrderType,@OrderCode,@PayAmount,@PaidAmount,@PayPlatform,@PayType,@PayStatus,@PayTerminal,@PayCompleteTime,@PayBackRemark,@Remark,@CreateTime,@CreateBy)");

            var parameters = DbSFO2OMain.CreateParameterCollection();

            parameters.Append("@PayCode", entity.PayCode);
            parameters.Append("@TradeCode", entity.TradeCode);
            parameters.Append("@UserId", entity.UserId);
            parameters.Append("@OrderType", entity.OrderType);
            parameters.Append("@OrderCode", entity.OrderCode);
            parameters.Append("@PayAmount", entity.PayAmount);
            parameters.Append("@PaidAmount", entity.PaidAmount);
            parameters.Append("@PayPlatform", entity.PayPlatform);
            parameters.Append("@PayType", entity.PayType);
            parameters.Append("@PayStatus", entity.PayStatus);
            parameters.Append("@PayTerminal", entity.PayTerminal);
            parameters.Append("@PayCompleteTime", entity.PayCompleteTime);
            parameters.Append("@PayBackRemark", entity.PayBackRemark);
            parameters.Append("@Remark", entity.Remark);
            parameters.Append("@CreateTime", entity.CreateTime);
            parameters.Append("@CreateBy", entity.CreateBy);

            return(DbSFO2OMain.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters) > 0);
        }
Beispiel #2
0
        /// <summary>
        /// 订单回写
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OrderReturn(JuHeFuResponseModel model)
        {
            bool           isOk     = false;
            CustomerEntity userInfo = accountBll.GetUserById(ConvertHelper.ZParseInt32(model.userid, 0));

            #region 操作充值、回写订单

            //验证订单号、流水号
            OrderPaymentEntity entity = buyOrderManager.GetOrderPaymentByTradeCode(model.tradeid);
            if (entity == null)
            {
                LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:订单不存在-----{0}", JsonHelper.ToJson(model)));
                //该订单不存在,记录日志
                return(false);
            }
            if (entity.UserId.ToString().Trim() != model.userid.Trim() || entity.PayCode != model.channeltradeid)
            {
                LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:UserId、Tradeid跟订单信息不匹配----{0}", JsonHelper.ToJson(model)));
                //信息有误,记录日志
                return(false);
            }
            if (model.success == "1")
            {
                //调用充值
                if (entity.PayStatus == 1)
                {
                    if (userInfo.SourceType == 10)
                    {
Beispiel #3
0
        /// <summary>
        /// 支付回写
        /// </summary>
        /// <param name="OrderCode"></param>
        /// <param name="TradeNo"></param>
        /// <param name="PayBackRemark"></param>
        /// <param name="DeliveryRegion"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        public bool PayReturn(string OrderCode, string TradeNo, string PayBackRemark, int DeliveryRegion, int language, int PayPlatform)
        {
            LogHelper.Error("-----支付回写1 订单号:" + OrderCode + " ,支付宝回写参数:" + PayBackRemark + "--------");
            bool flag = false;
            // 获得支付信息
            OrderPaymentEntity entity = GetOrderPaymentInfo(OrderCode, PayPlatform);

            ///// 获取订单所属的团信息
            //TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCode);

            /// 普通订单
            //if (teamInfoEntity == null)
            //{
            // 组件订单支付信息对象
            OrderPaymentEntity orderPaymentEntity = BuildOrderPaymentEntity(TradeNo, entity, PayBackRemark);

            /*LogHelper.Error("--------BuildOrderPaymentEntity----1-----赋值前参数PayCode:" + entity.PayCode
            + "--------BuildOrderPaymentEntity----2-----赋值后参数PayCode:" + orderPaymentEntity.PayCode);*/

            // 普通订单支付处理
            flag = NomalOrderPay(entity, OrderCode, TradeNo, PayBackRemark, orderPaymentEntity, 1);
            //}
            //else
            //{
            //    // 团订单支付处理
            //    flag = TeamOrderPay(entity, OrderCode, teamInfoEntity, TradeNo
            //                    , PayBackRemark, DeliveryRegion, language);
            //}
            return(flag);
        }
Beispiel #4
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);
            }
        }
Beispiel #5
0
        /// <summary>
        /// 获得支付信息
        /// </summary>
        /// <param name="OrderCode"></param>
        /// <returns></returns>
        public OrderPaymentEntity GetOrderPaymentInfo(string OrderCode, int PayPlatform)
        {
            // 通过orderCode 找到OrderPayment 的最近一条记录
            OrderPaymentEntity orderPayment = new OrderPaymentEntity();

            orderPayment = buyOrderManager.selectOrderCode(OrderCode, PayPlatform);
            var entity = buyOrderManager.GetOrderPaymentByCode(orderPayment.PayCode);

            return(entity);
        }
Beispiel #6
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);
        }
Beispiel #7
0
        /// <summary>
        /// 更新库存、支付和订单等信息
        /// </summary>
        /// <param name="TradeNo"></param>
        /// <param name="entity"></param>
        /// <param name="PayBackRemark"></param>
        public void UpdatePayInfo(string TradeNo, OrderPaymentEntity entity, string PayBackRemark, OrderPaymentEntity orderPaymentEntity, int OrderType)
        {
            //LogHelper.Error("--------OrderPayAfter----1.4-----更新orderPayment开始:");
            //更新orderPayment
            buyOrderManager.UpdatePaysuccess(orderPaymentEntity);
            //LogHelper.Error("--------OrderPayAfter----1.4-----更新orderPayment结束:");

            //LogHelper.Error("--------OrderPayAfter----1.5-----OrderType:" + OrderType);
            if (OrderType == 1)
            {
                //LogHelper.Error("--------OrderPayAfter----1.6-----OrderPayOk处理开始:");
                //LogHelper.Error("--------OrderPayAfter----1.6-----" + entity.OrderCode);
                buyOrderManager.OrderPayOk(entity.OrderCode, orderPaymentEntity.PaidAmount, "");
                //LogHelper.Error("--------OrderPayAfter----1.6-----OrderPayOk处理结束:");
            }
        }
Beispiel #8
0
        /// <summary>
        /// 组件订单支付信息对象
        /// </summary>
        /// <param name="TradeNo"></param>
        /// <param name="entity"></param>
        /// <param name="PayBackRemark"></param>
        /// <returns></returns>
        public OrderPaymentEntity BuildOrderPaymentEntity(string TradeNo, OrderPaymentEntity entity, string PayBackRemark)
        {
            //组建需要更新的字段
            OrderPaymentEntity orderPaymentEntity = new OrderPaymentEntity();

            //orderPaymentEntity.OrderCode = out_trade_no;
            orderPaymentEntity.TradeCode       = TradeNo;
            orderPaymentEntity.PaidAmount      = StringUtils.ToDecimal(entity.PayAmount);
            orderPaymentEntity.PayStatus       = 2;
            orderPaymentEntity.PayCompleteTime = DateTime.Now;
            orderPaymentEntity.PayBackRemark   = PayBackRemark;
            orderPaymentEntity.PayCode         = entity.PayCode;



            return(orderPaymentEntity);
        }
Beispiel #9
0
        /// <summary>
        /// 支付失败
        /// </summary>
        public bool UpdatePayFailure(OrderPaymentEntity entity)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("UPDATE OrderPayment ");
            strSql.Append("SET TradeCode=@TradeCode,PayStatus=@PayStatus, ");
            strSql.Append("PayCompleteTime=@PayCompleteTime,PayBackRemark=@PayBackRemark ");
            strSql.Append("WHERE PayCode=@PayCode ");
            var parameters = DbSFO2OMain.CreateParameterCollection();

            parameters.Append("@PayCode", entity.PayCode);
            parameters.Append("@TradeCode", entity.TradeCode);
            parameters.Append("@PayStatus", entity.PayStatus);
            parameters.Append("@PayCompleteTime", entity.PayCompleteTime);
            parameters.Append("@PayBackRemark", entity.PayBackRemark);

            return(DbSFO2OMain.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters) > 0);
        }
Beispiel #10
0
        /// <summary>
        /// 普通订单支付处理
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="OrderCode"></param>
        /// <param name="TradeNo"></param>
        /// <param name="PayBackRemark"></param>
        /// <returns></returns>
        public bool NomalOrderPay(OrderPaymentEntity entity, string OrderCode, string TradeNo, string PayBackRemark, OrderPaymentEntity orderPaymentEntity, int OrderType)
        {
            if (entity.PayStatus != 1)
            {
                //LogHelper.Error("订单异常 发给支付宝的支付号为:" + OrderCode);
                return(false);
            }
            else
            {
                // 更新库存、支付和订单等信息
                UpdatePayInfo(TradeNo, entity, PayBackRemark, orderPaymentEntity, OrderType);

                // 添加需要推送的订单信息到push表中
                // orderManager.AddPushOrderInfo(OrderCode);

                // 添加普通订单消息信息
                // AddNoemalOrderInformationInfo(OrderCode, entity);

                return(true);
            }
        }
Beispiel #11
0
        /// <summary>
        /// 添加普通订单消息信息
        /// </summary>
        /// <param name="OrderCode"></param>
        /// <param name="entity"></param>
        public void AddNoemalOrderInformationInfo(string OrderCode, OrderPaymentEntity entity)
        {
            //LogHelper.Error("--------获取订单图片After开始----1-----" + OrderCode);
            ProductInfoModel productInfoModel = orderManager.GetOrderImage(OrderCode);
            //LogHelper.Error("--------获取订单图片After结束----1-----" + productInfoModel);

            //LogHelper.Error("--------消息对象设置参数After开始----1-----" + entity.UserId);

            InformationEntity InformationEntity = new InformationEntity();

            InformationEntity.InfoType     = 1;
            InformationEntity.WebInnerType = 3;
            InformationEntity.SendDest     = CommonBll.GetUserRegion(entity.UserId);
            InformationEntity.SendUserId   = entity.UserId;
            InformationEntity.TradeCode    = OrderCode;
            InformationEntity.Title        = InformationUtils.UserPaySuccTitle;
            InformationEntity.InfoContent  = InformationUtils.UserPaySuccContent_Prefix
                                             + OrderCode + InformationUtils.UserPaySuccContent_suffix;

            if (productInfoModel != null)
            {
                //LogHelper.Error("--------消息对象设置参数After开始----2-----" + productInfoModel.ImagePath);
                InformationEntity.ImagePath = productInfoModel.ImagePath;
            }
            else
            {
                InformationEntity.ImagePath = null;
            }

            InformationEntity.Summary    = null;
            InformationEntity.LinkUrl    = "my/detail?orderCode=" + OrderCode;
            InformationEntity.StartTime  = null;
            InformationEntity.EndTime    = null;
            InformationEntity.LongTerm   = 0;
            InformationEntity.CreateTime = DateTime.Now;

            //LogHelper.Error("--------插入消息表开始----1-----");
            InformationBll.AddInformation(InformationEntity);
        }
Beispiel #12
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);
            }
        }
Beispiel #13
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);
         }
     }
 }