protected override void registTags() { tags = new HashObject( new string[] { "DenseRank", "RowCount" }, new string[] { (queryParams.GetValue<string>(PageTag.DENSE_RANK) == "1") ? "Dense_Rank()" : "Row_Number()", PageTag.ROWNO }); }
public static String getSQL(string sql) { IHashObject queryParams = new HashObject(); CommonSQLMaker maker = new CommonSQLMaker(queryParams, sql); maker.setOriginalSQL(sql); maker.setTestParams(); return maker.getSQL(false); }
/** * 从baseSql抽取系统参数及用户参数 * 用户参数:{ParamName} * 系统参数:{-ParamName-} **/ public void getAllParams(string baseSql, out List<string> userParams, out List<string> sysParams, out IHashObject defaultValue) { userParams = new List<string>(); sysParams = new List<string>(); defaultValue = new HashObject(); string s = baseSql; string[] ss = s.Split('}'); string[] arry = new string[ss.Length - 1]; string param = "", value = ""; int index = -1; for (int i = 0; i < ss.Length - 1; i++) { if (ss[i].IndexOf("{-") > 0) { arry[i] = ss[i].Substring(ss[i].IndexOf("{-") + 2, ss[i].Length - ss[i].IndexOf("{-")-3); param = arry[i]; index = arry[i].IndexOf("="); if (index >= 0) { value = param.Substring(index+1); param = param.Substring(0, index); defaultValue.Add(param, value); } else { if (!sysParams.Contains(param)) sysParams.Add(arry[i]); } } else { arry[i] = ss[i].Substring(ss[i].IndexOf("{") + 1, ss[i].Length - ss[i].IndexOf("{")-1); param = arry[i]; index = arry[i].IndexOf("="); if (index >= 0) { value = param.Substring(index+1); param = param.Substring(0, index); defaultValue.Add(param, value); } else { if (!userParams.Contains(param)) userParams.Add(arry[i]); } } } }
/// <summary> /// 高性能基础数据分页 /// </summary> /// <param name="TotalCount">输出查询条件查出来的总记录数</param> /// <param name="PageSize">分页大小</param> /// <param name="PageIndex">当前页</param> /// <param name="Fileds">筛选字段 默认*表示所有字段</param> /// <param name="strWhere">查询条件</param> /// <param name="OrderStr">排序字符串 如[a desc]</param> /// <returns></returns> public List <T> GetBasePager1(out int TotalCount, int PageSize, int PageIndex, string Fileds, string strWhere, string OrderStr) { List <T> list = null; TotalCount = 0; IHashObject InputParam = new HashObject(); IHashObject outputParam = new HashObject(); if (string.IsNullOrEmpty(OrderStr)) { OrderStr = string.Format(" {0} desc", this.m_PrimaryFiledKey); } else { if (OrderStr != "" && !OrderStr.Trim().ToLower().StartsWith("order by")) { OrderStr = OrderStr.ToLower().Replace("order by", " "); } } InputParam.Add("PageIndex", PageIndex); InputParam.Add("pageSize", PageSize); InputParam.Add("tableName", typeof(T).Name); InputParam.Add("selFields", string.IsNullOrEmpty(Fileds) ? "*" : Fileds); InputParam.Add("SqlWhere", string.IsNullOrEmpty(strWhere) ? "" : strWhere); InputParam.Add("SortOrder", OrderStr); InputParam.Add("PrimaryKey", this.m_PrimaryFiledKey); InputParam.Add("GroupBy", ""); InputParam.Add("PageTotal", 0); using (DbHelper db = new DbHelper(DbControl.GetDbConnStringBasic(DbHandleBehaviorDefine.SELECT, 0))) { DataTable dt = db.ExecuteProcedureAndOutputParameter("Proc_NewPage", out outputParam, InputParam); TotalCount = outputParam.GetValue <int>("PageTotal"); list = MappingHelper <T> .FillModelList(dt); } return(list); }
/// <summary> /// 票号状态是否为Open for Use 状态 true为Open for Use 否则不是 /// </summary> /// <param name="TicketNumber"></param> /// <param name="Office"></param> /// <returns></returns> private bool PassengerTicketIsOpen(List <HashObject> pasList, List <HashObject> skyList, SendInsManage SendIns, out string errMsg) { bool IsOpen = false; errMsg = ""; //第一航段 HashObject skyParam = skyList[0]; StringBuilder sbLog = new StringBuilder(); //格式化pnr类 PnrAnalysis.FormatPNR format = new PnrAnalysis.FormatPNR(); string TicketNumber = "", Office = "", Status = "", PassengerName = "", FlyDate = ""; bool IsSuc = false; if (pasList != null && pasList.Count > 0) { foreach (HashObject param in pasList) { if (param.Count == 9 && param["IsChecked"].ToString() == "1") { PassengerName = param["pasName"].ToString().Trim(); //乘机人姓名 TicketNumber = param["pasTicketNum"].ToString().Trim(); //票号 Office = param["office"].ToString().Trim(); //Office FlyDate = skyParam["FromDate"].ToString().Trim(); //乘机日期 if (TicketNumber == "") { continue; } //提取票号信息指令组合 string strInstruction = string.Format("DETR:TN/{0}", TicketNumber); //发送指令 string recvData = SendIns.Send(strInstruction, ref Office, 0); if ((recvData.ToUpper().Contains("NOT EXIST") || recvData.ToUpper().Contains("TICKET NUMBER") || recvData.ToUpper().Contains("NOT FOUND") || recvData.ToUpper().Contains("AUTHORITY") || recvData.ToUpper().Contains("没有权限")) && FlyDate != "") { //检查乘机日期 DateTime dt1 = System.DateTime.Parse("1901-01-01"); DateTime.TryParse(FlyDate, out dt1); if (DateTime.Compare(dt1, System.DateTime.Now) < 0) { //乘机日期已过期 不能提交 IsSuc = true; sbLog.AppendFormat("乘机人{0}票号{1}乘机日期已过期,不能提交申请退废票!", PassengerName, TicketNumber); break; } else { continue; } } //票号状态 Status = format.GetTicketStatus(recvData); if (Status.ToUpper() != "OPEN FOR USE") { IsSuc = true; if (Status == "") { sbLog.AppendFormat("乘机人{0}票号{1}为无效票号,不能提交申请退废票!", PassengerName, TicketNumber); } else { sbLog.AppendFormat("乘机人{0}票号({1})状态为{2},不能提交申请退废票!", PassengerName, TicketNumber, Status); } break; } } } if (!IsSuc) { IsOpen = true; } errMsg = sbLog.ToString(); } return(IsOpen); }
private static IEnumerable <ITestCaseData> HashCodeTestCases() { object first = Lists.AsList(1, 2, 3, 4); object second = Lists.AsList(1, 2, 3, 4); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for lists with exact elements") .Returns(true)); first = Lists.AsList(Lists.AsList("A", "B", "C"), Lists.AsList("C", "D"), Lists.EmptyList <string>()); second = Lists.AsList(Lists.AsList("A", "B", "C"), Lists.AsList("C", "D"), Lists.EmptyList <string>()); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for nested lists with exact elements") .Returns(true)); first = Lists.AsList(Lists.AsList("A", "B", "C"), Lists.AsList("C", "D"), Lists.EmptyList <string>()); second = Lists.AsList(Lists.AsList("A", "B", "C"), Lists.AsList("C", "D"), Lists.AsList("X")); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes for nested lists with different elements") .Returns(false)); first = new object[] { "A", 3, new DateTime(2015, 6, 9, 0, 0, 0) }; second = new object[] { "A", 3, new DateTime(2015, 6, 9, 0, 0, 0) }; yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for arrays with exact elements") .Returns(true)); first = Lists.AsList(1, 2, 3, 4); second = Lists.AsList(1, 2, 4, 3); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes for lists with different elements order") .Returns(false)); first = Lists.AsList(1, 2, 3, 4); second = Lists.AsList(1, 2, 3); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes for lists with different elements count") .Returns(false)); first = Lists.EmptyList <string>(); second = Lists.AsList("A"); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes for empty list and not empty list") .Returns(false)); first = "test"; second = "test"; yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for same strings") .Returns(true)); first = 5; second = 5; yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for same ints") .Returns(true)); first = Dictionaries.Create(1, "A", 2, "B"); second = Dictionaries.Create(1, "A", 2, "B"); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for same dictionaries") .Returns(true)); first = Dictionaries.Create(1, "A", 2, "B"); second = Dictionaries.Create(3, "C", 4, "D"); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes for different dictionaries") .Returns(false)); first = Dictionaries.Create(1, "A", 2, "B"); second = Dictionaries.Create(1, "A"); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes for different dictionaries sizes") .Returns(false)); first = new HashObject(5); second = new HashObject(5); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes using GetHashCode implementation") .Returns(true)); first = new HashObject(5); second = new HashObject(1); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes using GetHashCode implementation") .Returns(false)); first = Lists.AsList(new HashObject(1), new HashObject(2), new HashObject(3)); second = Lists.AsList(new HashObject(1), new HashObject(2), new HashObject(3)); yield return(new TestCaseData(first, second) .SetName("Should generate same hash codes using GetHashCode implementation for list items") .Returns(true)); first = Lists.AsList(new HashObject(1), new HashObject(2), new HashObject(3)); second = Lists.AsList(new HashObject(3), new HashObject(2), new HashObject(1)); yield return(new TestCaseData(first, second) .SetName("Should generate different hash codes using GetHashCode implementation for list items") .Returns(false)); yield return(new TestCaseData(null, null) .SetName("Should generate same hash codes for nulls") .Returns(true)); first = new object(); yield return(new TestCaseData(first, null) .SetName("Should generate different hash codes for null and object") .Returns(false)); }
/// <summary> /// 添加pos机 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnBind_Click(object sender, EventArgs e) { string msg = ""; try { List <User_Employees> list = baseDataManage.CallMethod("User_Employees", "GetList", null, new Object[] { "CpyNo='" + ddlGYList.Value.Split('-')[0].ToString() + "'" }) as List <User_Employees>; IHashObject parameter = new HashObject(); if (list != null && list.Count > 0) { parameter.Add("CpyLoginName", list[0].LoginName); } parameter.Add("CpyNo", ddlGYList.Value.Split('-')[0].ToString()); parameter.Add("CpyName", ddlGYList.Text.Split('-')[1].ToString()); parameter.Add("CpyType", ddlGYList.Value.Split('-')[1].ToString()); parameter.Add("OperTime", Convert.ToDateTime(DateTime.Now)); parameter.Add("OperCpyNo", mCompany.UninCode); parameter.Add("OperCpyName", mCompany.UninAllName); parameter.Add("OperLoginName", mUser.LoginName); parameter.Add("OperUserName", mUser.UserName); parameter.Add("PosMode", int.Parse(ddltype.SelectedValue)); parameter.Add("PosNo", txtTerminalNo.Text.Trim()); parameter.Add("PosRate", txtfeil.Text); Log_Operation logoper = new Log_Operation(); logoper.ModuleName = "pos机管理"; logoper.LoginName = mUser.LoginName; logoper.UserName = mUser.UserName; logoper.CreateTime = Convert.ToDateTime(DateTime.Now); logoper.CpyNo = mCompany.UninCode; if (ViewState["Id"] != null) { #region 修改 parameter.Add("id", ViewState["Id"].ToString()); if ((bool)baseDataManage.CallMethod("Tb_PosInfo", "Update", null, new object[] { parameter })) { msg = "更新成功"; #region 操作日志 logoper.OperateType = "修改Pos机"; logoper.OptContent = "id:" + ViewState["Id"].ToString() + ",Pos编号:" + txtTerminalNo.Text.Trim() + ",Pos类型:" + ddltype.SelectedValue + ",Pos费率:" + txtfeil.Text; new PbProject.Logic.Log.Log_OperationBLL().InsertLog_Operation(logoper); #endregion } else { msg = "更新失败"; } #endregion } else { #region 添加 List <Tb_PosInfo> listpos = baseDataManage.CallMethod("Tb_PosInfo", "GetList", null, new Object[] { "PosNo='" + txtTerminalNo.Text + "'" }) as List <Tb_PosInfo>; if (listpos.Count > 0) { msg = "此pos机已存在"; } else { if ((bool)baseDataManage.CallMethod("Tb_PosInfo", "Insert", null, new Object[] { parameter })) { msg = "添加成功"; #region 操作日志 logoper.OperateType = "添加Pos机"; logoper.OptContent = "Pos编号:" + txtTerminalNo.Text.Trim() + ",Pos类型:" + ddltype.SelectedValue + ",Pos费率:" + txtfeil.Text; new PbProject.Logic.Log.Log_OperationBLL().InsertLog_Operation(logoper); #endregion } else { msg = "添加失败"; } } #endregion } } catch (Exception ex) { msg = "操作异常,商家和pos机类型必选"; Log_Error logerror = new Log_Error(); logerror.CpyNo = mCompany.UninCode; logerror.DevName = "xw"; logerror.ErrorContent = ex.Message; logerror.LoginName = mUser.LoginName; logerror.Page = "PosEdit"; new PbProject.Logic.Log.Log_ErrorBLL().InsertLog_Error(logerror); Bind(); } ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('" + msg + "');", true); Bind(); }
/// <summary> /// 获取指令数据 /// </summary> /// <param name="SendIns"></param> /// <param name="Office"></param> /// <param name="cpyNo">公司编号</param> /// <returns></returns> public string GetData(string SendIns, string Office, string cpyNo, string Other) { string recvData = string.Empty; try { ConfigParam CP = null; if (!string.IsNullOrEmpty(Other)) { string[] strArr = Other.Split(new string[] { "@@@@" }, StringSplitOptions.None); string strHeiPingCanShu = strHeiPingCanShu = strArr[0]; string strDaPeiZhiCanShu = strArr[1]; CP = GetConfigParam(strHeiPingCanShu, strHeiPingCanShu); } if (string.IsNullOrEmpty(SendIns)) { recvData = "发送指令为空"; return(recvData); } if (CP == null) { recvData = "参数错误"; return(recvData); } IHashObject param = new HashObject(); string sqlWhere = string.Format("UninCode='{0}' and RoleType in(2,3) ", cpyNo); User_Company m_Company = null; List <User_Company> CompanyList = baseDataManage.CallMethod("User_Company", "GetList", null, new object[] { sqlWhere }) as List <User_Company>; if (CompanyList != null && CompanyList.Count > 0) { //该公司实体 m_Company = CompanyList[0]; //该公司参数表信息 List <Bd_Base_Parameters> db_param = baseDataManage.CallMethod("Bd_Base_Parameters", "GetList", null, new object[] { "CpyNo='" + cpyNo + "'" }) as List <Bd_Base_Parameters>; string Mark = BaseParams.getParams(db_param).KongZhiXiTong; string bigIP = "127.0.0.1", bigPort = "391", BigOffice = ""; string IP = "127.0.0.1", Port = "391"; Tb_SendInsData sendins = new Tb_SendInsData(); sendins.SendInsType = 11; //标识为控台系统发送的指令 sendins.UserAccount = mUser != null ? mUser.LoginName : "控台管理员"; sendins.CpyNo = mUser != null ? mUser.CpyNo : "控台管理员"; //查找白屏预订Pid的IP地址 IP = CP.WhiteScreenIP; //查找白屏预订Pid的端口 Port = CP.WhiteScreenPort; //查找大配置IP bigIP = CP.BigCfgIP; //查找大配置Port bigPort = CP.BigCfgPort; //查找大配置Office BigOffice = CP.BigCfgOffice; //使用的IP 端口 Office string ServerIP = ""; int ServerPort = 0; //是否开启大配置 bool IsUseBigConfig = Mark.Contains("|39|"); //是有使用新的PID bool IsUseNewPid = Mark.Contains("|48|"); if (IsUseBigConfig) { //大配置 int _Port = 451; int.TryParse(bigPort, out _Port); ServerIP = bigIP; ServerPort = _Port; //大配置Office Office = BigOffice; } else { int.TryParse(Port, out ServerPort); ServerIP = IP; } string[] OfficeNum = null; string tempOffice = CP.Office;//GetValue("office", db_param); if (Office == "") { //空台设置的Office OfficeNum = tempOffice.Split(new string[] { "|", " ", "/", ",", ",", "\\", "#", "^" }, StringSplitOptions.RemoveEmptyEntries); } else { //空台设置的Office OfficeNum = Office.Split(new string[] { "|", " ", "/", ",", ",", "\\", "#", "^" }, StringSplitOptions.RemoveEmptyEntries); } ///使用新的PID if (IsUseNewPid) { //DataModel.A2 = "新的PID"; // WebManage.ServerIp = ServerIP; // WebManage.ServerPort = ServerPort; ParamObject Pm = new ParamObject(); Pm.ServerIP = ServerIP; Pm.ServerPort = ServerPort; bool IsPn = false;//是否PN string patternPnr = @"\s*(?<=rt|\(eas\)rt|rtx/|\(eas\)rtx/)(?=\w{6})\s*"; Match mch = Regex.Match(SendIns, patternPnr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase); if (mch.Success) { IsPn = true; } SendIns = SendIns.ToLower().StartsWith("ig|") ? SendIns.Trim().Substring(2) : SendIns; if (Office != "" && Office.IndexOf("|") == -1) { //发送指令数据 SendIns = SendIns.Replace("\n", "").Replace("\r", "^"); //去掉ig SendIns = SendIns.ToLower().StartsWith("ig|") ? SendIns.Trim().Substring(3).ToLower() : SendIns.ToLower(); sendins.SendIns = SendIns; sendins.Office = Office; sendins.ServerIPAndPort = ServerIP + ":" + ServerPort; sendins.SendTime = System.DateTime.Now; Pm.code = SendIns; Pm.IsPn = IsPn; Pm.Office = Office; recvData = SendNewPID.SendCommand(Pm); //recvData = WebManage.SendCommand(SendIns, Office, IsPn, false, ServerIP, ServerPort); sendins.RecvTime = System.DateTime.Now; if (recvData == null) { recvData = ""; } recvData = recvData.Replace("^", "\r"); sendins.RecvData = recvData; //添加日志 AddLog(sendins); } if (recvData.Contains("授权") || Office == "") { foreach (string _Office in OfficeNum) { if (_Office.ToLower() != Office.ToLower()) { Office = _Office.ToLower(); //发送指令数据 SendIns = SendIns.Replace("\n", "").Replace("\r", "^"); //去掉ig SendIns = SendIns.ToLower().StartsWith("ig|") ? SendIns.Trim().Substring(3).ToLower() : SendIns.ToLower(); sendins.SendIns = SendIns; sendins.Office = Office; sendins.ServerIPAndPort = ServerIP + ":" + ServerPort; sendins.SendTime = System.DateTime.Now; Pm.code = SendIns; Pm.IsPn = IsPn; Pm.Office = Office; recvData = SendNewPID.SendCommand(Pm); //recvData = WebManage.SendCommand(SendIns, _Office, IsPn, false, ServerIP, ServerPort); sendins.RecvTime = System.DateTime.Now; if (recvData == null) { recvData = ""; } recvData = recvData.Replace("^", "\r"); sendins.RecvData = recvData; //添加日志 AddLog(sendins); } if (!recvData.Contains("授权")) { break; } } } } else { Office = (Office == "" ? "" : "&" + Office.TrimEnd('$').Trim() + "$") + "#1"; ECParam ecParam = new ECParam(); ecParam.ECIP = ServerIP; ecParam.ECPort = ServerPort.ToString(); //ecParam.PID = supModel.PId; //ecParam.KeyNo = supModel.KeyNo; ecParam.UserName = mUser == null ? "控台管理员" : mUser.UserName; SendEC sendec = new SendEC(ecParam); if (Office != "") { //发送指令数据 //logPnr.SSContent = "[EC:" + ServerIP + ":" + ServerPort + "|" + Office + "]" + SendIns + Office; sendins.Office = Office; sendins.ServerIPAndPort = ServerIP + ":" + ServerPort; sendins.SendTime = System.DateTime.Now; sendins.SendIns = SendIns + Office; recvData = sendec.SendData(SendIns + Office, out recvData); sendins.RecvData = recvData; sendins.RecvTime = System.DateTime.Now; // logPnr.ResultContent = recvData; //添加日志 AddLog(sendins); } if (recvData.Contains("授权") || Office == "" || Office == "#1") { tempOffice = ""; foreach (string _Office in OfficeNum) { if (_Office.ToLower() != Office.ToLower()) { tempOffice = (_Office == "" ? "" : "&" + _Office.TrimEnd('$').Trim() + "$") + "#1"; //logPnr.SSContent = "[EC:" + ServerIP + ":" + ServerPort + "|" + Office + "]" + SendIns + Office; //发送指令数据 sendins.SendIns = SendIns + Office; sendins.Office = _Office; sendins.ServerIPAndPort = ServerIP + ":" + ServerPort; sendins.SendTime = System.DateTime.Now; recvData = sendec.SendData(SendIns + tempOffice, out recvData); sendins.RecvData = recvData; sendins.RecvTime = System.DateTime.Now; // logPnr.ResultContent = recvData; //添加日志 AddLog(sendins); } if (!recvData.Contains("授权")) { break; } } } } } else { recvData = "该供应商不存在"; return(recvData); } } catch (Exception ex) { recvData = System.DateTime.Now + ":" + ex.Message + "|" + ex.StackTrace.ToString(); } return(escape(recvData)); }
public static void Init() { JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance(); socket.On(Socket.EVENT_CONNECT, () => { IsConnected = true; Data data = new Data("server"); data.comefrom = "net"; socket.Emit("login", serializer.Serialize(data)); }); socket.On("postDataRequest", (data) => { HashObject hash = serializer.Deserialize <HashObject>(data.ToString()); SendMsg nmsg = new SendMsg("server"); nmsg.comefrom = "net"; nmsg.touid = hash.GetValue <string>("fuid"); ulong key = Cuid.NewCuid(); Counter counter = new Counter(); counter.All = hash.GetValue <ulong>("msg"); counter.Doned = 0; PostDataRequestList.Add(key, counter); nmsg.msg = key.ToString();//回传一个唯一标记 socket.Emit("postDataSure", serializer.Serialize(nmsg)); }); socket.On("consultationEnabledUpdate", (data) =>//咨询是否允许更新 { HashObject hash = serializer.Deserialize <HashObject>(data.ToString()); SendMsg nmsg = new SendMsg("server"); nmsg.comefrom = "net"; nmsg.touid = hash.GetValue <string>("fuid"); string key = hash.GetValue <string>("msg"); nmsg.msg = WebInterface.SureUpdateIds.Contains(key) ? "1" : "0"; WebInterface.SureUpdateIds.Remove(key); socket.Emit("sureEnabledUpdate", serializer.Serialize(nmsg)); //确认可以做什么操作 }); socket.On("getLoginToken", (data) => //客户端登录 { HashObject hash = serializer.Deserialize <HashObject>(data.ToString()); SendMsg nmsg = new SendMsg("server"); nmsg.comefrom = "net"; nmsg.touid = hash.GetValue <string>("fuid"); try { string key = Guid.NewGuid().ToString().Replace("-", ""); nmsg.msg = key; using (DbHelper db = AppUtils.CreateDbHelper()) { string sql = "insert into logintoken (`user`, `token`,updatedate) values(@user, @token,@updatedate) on duplicate key update `token` = values(`token`),`updatedate` = values(`updatedate`);"; db.AddParameter("user", hash.GetValue <string>("msg")); db.AddParameter("token", key); db.AddParameter("updatedate", DateTime.Now); db.ExecuteIntSQL(sql); } socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作 } catch (Exception e) { nmsg.msg = string.Format("Exception:{0}", e.Message); socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作 } }); socket.On("getDownDataToken", (data) => { HashObject hash = serializer.Deserialize <HashObject>(data.ToString()); SendMsg nmsg = new SendMsg("server"); nmsg.comefrom = "net"; nmsg.touid = hash.GetValue <string>("fuid"); try { string key = Guid.NewGuid().ToString().Replace("-", ""); nmsg.msg = key; string conditionMsg = hash.GetValue <string>("msg"); HashObject condition = serializer.Deserialize <HashObject>(conditionMsg); using (DbHelper db = AppUtils.CreateDbHelper()) { string sql = "insert into downtoken (`user`, `token`,getDate, `condition`) values(@user, @token,@getDate, @condition) on duplicate key update `token` = values(`token`),`getDate` = values(`getDate`),`condition` = values(`condition`);"; db.AddParameter("user", condition.GetValue <string>("user")); db.AddParameter("token", key); db.AddParameter("getDate", DateTime.Now); db.AddParameter("condition", conditionMsg); db.ExecuteIntSQL(sql); } socket.Emit("sendDownDataToken", serializer.Serialize(nmsg));//确认可以做什么操作 } catch (Exception e) { nmsg.msg = string.Format("Exception:{0}", e.Message); socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作 } }); IsConnected = false; }
/// <summary> /// 行程单操作 /// </summary> public void TripOpertion() { if (GetVal("OP", "") == "trip") { //0入库 1发放 string OpType = GetVal("OpType", "0"); string StartCode = GetVal("StartCode", "0"); string StartNum = GetVal("StartNum", "0"); string EndNum = GetVal("EndNum", "0"); string Office = GetVal("Office", ""); string IataCode = GetVal("IataCode", ""); string TicketCompany = GetVal("TicketCompany", ""); string OwnerCpyNo = GetVal("OwnerCpyNo", ""); string OwnerCpyName = GetVal("OwnerCpyName", ""); string UseCpyNo = GetVal("UseCpyNo", ""); string UseCpyName = GetVal("UseCpyName", ""); string AdultRemark = GetVal("AdultRemark", ""); string AppId = GetVal("AppId", ""); //操作员 string AddLoginName = GetVal("AddLoginName", ""); string AddUserName = GetVal("AddUserName", ""); int _startcode = 0, _start = 0, _end = 0; bool a = int.TryParse(StartCode, out _startcode); bool b = int.TryParse(StartNum, out _start); bool c = int.TryParse(EndNum, out _end); string ErrMsg = "0@@失败"; try { if (a && b && c) { if (_start > _end) { ErrMsg = "0@@行程单开始号段必须小于结束号段!"; } else { IHashObject InputParam = new HashObject(); InputParam.Add("OpType", OpType); InputParam.Add("StartCode", _startcode); InputParam.Add("startNum", _start); InputParam.Add("endNum", _end); InputParam.Add("Office", Office); InputParam.Add("IataCode", IataCode); InputParam.Add("TicketCompany", TicketCompany); InputParam.Add("OwnerCpyNo", OwnerCpyNo); InputParam.Add("OwnerCpyName", OwnerCpyName); InputParam.Add("UseCpyNo", UseCpyNo); InputParam.Add("UseCpyName", UseCpyName); InputParam.Add("AddLoginName", AddLoginName); InputParam.Add("AddUserName", AddUserName); InputParam.Add("TripStatus", (OpType == "0" ? 1 : 2));//1已入库,未分配 2已分配,未使用 int Issuc = (int)this.baseDataManage.CallMethod("Tb_TripDistribution", "ExecProcedureUpdate", null, new object[] { "ImportTrip", InputParam }); if (Issuc > 0) { if (OpType == "0") { ErrMsg = "1@@行程单入库成功!"; } else if (OpType == "1") { ErrMsg = "1@@行程发放成功!"; if (AppId != "") { IHashObject param = new HashObject(); param.Add("id", AppId); param.Add("AuditRemark", AdultRemark); param.Add("ApplyStatus", 4);//修改为行程单申请审核成功,未使用 param.Add("AuditDate", System.DateTime.Now); param.Add("AuditAccount", AddLoginName); param.Add("AuditUserName", AddUserName); param.Add("AuditCpyNo", OwnerCpyNo); param.Add("AuditCpyName", OwnerCpyName); bool IsSuc = (bool)this.baseDataManage.CallMethod("Tb_TripNumApply", "Update", null, new object[] { param }); if (!IsSuc) { ErrMsg = "1@@行程发放成功,审核失败!"; } } } } else { if (OpType == "0") { ErrMsg = "0@@行程单入库失败!"; } else if (OpType == "1") { if (Issuc == -1) { ErrMsg = "0@@行程发放失败!"; } else { ErrMsg = "0@@该号段还没有入库行程单号,请入库后再发放!"; } } } } } else { ErrMsg = "0@@行程单号段错误!"; } } catch (Exception ex) { DataBase.LogCommon.Log.Error(ErrMsg, ex); } finally { OutPut(ErrMsg); } } }
/// <summary> /// 记录操作日志 /// </summary> /// <param name="logOperation"></param> /// <returns></returns> public int InsertLog_Operation(Log_Operation logOperation) { #region 记录操作日志 int count = 0; try { IHashObject paramter = new HashObject(); if (!string.IsNullOrEmpty(logOperation.ModuleName)) { paramter.Add("ModuleName", logOperation.ModuleName); } if (!string.IsNullOrEmpty(logOperation.OperateType)) { paramter.Add("OperateType", logOperation.OperateType); } if (!string.IsNullOrEmpty(logOperation.LoginName)) { paramter.Add("LoginName", logOperation.LoginName); } if (!string.IsNullOrEmpty(logOperation.CpyNo)) { paramter.Add("CpyNo", logOperation.CpyNo); } if (!string.IsNullOrEmpty(logOperation.OptContent)) { paramter.Add("OptContent", logOperation.OptContent); } if (!string.IsNullOrEmpty(logOperation.UserName)) { paramter.Add("UserName", logOperation.UserName); } if (!string.IsNullOrEmpty(logOperation.OrderId)) { paramter.Add("OrderId", logOperation.OrderId); } paramter.Add("ClientIP", System.Web.HttpContext.Current.Request.UserHostAddress); paramter.Add("CreateTime", Convert.ToDateTime(DateTime.Now)); paramter.Add("A1", logOperation.A1); paramter.Add("A2", logOperation.A2); if (!string.IsNullOrEmpty(logOperation.A3)) { paramter.Add("A3", logOperation.A3); } if (!string.IsNullOrEmpty(logOperation.A3)) { paramter.Add("A4", logOperation.A3); } if (!string.IsNullOrEmpty(logOperation.A3)) { paramter.Add("A5", logOperation.A3); } count = Log_OperationDal.Insert(paramter); } catch (Exception ex) { PbProject.WebCommon.Log.Log.RecordLog("Log_OperationBLL", ex.Message, true, null); } return(count); #endregion }
/// <summary> /// 新的登录 /// </summary> /// <param name="LoginName">登录用户名</param> /// <param name="LoginPwd">登录密码</param> /// <param name="IsBool">登录用户名是否区分大小写</param> /// <param name="loginIp">浏览器或者客户端登录IP</param> /// <param name="table">输出数据表</param> /// <param name="ErrMsg">内部出错信息</param> /// <param name="Flags">参数扩展 参数1的值为1表示登录密码不用md5加密直接登录 /// 参数2的值表示登录来源1表示客户端软件 否则为浏览器 /// 参数3的值 不记录日志 /// </param> /// <returns></returns> public bool GetByName(string LoginName, string LoginPwd, bool IsBool, string loginIp, out DataTable[] table, out string ErrMsg, params int[] Flags) { bool LoginSuc = false; ErrMsg = ""; table = null; try { if (!string.IsNullOrEmpty(LoginName) && !string.IsNullOrEmpty(LoginPwd)) { string pwdMd5 = string.Empty; if (Flags != null && Flags.Length > 0 && Flags[0] == 1) { pwdMd5 = LoginPwd; } else { pwdMd5 = PbProject.WebCommon.Web.Cookie.SiteCookie.GetMD5(LoginPwd); } pwdMd5 = "a!d@m#i$n%c^d&p*b"; HashObject hashParam = new HashObject(); hashParam.Add("LoginName", LoginName); hashParam.Add("LoginPwd", pwdMd5); hashParam.Add("IsBool", IsBool ? 1 : 0);//1区分大小写 0不区分大小写 hashParam.Add("LoginIP", loginIp); table = baseDataManage.MulExecProc("UserLoginNew", hashParam); if (table == null || table.Length == 0) { ErrMsg = "登录失败"; } else if (table.Length == 1) { ErrMsg = table[0].Rows[0][0].ToString().Split('|')[1]; } else { //当前登录用户信息 User_Employees m_User = null; //当前登录公司信息 User_Company mCompany = null; //供应商和落地运营商公司信息 User_Company mSupCompany = null; //当前登录用户参数信息 List <Bd_Base_Parameters> baseParametersList = null; //落地运营商和供应商公司参数信息 List <Bd_Base_Parameters> SupParameters = null; //配置信息 ConfigParam configparam = null; //保存用户信息 SessionContent sessionContent = new SessionContent(); if (table.Length == 3 || table.Length == 5) { string parentUninCode = ""; if (table.Length == 5) { ErrMsg = "登录成功"; m_User = MappingHelper <User_Employees> .FillModel(table[0].Rows[0]); mCompany = MappingHelper <User_Company> .FillModel(table[1].Rows[0]); baseParametersList = MappingHelper <Bd_Base_Parameters> .FillModelList(table[2]); mSupCompany = MappingHelper <User_Company> .FillModel(table[3].Rows[0]); parentUninCode = mSupCompany.UninCode; //SupParameters = MappingHelper<Bd_Base_Parameters>.FillModelList(table[4]); //configparam = Bd_Base_ParametersBLL.GetConfigParam(SupParameters); HttpContext.Current.Application[mSupCompany.UninCode + "Company"] = mSupCompany; HttpContext.Current.Application[mSupCompany.UninCode + "Parameters"] = SupParameters; } else if (table.Length == 3) { //管理员 ErrMsg = "登录成功"; m_User = MappingHelper <User_Employees> .FillModel(table[0].Rows[0]); mCompany = MappingHelper <User_Company> .FillModel(table[1].Rows[0]); baseParametersList = MappingHelper <Bd_Base_Parameters> .FillModelList(table[2]); parentUninCode = mCompany.UninCode; } sessionContent.USER = m_User; // 用户信息 sessionContent.COMPANY = mCompany; // 公司信息 //sessionContent.SUPCOMPANY = mSupCompany;//供应商和落地运营商公司信息 sessionContent.BASEPARAMETERS = baseParametersList; //公司参数信息 //sessionContent.SupBASEPARAMETERS = SupParameters;//落地运营商和供应商公司参数信息 //sessionContent.CONFIGPARAM = configparam;//配置信息 sessionContent.parentCpyno = parentUninCode;//供应商和落地运营商公司的编号 PbProject.Logic.User.User_PermissionsBLL uPermissions = new PbProject.Logic.User.User_PermissionsBLL(); //当前登录用户权限 sessionContent.M_USERPERMISSIONS = uPermissions.GetById(m_User.DeptId); if (Flags == null || Flags.Length == 0 || (Flags.Length >= 2 && Flags[1] != 1)) { //HttpContext.Current.Session[m_User.id.ToString()] = sessionContent;//保存用户信息 HttpContext.Current.Session["Uid"] = m_User.id.ToString();//保存用户信息 HttpContext.Current.Application[m_User.id.ToString()] = sessionContent; PbProject.WebCommon.Web.Cookie.SiteCookie sitecookie = new PbProject.WebCommon.Web.Cookie.SiteCookie(); //单用户登录的验证码 string checkCode = Guid.NewGuid().ToString(); sitecookie.SaveCookie(m_User.id.ToString() + "oneUserLoginCookies", checkCode); HttpContext.Current.Application[m_User.id.ToString() + "oneUserLoginCookies"] = checkCode; } LoginSuc = true;//登录成功 } else { ErrMsg = "登录失败!"; } } } else { ErrMsg = "请输入账号或密码!"; } } catch (Exception ex) { ErrMsg = ex.Message; DataBase.LogCommon.Log.Error("Login.cs", ex); } finally { if (Flags != null && Flags.Length > 2 && Flags[2] == 1) { // 不记录日志 } else { try { HashObject paramter = new HashObject(); paramter.Add("id", Guid.NewGuid()); paramter.Add("LoginTime", DateTime.Now); paramter.Add("LoginAccount", LoginName); paramter.Add("LoginIp", loginIp); paramter.Add("LoginState", ErrMsg); baseDataManage.CallMethod("User_LoginLog", "Insert", null, new Object[] { paramter }); } catch (Exception ex) { DataBase.LogCommon.Log.Error("记录日志:Login.cs", ex); } } } return(LoginSuc); }
public object GetTaobaoRealPrice(string url, string refer, List <SkuMap> skuMaps) { string html = GetHtml(url, refer).ToString().Trim(); string flag = "onSibRequestSuccess("; string data = html.Substring(flag.Length).TrimEnd(';').TrimEnd(')'); if (!data.Contains("promoData")) { return(skuMaps); } JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance(); HashObject hash = serializer.Deserialize <HashObject>(data); string[] keys = { "data/deliveryFee/data/sendCity", "data/tradeContract/pay", "data/tradeContract/service", "data/couponActivity/coupon/couponList", "data/promotion/promoData", "data/dynStock/sku", "data/promotion/soldQuantity/soldTotalCount", "data/promotion/soldQuantity/confirmGoodsCount" }; var temp = hash.GetHashValue(keys); Goods goods = new Goods(); goods.SendCity = temp.GetDataEx <string>("sendCity"); goods.Pays = GetGoodsPayWay(temp.GetDataEx <ArrayList>("pay")); goods.Service = GetGoodsService(temp.GetDataEx <ArrayList>("service")); goods.Skus = skuMaps; goods.Coupon = GetGoodsCoupon(temp.GetDataEx <ArrayList>("couponList")); goods.SoldTotalCount = temp.GetDataEx <decimal>("soldTotalCount"); goods.ConfirmGoodsCount = temp.GetDataEx <decimal>("confirmGoodsCount"); HashObject promoDatas = temp.GetDataEx <HashObject>("promoData"); if (promoDatas != null) { foreach (SkuMap map in skuMaps) { object keySku; if (promoDatas.TryGetValue(map.Key, out keySku)) { ArrayList list = (ArrayList)keySku; decimal minPrice = map.PromotionPrice; foreach (HashObject tempList in list) { minPrice = Math.Min(minPrice, tempList.GetValue <decimal>("price")); } map.PromotionPrice = minPrice; } } } HashObject sku = temp.GetDataEx <HashObject>("sku"); if (sku != null) { foreach (SkuMap map in skuMaps) { object keySku; if (sku.TryGetValue(map.Key, out keySku)) { map.Stock = ((HashObject)keySku).GetValue <decimal>("sellableQuantity"); } } } return(goods); }
///// <summary> ///// 替换带#号参数 ///// </summary> //private void ReplaceSQL() //{ // if (this.ReplaceParameters != null) // { // foreach (KeyValuePair<string, object> pair in this.ReplaceParameters) // { // this.CmdText = this.CmdText.Replace(pair.Key, pair.Value.ToString()); // } // } //} //private void SetRwType() //{ // switch (FunctionName) // { // case "ExecuteNonQuery": // case "ExecuteScalarWrite": // this._DBrwType = DBrwType.Write; // break; // case "ExecuteDataSet": // case "ExecuteScalarRead": // case "Exists": // case "GetData": // case "GetDataList": // case "GetDicListByGroup": // this._DBrwType = DBrwType.Read; // break; // default: // throw new Exception("读写类型未设置"); // break; // } //} /// <summary> /// dbhelper 包装器 /// </summary> /// <param name="dbName">数据库名称</param> /// <param name="tableName">表名称</param> /// <param name="sqlName">sql名称(不存在时传空)</param> /// <param name="parameters">参数(默认null)</param> /// <param name="cmdType">执行类型(默认text)</param> public DbHelperWrapper(DBrwType dbrwType, string dbName, string tableName, string sqlName, HashObject parameters = null, SqlType sqlType = SqlType.SqlName, CommandType cmdType = CommandType.Text) { this.DbName = dbName; this.TableName = tableName; this.SqlType = sqlType; this.SQLName = sqlName; this.CmdType = cmdType; this.LogEnable = true;//默认开启日志记录 this.ReplaceParameters = new HashObject(); //拷贝参数 this.Parameters = new HashObject(); if (parameters != null) { foreach (KeyValuePair <string, object> pair in parameters) { if (pair.Key.IndexOf('#') == 0)//替换参数 { this.ReplaceParameters.Add(pair.Key, pair.Value); } else { this.Parameters.Add(pair.Key, pair.Value); } } } //获取SQL,补充默认参数 if (this.SqlType == SqlType.SqlName) { SqlObj sqlobj = SchemaManager.GetDefaultSQL(this.DbName, this.TableName, SQLName); this.CmdText = sqlobj.SqlText; if (sqlobj.DBrwType != DBrwType.None)//检查SQL上是否包含设置 { this._DBrwType = sqlobj.DBrwType; } else { this._DBrwType = dbrwType;//否则取dalbase 传递过来的读写类型 } foreach (KeyValuePair <string, object> pair in sqlobj.DefaultParameters) { if (!this.ReplaceParameters.ContainsKey(pair.Key)) { this.ReplaceParameters.Add(pair.Key, pair.Value); } } } else { this.CmdText = SQLName; this._DBrwType = dbrwType;//取dalbase 传递过来的读写类型 } //#替换SQL foreach (KeyValuePair <string, object> pair in this.ReplaceParameters) { this.CmdText = this.CmdText.Replace(pair.Key, pair.Value.ToString()); } //计算分区 this.ShardID = ShardManager.GetShardID(this.DbName, this.Parameters); }
public static DataTable SpliteContentToDataTable(string user, List <CatchDataTemplate> list) { DataTable table = MessageTable(); JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance(); string[] keys = { "mainOrder/payInfo/actualFee/value", "mainOrder/buyer/nick", "mainOrder/id", "mainOrder/orderInfo/lines", "mainOrder/subOrders", "buyMessage", //买家备注 "operationsGuide" //卖家备注 }; foreach (CatchDataTemplate template in list) { var hashObject = new HashObject(); string content = template.DetailContent; try { hashObject = serializer.Deserialize <HashObject>(content); } catch (Exception t) { continue; } DataRow row = table.NewRow(); HashObject addressAndLogistics = GeAddressAndLogisticsInfo(hashObject); foreach (string key in addressAndLogistics.Keys) { row[key] = addressAndLogistics[key]; } var newHash = hashObject.GetHashValue(keys); row["订单ID"] = newHash.GetDataEx <string>("id"); row["旺旺名称"] = newHash.GetDataEx <string>("nick"); row["买家留言"] = newHash.GetDataEx <string>("buyMessage"); row["卖家留言"] = GetSaleMessage(GetKeyObject(newHash, "operationsGuide")); ArrayList linesList = newHash.GetDataEx <ArrayList>("lines"); IHashObjectList orderInfoList = GetOrderInfoList(serializer, linesList); if (orderInfoList.Count > 1 || orderInfoList.Count == 0) { throw new Exception("订单信息存在多个时间,请重新核实"); } IHashObject tempOrderInfoList = orderInfoList[0]; row["支付宝交易号"] = tempOrderInfoList.GetValue <string>("支付宝交易号:", ""); row["创建时间"] = tempOrderInfoList.GetValue <string>("创建时间:", null); row["付款时间"] = tempOrderInfoList.GetValue <string>("付款时间:", null); var sendDate = tempOrderInfoList.GetValue <string>("发货时间:", null); row["发货时间"] = sendDate; if (sendDate != null) { row["发货状态"] = "已发货"; row["发货状态status"] = "1"; } var successDate = tempOrderInfoList.GetValue <string>("成交时间:", null); if (successDate != null) { row["发货状态"] = "已收货"; row["发货状态status"] = "2"; } row["成交时间"] = successDate; //后期单据退款(各种原因的退款) if ("交易关闭".Equals(template.Status)) { row["支付金额"] = 0; row["发货状态"] = "已关闭"; row["发货状态status"] = "9"; } else { row["支付金额"] = newHash.GetDataEx <string>("value"); //支付总金额 newHash.GetDataEx <string>("value"); //支付总金额 } ArrayList subOrders = newHash.GetDataEx <ArrayList>("subOrders"); List <GoodsInfo> gList = GetSubOrderSkuList(subOrders); decimal all = 0; foreach (GoodsInfo info in gList) { all += info.PriceInfo; } row["拍下总金额"] = all; row["货物信息"] = serializer.Serialize(gList); row["所属用户"] = user; table.Rows.Add(row); } return(table); }
public static void SaveDataToTBill(string user, string connection, IList data) { DateTime date = DateTime.Now; using (DbHelper db = new DbHelper(connection)) { IHashObjectList bidList = db.Select(string.Format("select * from tbill where bid in {0}", GetAllIdString(data))); //根据单号获取对应的字典信息 Dictionary <string, HashObject> bidDictionary = new Dictionary <string, HashObject>(); foreach (HashObject item in bidList) { bidDictionary.Add(item.GetValue <string>("bid"), item); } //筛选数据,对于已插入的数据做数据对比,当数据没有变化时,不做数据修改,反之则修改数据。没有的数据直接插入 StringBuilder insertbuilder = new StringBuilder("insert into tbill(tbid,bid,content, cdate, status, `user`, downeddetail, udate, hasUpdate) values"); StringBuilder insertDetailbuilder = new StringBuilder("insert into tbilldetail(tbdid,tbid,content,user) values"); string updateSql = "update tbill set content = @content, udate = @udate, status=@status, downeddetail=@downeddetail, hasUpdate = @hasUpdate where tbid=@tbid"; bool hasInsert = false; bool hasDetail = false; foreach (HashObject row in data) { var id = row.GetValue <string>("bid"); string content = ReplaceHtmlText(row.GetValue <string>("content")); string status = row.GetValue <string>("status"); HashObject item; ulong tbid = Cuid.NewCuid(); if (bidDictionary.TryGetValue(id, out item)) { tbid = item.GetValue <ulong>("tbid"); if (SpliteContentUrl(item.GetValue <string>("content")).Equals(SpliteContentUrl(content)) && item.GetValue <string>("status").Equals(status)) { //数据相同直接返回 continue; } db.AddParameter("content", content); db.AddParameter("udate", date);//更新时间 db.AddParameter("status", status); db.AddParameter("tbid", tbid); //存在不同的,标记全部更新明细 db.AddParameter("downeddetail", 0); db.AddParameter("hasUpdate", 1); db.ExecuteIntSQL(updateSql);//更新已下载数据 continue; } else { hasDetail = true; HashObject detail = row.GetValue <HashObject>("detail"); string str = ReplaceHtmlText(detail.GetValue <string>("content")); insertDetailbuilder.AppendFormat("({0},{1},'{2}', '{3}'),", Cuid.NewCuid(), tbid, str, detail.GetValue <string>("user")); } hasInsert = true; insertbuilder.AppendFormat("({0},'{1}','{2}', '{3}', '{4}', '{5}', 0, '{6}', 1),", tbid, id, content, date, status, user, date); } if (!hasInsert) { return; } try { db.BeginTransaction(); string insertData = insertbuilder.ToString(); db.BatchExecute(insertData.Substring(0, insertData.Length - 1)); if (hasDetail) { string insertDetailData = insertDetailbuilder.ToString(); db.BatchExecute(insertDetailData.Substring(0, insertDetailData.Length - 1)); } db.CommitTransaction(); } catch (Exception t) { db.RollbackTransaction(); throw t; } } }
private static void HashObjectHelper(string[] args) { Console.WriteLine(HashObject.Hash(GetHashInputStream(args))); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbsave_Click(object sender, EventArgs e) { string msg = ""; IHashObject parameter = new HashObject(); try { //判断用户类型 if (mCompany.RoleType != 2 && mCompany.RoleType != 3) { msg = "此用户无权限操作"; } else { string cabinPattern = "^[a-zA-Z]|([a-zA-Z]1)$"; string[] SpCab = txtCabin.Text.Trim().ToUpper().Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); foreach (string item in SpCab) { if (!Regex.IsMatch(item, cabinPattern)) { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('仓位格式错误!');", true); return; } } if (Convert.ToDateTime(txtBeginTime.Value) > Convert.ToDateTime(txtEndTime.Value)) { msg = "生效日期不能大于失效日期"; } else { parameter.Add("SpCabin", txtCabin.Text.Trim()); parameter.Add("SpAirCode", txtAirCode.Text.Trim().ToUpper()); parameter.Add("SpAirShortName", txtAirSPortName.Text); parameter.Add("SpStartTime", Convert.ToDateTime(txtBeginTime.Value)); parameter.Add("SpEndTime", Convert.ToDateTime(txtEndTime.Value)); parameter.Add("CpyNo", mCompany.UninCode); if (Request.QueryString["Id"] != null && Request.QueryString["Id"].ToString().Length != 0) { #region 修改 parameter.Add("id", Guid.Parse(Request["Id"])); msg = (bool)baseDataManage.CallMethod("Tb_SpecialCabin", "Update", null, new object[] { parameter }) == true ? "更新成功" : "更新失败"; #endregion } else { #region 添加 parameter.Add("SpAddTime", Convert.ToDateTime(DateTime.Now)); List <Tb_SpecialCabin> list = baseDataManage.CallMethod("Tb_SpecialCabin", "GetList", null, new Object[] { "CpyNo='" + mCompany.UninCode + "' and SpAirCode='" + txtAirCode.Text.Trim().ToUpper() + "'" }) as List <Tb_SpecialCabin>; if (list != null && list.Count > 0) { msg = "该承运人已存在"; } else { msg = (bool)baseDataManage.CallMethod("Tb_SpecialCabin", "Insert", null, new Object[] { parameter }) == true ? "添加成功" : "添加失败"; } #endregion } } } } catch (Exception) { msg = "操作异常"; } ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('" + msg + "');", true); }
/// <summary> /// 导入政策 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Click(object sender, EventArgs e) { string msg = "请选择Excel文件"; //string savename = DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(this.FileUpload.FileName).ToLower(); //string UpFilePath = Server.MapPath("../upload/" + savename); try { if (FileUpload.FileName != "") { string fex = Path.GetExtension(FileUpload.FileName).ToLower(); if (fex != ".xls" && fex != ".xlsx") { msg = "文件必须是excel"; } else { IHashObject parameter = new HashObject(); byte[] fileBytes = FileUpload.FileBytes; if (!ExcelRender.HasData(new MemoryStream(fileBytes))) { msg = "导入数据为空"; } else { DataTable dt = ExcelRender.RenderFromExcel(new MemoryStream(fileBytes)); int num = 0; ArrayList list = new ArrayList(); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["公司编号"].ToString().Length == 0) { list.Add("第" + (i + 1) + "行,公司编号不能为空</br>"); } if (dt.Rows[i]["政策种类(1普通,2特价)"].ToString() != "0" && dt.Rows[i]["政策种类(1普通,2特价)"].ToString() != "1" && dt.Rows[i]["政策种类(1普通,2特价)"].ToString() != "2") { list.Add("第" + (i + 1) + "行,政策种类请输入1或2</br>"); } if (dt.Rows[i]["票价生成方式(1正常价格,2动态特价,3固定特价)"].ToString() != "1" && dt.Rows[i]["票价生成方式(1正常价格,2动态特价,3固定特价)"].ToString() != "2" && dt.Rows[i]["票价生成方式(1正常价格,2动态特价,3固定特价)"].ToString() != "3") { list.Add("第" + (i + 1) + "行,票价生成方式请输入1或2,3</br>"); } if (dt.Rows[i]["发布类型(1出港,2入港,3全国)"].ToString() != "1" && dt.Rows[i]["发布类型(1出港,2入港,3全国)"].ToString() != "2" && dt.Rows[i]["发布类型(1出港,2入港,3全国)"].ToString() != "3") { list.Add("第" + (i + 1) + "行,发布类型请输入1或2,3</br>"); } if (dt.Rows[i]["航空公司返点"].ToString().Length > 0) { if (int.TryParse(dt.Rows[i]["航空公司返点"].ToString(), out num)) { if (Convert.ToInt32(dt.Rows[i]["航空公司返点"].ToString()) < 0 || Convert.ToInt32(dt.Rows[i]["航空公司返点"].ToString()) >= 100) { list.Add("第" + (i + 1) + "行,航空公司返点请输入1到100之间的数字</br>"); } } } else { list.Add("第" + i + 1 + "行,航空公司返点请输入1到100之间的数字</br>"); } if (list.Count < 1) { parameter.Add(i.ToString(), "insert into Tb_Ticket_Policy(CpyNo,CpyName,PolicyKind,GenerationType,ReleaseType," + "CarryCode,TravelType,PolicyType,TeamFlag,Office," + "StartCityNameCode,StartCityNameSame,MiddleCityNameCode,MiddleCityNameSame,TargetCityNameCode," + "TargetCityNameSame,ApplianceFlightType,ApplianceFlight,UnApplianceFlight,ScheduleConstraints," + "ShippingSpace,SpacePrice,AdvanceDay,DownPoint,LaterPoint," + "SharePoint,AirReBate,FlightStartDate,FlightEndDate,PrintStartDate," + "PrintEndDate,AuditDate,AuditType,AuditLoginName,AuditName," + "CreateDate,CreateLoginName,CreateName,Remark,IsApplyToShareFlight," + "ShareAirCode,IsLowerOpen,HighPolicyFlag,AutoPrintFlag,A2) " + "values('" + dt.Rows[i]["公司编号"].ToString() + "','" + dt.Rows[i]["供应商名字"].ToString() + "'," + dt.Rows[i]["政策种类(1普通,2特价)"].ToString() + "," + dt.Rows[i]["票价生成方式(1正常价格,2动态特价,3固定特价)"].ToString() + "," + dt.Rows[i]["发布类型(1出港,2入港,3全国)"].ToString() + "," + "'" + dt.Rows[i]["承运人"].ToString() + "','" + dt.Rows[i]["行程类型(1单程,2往返/单程,3往返,4中转联程)"].ToString() + "','" + dt.Rows[i]["政策类型(1=B2B,2=BSP,3=B2B/BSP)"].ToString() + "','" + dt.Rows[i]["团队标志(0普通,1团队)"].ToString() + "','" + dt.Rows[i]["出票Office号"].ToString() + "'," + "'" + dt.Rows[i]["出发城市三字码"].ToString() + "','" + dt.Rows[i]["出发城市同城机场共享政策(1是,2否)"].ToString() + "','" + dt.Rows[i]["中转城市三字码"].ToString() + "','" + dt.Rows[i]["中转城市同城机场共享政策(1是,2否)"].ToString() + "','" + dt.Rows[i]["到达城市三字码"].ToString() + "'," + "'" + dt.Rows[i]["到达城市同城机场共享政策(1是,2否)"].ToString() + "','" + dt.Rows[i]["适用航班号类型(1全部2适用3不适用)"].ToString() + "','" + dt.Rows[i]["适用航班"].ToString() + "','" + dt.Rows[i]["不适用航班"].ToString() + "','" + dt.Rows[i]["班期限制"].ToString() + "'," + "'" + dt.Rows[i]["舱位"].ToString() + "','" + dt.Rows[i]["舱位价格"].ToString() + "','" + dt.Rows[i]["提前天数"].ToString() + "','" + dt.Rows[i]["下级分销返点"].ToString() + "','" + dt.Rows[i]["下级分销后返"].ToString() + "'," + "'" + dt.Rows[i]["共享政策返点"].ToString() + "','" + dt.Rows[i]["航空公司返点"].ToString() + "','" + dt.Rows[i]["乘机生效日期"].ToString() + "','" + dt.Rows[i]["乘机失效日期"].ToString() + "','" + dt.Rows[i]["出票生效日期"].ToString() + "'," + "'" + dt.Rows[i]["出票失效日期"].ToString() + "','" + dt.Rows[i]["审核时间"].ToString() + "','" + dt.Rows[i]["审核状态(1已审,2未审)"].ToString() + "','" + dt.Rows[i]["审核人帐户"].ToString() + "','" + dt.Rows[i]["审核人姓名"].ToString() + "'," + "'" + DateTime.Now.ToString() + "','" + mUser.LoginName + "','" + mUser.UserName + "','" + dt.Rows[i]["备注"].ToString() + "','" + dt.Rows[i]["是否适用于共享航班(1适用,0不适用)"].ToString() + "'," + "'" + dt.Rows[i]["适用共享航空公司二字码(如:CA/CZ/ZH/HU)"].ToString() + "'," + dt.Rows[i]["是否往返低开(0不低开,1低开)"].ToString() + "," + dt.Rows[i]["是否高返政策(1是,其它不是)"].ToString() + "," + dt.Rows[i]["自动出票方式(手动(0或者null空),半自动1,自动2)"].ToString() + ",1)"); } } if (list.Count >= 1) { msg = ""; for (int j = 0; j < list.Count; j++) { msg += list[j].ToString(); } } else { msg = new PbProject.Logic.SQLEXBLL.SQLEXBLL_Base().ImportPolicy(parameter) == true ? "导入成功(" + parameter.Count + " 条数据)" : "导入失败"; } } } } } catch (Exception ex) { msg = ex.ToString(); throw ex; } //File.Delete(UpFilePath); ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('" + msg + "');", true); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbsave_Click(object sender, EventArgs e) { string msg = ""; IHashObject parameter = new HashObject(); Log_Operation logoper = new Log_Operation(); logoper.ModuleName = "共享接口扣点设置"; logoper.LoginName = mUser.LoginName; logoper.UserName = mUser.UserName; logoper.CreateTime = Convert.ToDateTime(DateTime.Now); logoper.CpyNo = mCompany.UninCode; logoper.OrderId = ""; try { parameter.Add("OperTime", DateTime.Now); parameter.Add("OperLoginName", mUser.LoginName); parameter.Add("OperUserName", mUser.UserName); parameter.Add("PolicySource", ddljk.SelectedValue); if (mCompany.RoleType == 1) { parameter.Add("PbPoint", txtPbPoint.Text); parameter.Add("PbMoney", txtPbMoney.Text); } else { parameter.Add("PolicyPoint", txtPolicyPoint.Text); parameter.Add("PolicyMoney", txtPolicyMoney.Text); } if (ViewState["id"] != null) { parameter.Add("id", ViewState["id"]); if ((bool)baseDataManage.CallMethod("Tb_ShareInterface_TakeOff", "Update", null, new object[] { parameter }) == true) { msg = "更新成功"; logoper.OperateType = "修改"; logoper.OptContent = "id=" + ViewState["id"]; new PbProject.Logic.Log.Log_OperationBLL().InsertLog_Operation(logoper); } else { msg = "更新失败"; } } else { if (mCompany.RoleType == 1)//平台可多选商家 { List <string> list = new List <string>(); if (Request["names"] != null) { string[] values = Server.HtmlEncode(Request["names"].ToString()).Split(','); for (int i = 0; i < values.Length; i++) { List <Tb_ShareInterface_TakeOff> listIn = baseDataManage.CallMethod("Tb_ShareInterface_TakeOff", "GetList", null, new Object[] { "CpyNo='" + values[i].ToString().Split('|')[1] + "' and PolicySource=" + ddljk.SelectedValue }) as List <Tb_ShareInterface_TakeOff>; if (listIn != null && listIn.Count > 0) { msg = "[" + values[i].ToString().Split('|')[0] + "]用户已添加此接口"; } else { list.Add("insert into Tb_ShareInterface_TakeOff(CpyNo,CpyName,CpyType,OperTime,OperLoginName,OperUserName,PolicySource,PolicyPoint,PolicyMoney,PbPoint,PbMoney) " + "values('" + values[i].ToString().Split('|')[1] + "','" + values[i].ToString().Split('|')[0] + "'," + values[i].ToString().Split('|')[2] + ",'" + DateTime.Now + "','" + mUser.LoginName + "','" + mUser.UserName + "'," + ddljk.SelectedValue + ",'" + txtPolicyPoint.Text.Trim() + "','" + txtPolicyMoney.Text.Trim() + "'," + txtPbPoint.Text.Trim() + "," + txtPbMoney.Text.Trim() + ")"); } } } msg = (bool)baseDataManage.CallMethod("Tb_ShareInterface_TakeOff", "ExecuteSqlTran", null, new object[] { list }) == true ? "添加成功" : "添加失败"; } else //商家操作 { List <Tb_ShareInterface_TakeOff> list = baseDataManage.CallMethod("Tb_ShareInterface_TakeOff", "GetList", null, new Object[] { "CpyNo='" + mCompany.UninCode + "' and PolicySource=" + ddljk.SelectedValue }) as List <Tb_ShareInterface_TakeOff>; if (list != null && list.Count > 0) { msg = "该用户已添加此接口"; } else { parameter.Add("CpyNo", mCompany.UninCode); parameter.Add("CpyName", mCompany.UninAllName); parameter.Add("CpyType", mCompany.RoleType); msg = (bool)baseDataManage.CallMethod("Tb_ShareInterface_TakeOff", "Insert", null, new Object[] { parameter }) == true ? "添加成功" : "添加失败"; } } } } catch (Exception) { msg = "操作异常"; } ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('" + msg + "');", true); }
/// <summary> /// 绑定公告 /// </summary> public void BindNotice() { StringBuilder sbSQLwhere = new StringBuilder(); sbSQLwhere.AppendFormat(" (ReleaseCpyNo=left('{0}',12) or ReleaseCpyNo=left('{0}',6)) and CallboardType=1 ", mCompany.UninCode); //获取已审核 有效公告 内部或者全部公告 if (mCompany.RoleType == 1)//平台管理员 { //sbSQLwhere.Append(" and (IsInternal=1 or IsInternal=3) "); } else if (mCompany.RoleType == 2 || mCompany.RoleType == 3)//供应商和落地运营商 { sbSQLwhere.Append(" and (IsInternal=1 or IsInternal=3) "); } else if (mCompany.RoleType > 3)//采购 分销 { sbSQLwhere.Append(" and (IsInternal=2 or IsInternal=3) "); } sbSQLwhere.AppendFormat(" and StartDate <= '{0}' and ExpirationDate >= '{1}'", DateTime.Now.ToString(), DateTime.Now.ToString()); int TotalCount = 0; IHashObject outParams = new HashObject(); outParams.Add("1", "out"); List <Bd_Base_Notice> notice = baseDataManage.CallMethod("Bd_Base_Notice", "GetBasePager1", outParams, new object[] { TotalCount, AspNetPager1.PageSize, Curr, "*", sbSQLwhere.ToString(), " Emergency " }) as List <Bd_Base_Notice>; TotalCount = outParams.GetValue <int>("1"); AspNetPager1.RecordCount = TotalCount; AspNetPager1.CurrentPageIndex = Curr; AspNetPager1.CustomInfoHTML = " 页码 : <font color=\"red\" size='2px'>" + Curr + "</font> / " + AspNetPager1.PageCount; //查找紧急公告 Bd_Base_Notice Notice = notice.Find(delegate(Bd_Base_Notice _notice) { return(_notice.Emergency == 1); }); if (Notice != null) { Hid_Emergency.Value = Notice.id.ToString(); } else { Hid_Emergency.Value = ""; } if (notice.Count > 0) { divNotice.Attributes.Add("class", "show"); } else { divNotice.Attributes.Add("class", "hide"); } //绑定 Repeater.DataSource = notice; Repeater.DataBind(); if (AspNetPager1.PageCount > 1) { Pagefooter.Attributes.Add("class", "show"); } else { Pagefooter.Attributes.Add("class", "hide"); } }
private static void BuildBillDataFromTable(string suser, bool onlyAdd, DataTable table, HashObjectList billList, HashObjectList detailList, DbHelper db = null, string ids = null, bool sureRate = true) { Dictionary <string, string> dic = GetExistBills(db, ids); List <string> dicDetail = GetExistBillDetails(db, ids); JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance(); foreach (DataRow row in table.Rows) { var ddid = row["订单ID"].ToString(); string id = Cuid.NewCuid().GetHashCode().ToString(); string oldid; if (dic.TryGetValue(ddid, out oldid)) { if (onlyAdd) { continue; } id = oldid; } string user = row["所属用户"].ToString(); if (user != suser) { throw new Exception("分析用户和数据保存用户不匹配,无法做数据保存"); } object sendDate = row["发货时间"]; object successDate = row["成交时间"]; Dictionary <string, decimal> goodsRate = GetGoodsRate(db, user); GoodsInfo[] ginfos = serializer.Deserialize <GoodsInfo[]>(row["货物信息"].ToString()); var sendWay = TaobaoDataHelper.GetLogisticsInfo(row["快递公司"]).IsEmptyObject() ? null : "快递"; string remark = GetRemark(row); decimal pall = Decimal.Parse(row["拍下总金额"].ToString()); decimal total = Decimal.Parse(row["支付金额"].ToString()); decimal ltotal = 0; decimal btotal = 0; decimal allPrice = 0; string address = TaobaoDataHelper.ReplaceHtmlText(row["具体地址"].ToString()); if (!dicDetail.Contains(ddid)) { for (int j = ginfos.Length - 1; j >= 0; j--) { GoodsInfo ginfo = ginfos[j]; string goodKey = GetGoodsKey(ginfo.Color, ginfo.Size, ginfo.Title); decimal rate = 0; if (db != null && (goodsRate == null || !goodsRate.ContainsKey(goodKey))) { if (!sureRate) { rate = 0; } else { throw new Exception(string.Format("【{3}】 color:{0} size:{1} title:{2}没有设置比例goodMatchRate", ginfo.Color, ginfo.Size, ginfo.Title, user)); } } else { if (db != null) { rate = goodsRate[goodKey]; } } decimal price = ginfo.PriceInfo / pall * total; if (j == 0) { price = total - allPrice; } allPrice += price; decimal tbtotal = (price * rate) * (decimal)(0.01); btotal += tbtotal; decimal tltotal = price - tbtotal; HashObject detailHash = new HashObject(); detailList.Add(detailHash); detailHash.Add("id", Cuid.NewCuid().GetHashCode()); detailHash.Add("bid", id); detailHash.Add("code", ddid); detailHash.Add("size", ginfo.Size); detailHash.Add("amount", ginfo.Amount); detailHash.Add("color", ginfo.Color); detailHash.Add("address", address); detailHash.Add("area", row["区域"]); detailHash.Add("total", price); detailHash.Add("remark", remark); detailHash.Add("ltotal", tltotal); detailHash.Add("sourceTitle", ginfo.Title); detailHash.Add("goodsstatus", int.Parse(row["发货状态status"].ToString()) >= 1 ? 2 : 1); detailHash.Add("sendway", sendWay); detailHash.Add("btotal", tbtotal); } ltotal = total - btotal; } if (IsNullDate(row["付款时间"])) { continue; } HashObject billHash = new HashObject(); billHash.Add("id", id); billHash.Add("date", row["付款时间"]); billHash.Add("taobaocode", row["旺旺名称"]); billHash.Add("cname", row["收货客户"]); billHash.Add("ctel", row["联系电话"]); billHash.Add("caddress", address); billHash.Add("carea", row["区域"]); billHash.Add("cremark", remark); billHash.Add("ltotal", ltotal); billHash.Add("status", row["发货状态status"]); billHash.Add("scode", TaobaoDataHelper.GetLogisticsInfo(row["物流单号"])); billHash.Add("sname", TaobaoDataHelper.GetLogisticsInfo(row["快递公司"])); billHash.Add("uid", GetUser(row["所属用户"], db == null)); billHash.Add("goodsstatus", 1); billHash.Add("billfrom", "抓取"); billHash.Add("createdate", row["创建时间"]); billHash.Add("zfbpaycode", row["支付宝交易号"]); billHash.Add("tbcode", ddid); billHash.Add("total", total); billHash.Add("btotal", btotal); billHash.Add("senddate", GetDate(sendDate)); billHash.Add("successdate", GetDate(successDate)); billList.Add(billHash); } }
/// <summary> /// 操作 /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void RepBasePage_ItemCommand(object source, RepeaterCommandEventArgs e) { string msg = ""; bool result = false; try { string id = e.CommandArgument.ToString(); //要修改的 id if (e.CommandName == "Update") { string strModuleIndex = (e.Item.FindControl("txt_ModuleIndex") as TextBox).Text.Trim(); string strModuleName = (e.Item.FindControl("txt_ModuleName") as TextBox).Text.Trim(); string strOneMenuIndex = (e.Item.FindControl("txt_OneMenuIndex") as TextBox).Text.Trim(); string strOneMenuName = (e.Item.FindControl("txt_OneMenuName") as TextBox).Text.Trim(); string strTwoMenuIndex = (e.Item.FindControl("txt_TwoMenuIndex") as TextBox).Text.Trim(); string strTwoMenuName = (e.Item.FindControl("txt_TwoMenuName") as TextBox).Text.Trim(); string strPageIndex = (e.Item.FindControl("txt_PageIndex") as TextBox).Text.Trim(); string strPageName = (e.Item.FindControl("txt_PageName") as TextBox).Text.Trim(); string strPageURL = (e.Item.FindControl("txt_PageURL") as TextBox).Text.Trim(); string strRemark = (e.Item.FindControl("txt_Remark") as TextBox).Text.Trim(); HashObject paramter = new HashObject(); paramter.Add("id", id); paramter.Add("ModuleIndex", strModuleIndex); paramter.Add("ModuleName", strModuleName); paramter.Add("OneMenuIndex", strOneMenuIndex); paramter.Add("OneMenuName", strOneMenuName); paramter.Add("TwoMenuIndex", strTwoMenuIndex); paramter.Add("TwoMenuName", strTwoMenuName); paramter.Add("PageIndex", strPageIndex); paramter.Add("PageName", strPageName); paramter.Add("PageURL", strPageURL); paramter.Add("Remark", strRemark); result = (bool)baseDataManage.CallMethod("Bd_Base_Page", "Update", null, new Object[] { paramter }); if (result) { msg = "修改成功!"; } else { msg = "修改失败!"; } } else if (e.CommandName == "Del") { result = (bool)baseDataManage.CallMethod("Bd_Base_Page", "DeleteById", null, new Object[] { id }); if (result) { msg = "删除成功!"; } else { msg = "删除失败"; } } } catch (Exception) { msg = "操作失败"; } if (result) { RepBasePageBind(); } ScriptManager.RegisterStartupScript(this, GetType(), DateTime.Now.Ticks.ToString(), "showdialog('" + msg + "');", true); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAdd_Click(object sender, EventArgs e) { string msg = ""; bool result = false; try { string strDeptName = txtDeptName.Text.Trim(); if (string.IsNullOrEmpty(strDeptName)) { msg = "该名称不能为空!"; } List <User_Permissions> iPost = new User_PermissionsBLL().GetListByCpyNo(mUser.CpyNo); foreach (var item in iPost) { if (item.DeptName == strDeptName && hidId.Value == "") { msg = "添加失败,该名称已经存在!"; break; } //else if (item.DeptName == strDeptName && hidId.Value != item.id.ToString()) //{ // msg = "修改失败,该名称已经存在!"; // break; //} } if (msg == "") { if (hidId.Value == "") { #region 添加 User_Permissions model = new User_Permissions(); model.id = Guid.NewGuid(); model.CpyNo = mUser.CpyNo; model.DeptName = strDeptName; model.ParentIndex = 1; model.DeptIndex = 1; model.Remark = txtRemark.Text.Trim(); model.Permissions = GetPermissions(); model.A1 = 1; model.A2 = 0.00M; model.A3 = DateTime.Now; model.A4 = ""; model.A5 = ""; result = (bool)baseDataManage.CallMethod("User_Permissions", "Insert", null, new Object[] { model }); if (result) { msg = "添加成功!"; } else { msg = "添加失败!"; } #endregion } else { #region 修改 IHashObject parameter = new HashObject(); //User_Permissions model = new User_Permissions(); parameter.Add("id", Guid.Parse(hidId.Value)); parameter.Add("DeptName", strDeptName); parameter.Add("Permissions", GetPermissions()); parameter.Add("Remark", txtRemark.Text.Trim()); result = (bool)baseDataManage.CallMethod("User_Permissions", "Update", null, new Object[] { parameter }); if (result) { msg = "修改成功!"; } else { msg = "修改失败!"; } #endregion } } } catch (Exception) { msg = "操作失败!"; } finally { ScriptManager.RegisterStartupScript(this, GetType(), DateTime.Now.Ticks.ToString(), "showdialog('" + msg + "');", true); } }
/// <summary> /// 判断是否需要创建新的ID /// </summary> /// <param name="parameters"></param> /// <returns></returns> private bool NeedCreateNewId(HashObject parameters) { //参数不包含,或者为0,自动自增一个新的 return(!parameters.ContainsKey(_primaryColumn) || Convert.ToInt64(parameters[_primaryColumn]) == 0); }
public void SavePlugData(Plug plug) { HashObject hash = new HashObject(); long fileLength = 0; //数据搬移 plug.PDownpath = MoveFile(plug.PDownpath, out fileLength); plug.PTotal = fileLength; plug.PVideo = MoveFile(plug.PVideo, out fileLength); plug.PIcon = MoveFile(plug.PIcon, out fileLength); plug.PPic1 = MoveFile(plug.PPic1, out fileLength); plug.PPic2 = MoveFile(plug.PPic2, out fileLength); plug.PPic3 = MoveFile(plug.PPic3, out fileLength); hash.Add("pdownpath", plug.PDownpath); hash.Add("pvideo", plug.PVideo); hash.Add("picon", plug.PIcon); hash.Add("ppics", plug.PPics); hash.Add("pcreatedate", DateTime.Now); //数据保存 using (DbHelper db = AppUtils.CreateDbHelper()) { try { db.BeginTransaction(); List <string> needToDeleteFiles = DeleteOldData(plug, db, hash); if (plug.PTotal == 0) { plug.PTotal = hash.GetValue <int>("ptotal", 0); } string sql = "insert into plugs (pid,pname,pversion,pkind,plabel,picon,pdes,pvideo,pvideoweb,pcost,plevel,pdownpath,pdownpathweb,ptotal,pext,ppics,pcreatedate,pupdatedate,pshowway,pstorename,pwindowname) values(@pid,@pname,@pversion,@pkind,@plabel,@picon,@pdes,@pvideo,@pvideoweb,@pcost,@plevel,@pdownpath,@pdownpathweb,@ptotal,@pext,@ppics,@pcreatedate,@pupdatedate,@pshowway,@pstorename,@pwindowname)"; db.AddParameter("pid", plug.PId); db.AddParameter("pname", plug.PName); db.AddParameter("pversion", plug.PVersion); db.AddParameter("pkind", plug.PKind); db.AddParameter("plabel", plug.PLabel); db.AddParameter("picon", hash.GetValue <string>("picon")); db.AddParameter("pdes", plug.PDes); db.AddParameter("pvideo", hash.GetValue <string>("pvideo")); db.AddParameter("pcost", plug.PCost); db.AddParameter("plevel", plug.PLevel); db.AddParameter("pdownpath", hash.GetValue <string>("pdownpath")); db.AddParameter("ptotal", plug.PTotal); db.AddParameter("pext", plug.PExt); db.AddParameter("ppics", hash.GetValue <string>("ppics")); db.AddParameter("pcreatedate", hash.GetValue <DateTime>("pcreatedate")); db.AddParameter("pupdatedate", plug.PUpdatedate); db.AddParameter("pshowway", plug.PShowway); db.AddParameter("pstorename", plug.PStorename); db.AddParameter("pwindowname", plug.PWindowname); db.AddParameter("pvideoweb", GetWebUri()); db.AddParameter("pdownpathweb", GetWebUri()); db.ExecuteScalerSQL(sql); foreach (string file in needToDeleteFiles) { File.Delete(file); } db.CommitTransaction(); } catch (Exception e) { if (db.HasBegunTransaction) { db.RollbackTransaction(); } throw e; } } }
public override void Initialize() { base.Initialize(); using (DbHelper db = AppUtils.CreateDbHelper()) { Test001.Login.User user = ((Test001.Login.User)Session["user"]); db.AddParameter("userid", user.Id); IHashObjectList userList = db.Select("select color, size, price from btypeconfig where userid=@userid"); List <string> color = new List <string>(); List <string> size = new List <string>(); foreach (IHashObject hash in userList) { if (!color.Contains(hash.GetValue <string>("color"))) { color.Add(hash.GetValue <string>("color")); } if (!size.Contains(hash.GetValue <string>("size"))) { size.Add(hash.GetValue <string>("size")); } } Context["size"] = size; Context["color"] = color; Context["sizecolor"] = userList; if (this.Request.QueryString["id"] == null) { IHashObject data = new HashObject(); data["date"] = DateTime.Now; data["amount"] = 1; data["size"] = size.Count > 0 ? size[0] : ""; data["color"] = color.Count > 0 ? color[0] : ""; data["csendway"] = "送货到小区"; data["dobtotal"] = user.Power == 99 ? 1 : 0; data["sizecolor"] = userList; decimal total = userList.Count > 0 ? userList[0].GetValue <decimal>("price") : 0; if (user.Power == 99) { data["btotal"] = 0; } else { data["btotal"] = (total * (decimal)0.05); } data["total"] = total; Context["bill"] = data; Context["enable"] = true; return; } string id = Request.QueryString["id"].ToString(); db.AddParameter("id", id); IHashObject bill = db.SelectSingleRow(@"select id,DATE_FORMAT(date, '%Y-%m-%d') as date,taobaocode,cname,ctel,caddress,carea,csendway,cremark,btotal,ltotal,preferential, status from bill where id=@id"); db.AddParameter("id", id); //todo 一个单对多个商品时会报错 IHashObject billDetial = db.SelectSingleRow("select * from billdetail where bid=@id"); foreach (string key in billDetial.Keys) { if (key.ToLower() == "id") { continue; } bill[key] = billDetial[key]; } bill["dobtotal"] = user.Power == 99 ? 1 : 0; bill["sizecolor"] = userList; Context["bill"] = bill; Context["enable"] = true;// bill.GetValue<int>("status") < 1; } }
protected void LinkButton1_Click(object sender, EventArgs e) { try { if (txtFee.Text.Trim() == "") { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('调整金额不能为空');", true); return; } if (decimal.Parse(txtFee.Text.Trim()) <= 0) { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('调整金额不能为负数,如果是扣款,请选择调整方式为代扣');", true); return; } if (ViewState["payUnincode"] != null && ViewState["payUnincode"].ToString().Trim() == "") { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('调账账号失效,请重新登录');", true); return; } if (ViewState["payUnincode"] != null && ViewState["recUnincode"].ToString().Trim() == "") { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('登录账号失效,请重新登录');", true); return; } string orderId = ""; HashObject hparamsOrder = new HashObject(); hparamsOrder.Add("Number", "3"); DataTable dt = baseDataManage.EexcProc("GetNewOrderId", hparamsOrder); orderId = dt.Rows[0][0].ToString(); HashObject hparams = new HashObject(); hparams.Add("recUnincode", ViewState["recUnincode"].ToString().Trim()); //收款方账号 hparams.Add("payUnincode", ViewState["payUnincode"].ToString().Trim()); //支付方账号 hparams.Add("type", rblState.SelectedValue); //0充值,1代扣 hparams.Add("PayMoney", txtFee.Text.Trim()); hparams.Add("OperReason", txtReason.Text.Trim()); hparams.Add("RecCpyType", ViewState["RecCpyType"].ToString()); hparams.Add("RecCpyName", ViewState["RecCpyName"].ToString()); hparams.Add("OperLoginName", ViewState["OperLoginName"].ToString()); hparams.Add("OperUserName", ViewState["OperUserName"].ToString()); hparams.Add("orderid", orderId); decimal decimalBeforehandFund = 0.0M; if (rblState.SelectedValue == "0") { decimalBeforehandFund = decimal.Parse(lblBeforehandFund.Text) + decimal.Parse(txtFee.Text.Trim()); } if (rblState.SelectedValue == "1") { decimalBeforehandFund = decimal.Parse(lblBeforehandFund.Text) - decimal.Parse(txtFee.Text.Trim()); } int count = baseDataManage.ExecuteNonQueryProcedure("proc_AccountChange", hparams); if (count > 0) { txtFee.Text = ""; txtReason.Text = ""; txtMaxDebtMoney.Text = ""; rblState.SelectedIndex = 0; lblBeforehandFund.Text = decimalBeforehandFund.ToString(); ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('调账成功');", true); } else { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('调账失败');", true); } } catch (Exception) { ScriptManager.RegisterStartupScript(this, GetType(), "", "showdialog('未知错误,请联系管理员');", true); } }
/* BSP常见错误信息 * MRT:HT0LYJ IGNORED * INCOMPLETE PNR/FN * PLEASE CHECK TKT ELEMENT * CHECK BLINK CODE * ELE NBR */ /// <summary> /// BSP订单处理 /// </summary> /// <param name="Order"></param> private void BspHandle(Tb_Ticket_Order Order, List <ListParam> LPList, BSPShowLog Log) { //订单日志 StringBuilder sbLog = new StringBuilder(); if (Order != null) { //订单出票公司信息 ListParam TicketLP = LPList.Find(delegate(ListParam _tempLP) { return(Order.OwnerCpyNo.Contains(_tempLP.CpyNo)); }); //编码解析类 PnrAnalysis.FormatPNR pnrFormat = new PnrAnalysis.FormatPNR(); //判断标识 List <string> NumTickList = new List <string>(); List <string> PTList = null; List <Tb_Ticket_Passenger> PasList = null; try { Log(0, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "订单号:" + Order.OrderId + "=======================start=====================\r\n"); string GYCpyNo = Order.OwnerCpyNo; if (GYCpyNo.Length >= 12) { GYCpyNo = GYCpyNo.Substring(0, 12); } string CarrayCode = Order.CarryCode.Split('/')[0]; Tb_Ticket_PrintOffice PrintOffice = GetPrintOffice(GYCpyNo, CarrayCode); if (PrintOffice == null || PrintOffice.PrintCode == "") { Log(0, string.Format("{0}未设置打票机号,请手动出票!", CarrayCode)); sbLog.Append(string.Format("{0}未设置打票机号,请手动出票!", CarrayCode)); return; } //出票Office string pOffice = string.IsNullOrEmpty(PrintOffice.OfficeCode) ? Order.PrintOffice : PrintOffice.OfficeCode; string PrintCode = PrintOffice.PrintCode; string Pnr = Order.PNR;//Pnr编码 if (pOffice == "") { Log(0, string.Format("{0}出票Office不能为空!", CarrayCode)); sbLog.Append(string.Format("{0}出票Office不能为空!", CarrayCode)); return; } //获取乘客 string sqlWhere = string.Format(" OrderId='{0}' order by PassengerType", Order.OrderId); Tb_Ticket_Passenger pMode = null; PasList = Manage.CallMethod("Tb_Ticket_Passenger", "GetList", null, new object[] { sqlWhere }) as List <Tb_Ticket_Passenger>; if (PasList == null || PasList.Count == 0) { Log(0, string.Format("订单号:{0}没有找到对应的乘客信息!", Order.OrderId)); sbLog.Append(string.Format("订单号:{0}没有找到对应的乘客信息!", Order.OrderId)); return; } else { pMode = PasList[0]; } List <Bd_Base_Parameters> baseParamList = Manage.CallMethod("Bd_Base_Parameters", "GetList", null, new Object[] { "CpyNo='" + GYCpyNo + "'" }) as List <Bd_Base_Parameters>; ConfigParam config = Bd_Base_ParametersBLL.GetConfigParam(baseParamList); //指令管理类 //SendInsManage SendManage = new SendInsManage(Order.OwnerCpyNo, GYCpyNo, config); if (config == null) { Log(0, string.Format("订单号{0},公司{1}未设置使用配置信息,请设置!", Order.OrderId, CarrayCode)); sbLog.Append(string.Format("订单号{0},公司{1}未设置使用配置信息,请设置!", Order.OrderId, CarrayCode)); return; } if (string.IsNullOrEmpty(Order.PNR)) { Log(0, string.Format("订单号{0}中没有PNR,请检查!", Order.OrderId)); sbLog.Append(string.Format("订单号{0}中没有PNR,请检查!", Order.OrderId)); return; } ParamObject PM = new ParamObject(); PM.ServerIP = config.WhiteScreenIP; PM.ServerPort = int.Parse(config.WhiteScreenPort); PM.Office = pOffice; //发送指令 string SendIns = "RT" + Pnr; //返回数据 string Recvdata = string.Empty; PM.code = SendIns; PM.IsPn = true; // Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); //授权检查 if (Recvdata.ToUpper().Contains("授权")) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},发送指令需要授权!", Order.OrderId, Pnr, pOffice)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},发送指令需要授权!", Order.OrderId, Pnr, pOffice)); return; } else if (Recvdata.ToUpper().Contains("CANCELLED")) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码已取消,出票失败!", Order.OrderId, Pnr, pOffice)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码已取消,出票失败!", Order.OrderId, Pnr, pOffice)); return; } string Msg = ""; string Xe = "", RR = ""; string PnrStatus = pnrFormat.GetPnrStatus(Recvdata, out Msg); if (PnrStatus.Contains("NO")) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},不能自动出票!!", Order.OrderId, Pnr, pOffice, PnrStatus)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},不能自动出票!!", Order.OrderId, Pnr, pOffice, PnrStatus)); return; } //存在的票号 PTList = GetTicketNum(Pnr, Recvdata.ToUpper(), pnrFormat); List <string> RRList = null; List <string> XEList = null; if (PTList.Count == 0) { Start: { //进行出票 HashObject hash = GetNumList(Recvdata); XEList = hash["XEList"] as List <string>; RRList = hash["RRList"] as List <string>; List <string> StartXeList = hash["StartXeList"] as List <string>; //XE项 if (StartXeList.Count > 0) { for (int i = 0; i < StartXeList.Count; i++) { string XeStr = StartXeList[i]; if (XeStr != "") { //发送指令 SendIns = "RT" + Pnr + "|XE" + XeStr + "|@"; PM.code = SendIns; PM.IsPn = false; //Recvdata = SendNewPID.SendCommand(PM);//MRT:JG61M2 IGNORED Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); //判断是否XE成功 if (pnrFormat.INFMarkIsOK(Recvdata, out Msg)) { /* 3U8881 E TU30APR CTUPEK HK1 0730 1005 * JG61M2 - 航空公司使用自动出票时限, 请检查PNR *** 预订酒店指令HC, 详情 HC:HELP *** */ //发送指令 SendIns = "RT" + Pnr; PM.code = SendIns; PM.IsPn = true; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); goto Start; } } } } } string patPrice = "pat:a"; if (!Order.IsChdFlag) { //成人 patPrice = "pat:a"; } else { //儿童 patPrice = "pat:a*ch"; } //发送指令 SendIns = "RT" + Pnr + "|" + patPrice; PM.code = SendIns; PM.IsPn = false; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); if (Recvdata.IndexOf("PAT") == -1) { //发送指令 Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码已取消,未能PAT出票价,出票失败!", Order.OrderId, Pnr, pOffice)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码已取消,未能PAT出票价,出票失败!", Order.OrderId, Pnr, pOffice)); return; } //比较 string xuhao = "", Seat = "", Err = ""; decimal _xsFare = 0m; bool IsExistParice = false; PnrAnalysis.PatModel PAT = pnrFormat.GetPATInfo(Recvdata.Replace("\r", ""), out Err); foreach (PatInfo pat in PAT.UninuePatList) { decimal.TryParse(pat.Fare, out _xsFare); //存在此价格 if (_xsFare == pMode.PMFee) { IsExistParice = true; xuhao = pat.SerialNum; Seat = pat.SeatGroup; break; } } if (!IsExistParice) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},舱位价{3}与Pat价格{4}不一致,出票失败!", Order.OrderId, Pnr, pOffice, pMode.PMFee, _xsFare)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},舱位价{3}与Pat价格{4}不一致,出票失败!", Order.OrderId, Pnr, pOffice, pMode.PMFee, _xsFare)); return; } //做价格进去 SendIns = "RT" + Pnr + "|" + patPrice + "|SFC:" + xuhao + "|@"; PM.code = SendIns; PM.IsPn = false; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); if (Recvdata.Contains("超时") || Recvdata.Contains("NO PNR")) { //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); } //做备注 decimal _Discount = 0m; if (decimal.TryParse(Order.Discount, out _Discount) && Order.Space.IndexOf("Y") == -1 && Order.Space.IndexOf("C") == -1 && Order.Space.IndexOf("F") == -1 && _Discount < 100) { //做价格进去 SendIns = "RT" + Pnr + "|EI:不得签转|@"; PM.code = SendIns; PM.IsPn = false; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); if (Recvdata != "" && Recvdata.Contains("超时")) { //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); } } foreach (string item in XEList) { if (item != "") { Xe += "XE" + item + "|"; } } foreach (string item in RRList) { if (item != "") { RR += item + "RR" + "|"; } } if (Xe.Trim(new char[] { '|' }) == "") { Xe = ""; } else { Xe = "|" + Xe.Trim('|') + "|"; } if (RR.Trim(new char[] { '|' }) == "") { RR = ""; } else { RR = "|" + RR.Trim('|') + "|"; } if (RR == "") { RR = "|"; } if (XEList == null || XEList.Count == 0 || Xe == "") { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},未能取出出票时限!!", Order.OrderId, Pnr, pOffice, PnrStatus)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},未能取出出票时限!!", Order.OrderId, Pnr, pOffice, PnrStatus)); return; } //组合打票指令 string etdz = "rt" + Pnr + Xe + RR.TrimEnd('|') + "|ETDZ " + PrintCode; etdz = etdz.Replace("||", "|"); //出票 SendIns = etdz; PM.code = SendIns; PM.IsPn = false; // Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); if (Recvdata.Contains("超时") || Recvdata.Contains("NO PNR")) { //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); } if (Recvdata.Contains("请输入证件信息")) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},编码中没有证件号,请输入证件信息,否则不能出票!", Order.OrderId, Pnr, pOffice, PnrStatus)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3},编码中没有证件号,请输入证件信息,否则不能出票!", Order.OrderId, Pnr, pOffice, PnrStatus)); return; } if (Recvdata.ToUpper().Contains("STOCK")) { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3}," + Recvdata + "没有票号了!", Order.OrderId, Pnr, pOffice, PnrStatus)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3}," + Recvdata + "没有票号了!", Order.OrderId, Pnr, pOffice, PnrStatus)); return; } //出票成功 if (Recvdata.Contains("CNY") && Recvdata.ToUpper().Contains(Pnr.ToUpper())) { /*CNY2730.00 HF9550 * 876-3250823439 876-3250823441 */ SendIns = "RT" + Pnr; PM.code = SendIns; PM.IsPn = true; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); //存在的票号 PTList = GetTicketNum(Pnr, Recvdata.ToUpper(), pnrFormat); } else { //出票失败 重试 if (!Recvdata.ToUpper().Contains("**ELECTRONIC TICKET PNR**") && Recvdata.ToUpper().Contains("SSR TKNE") && Recvdata.ToUpper().Contains("/DPN") && Recvdata.ToUpper().Contains("RMK " + CarrayCode + "/")) { //"ETRY:" 重试指令 SendIns = "RT" + Pnr + "|ETRY:"; PM.code = SendIns; PM.IsPn = false; //Recvdata = SendNewPID.SendCommand(PM); Recvdata = WriteLogDB(PM, TicketLP); //指令日志 Log(0, string.Format("\r\n【订单号{0}】发送指令>{1}\r\n接收数据:\r\n{2}\r\n", Order.OrderId, SendIns, Recvdata)); } else { Log(0, string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3}," + "出票失败,{4}", Order.OrderId, Pnr, pOffice, PnrStatus, Recvdata)); sbLog.Append(string.Format("订单号{0},编码{1} 出票Office{2},编码状态为{3}," + "出票失败,{4}", Order.OrderId, Pnr, pOffice, PnrStatus, Recvdata)); } } } } catch (Exception ex) { Log(0, string.Format("订单号{0},出票异常:{1}", Order.OrderId, ex.Message + ex.Source + ex.StackTrace.ToString())); sbLog.Append(string.Format("订单号{0},出票异常:{1}", Order.OrderId, ex.Message + ex.Source + ex.StackTrace.ToString())); } finally { string TicketMsg = ""; Log_Tb_AirOrder OrderLog = new Log_Tb_AirOrder(); //执行SQl语句 List <string> sqlList = new List <string>(); //修改订单数据列表 List <string> OrderList = new List <string>(); if (TicketLP != null) { //解锁 OrderList.Add(" LockCpyNo='' "); OrderList.Add(" LockLoginName='' "); OrderList.Add(" LockTime='1900-01-01' "); OrderList.Add(" CPTime=getdate() "); OrderList.Add(" CPName='管理员' "); OrderList.Add(string.Format(" CPCpyNo='{0}' ", TicketLP.CpyNo)); OrderList.Add(" CPRemark='BSP自动出票' "); OrderList.Add(string.Format(" CPCpyName='{0}' ", TicketLP.UninAllName)); //日志 OrderLog.id = Guid.NewGuid(); OrderLog.OrderId = Order.OrderId; OrderLog.OperType = "出票"; OrderLog.OperTime = DateTime.Now; OrderLog.OperLoginName = "管理员"; OrderLog.OperUserName = "******"; OrderLog.CpyNo = TicketLP.CpyNo; OrderLog.CpyType = 1; OrderLog.CpyName = TicketLP.UninAllName; } if (PTList != null && PTList.Count > 0 && PasList != null && PasList.Count > 0) { string PasName = "", TicketNumber = ""; for (int i = 0; i < PTList.Count; i++) { if (PTList[i].Split('|').Length == 2) { TicketNumber = PTList[i].Split('|')[0]; PasName = PTList[i].Split('|')[1]; Tb_Ticket_Passenger Passenger = PasList.Find(delegate(Tb_Ticket_Passenger _tempPassenger) { return(PTList[i].ToUpper().Trim().Contains(_tempPassenger.PassengerName.ToUpper().Trim())); }); if (Passenger != null) { sqlList.Add(string.Format(" update Tb_Ticket_Passenger set TicketNumber='{0}',TicketStatus=2 where id='{1}' and PassengerName='{2}' ", TicketNumber, Passenger.id.ToString(), Passenger.PassengerName)); } } } //修改订单数据 OrderList.Add(" TicketStatus=2 "); OrderList.Add(" OrderStatusCode=4 "); if (OrderList.Count > 0) { sqlList.Add(string.Format(" update Tb_Ticket_Order set {0} where id='{1}' ", string.Join(",", OrderList.ToArray()), Order.id.ToString())); } //出票成功 TicketMsg = "出票成功"; OrderLog.WatchType = 5; //日志 OrderLog.OperContent = "订单号:" + Order.OrderId + " BSP自动出票成功," + string.Format(",", PasList.ToArray()); //修改数据库状态 } else { //出票失败 TicketMsg = "出票失败"; //修改订单自动出票尝试次数 if (Order.AutoPrintTimes > 3)//尝试次数大于3改为手动出票 { sqlList.Add(string.Format(" update Tb_Ticket_Order set AutoPrintFlag=0,AutoPrintTimes=CAST(AutoPrintTimes as int)+1 where id='{0}' ", Order.id.ToString())); } else { sqlList.Add(string.Format(" update Tb_Ticket_Order set AutoPrintTimes=CAST(AutoPrintTimes as int)+1 where id='{0}' ", Order.id.ToString())); } OrderLog.WatchType = 2; //日志 OrderLog.OperContent = "BSP自动出票失败," + sbLog.ToString(); } //日志 string tempSql = Dal.Mapping.MappingHelper <Log_Tb_AirOrder> .CreateInsertModelSql(OrderLog); sqlList.Add(tempSql); string Msg = ""; //修改数据库 if (!Manage.ExecuteSqlTran(sqlList, out Msg)) { Log(0, string.Format("订单号{0},修改数据库失败:{1}", Order.OrderId, Msg)); } Log(0, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "订单号:" + Order.OrderId + " " + TicketMsg + "=======================end=====================\r\n"); } } }
/// <summary> /// 获取订单提醒数据 /// </summary> /// <returns></returns> public string GetOrderPrompt() { StringBuilder sbPromptData = new StringBuilder(); string result = ""; string CpyNo = GetVal("CpyNo", ""); string RoleType = GetVal("RoleType", ""); string currentuserid = GetVal("currentuserid", ""); string LoginName = GetVal("cudspeb", ""); string LoginPwd = GetVal("cpdwpdb", ""); string CurUrl = getRootURL(); string ReUrl = CurUrl + "Login.aspx?cudspeb=" + LoginName + "&cpdwpdb=" + LoginPwd + "&ctdyppbe=cydepsb&OrderPrompt=1"; HashObject hash = new HashObject(); hash.Add("CpyNo", CpyNo); BaseDataManage baseDataManage = new BaseDataManage(); DataTable table = baseDataManage.EexcProc("GetOrderPrompt", hash); int Num = 0; if (table != null && table.Rows.Count > 0) { DataRow dr = table.Rows[0]; string param = "¤tuserid=" + currentuserid; string url = ""; if (dr["待出票订单数"] != DBNull.Value && dr["待出票订单数"].ToString() != "0") { //待出票订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderProcessList.aspx?prompt=1" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["待出票订单数"].ToString() + "</strong></a>张机票等待出票 </td></tr>"); Num++; } if (dr["申请改签订单数"] != DBNull.Value && dr["申请改签订单数"].ToString() != "0") { //申请改签订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=4" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["申请改签订单数"].ToString() + "</strong></a>张机票申请改签 </td></tr>"); Num++; } if (dr["申请退票订单数"] != DBNull.Value && dr["申请退票订单数"].ToString() != "0") { //申请退票订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=2" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["申请退票订单数"].ToString() + "</strong></a>张机票申请退票 </td></tr>"); Num++; } if (dr["申请废票订单数"] != DBNull.Value && dr["申请废票订单数"].ToString() != "0") { //申请废票订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=3" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["申请废票订单数"].ToString() + "</strong></a>张机票申请废票 </td></tr>"); Num++; } if (dr["异地退废改签订单数"] != DBNull.Value && dr["异地退废改签订单数"].ToString() != "0") { //异地退废改签订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=8" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["异地退废改签订单数"].ToString() + "</strong></a>张异地退废改签订单</td></tr>"); Num++; } if (dr["退款中的订单"] != DBNull.Value && dr["退款中的订单"].ToString() != "0") { //退款中的订单 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=9" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["退款中的订单"].ToString() + "</strong></a>张退款中的订单</td></tr>"); Num++; } if (dr["待收银订单数"] != DBNull.Value && dr["待收银订单数"].ToString() != "0") { //显示数据 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderCashierList.aspx?prompt=1" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["待收银订单数"].ToString() + "</strong></a>张待收银订单</td></tr>"); Num++; } if (dr["审核中的订单数"] != DBNull.Value && dr["审核中的订单数"].ToString() != "0") { //审核中的订单数 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=10" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["审核中的订单数"].ToString() + "</strong></a>张审核中的订单</td></tr>"); Num++; } if (dr["审核通过待退款"] != DBNull.Value && dr["审核通过待退款"].ToString() != "0") { //审核通过待退款 url = HttpUtility.UrlEncode(CurUrl + "Order/OrderTGQList.aspx?prompt=5" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["审核通过待退款"].ToString() + "</strong></a>张审核通过,待退款订单</td></tr>"); Num++; } if (dr["线下订单申请"] != DBNull.Value && dr["线下订单申请"].ToString() != "0") { //线下订单申请 url = HttpUtility.UrlEncode(CurUrl + "Order/LineOrderProcess.aspx?prompt=5" + param); sbPromptData.Append("<tr><td align='left' height='28px' ><span style='font-size:12px;'>已有<a href=\"" + ReUrl + "&ourl=" + url + "\" target=\"_blank\" style=\" text-decoration:none;\"><strong style=\"color:red;font-size:20px;\">" + dr["线下订单申请"].ToString() + "</strong></a>张线下订单,等待处理</td></tr>"); Num++; } } StringBuilder PromptUI = new StringBuilder(); if (sbPromptData.ToString() != "") { int x1 = 224; int x2 = 230; x2 = Num * 28; x1 = Num * 28; if (x2 < 150) { x2 = 150; x1 = 170; } PromptUI.Append("<table>"); PromptUI.Append(sbPromptData.ToString()); PromptUI.Append("</table>"); } result = PromptUI.ToString(); return(result); }
protected override void registTags() { tags = new HashObject(new string[] { FuncTags.SORT_INFO, FuncTags.SORT_JOIN }, new string[] { sortField, sortJoin }); }
/// <summary> /// 组装update SQL 语句 /// </summary> /// <param name="dbName">数据库名称</param> /// <param name="tableName">表名称</param> /// <param name="setParameters">set 参数</param> /// <param name="whereParameters">条件参数</param> /// <returns></returns> private static string CreateUpdateSQL(string dbName, string tableName, HashObject setParameters, HashObject whereParameters, string[] offsetParameters, out HashObject newParameters) { StringBuilder Sql = new StringBuilder(); StringBuilder SqlFields = new StringBuilder(); StringBuilder SqlWhere = new StringBuilder(); newParameters = new HashObject(); SqlFields.Append("update "); SqlFields.Append(tableName); SqlFields.Append(" set "); SqlWhere.Append(" where "); Dictionary <string, Column> allColumns = GetAllColumns(dbName, tableName); string primaryColumn = GetPrimaryColumn(dbName, tableName); string hostColumn = DALConfig.GetHostColName(dbName); foreach (string column in setParameters.Keys) { string key = column.ToLower().Trim(); if (key == hostColumn)//=分区列 { newParameters[key] = setParameters[key]; } else if (allColumns.ContainsKey(key) && key != primaryColumn)//包含在此表的列中,且不包含在主键中,不能是分区列 { SqlFields.Append(key); SqlFields.Append("="); if (offsetParameters != null && offsetParameters.Contains(key))//包含在偏移量数组中,则更新时包含自己 { SqlFields.Append(key); SqlFields.Append("+"); //update table set a = a + @a,b=b+@b } SqlFields.Append("@"); SqlFields.Append(key); SqlFields.Append(","); object setvalue = setParameters[key]; //setvalue 为空时,取默认值 if (setvalue == null || setvalue.ToString() == string.Empty) { setvalue = allColumns[key].GetDefaultValue(); } newParameters.Add(key.ToLower(), setvalue); } } foreach (string column in whereParameters.Keys) { string key = column.ToLower().Trim(); if (allColumns.ContainsKey(key)) //包含在此表的列中 { if (newParameters.ContainsKey(key)) //where 条件在 set 里面存在 { SqlWhere.Append(key); SqlWhere.Append("=@w_"); SqlWhere.Append(key); SqlWhere.Append(" and "); newParameters["w_" + key] = whereParameters[key]; } else { SqlWhere.Append(key); SqlWhere.Append("=@"); SqlWhere.Append(key); SqlWhere.Append(" and "); newParameters[key] = whereParameters[key]; } } } Sql.Append(SqlFields.ToString(0, SqlFields.Length - 1)); Sql.Append(" "); Sql.Append(SqlWhere.ToString(0, SqlWhere.Length - 4)); string strSql = Sql.ToString().ToLower(); return(strSql); }
/** * 根据表格中设置的参数的对应值,组装出参数哈希对象 **/ private IHashObject getParams() { IHashObject p = new HashObject(); for(int i=0; i<dgvParamsSet.RowCount-1; i++) { if (dgvParamsSet[0, i].Value==null || dgvParamsSet[0, i].Value.ToString() == "") continue; p.Add(dgvParamsSet[0, i].Value.ToString(), (dgvParamsSet[1, i].Value==null) ? "": dgvParamsSet[1, i].Value.ToString()); } return p; }
/// <summary> /// 退废改签 /// </summary> /// <param name="writer"></param> /// <param name="parames"></param> public override void Update(ResponseWriter writer, System.Collections.Specialized.NameValueCollection parames) { UserLoginInfo userInfo = AuthLogin.GetUserInfo(Username); KongZhiXiTong = BaseParams.getParams(userInfo.SupParameters).KongZhiXiTong; PbProject.Logic.Order.Tb_Ticket_OrderBLL orderBll = new PbProject.Logic.Order.Tb_Ticket_OrderBLL(); string sqlWhere = " OrderID='" + CommonMethod.GetFomartString(parames["OrderID"]) + "' "; List <Tb_Ticket_Order> OrderList = baseDataManage.CallMethod("Tb_Ticket_Order", "GetList", null, new Object[] { sqlWhere }) as List <Tb_Ticket_Order>; Tb_Ticket_Order Order = OrderList != null && OrderList.Count > 0 ? OrderList[0] : null; if (Order == null) { writer.WriteEx(546, "order num err", "订单编号错误"); } else { sqlWhere = " OrderId='" + Order.OrderId + "' "; List <Tb_Ticket_Passenger> PassengerList = baseDataManage.CallMethod("Tb_Ticket_Passenger", "GetList", null, new Object[] { sqlWhere }) as List <Tb_Ticket_Passenger>; List <Tb_Ticket_SkyWay> NewSkyWayList = baseDataManage.CallMethod("Tb_Ticket_SkyWay", "GetList", null, new Object[] { sqlWhere + " order by FromDate " }) as List <Tb_Ticket_SkyWay>; //提示信息 string msg = ""; try { //申请类型3退票申请 4废票申请 5改签申请 string ApplayType = CommonMethod.GetFomartString(parames["ApplayType"]); //扩展参数 ParamEx pe = new ParamEx(); pe.UsePIDChannel = this.KongZhiXiTong != null && this.KongZhiXiTong.Contains("|48|") ? 2 : 0; //发送指令管理类 SendInsManage SendIns = new SendInsManage(userInfo.User.LoginName, userInfo.Company.UninCode, pe, userInfo.Configparam); //订单日志 StringBuilder orderLog = new StringBuilder(); #region //选择的乘客信息 List <HashObject> pasList = GetPassengerInfo(Order, PassengerList, CommonMethod.GetFomartString(parames["pasList"])); //选中的 成人 儿童 婴儿 int AdultCount = 0, CHDCount = 0, INFCount = 0; //没选中的 成人 儿童 婴儿 int NoSelAdultCount = 0, NoSelCHDCount = 0, NoSelINFCount = 0; //选择的乘机人 List <HashObject> selList = new List <HashObject>(); foreach (HashObject param in pasList) { if (param["pasIsBack"].ToString() == "0") //获取没有提交的用户 { //选择的乘客数 if (param["IsChecked"].ToString() == "1") { if (param["pasPType"].ToString() == "1") { AdultCount++; } else if (param["pasPType"].ToString() == "2") { CHDCount++; } else if (param["pasPType"].ToString() == "3") { INFCount++; } selList.Add(param); } else { if (param["pasPType"].ToString() == "1") { NoSelAdultCount++; } else if (param["pasPType"].ToString() == "2") { NoSelCHDCount++; } else if (param["pasPType"].ToString() == "3") { NoSelINFCount++; } } } } #endregion //航段信息 List <HashObject> skyList = GetSkyInfo(Order, NewSkyWayList, CommonMethod.GetFomartString(parames["skywayList"])); #region if (ApplayType != "5")//退废票 { //行程单状态判断 if (!KongZhiXiTong.Contains("|68|")) { if (string.IsNullOrEmpty(msg)) { //行程单状态判断 if (!TripIsVoid(userInfo, pasList, SendIns, out msg)) { msg = (string.IsNullOrEmpty(msg)) ? "不能提交,行程单状态异常!" : msg; } } } if (string.IsNullOrEmpty(msg)) { //票号状态判断 if (!KongZhiXiTong.Contains("|69|")) { if (string.IsNullOrEmpty(msg)) { //票号状态判断 if (!PassengerTicketIsOpen(pasList, skyList, SendIns, out msg)) { msg = (string.IsNullOrEmpty(msg)) ? "不能提交,票号状态异常!" : msg; } } } } if (string.IsNullOrEmpty(msg)) { //废票 飞机起飞两个半小时内不能提交废票操作,只能走退票通道 if (ApplayType == "4" && skyList.Count > 0) { //是否可以提交废票 1可以 0不可以 HashObject strArr = skyList[0] as HashObject; if (strArr.Count == 11 && strArr["IsFP"].ToString() == "0") { if (KongZhiXiTong != null && !KongZhiXiTong.Contains("|16|")) { msg = "飞机起飞两个半小时内不能提交废票操作,只能走退票通道"; } } } } } #endregion if (string.IsNullOrEmpty(msg)) { msg = TimeIsCommit(ApplayType, Order); } if (string.IsNullOrEmpty(msg)) { //含有没有提交的婴儿并且没有成人时 不可以提交 if (NoSelINFCount > 0 && NoSelAdultCount == 0) { msg = "婴儿订单必须有成人陪同!"; orderLog.Append("成人带婴儿订单,需要手动处理编码!"); } } if (string.IsNullOrEmpty(msg)) { string divMsg = ""; if (Order.OrderSourceType == 1)//白屏预订 { //退费票且没有婴儿 if (ApplayType != "5" && (AdultCount > 0 || CHDCount > 0)) { //开启退废票(分离、取消)编码 if (KongZhiXiTong.Contains("|32|")) { ////退废处理 判断 分离编码 和 取消编码 divMsg = PnrHandle(Order, SendIns, orderLog, selList, INFCount); } } } if (divMsg != "" && INFCount == 0) { } else { //处理退改签 msg = TGQ(userInfo, Order, NewSkyWayList, skyList, PassengerList, pasList, CommonMethod.GetFomartString(parames["remark"]), CommonMethod.GetFomartString(parames["quitReasonType"]), CommonMethod.GetFomartString(parames["reason"])); } } else { } } catch (Exception) { } finally { //解锁 orderBll.LockOrder(false, Order.id.ToString(), userInfo.User, userInfo.Company); writer.Write(msg); } } }
private BSqlMaker getSQL(Boolean bPagerMaker, IHashObject queryParams) { if (queryParams == null) queryParams = new HashObject(); BSqlMaker maker = BMakerHelper.getMaker(conString, filePath, className, queryParams); try { if (bPagerMaker) { rSumSql.Text = ((BPagerSqlMaker)maker).getSumDataSQL(); rRecordCountSql.Text = ((BPagerSqlMaker)maker).getRecordCountSQL(); rPagerSql.Text = ((BPagerSqlMaker)maker).getPageDataSQL(0, 20, true); } else { rCommonSql.Text = maker.getSQL(); } } catch (Exception error) { addErrList("getSQL出错:" + error.Message); } return maker; }
//注册本SQLMaker函数要替换的SQL中的Tag,及用什么变量来替换 protected override void registTags() { tags = new HashObject(new string[] { FuncTags.RIGHTS_TEMP_CREATE, FuncTags.RIGHTS_JOIN }, new string[] { tempCreate, rightsJoin }); }
static SchemaManager() { //从XML加载 //读取SQL文件,默认在根目录下面的sql 文件夹中 (此文件夹禁止外部访问) //string filePath = AppDomain.CurrentDomain.BaseDirectory;//web程序默认在根目录,非WEB程序默认在bin\debug //if (!filePath.EndsWith(@"\"))//非WEB程序默认不含\结束, //{ // filePath = filePath + @"\"; //} //if (filePath.Contains("bin")) //{ // filePath = filePath.Substring(0, filePath.Length - 10);//默认根目录,去掉bin\debug //} //filePath = filePath + DefaultSQLFilePath; //var sqlFiles = Directory.GetFiles(filePath, "*.xml", SearchOption.AllDirectories); List <string> sqlFiles = GetRNames(); foreach (var sqlFile in sqlFiles) { var sqlDoc = new XmlDocument(); try { sqlDoc.LoadXml(sqlFile); } catch { throw new Exception(sqlFile + "格式错误!"); } XmlNode tableNode = sqlDoc.DocumentElement; //读取每个xml里面的SQL语句,放入SQL字典,名称为DBName.TableName.SqlName var columnNodes = sqlDoc.DocumentElement.SelectNodes("//Table/COLUMN"); string dbname = tableNode.Attributes["DBName"].Value; string tablename = tableNode.Attributes["TableName"].Value; string keyForTable = string.Format("{0}.{1}", dbname, tablename).ToLower(); if (columnNodes != null) { foreach (XmlNode columnElement in columnNodes) { Column column = new Column(); column.ColumnName = columnElement.Attributes["Name"].Value; column.Type = columnElement.Attributes["Type"].Value; column.Default = columnElement.Attributes["Default"].Value; column.IsPrimary = Convert.ToBoolean(columnElement.Attributes["IsPrimary"].Value); if (column.IsPrimary) { if (_primaryColumnsDic.ContainsKey(keyForTable)) { throw new Exception(string.Format("不支持多主键:{0}", keyForTable)); } _primaryColumnsDic.Add(keyForTable, column.ColumnName); } if (!_allColumnsDic.ContainsKey(keyForTable)) { _allColumnsDic.Add(keyForTable, new Dictionary <string, Column>()); } _allColumnsDic[keyForTable].Add(column.ColumnName, column); } } //读取每个xml里面的SQL语句,放入SQL字典,名称为DBName.TableName.SqlName var sqlNodes = sqlDoc.DocumentElement.SelectNodes("//Table/SQL"); if (sqlNodes != null) { foreach (XmlNode sqlElement in sqlNodes) { SqlObj sqlObj = new SqlObj(); string key = string.Format("{0}.{1}.{2}", dbname, tablename, sqlElement.Attributes["SqlName"].Value).ToLower(); string sqltext = sqlElement.InnerText.Trim(); sqlObj.Name = key; sqlObj.SqlText = sqltext; if (sqlElement.Attributes["dbrwtype"] != null)//SQL本身包含 { sqlObj.DBrwType = (DBrwType)Enum.Parse(typeof(DBrwType), sqlElement.Attributes["dbrwtype"].Value); } else if (tableNode.Attributes["dbrwtype"] != null)//table上包含定义 { sqlObj.DBrwType = (DBrwType)Enum.Parse(typeof(DBrwType), tableNode.Attributes["dbrwtype"].Value); } else { sqlObj.DBrwType = DBrwType.None;//默认未设置 } XmlNodeList defaultParameterNodes = sqlElement.SelectNodes("defaultParameters/item"); if (defaultParameterNodes != null)//包含默认参数 { HashObject defaultParameters = new HashObject(); foreach (XmlNode item in defaultParameterNodes) { defaultParameters.Add(item.Attributes["name"].Value, item.Attributes["value"].Value); } sqlObj.DefaultParameters = defaultParameters; } bool isoverride = sqlElement.Attributes["isoverride"] == null ? false : true; if (_sqlDic.ContainsKey(key)) { if (isoverride) { _sqlDic.Remove(key); _sqlDic.Add(key, sqlObj); } } else { _sqlDic.Add(key, sqlObj); } } } } }