コード例 #1
0
        protected void btnNext_Click(object sender, EventArgs e)
        {
            EmployeeDetailInfo info = EmployeeService.QueryEmployee(txtAccountNo.Value);

            if (info == null)
            {
                txtAccountNoTip.InnerHtml   = "账号无效,不存在该账户";
                txtReAccountNoTip.InnerHtml = "";
                txtCodeTip.InnerHtml        = "";
                return;
            }
            if (Session["lostCode"] == null)
            {
                txtAccountNoTip.InnerHtml   = "";
                txtReAccountNoTip.InnerHtml = "";
                txtCodeTip.InnerHtml        = "验证码已过期";
                return;
            }
            if (txtCode.Value.ToUpper() != Session["lostCode"].ToString().ToUpper())
            {
                txtAccountNoTip.InnerHtml   = "";
                txtReAccountNoTip.InnerHtml = "";
                txtCodeTip.InnerHtml        = "验证码不正确";
                BasePage.RegisterScript(this, "window.onload = function(){loadValidateCode(); };");
                return;
            }

            IPAddress ip = IPAddressLocator.GetRequestIP(HttpContext.Current.Request);

            if (!AccountCombineService.ValidateIP(ip.ToString()))
            {
                txtAccountNoTip.InnerHtml   = "";
                txtReAccountNoTip.InnerHtml = "";
                txtCodeTip.InnerHtml        = "同一个IP一天只有3次获取验证码的机会";
                return;
            }
            var verfiCode = new VerfiCode()
            {
                CellPhone = info.Cellphone,
                Code      = ChinaPay.Utility.VerifyCodeUtility.CreateVerifyCode(6),
                IP        = ip.ToString(),
                Type      = Common.Enums.VerfiCodeType.Register,
                AccountNo = txtAccountNo.Value
            };

            Session["phoneValidateCode"] = verfiCode.Code;
            Session["phone"]             = verfiCode.CellPhone;
            Session["accountno"]         = verfiCode.AccountNo;
            Session["phoneTime"]         = DateTime.Now;
            ChinaPay.SMS.Service.SMSSendService.SendB3bTrade(verfiCode.CellPhone, verfiCode.Code, 20, BasePage.CurrenContract.ServicePhone);
            AccountCombineService.SaveVerfiCode(verfiCode);
            SendSMSTime();
            BasePage.RegisterScript(this, "window.location.href='RelostPasswordCode.aspx'");
        }
コード例 #2
0
 private void SpreadAccount(EmployeeDetailInfo employeeDetailInfo, string spreadAccount)
 {
     if (person.Checked)
     {
         AccountCombineService.Spread(employeeDetailInfo.Owner, GetAccountInfo(), GetAccountIndividual(spreadAccount), BasePage.DomainName, BasePage.CurrenContract.ServicePhone, BasePage.PlatformName);
     }
     else
     {
         AccountCombineService.Spread(employeeDetailInfo.Owner, GetAccountInfo(), GetAccountEnterprise(spreadAccount), BasePage.DomainName, BasePage.CurrenContract.ServicePhone, BasePage.PlatformName);
     }
 }
コード例 #3
0
        protected static PurchaserInfo getPurchaserInfo(EmployeeDetailInfo employee, Deduction deduction)
        {
            var purchaser = CompanyService.GetCompanyInfo(employee.Owner);

            return(new Domain.PurchaserInfo(employee.Owner, purchaser.AbbreviateName)
            {
                Rebate = deduction.Purchaser,
                OperatorAccount = employee.UserName,
                OperatorName = employee.Name,
                ProducedTime = DateTime.Now
            });
        }
コード例 #4
0
        public void ProduceOrderTest()
        {
            var flight = new MockX <FlightView>();

            flight.SetupAllProperties();
            MockOption.SetReturnsDefault(flight.Object);
            MockOption.SetReturnsDefault <IEnumerable <FlightView> >(new List <FlightView>()
            {
                flight.Object, flight.Object, flight.Object
            });
            var passenger = new MockX <PassengerView>();

            passenger.SetupAllProperties();
            MockOption.SetReturnsDefault(passenger.Object);
            MockOption.SetReturnsDefault <IEnumerable <PassengerView> >(new List <PassengerView>()
            {
                passenger.Object, passenger.Object, passenger.Object
            });
            var contract = new MockX <Contact>();

            contract.SetupAllProperties();
            MockOption.SetReturnsDefault(contract.Object);

            var role = new MockX <PermissionRoleInfo>();

            role.SetupAllProperties();
            MockOption.SetReturnsDefault(role);
            MockOption.SetReturnsDefault <IEnumerable <PermissionRoleInfo> >(new List <PermissionRoleInfo>()
            {
                role.Object, role.Object
            });


            var ovP = new MockX <OrderView>();

            ovP.SetupAllProperties();
            var emp = new MockX <EmployeeDetailInfo>();

            emp.SetupAllProperties();

            OrderView          orderView = ovP.Object;
            Guid               publisher = new Guid("74ae6725-654e-444f-abcc-29b1568db845");
            Guid               policy    = new Guid(); // TODO: 初始化为适当的值
            EmployeeDetailInfo employee  = emp.Object;
            Order              expected  = null;       // TODO: 初始化为适当的值
            Order              actual;

            actual = OrderProcessService.ProduceOrder(orderView, publisher, policy, employee);
            Assert.AreNotEqual(expected, actual);
        }
コード例 #5
0
        EmployeeDetailInfo queryEmployee(DbOperator dbOperator, string condition)
        {
            EmployeeDetailInfo result = null;
            var sql = @"SELECT Id,[Owner],Name,[Gender],[Login],[Password],[Cellphone],[OfficePhone],[Email],[Enabled],[Remark],[IsAdministrator]," +
                      "[LastLoginTime],[LastLoginIP],[LastLoginLocation],[CreateTime],[IpLimitation] FROM dbo.T_Employee WHERE " + condition;

            using (var reader = dbOperator.ExecuteReader(sql)) {
                if (reader.Read())
                {
                    result = new EmployeeDetailInfo {
                        Id                = reader.GetGuid(0),
                        Owner             = reader.GetGuid(1),
                        Name              = reader.GetString(2),
                        Gender            = (Common.Enums.Gender)reader.GetByte(3),
                        UserName          = reader.GetString(4),
                        UserPassword      = reader.GetString(5),
                        ConfirmPassword   = reader.GetString(5),
                        Cellphone         = reader.IsDBNull(6) ? string.Empty : reader.GetString(6),
                        OfficePhone       = reader.IsDBNull(7) ? string.Empty : reader.GetString(7),
                        Email             = reader.IsDBNull(8) ? string.Empty : reader.GetString(8),
                        Enabled           = reader.GetBoolean(9),
                        Remark            = reader.IsDBNull(10) ? string.Empty : reader.GetString(10),
                        IsAdministrator   = reader.GetBoolean(11),
                        LastLoginIP       = reader.IsDBNull(13) ? string.Empty : reader.GetString(13),
                        LastLoginLocation = reader.IsDBNull(14) ? string.Empty : reader.GetString(14),
                        CreateTime        = reader.GetDateTime(15),
                        IpLimitation      = reader.IsDBNull(16)?string.Empty:reader.GetString(16)
                    };
                    if (!reader.IsDBNull(12))
                    {
                        result.LastLoginTime = reader.GetDateTime(12);
                    }
                }
            }
            return(result);
        }
コード例 #6
0
        internal static Order NewOrder(OrderView orderView, MatchedPolicy matchedPolicy, EmployeeDetailInfo employee, bool forbidChnagePnr, Guid oemid, AuthenticationChoise choise = AuthenticationChoise.NoNeedAUTH)
        {
            if (!orderView.Flights.Any())
            {
                throw new ArgumentNullException("orderView", "缺少航段信息");
            }
            if (!orderView.Passengers.Any())
            {
                throw new ArgumentNullException("orderView", "缺少乘机人信息");
            }
            if (matchedPolicy == null)
            {
                throw new CustomException("无相关政策信息");
            }

            var result = new Order {
                Contact          = orderView.Contact,
                ReservationPNR   = PNRPair.IsNullOrEmpty(orderView.PNR) ? null : orderView.PNR,
                IsReduce         = orderView.IsReduce,
                IsTeam           = orderView.IsTeam,
                AssociateOrderId = orderView.AssociateOrderId,
                AssociatePNR     = orderView.AssociatePNR,
                Source           = orderView.Source,
                Choise           = choise,
                CustomNo         = matchedPolicy.OriginalPolicy == null ? string.Empty : matchedPolicy.OriginalPolicy.CustomCode,
                VisibleRole      = OrderRole.Platform | OrderRole.Purchaser,
                IsB3BOrder       = true,
                ForbidChangPNR   = forbidChnagePnr,
                NeedAUTH         = matchedPolicy.OriginalPolicy == null ? matchedPolicy.NeedAUTH : matchedPolicy.OriginalPolicy.NeedAUTH
            };

            if (oemid != Guid.Empty)
            {
                result.OEMID = oemid;
            }
            var deduction      = Deduction.GetDeduction(matchedPolicy);
            var product        = ProductInfo.GetProductInfo(matchedPolicy);
            var specialProduct = product as SpeicalProductInfo;

            if (specialProduct != null && !hasETDZPermission(matchedPolicy.Provider, specialProduct))
            {
                result.Supplier = getSupplierInfo(matchedPolicy, specialProduct);
            }
            else
            {
                result.Provider = getProvider(matchedPolicy, product);
            }
            result.IsCustomerResource = ProductInfo.IsCustomerResource(matchedPolicy);
            result.IsStandby          = ProductInfo.IsStandby(matchedPolicy);
            result.Purchaser          = getPurchaserInfo(employee, deduction);
            var pnrInfo = PNRInfo.GetPNRInfo(orderView, matchedPolicy);

            result.AddPNRInfo(pnrInfo);
            result.TripType = pnrInfo.TripType;
            result.Status   = result.RequireConfirm ? OrderStatus.Applied : OrderStatus.Ordered;
            if (result.Status == OrderStatus.Applied)
            {
                result.VisibleRole |= result.IsThirdRelation ? OrderRole.Supplier : OrderRole.Provider;
            }
            return(result);
        }
コード例 #7
0
 /// <summary>
 /// 兑换商品
 /// </summary>
 public static void ExChangeCommodity(Guid id, int exChangeNum, CompanyDetailInfo compnay, EmployeeDetailInfo accountinfo, OEMCommodityState stata, string domainName, Guid?oemid)
 {
     using (var cmd = Factory.CreateCommand())
     {
         var           reposity      = Factory.CreateIntegralReposity(cmd);
         CommodityView commodityview = reposity.GetCommodity(id);
         if (commodityview.ValidityTime.Date < DateTime.Now.Date)
         {
             throw new Exception("该商品上架时间已经到期,不能兑换!");
         }
         if (!commodityview.State)
         {
             throw new Exception("该商品未启用,不能兑换!");
         }
         if (commodityview.SurplusNumber == 0)
         {
             throw new Exception("该商品已经兑换完毕,不能兑换!");
         }
         if (commodityview.SurplusNumber < exChangeNum)
         {
             throw new Exception("该商品库存不足,不能兑换!");
         }
         if (commodityview.NeedIntegral > 0)
         {
             IntegralParameterView paraemter = IntegralServer.GetIntegralParameter();
             IntegralCount         counts    = IntegralServer.GetIntegralByAccountIdZong(compnay.CompanyId);
             if (counts == null)
             {
                 throw new Exception("积分不够,暂不能兑换该商品!");
             }
             if (counts.IntegralAvailable < commodityview.NeedIntegral * exChangeNum)
             {
                 throw new Exception("积分不够,暂不能兑换该商品!");
             }
         }
         commodityview.SurplusNumber  = commodityview.SurplusNumber - exChangeNum;
         commodityview.ExchangeNumber = commodityview.ExchangeNumber + exChangeNum;
         cmd.BeginTransaction();
         try
         {
             reposity.Update(commodityview);
             var consumtion = new IntegralConsumption
             {
                 CompnayId        = compnay.CompanyId,
                 CompanyShortName = compnay.AbbreviateName,
                 AccountName      = accountinfo.Name,
                 AccountNo        = accountinfo.UserName,
                 AccountPhone     = compnay.ContactPhone,
                 DeliveryAddress  = commodityview.Type == CommodityType.Entity ? compnay.Address : "",
                 CommodityCount   = exChangeNum,
                 CommodityId      = commodityview.ID,
                 CommodityName    = commodityview.CommodityName,
                 Exchange         = commodityview.Type == CommodityType.Entity ? ExchangeState.Processing : ExchangeState.Success,
                 ExchangeTiem     = DateTime.Now,
                 ExpressCompany   = "",
                 ExpressDelivery  = "",
                 Reason           = "",
                 Remark           = commodityview.CommodityName,
                 Way = commodityview.Type == CommodityType.Entity ? IntegralWay.Exchange : IntegralWay.ExchangeSms,
                 ConsumptionIntegral = commodityview.NeedIntegral * exChangeNum,
                 OEMCommodityState   = commodityview.Type == CommodityType.SMS ? OEMCommodityState.Success : stata,
                 OEMName             = domainName,
                 OEMID = oemid
             };
             IntegralServer.InsertIntegralConsumption(consumtion);
             IntegralServer.UpdateIntegralCountByConsumption(0 - consumtion.ConsumptionIntegral, accountinfo.Owner);
             cmd.CommitTransaction();
         }
         catch (Exception)
         {
             cmd.RollbackTransaction();
             throw;
         }
         if (commodityview.Type == CommodityType.SMS)
         {
             var acc = from item in AccountService.Query(compnay.CompanyId)
                       where item.Type == Common.Enums.AccountType.Payment
                       select new { No = item.No };
             SMSOrderService.ExChangeSms(compnay.CompanyId, commodityview.NeedIntegral, exChangeNum, commodityview.ExchangSmsNumber, acc.First().No);
         }
     }
 }
コード例 #8
0
ファイル: ReturnStringUtility.cs プロジェクト: 842549829/Pool
        public static bool Lock(decimal key, Service.Locker.LockRole lockRole, CompanyDetailInfo company, EmployeeDetailInfo employee, string remark, out string errorMsg)
        {
            var lockInfo = new Service.Locker.LockInfo(key.ToString())
            {
                LockRole    = lockRole,
                Company     = company.CompanyId,
                CompanyName = company.AbbreviateName,
                Account     = employee.UserName,
                Name        = employee.Name,
                Remark      = remark
            };

            return(Service.LockService.Lock(lockInfo, out errorMsg));
        }
コード例 #9
0
ファイル: ReturnStringUtility.cs プロジェクト: 842549829/Pool
 public static void releaseLock(decimal orderId, CompanyDetailInfo company, EmployeeDetailInfo employee)
 {
     Service.LockService.UnLock(orderId.ToString(), employee.UserName);
 }
コード例 #10
0
        public PNRPair ReserveSeat(IEnumerable <FlightView> flights, IEnumerable <PassengerView> passengers, EmployeeDetailInfo employee, CompanyDetailInfo company)
        {
            PassengerType passengerType   = passengers.First().PassengerType;
            var           reservationInfo = new ReservationInfo
            {
                AgentPhoneNumber = SystemParamService.ContactInPNR,
                Segements        = flights.Select(f => new ReservationSegmentInfo
                {
                    Carrier              = f.AirlineCode,
                    InternalNumber       = f.FlightNo,
                    ClassOfService       = f.BunkCode,
                    Date                 = f.Departure.Time,
                    DepartureAirportCode = f.Departure.Code,
                    ArrivalAirportCode   = f.Arrival.Code,
                }).ToList(),
                Passengers = passengers.Select(p => new ReservationPassengerInfo
                {
                    Name = p.Name,
                    Type = p.PassengerType,
                    CertificateNumber = p.Credentials,
                    CertificateType   = p.CredentialsType,
                    MobilephoneNumber = p.Phone,
                    Birthday          = p.BirthDay
                }).ToList(),
            };
            ExecuteResult <ReservedPnr> execResult = CommandService.ReserveTickets(reservationInfo, Guid.Empty);

            if (execResult.Success)
            {
                PNRPair pnrCode = execResult.Result.PnrPair;
                var     opLog   = new OperationLog(OperationModule.其他, OperationType.Else, employee.UserName,
                                                   OperatorRole.Purchaser, "订座记录", string.Format("PNR:{0}\n组织结构名称:{1}\n管理员帐号:{2}\n操作人:{3}\nIP:{4}\n乘机人:{5}\n航班信息:{6}",
                                                                                                 pnrCode.ToListString("|"), company.CompanyName, company.UserName, employee.UserName,
                                                                                                 IPAddressLocator.GetRequestIP(HttpContext.Current.Request),
                                                                                                 passengers.Select(p => p.Name + "_" + p.CredentialsType.ToString() + "_" + p.Credentials + "_" + p.Phone).Join("|"),
                                                                                                 flights.Select(p => p.AirlineCode + p.FlightNo + "_" + p.BunkCode + "_" + p.Departure.Time).Join("|")));
                LogService.SaveOperationLog(opLog);
                CommandService.ValidatePNR(execResult.Result, passengerType);

                return(execResult.Result.PnrPair);
            }
            else
            {
                throw new CustomException("订座失败");
            }
        }