/// <summary>
        /// 查看工具操作记录
        /// </summary>
        /// <returns>工具操作记录消息集</returns>
        public Message UserOperateLog_Query(int index, int pageSize)
        {
            int      userID = 0;
            DateTime beginDate;
            DateTime endDate;
            DataSet  ds = null;

            try
            {
                TLV_Structure tlvStrut = new TLV_Structure(TagName.User_ID, 4, message.m_packet.m_Body.getTLVByTag(TagName.User_ID).m_bValueBuffer);
                userID    = (int)tlvStrut.toInteger();
                tlvStrut  = new TLV_Structure(TagName.SDO_BeginTime, 3, message.m_packet.m_Body.getTLVByTag(TagName.BeginTime).m_bValueBuffer);
                beginDate = tlvStrut.toDate();
                tlvStrut  = new TLV_Structure(TagName.SDO_EndTime, 3, message.m_packet.m_Body.getTLVByTag(TagName.EndTime).m_bValueBuffer);
                endDate   = tlvStrut.toDate();
                ds        = CommonInfo.OperateLog_Query(userID, beginDate, endDate);
                if (ds != null && ds.Tables[0].Rows.Count > 0)
                {
                    //总页数
                    int pageCount = 0;
                    pageCount = ds.Tables[0].Rows.Count % pageSize;
                    if (pageCount > 0)
                    {
                        pageCount = ds.Tables[0].Rows.Count / pageSize + 1;
                    }
                    else
                    {
                        pageCount = ds.Tables[0].Rows.Count / pageSize;
                    }
                    if (index + pageSize > ds.Tables[0].Rows.Count)
                    {
                        pageSize = ds.Tables[0].Rows.Count - index;
                    }
                    Query_Structure[] structList = new Query_Structure[pageSize];
                    for (int i = index; i < index + pageSize; i++)
                    {
                        Query_Structure strut = new Query_Structure((uint)ds.Tables[0].Rows[i].ItemArray.Length + 1);
                        byte[]          bytes = TLV_Structure.ValueToByteArray(TagFormat.TLV_STRING, ds.Tables[0].Rows[i].ItemArray[0]);
                        strut.AddTagKey(TagName.RealName, TagFormat.TLV_STRING, (uint)bytes.Length, bytes);
                        string gameName;
                        if (ds.Tables[0].Rows[i].IsNull(1) == false)
                        {
                            gameName = ds.Tables[0].Rows[i].ItemArray[1].ToString();
                        }
                        else
                        {
                            gameName = "";
                        }
                        bytes = TLV_Structure.ValueToByteArray(TagFormat.TLV_STRING, gameName);
                        strut.AddTagKey(TagName.GameName, TagFormat.TLV_STRING, (uint)bytes.Length, bytes);
                        string City;
                        if (ds.Tables[0].Rows[i].IsNull(2) == false)
                        {
                            City = ds.Tables[0].Rows[i].ItemArray[2].ToString();
                        }
                        else
                        {
                            City = "";
                        }
                        bytes = TLV_Structure.ValueToByteArray(TagFormat.TLV_STRING, City);
                        strut.AddTagKey(TagName.SDO_City, TagFormat.TLV_STRING, (uint)bytes.Length, bytes);
                        string RealAct;
                        if (ds.Tables[0].Rows[i].IsNull(3) == false)
                        {
                            RealAct = ds.Tables[0].Rows[i].ItemArray[3].ToString();
                        }
                        else
                        {
                            RealAct = "";
                        }
                        bytes = TLV_Structure.ValueToByteArray(TagFormat.TLV_STRING, RealAct);
                        strut.AddTagKey(TagName.Real_ACT, TagFormat.TLV_STRING, (uint)bytes.Length, bytes);
                        bytes = TLV_Structure.ValueToByteArray(TagFormat.TLV_TIMESTAMP, ds.Tables[0].Rows[i].ItemArray[4]);
                        strut.AddTagKey(TagName.ACT_Time, TagFormat.TLV_TIMESTAMP, (uint)bytes.Length, bytes);
                        strut.AddTagKey(TagName.PageCount, TagFormat.TLV_INTEGER, 4, TLV_Structure.ValueToByteArray(TagFormat.TLV_INTEGER, pageCount));
                        structList[i - index] = strut;
                    }
                    return(Message.COMMON_MES_RESP(structList, Msg_Category.COMMON, ServiceKey.GMTOOLS_OperateLog_Query_RESP, 6));
                }
                else
                {
                    return(Message.COMMON_MES_RESP(LanguageAPI.API_CommonAPI_NoLog, Msg_Category.COMMON, ServiceKey.GMTOOLS_OperateLog_Query_RESP, TagName.ERROR_Msg, TagFormat.TLV_STRING));
                }
            }
            catch (Common.Logic.Exception ex)
            {
                return(Message.COMMON_MES_RESP(ex.Message, Msg_Category.COMMON, ServiceKey.GMTOOLS_OperateLog_Query_RESP, TagName.ERROR_Msg, TagFormat.TLV_STRING));
            }
        }