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'"); }
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); } }
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 }); }
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); }
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); }
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); }
/// <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); } } }
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)); }
public static void releaseLock(decimal orderId, CompanyDetailInfo company, EmployeeDetailInfo employee) { Service.LockService.UnLock(orderId.ToString(), employee.UserName); }
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("订座失败"); } }