Beispiel #1
0
        public bool Upgrade()
        {
            Tvip_Order daOrder = new Tvip_Order();

            if (!daOrder.SelectByPk(this._orderId))
            {
                Alert("找不到指定的订单信息[OrderId=" + this._orderId + "]");
                return(false);
            }
            if (daOrder.Status != (int)OrderStatus.支付成功)
            {
                Alert("订单未支付");
                return(false);
            }
            Tvip_Sub_OrderCollection daSubOrderCollection = new Tvip_Sub_OrderCollection();

            if (!daSubOrderCollection.ListByOrder_Id(this._orderId))
            {
                Alert("找不到指定的订单信息[OrderId=" + this._orderId + "]");
                return(false);
            }
            this.Order           = MapProvider.Map <OrderInfo>(daOrder.DataRow);
            this.Order.SubOrders = MapProvider.Map <SubOrder>(daSubOrderCollection.DataTable);

            if (!DoUpgrade())
            {
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        public bool Pay()
        {
            BeginTransaction();
            Tvip_Order daOrder = new Tvip_Order();

            daOrder.ReferenceTransactionFrom(Transaction);
            if (!daOrder.SelectByOrderNo(_orderNo))
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.DATA_NOT_FOUND, "订单号不存在");
                return(false);
            }
            if (daOrder.Status == 1)
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.REQUEST_ALREADY_PROCCEED, "订单已支付,请不要重复支付");
                return(false);
            }
            if (this._userId.HasValue && daOrder.User_Id != this._userId.Value)
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.OPERATOR_FORBIDDEN, "操作不允许");
                return(false);
            }
            int transferId;

            if (!DoTransfer(daOrder.User_Id, daOrder.Amount, out transferId))
            {
                Rollback();
                return(false);
            }
            if (!daOrder.UpdatePaymentByOrderId(daOrder.Order_Id, OrderStatus.支付成功, OrderStatus.等待支付, this._payType))
            {
                Rollback();
                Alert((ResultType)ApiStatusCode.DATA_REFRESH_FAIL, "更新订单信息失败");
                return(false);
            }
            Commit();
            Task.Factory.StartNew(() =>
            {
                int order_id = daOrder.Order_Id;
                UpgradeUserRoleProvider provider = new UpgradeUserRoleProvider(order_id);
                bool res = provider.Upgrade();
                Log.Info("异步立即执行升级程序,订单号:{0},处理结果:{1},错误信息:{2}", order_id, res ? "成功" : "失败", provider.PromptInfo.CustomMessage);
            });
            return(true);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool CreateOrder()
        {
            if (_arg == null || _arg.UserCollection == null || _arg.UserCollection.Length <= 0)
            {
                Alert("请指定VIP升级会员");
                return(false);
            }
            decimal amount = GetOrderAmount(_arg.DeviceModel) * _arg.UserCollection.Length;

            if (amount <= 0)
            {
                Alert("指定型号的设备已停止赠送");
                return(false);
            }
            IUser user = GetUserById(_arg.UserId);

            if (user == null)
            {
                Alert("付款账号不存在");
                return(false);
            }
            string order_no;

            BeginTransaction();
            Tvip_Order daOrder = new Tvip_Order();

            daOrder.ReferenceTransactionFrom(Transaction);
            daOrder.Amount     = amount;
            daOrder.Order_Type = (int)_arg.OrderType;
            daOrder.Pay_Type   = (int)_arg.PayType;
            daOrder.Status     = 0;
            daOrder.User_Id    = _arg.UserId;
            daOrder.Device_Id  = _arg.DeviceModel;
            if (!string.IsNullOrEmpty(_arg.Org_Code))
            {
                daOrder.Biz_Args = "{\"Org_Code\":\"" + _arg.Org_Code + "\"}";
            }
            if (_arg.ConsigneeId.HasValue)
            {
                daOrder.Delivery_Type = 1;
            }
            if (!daOrder.Insert("VIP", out order_no))
            {
                Rollback();
                Alert("创建订单失败");
                return(false);
            }
            if (_arg.ConsigneeId.HasValue)
            {
                ConsigneeProvider consignee = new ConsigneeProvider();
                AddressInfo       address   = consignee.GetAddressById(_arg.ConsigneeId.Value);
                if (address == null)
                {
                    Rollback();
                    Alert("无效的收货地址");
                    return(false);
                }
                Tvip_Express daExpress = new Tvip_Express();
                daExpress.ReferenceTransactionFrom(Transaction);
                daExpress.Order_Id       = daOrder.Order_Id;
                daExpress.Receiver       = address.ConsigneeName;
                daExpress.Contract_Phone = address.MobileNo;
                daExpress.Province_Name  = address.ProvinceName;
                daExpress.City_Name      = address.CityName;
                daExpress.Region_Name    = address.RegionName;
                daExpress.Full_Address   = address.Address;
                daExpress.Status         = 0;
                if (!daExpress.Insert())
                {
                    Rollback();
                    Alert("收货地址保存失败");
                    return(false);
                }
            }
            foreach (string userCode in _arg.UserCollection)
            {
                IUser vipUser = GetUserByCode(userCode);
                if (vipUser == null)
                {
                    Rollback();
                    Alert(userCode + "不存在");
                    return(false);
                }
                //if (vipUser.Grade.Level == (int)UserLevel.DIP会员 || vipUser.Grade.Level == (int)UserLevel.VIP会员)
                //{
                //    Alert("您已经是VIP,不能重复申请");
                //    Rollback();
                //    return false;
                //}
                Tvip_Sub_Order daSub = new Tvip_Sub_Order();
                daSub.ReferenceTransactionFrom(Transaction);
                daSub.Order_Id = daOrder.Order_Id;
                daSub.User_Id  = vipUser.UserId;
                if (!daSub.Insert())
                {
                    Rollback();
                    Alert("创建订单失败");
                    return(false);
                }
            }
            string voucher = order_no;

            if (xUtils.IsCashPayment(_arg.PayType))
            {
                var gpuRes = CreateGpuOrder(user, order_no, amount, _arg.PayType);
                if (!gpuRes.Success)
                {
                    Rollback();
                    Alert(gpuRes.Message);
                    return(false);
                }
                voucher     = gpuRes.Content.Voucher;
                this.PayUrl = gpuRes.Content.PayUrl;
            }
            daOrder.Voucher = voucher;
            if (!daOrder.Update())
            {
                Rollback();
                Alert("获取支付凭证号失败");
                return(false);
            }
            Commit();
            this.OrderNo = order_no;
            this.Voucher = voucher;
            this.Amount  = amount;

            return(true);
        }