Пример #1
0
 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 });
 }
Пример #2
0
 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);
 }
Пример #3
0
 /**
  * 从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]);
             }
         }
     }
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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));
        }
Пример #7
0
    /// <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();
    }
Пример #8
0
    /// <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));
    }
Пример #9
0
        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;
        }
Пример #10
0
    /// <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);
            }
        }
    }
Пример #11
0
        /// <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
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        ///// <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);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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;
                }
            }
        }
Пример #17
0
 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);
    }
Пример #20
0
    /// <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);
    }
Пример #21
0
    /// <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   = "&nbsp;&nbsp;&nbsp;  页码 : <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");
        }
    }
Пример #22
0
        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);
            }
        }
Пример #23
0
    /// <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);
    }
Пример #24
0
    /// <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);
        }
    }
Пример #25
0
 /// <summary>
 /// 判断是否需要创建新的ID
 /// </summary>
 /// <param name="parameters"></param>
 /// <returns></returns>
 private bool NeedCreateNewId(HashObject parameters)
 {
     //参数不包含,或者为0,自动自增一个新的
     return(!parameters.ContainsKey(_primaryColumn) || Convert.ToInt64(parameters[_primaryColumn]) == 0);
 }
Пример #26
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;
                }
            }
        }
Пример #27
0
        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;
            }
        }
Пример #28
0
    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);
        }
    }
Пример #29
0
        /* 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");
                }
            }
        }
Пример #30
0
    /// <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 = "&currentuserid=" + 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);
    }
Пример #31
0
 protected override void registTags()
 {
     tags = new HashObject(new string[] { FuncTags.SORT_INFO, FuncTags.SORT_JOIN }, new string[] { sortField, sortJoin });
 }
Пример #32
0
        /// <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);
        }
Пример #33
0
 /**
  * 根据表格中设置的参数的对应值,组装出参数哈希对象
  **/
 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;
 }
Пример #34
0
        /// <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);
                }
            }
        }
Пример #35
0
        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;
        }
Пример #36
0
 //注册本SQLMaker函数要替换的SQL中的Tag,及用什么变量来替换
 protected override void registTags()
 {
     tags = new HashObject(new string[] { FuncTags.RIGHTS_TEMP_CREATE, FuncTags.RIGHTS_JOIN }, new string[] { tempCreate, rightsJoin });
 }
Пример #37
0
        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);
                        }
                    }
                }
            }
        }