Эх сурвалжийг харах

留存分析,行为分析.

gwang 5 жил өмнө
parent
commit
b8b05c7138

+ 0 - 34
Gameserver/Amfphp/base/MemKey_GameRun.php

@@ -91,40 +91,6 @@ class MemKey_GameRun {
     public static function Game_PVPScoreByZone_zset_Day($zoneid, $day) {
         return "gamerun-pvpScore-zone$zoneid-day$day";
     }
-
-//    /**
-//     * 运行时数据 - pvp积分榜(上周)
-//     * 当前和上周都是作为总榜的记录存在,
-//     * @param int $zoneid
-//     * @return string
-//     */
-//    public static function Game_PVPScoreByZone_zset_lastWeek($zoneid) {
-//        $week = TimeUtil::tsWeek() - 1;
-//        return "gamerun-pvpScore-zone$zoneid-$week";
-//    }
-//    /**
-//     * 运行时数据 - pvp 每周排行榜发放记录 [tsweek,...]
-//     * @param int $zoneid
-//     * @return string
-//     */
-//    public static function Game_PVPRankRewardRecord_set($zoneid) {
-//        return "gamerun-pvpRewardRecord-zone$zoneid";
-//    }
-//
-//    /**
-//     * 运行时数据 - pvp 每周领取排行榜奖励的玩家记录 [tsweek,...]
-//     * @param int $zoneid
-//     * @param int $tsweek Description
-//     * @return string
-//     */
-//    public static function Game_PVPRankRewardRecord_byWeek_str($zoneid, $tsweek) {
-//        return "gamerun-pvpRewardRecord-zone$zoneid-$tsweek";
-//    }
-    // </editor-fold>
-    // 
-    // <editor-fold defaultstate="collapsed" desc=" 排行榜相关 ">
-    // 
-
     /**
      * 运行时数据 - 战斗力总榜
      * @param type $zoneid

+ 16 - 0
Gameserver/Amfphp/base/MemKey_Stat.php

@@ -0,0 +1,16 @@
+<?php
+namespace loyalsoft;
+
+/**
+ * 游戏统计数据
+ * @version
+ *          1.0.0 Created at 2017-4-6. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-4-6, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+
+class MemKey_Stat{
+
+
+
+}

+ 163 - 0
Gameserver/Amfphp/base/loyalsoft.CmdCode.txt

@@ -0,0 +1,163 @@
+cmd_pay_buygoods;8801;0;购买道具
+cmd_pay_getfirstpaygift;8802;0;领取首付礼包
+cmd_pay_getvipnewergift;8803;0;领取黄钻新手礼包
+cmd_pay_getvipdaygift;8804;0;领取黄钻每日礼包
+cmd_pay_getvipopengift;8805;0;领取开通包月礼包
+cmd_pay_confirmdelivery;8806;0;客户端确认支付发货
+cmd_mpay_pay;8807;0;【移动端】购买物品
+cmd_mpay_get_balance;8808;0;【移动端】查询游戏币余额
+cmd_mpay_buyDynamic;8809;0;【移动端】购买神秘商城物品
+cmd_mpay_getDynamic;8810;0;【移动端】刷新神秘商城物品
+cmd_mpay_selfCheckOrders;8811;0;【移动端】自助检查异常订单
+cmd_mpay_getPayRecords;8812;0;【移动端】查询付费记录
+cmd_user_getzonelist;6000;0;获取分区列表
+cmd_user_loginuserinfo;6001;0;玩家登录指令
+cmd_user_gameconstinfo;6002;0;常量信息指令
+cmd_user_acceptcontidaysgift;6003;0;获取连续登录奖励
+cmd_user_registerNewUID;6004;0;更新玩家新手引导的进度
+cmd_user_testUserLogin;6005;0;【测试】机器码登录
+cmd_user_registerNewRole;6006;0;注册新用户
+cmd_user_completeNewbieGuide;6007;0;完成新手引导
+cmd_user_setNickname;6008;0;[6008]设置修改玩家昵称
+cmd_user_setNewbieGuideCards;6009;0;[6009]发放新手引导所需卡牌
+cmd_user_SetUserImageBorder;6010;0;[6010]修改头像框
+cmd_user_setNewbieGuideOver;6011;0;[6011]新手引导——设置结束标志位
+cmd_user_friend_apply;6101;0;[6101]申请好友
+cmd_user_friend_accept;6102;0;[6102]同意成为好友
+cmd_user_friend_deny;6103;0;[6103]拒绝好友申请->?这里需不需要通知被拒绝人?
+cmd_user_friend_remove;6104;0;[6104]解除好友关系
+cmd_user_friend_getapplylist;6105;0;[6105]拉取好友请求列表
+cmd_user_friend_get_list;6106;0;[6106]拉取好友列表
+cmd_user_friend_get_infos;6107;0;[6107]拉取好友详细信息(分批次)
+cmd_user_friend_leave_message;6108;0;[6108]给好友发送消息
+cmd_user_friend_get_message;6109;0;[6109]拉取最新好友消息
+cmd_user_friend_search;6110;0;[6110]搜索好友
+cmd_user_friend_suggestList;6111;0;[6111]系统推荐好友列表(添加好友面板适用)
+cmd_user_friend_reload;6112;0;[6112]重新载入好友模块(刷新好友模块,该删除的删除,该添加的添加)
+cmd_user_friend_gift_getlist;6113;0;[6113]拉取好友向我赠送礼物的记录
+cmd_user_friend_gift_redraw;6114;0;[6114]领取礼物
+cmd_user_friend_gift_send;6115;0;[6115]向好友示好(如浇水,送花之类的表现)
+cmd_user_friend_unduckmsg;6116;0;[6116]请求查看玩家是否有未读信息
+cmd_user_friend_LookGuildInfo;6117;0;[6117]请求查看玩家公会信息
+cmd_user_friend_LookFriendInfo;6118;0;[6118]请求查看玩家简介
+cmd_hero_levelup;6301;0;英雄-升级::=消耗金币和碎片进行升级
+cmd_hero_equip;6302;0;英雄-加上装备
+cmd_hero_unequip;6303;0;英雄-卸下装备
+cmd_hero_stageup;6304;0;英雄-升阶::消耗碎片
+cmd_hero_upstar;6305;0;英雄-升星
+cmd_hero_changelockstate;6306;0;英雄-更改锁定状态
+cmd_hero_changefirendbackup;6307;0;英雄-更改好友支援状态
+cmd_hero_gethero;6308;0;英雄---获得一个英雄
+cmd_hero_strength;6309;0;英雄的突破升级
+cmd_hero_openFavor;6310;0;英雄的解锁好感度
+cmd_hero_separate;6311;0;英雄的分解获得好感度晶石
+cmd_hero_buyCollectHeroLimtCount;6312;0;购买玩家可以收集的英雄的数量上限
+cmd_hero_changefriendsupport;6313;0;更改好友支援
+cmd_hero_upgradeSkillLevel;6314;0;英雄的技能升级
+cmd_hero_saveHeroTeamConfig;6315;0;存储队伍配置
+cmd_hero_GetDiscuss;6316;0;拉取英雄评论列表
+cmd_hero_PostDiscuss;6317;0;对英雄发表评论
+cmd_hero_PraiseDiscuss;6318;0;给某条评论点赞
+cmd_hero_DeleteDiscuss;6319;0;删除对某个英雄的评论
+cmd_hero_scoreit;6320;0;给某个英雄打分
+cmd_hero_buyHero;6321;0;购买英雄
+cmd_hero_upGodBlood;6322;0;英雄神血升级
+cmd_hero_unlockByPieces;6323;0;英雄碎片先解锁再购买
+cmd_hero_unlockSkill;6324;0;英雄技能-解锁技能
+cmd_hero_skillLevel_onekeyupgrade;6325;0;英雄技能-一键升级
+cmd_store_put;6401;0;放入仓库
+cmd_store_singleSell;6402;0;卖出单个物品
+cmd_store_mutliSell;6403;0;从背包批量卖出物品
+cmd_store_use;6404;0;使用物品
+cmd_store_refresh;6405;0;刷新仓库
+cmd_store_decomposeItem;6406;0;分解道具
+cmd_store_Testcmd;6407;0;测试用的命令
+cmd_store_ItemUpgrade;6408;0;升级某个装备
+cmd_store_GemCompose;6409;0;宝石合成
+cmd_store_WearEquip;6410;0;英雄穿装备
+cmd_store_UnWieldEquip;6411;0;英雄脱装备
+cmd_store_AddMaxPacketNum;6412;0;购买增加物品栏格子数
+cmd_store_MeltEquip;6413;0;装备熔炼
+cmd_store_PiecesCompose;6415;0;
+cmd_store_WearYanling;6416;0;装备言灵
+cmd_store_UnWieldYanling;6417;0;卸下言灵
+active_day7_gettasklist;6500;0;开服七日活动-刷新任务列表
+active_day7_completetask;6501;0;开服7日活动-完成任务
+active_day7_drawreward;6502;0;开服七日活动-领取奖励
+active_getzonePublicTs;6503;0;查询开服时间
+Task_completetask;6506;0;普通任务-完成任务
+Task_drawreward;6507;0;普通任务-领取奖励
+Task_Tili;6508;0;领取体力,间隔领取体力
+lottery;6509;0;活动-抽奖
+lottery_demo;6510;0;新手引导-活动-抽奖
+lottery_baodi;6511;0;活动-抽奖领取保底奖励
+active_token_drawReward;6512;0;活动-凭兑换码领取礼包
+active_draw_onlinegift;6513;0;活动-领取在线礼包
+active_draw_reggift;6514;0;活动-领取全服注册礼包
+active_presentTili;6515;0;活动-领取在线赠送体力
+active_get_regnum;6516;0;活动-查询当前全服注册人数
+box_SubCoolDown;6517;0;开宝箱-减少冷却时间
+rank_fpower_getRank;6601;0;排行榜-战斗力榜
+rank_fpower_drawReward;6602;0;排行榜-领取战斗力榜突破奖励
+rank_fpower_getRanking;6603;0;排行榜-查询玩家战斗力排名
+rank_getTop1;6604;0;排行榜-查询各榜榜一
+rank_passgate_getrank;6605;0;排行榜-通关榜
+rank_passgate_drawReward;6606;0;排行榜-领取通关榜突破奖励
+rank_fpower_breachLog;6607;0;排行榜-查询战力突破记录
+rank_passgate_breachLog;6608;0;排行榜-查询通关榜突破记录
+cmd_email_questEmailList;6701;0;[6701]获取邮件列表
+cmd_email_readAllEmail;6702;0;[6702]读取领取一封邮件
+cmd_email_delMmail;6703;0;[6703]删除邮件
+cmd_email_test;6704;0;[6704]测试-插入一封邮件
+cmd_mail_delMmailAnyConditions;6705;0;[6705]删除邮件——没有条件的
+cmd_mail_notReadMailNum;6706;0;6706请求邮件未处理的数量
+cmd_fight_arenas_preFight;6800;0;关卡战斗-预掉落计算
+cmd_fight_arenasfight;6801;0;关卡战斗
+cmd_fight_arenassweep;6802;0;关卡扫荡
+cmd_fight_GetChallengeAdversaryInfo;6803;0;挑战-获得挑战对手的信息
+cmd_fight_LogChallengeResult;6804;0;挑战-记录挑战结果
+cmd_fight_GetChallengeLog;6805;0;挑战-拉取挑战记录
+cmd_fight_pvp_maininfo;6810;0;竞技场主界面信息
+cmd_fight_pvp_refresh;6811;0;竞技场刷新对手列表
+cmd_fight_pvp_pk;6812;0;竞技场挑战xx.
+cmd_fight_pvp_setTeam;6813;0;竞技场调整阵容
+cmd_fight_pvp_buyTicket;6814;0;竞技场购买挑战票
+cmd_fight_pvp_getrank;6815;0;竞技场查看榜单
+cmd_fight_pvp_getLog;6816;0;竞技场查询战报
+cmd_fight_pvpShop_getMainInfo;6820;0;竞技场商店主界面信息
+cmd_fight_pvpShop_buy;6821;0;竞技场商店购买道具
+cmd_fight_pvpShop_refresh;6822;0;竞技场商店刷新道具
+cmd_system_getsysmessage;6901;0;获取系统消息列表
+cmd_system_logreport;6902;0;系统日志上报
+cmd_system_clienttick;6903;0;客户端心跳包
+cmd_system_userSendsysmessage;6904;0;玩家发送系统消息
+cmd_guild_getUserGuildInfo;7000;0;【会员】查询自己的公会信息
+cmd_guild_getList;7001;0;查询公会列表
+cmd_guild_refuseGuildCupScore;7002;0;查询推荐公会列表
+cmd_guild_searchGuildByID;7003;0;搜索公会
+cmd_guild_create;7004;0;创建公会
+cmd_guild_apply;7005;0;申请加入
+cmd_guild_QuickIn;7006;0;一键加入
+cmd_guild_GetGuildInfo;7007;0;请求公会信息
+cmd_guild_modifyDeclare;7008;0;编辑
+cmd_guild_dismiss;7009;0;解散
+cmd_guild_fireMember;7010;0;开除
+cmd_guild_approve;7011;0;审批
+cmd_guild_setPriceChairman;7013;0;设置副会长
+cmd_guild_getGuildMembers;7014;0;获取成员信息
+cmd_guild_setOfficer;7015;0;设置干部职位
+cmd_guild_quit;7016;0;退会
+cmd_guild_InitiateAccuse;7017;0;发起弹劾
+cmd_guild_Accuse;7018;0;同意弹劾
+cmd_guild_ChairmanCancelAccuse;7019;0;会长取消本次弹劾
+cmd_guild_ApplyUserIntro;7020;0;申请者玩家简介
+cmd_guild_requestDonate;7021;0;发起捐献
+cmd_guild_donate;7022;0;捐献
+cmd_guild_donateInfoRefresh;7023;0;捐献数据刷新
+cmd_guild_buyDonateGift;7024;0;购买捐献度礼包
+cmd_guild_buyGuildCashGift;7025;0;购买公会钻石礼包
+cmd_guild_announcement;7026;0;公会公告
+cmd_guild_noticeMail;7027;0;公会邮件
+cmd_guild_vsFightInvite;7028;0;【公会战】邀请成员战斗
+cmd_guild_cancelInvite;7029;0;【公会战】取消邀请
+cmd_guild_fight;7030;0;【公会战】接受,战斗

+ 1 - 2
Gameserver/Amfphp/process/UserProc.php

@@ -581,8 +581,7 @@ class UserProc {
     public static function backupUserInfo($req) {
         $tsday = TimeUtil::tsDay();                                             # 精确到天,保留10个最近记录.
         $value = base64_encode(gzdeflate(JsonUtil::encode($req->userInfo)));    # blob数据,序列化下
-        $sql = sprintf("call insertUserInfo('%s', %d, %d, '%s');
-", #               # 所以直接将序列化后的结果存进去吧,
+        $sql = sprintf("call insertUserInfo('%s', %d, %d, '%s');", #            # 所以直接将序列化后的结果存进去吧,
                 $req->uid, $req->zoneid, $tsday, $value);                       # zoneid, uid, tsday
         daoInst()->query($sql);                                                 # 也可以用exec($sql)
     }

+ 6 - 6
Gameserver/gamesys/app/providers/action.php

@@ -12,12 +12,12 @@ include_once dirname(__FILE__).'/../main.php';
  * @author jgao
  */
 
-define("SELECT_BASE", "select `uid`,`plat`,`area`,`insertDatetime`,`lastUpdatetime` from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59' limit %s,%s");
-define("SELECT_BASE_OLD", "select `uid`,`plat`,`area`,`insertDatetime`,`lastUpdatetime` from tab_rolename where `lastUpdatetime`>='%s 00:00:00' and `lastUpdatetime`<='%s 23:59:59' limit %s,%s");
-define("SELECT_BASE_LAST", "select `uid`,`plat`,`area`,`insertDatetime`,`lastUpdatetime` from tab_rolename where `lastUpdatetime`>='%s 00:00:00' and `lastUpdatetime`<='%s 23:59:59' and TO_DAYS(`lastUpdatetime`) = TO_DAYS(`insertDatetime`) limit %s,%s");
-define("SELECT_BASE_COUNT", "select count(*) from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59'");
-define("SELECT_BASE_OLD_COUNT", "select count(*) from tab_rolename where `lastUpdatetime`>='%s 00:00:00' and `lastUpdatetime`<='%s 23:59:59'");
-define("SELECT_BASE_LAST_COUNT", "select count(*) from tab_rolename where `lastUpdatetime`>='%s 00:00:00' and `lastUpdatetime`<='%s 23:59:59' and TO_DAYS(`lastUpdatetime`) = TO_DAYS(`insertDatetime`)");
+define("SELECT_BASE", "select `userID`,`roleName`, `plat`,`zoneid`,`ts`,`lastlogin` from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59' limit %s,%s");
+define("SELECT_BASE_OLD", "select `userID`,`plat`,`zoneid`,`ts`,`lastlogin` from tab_rolename where `lastlogin`>='%s 00:00:00' and `lastlogin`<='%s 23:59:59' limit %s,%s");
+define("SELECT_BASE_LAST", "select `userID`,`plat`,`zoneid`,`ts`,`lastlogin` from tab_rolename where `lastlogin`>='%s 00:00:00' and `lastlogin`<='%s 23:59:59' and TO_DAYS(`lastlogin`) = TO_DAYS(`ts`) limit %s,%s");
+define("SELECT_BASE_COUNT", "select count(*) from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59'");
+define("SELECT_BASE_OLD_COUNT", "select count(*) from tab_rolename where `lastlogin`>='%s 00:00:00' and `lastlogin`<='%s 23:59:59'");
+define("SELECT_BASE_LAST_COUNT", "select count(*) from tab_rolename where `lastlogin`>='%s 00:00:00' and `lastlogin`<='%s 23:59:59' and TO_DAYS(`lastlogin`) = TO_DAYS(`ts`)");
 
 $GET = query_paras();
 $date = $GET['date'];

+ 3 - 3
Gameserver/gamesys/app/providers/actionc32.php

@@ -12,11 +12,11 @@ include_once dirname(__FILE__).'/../main.php';
  * @author jgao
  */
 
-define("SELECT_BASE_C32", "select `uid`,`plat`,`area`,`insertDatetime`,`lastUpdatetime` from tab_rolename where `name`='%s' or `c32`='%s' or `uid`='%s'");
+define("SELECT_BASE_C32", "select `userID`,`roleName`, `plat`,`zoneid`,`ts`,`lastlogin` from tab_rolename where `roleName`='%s' or `userID`='%s'");
 
 $GET = query_paras();
 $name = urldecode($GET['name']);
-$c32 = $GET['c32'];
+ 
 $oid = $GET['oid'];
 
 
@@ -27,7 +27,7 @@ $plat = "uc"; // 后续改成前端控制参数
 $db = db();
 
     // 计算新增人数
-    $sql = sprintf(SELECT_BASE_C32, $name, $c32, $oid);
+    $sql = sprintf(SELECT_BASE_C32, $name,$oid);
     $arr = $db->fetch_array($sql);
 
 

+ 36 - 406
Gameserver/gamesys/app/providers/actionone.php

@@ -1,461 +1,91 @@
 <?php
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-include_once dirname(__FILE__).'/../main.php';
-/**
- * Description of actionone
- *
- * @author jgao
- */
+ 
+include_once dirname(__FILE__) . '/../main.php';
 
-define("CHECK_ONE", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s' AND `TABLE_SCHEMA`= '%s'");
-define("SELECT_ONE", "select `cmd`,`ts`,`dump`,`prs`,`ret` from tab_sys_%s where `oid`='%s'");
 
-define("CHECK_ONE_UC", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s_%s' AND `TABLE_SCHEMA`= '%s'");
-define("SELECT_ONE_UC", "select `cmd`,`ts`,`dump`,`prs`,`ret` from tab_sys_%s_%s where `oid`='%s'");
+define("CHECK_ONE", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_op_log%s' AND `TABLE_SCHEMA`= '%s'");
+define("SELECT_ONE", "select `cmd`,`ts`,`param`,`ret` from tab_op_log%s where `uid`='%s'");
+
+// define("CHECK_ONE_UC", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s_%s' AND `TABLE_SCHEMA`= '%s'");
+// define("SELECT_ONE_UC", "select `cmd`,`ts`,`dump`,`prs`,`ret` from tab_sys_%s_%s where `oid`='%s'");
 
 $GET = query_paras();
+
 $date = $GET['date'];
 $date1 = $GET['date1'];
 
 $plat = "uc"; // 后续改成前端控制参数
 $oid = $GET['oid'];
 
+
 $ret = array();
 
 $db = db();
 $endDate = strtotime("$date1");
 // 计算新增人数
-for($i=0;$i<=999;$i++){
-    $ucday = strtotime("2017-09-28 00:00:00");
+for ($i = 0; $i <= 999; $i++) {
     $iday = strtotime("$date   +$i   day");
     $day = date("Ymd", $iday);
-    if($iday > $endDate){
+    if ($iday > $endDate) {
         break;
     }
-    if($iday <= $ucday){
-        $sql = sprintf(CHECK_ONE_UC, $plat, $day, CDB_NAME);
-        $exist = $db->fetch_array($sql);
-    }else{
-        $sql = sprintf(CHECK_ONE, $day, CDB_NAME);
-        $exist = $db->fetch_array($sql);
-    }
 
-    if(count($exist) <= 0){
+    $sql = sprintf(CHECK_ONE, $day, CDB_NAME);
+    $exist = $db->fetch_array($sql);
+
+    if (count($exist) <= 0) {
         continue;
     }
-    
-    if($iday <= $ucday){
-        $sql = sprintf(SELECT_ONE_UC, $plat, $day, $oid);
-    }else{
-        $sql = sprintf(SELECT_ONE, $day, $oid);
-    }
+    $sql = sprintf(SELECT_ONE, $day, $oid);
 
     $arr = $db->fetch_array($sql);
     array_pushs($ret, $arr);
 }
 $db->close();
 
-
+ 
 
 // <editor-fold defaultstate="collapsed">
-
-function getCmdName($cmd){
-    switch ($cmd){
-        case '6001':
-            return "玩家登录";
-        case '6002':
-            return "创建角色";
-        case '6007':
-            return "设定头像";
-        case '6008':
-            return "设置昵称";
-        case '6012':
-            return "结束引导";
-            
-            
-        case '6101':
-            return "建造房间";
-        case '6102':
-            return "升级房间";
-        case '6103':
-            return "拆除房间";
-        case '6104':
-            return "移除石头";
-        case '6105':
-            return "人员调配";
-        case '6106':
-            return "收取资源";
-        case '6107':
-            return "加速收取";    
-        case '6108':
-            return "楼层扩建";
-        case '6109':
-            return "房间移动";
-        case '6110':
-            return "房间完成";    
-        case '6111':
-            return "购买建造队列";
-        case '6112':
-            return "房间加速";
-        case '6113':
-            return "完成楼层";    
-        case '6114':
-            return "加速楼层";
-        case '6115':
-            return "新建筑标志取消";
-        
-        case '6201':
-            return "角色创建";    
-        case '6202':
-            return "穿戴装备";
-        case '6203':
-            return "英雄升阶";
-        case '6204':
-            return "英雄升星";    
-        case '6205':
-            return "技能升级";
-        case '6206':
-            return "购买技能点";
-        case '6207':
-            return "放逐角色";    
-            
-        
-        case '6301':
-            return "出售物品";
-        case '6302':
-            return "使用经验道具";
-        case '6303':
-            return "道具合成";    
-        case '6304':
-            return "使用宝箱道具";
-        case '6305':
-            return "一键进阶";
-        case '6306':
-            return "一键升级";    
-        case '6307':
-            return "英雄图鉴奖励";
-        case '6308':
-            return "英雄三选一礼包";
-        case '6309':
-            return "道具随机礼包";    
-        case '6310':
-            return "一键穿戴";
-            
-        case '6501':
-            return "战斗开始";
-        case '6502':
-            return "战斗结束";
-        case '6503':
-            return "关卡扫荡";
-        case '6504':
-            return "买精英关卡次数";
-        case '6505':
-            return "新增战队";
-        case '6506':
-            return "更新战队";
-        case '6507':
-            return "删除战队";
-            
-        case '6602':
-            return "完成任务";
-            
-        case '6702':
-            return "竞技场防守配置";
-        case '6703':
-            return "竞技场挑战";
-        case '6706':
-            return "竞技场刷CD";
-        case '6707':
-            return "竞技场买挑战数";
-        case '6708':
-            return "竞技场刷对手";
-        case '6711':
-            return "竞技场锁定对手";
-        
-        case '6803':
-            return "收取邮件附件";
-        case '6804':
-            return "收取全部邮件";
-        case '6805':
-            return "读旧消息";
-        case '6806':
-            return "月签到";
-        
-        case '7002':
-            return "掠夺其他人";
-        case '7005':
-            return "掠夺拔旗";
-        case '7006':
-            return "掠夺防守配置";
-        case '7009':
-            return "掠夺胜利宣言";
-        case '7010':
-            return "掠夺目标锁定";
-            
-        case '7102':
-            return "领取活动奖励";
-        case '7201':
-            return "居民回收";
-            
-        case '7401':
-            return "穿戴神装";
-        case '7402':
-            return "卸载神装";
-        case '7403':
-            return "一键穿戴";
-        case '7404':
-            return "一键换装";
-        
-        case "7451":
-            return "神装强化";
-        case "7452":
-            return "一键强化";
-        case "7453":
-            return "全部强化";
-        case "7454":
-            return "神装升星";
-            
-        case '8601':
-            return "抽奖";
-        case '8603':
-            return "使用兑换码";
-        
-        case '8001':
-            return "买商城物品";
-        case '8003':
-            return "刷商店商品";
+function getCmdName($cmd) {
+    static $arr;
+    if (null == $arr) {
+        $arr = daoInst()->select('cmd,info')->from("ddt_cmd_info")->fetchAll();
+    }
+    foreach ($arr as $cmdInfo) {
+        if ($cmdInfo->cmd == $cmd) {
+            return $cmdInfo->info;
+        }
     }
     return $cmd;
 }
 
 /**
- * 组合提示信息
+ * cmd附加提示信息
  * @param type $info
  */
-function getCmdDes($info){
+function getCmdDes($info) {
     $cmd = $info['cmd'];
-    switch ($cmd){
-        case '1002':
-            $prs = json_decode($info['prs']);
-            $evn = $prs->evn;
-            return "自定义事件: $evn; ";
+    switch ($cmd) {
         case '6001':
             $str = "";
             $ret = json_decode($info['ret']);
-            $str .= "昵称:".$ret->name;
-            $str .= "; 等级:".$ret->lv;
-            $str .= "; 宝石:".$ret->gem;
-            $str .= "; 电:".$ret->elec;
-            $str .= "; 水:".$ret->wat;
-            $str .= "; 食物:".$ret->fod;
-            $str .= "; 治疗针:".$ret->inj;
-            $str .= "; 技能点:".$ret->skp;
-            $str .= "; 英雄数:".$ret->hnum;
-            $str .= "; 英雄列表:[";
-            foreach ($ret->heros as $item){
-                $str .= " id:".$item->tid;
-                $str .= " 等级:".$item->lv;
-                $str .= " 星级:".$item->star;
-                $str .= " 品质:".$item->qual;
-            }
-            $str .= "]; 居民数:".$ret->rnum;
-            $str .= "; 建筑数:".$ret->bnum;
-            $str .= "; 建筑列表:[";
-            foreach ($ret->bds as $item){
-                $str .= " id:".$item->tid;
-                $str .= " 等级:".$item->lv;
-                $str .= " 合并:".$item->mlv;
-            }
-            $str .= "]; 普通关:".$ret->cgt;
-            $str .= "; 精英关:".$ret->agt;
+            $str .= "昵称:" . $ret->game->name;
+            $str .= "; 分区:" . $ret->zoneid;
+            $str .= "; 等级:" . $ret->game->level;
             return $str;
-        case '6002':
-            $prs = json_decode($info['prs']);
-            $name = base64_decode($prs->name);
-            $sex = $prs->sex == 2 ? "女" : "男";
-            return "姓名:$name; 性别: $sex; ";
-        case '6007':
-            $prs = json_decode($info['prs']);
-            $icon = $prs->iconId;
-            return "图标: $icon; ";
-        case '6008':
-            $prs = json_decode($info['prs']);
-            $name = base64_decode($prs->name);
-            return "姓名: $name; ";
-            
-        case '6602':
-            $prs = json_decode($info['prs']);
-            $id = $prs->id;
-            return "ID: $id; ";
-            
-        case '6703':
-            $ret = json_decode($info['ret']);
-            $rank = $ret->ranking;
-            $top = $ret->topranking;
-            return "当前名次: $rank; 最高排名: $top; ";
-            
-        case '6711':
-            $prs = json_decode($info['prs']);
-            $otheroid = $prs->otheroid;
-            return "Oid: $otheroid; ";
-
-        case '7009':
-            $prs = json_decode($info['prs']);
-            $says = $prs->says;
-            return "ID: $says; ";
-            
-        case '7010':
-            $prs = json_decode($info['prs']);
-            $other = $prs->other;
-            return "Oid: $other; ";
-            
-        case '7102':
-            $prs = json_decode($info['prs']);
-            $actId = $prs->actId;
-            $prog = $prs->prog;
-            return "ID: $actId; 奖项: $prog; ";
-            
-        case '8601':
-            $prs = json_decode($info['prs']);
-            $id = $prs->id;
-            if($id == 2){
-                return "食物十连抽; ";
-            }else if($id == 3){
-                return "宝石一连抽; ";
-            }else if($id == 4){
-                return "宝石十连抽; ";
-            }
-            return "食物一连抽; ";
-            
-        case '8603':
-            $prs = json_decode($info['prs']);
-            $code = $prs->code;
-            return "码: $code; ";
-        
+        default:
+            break;
     }
     return "";
 }
 
-/**
- * 敏感数据提示信息
- * @param type $info
- */
-function getDumpDes($info){
-    $des = "";
-    $dump = json_decode($info['dump']);
-    foreach ($dump as $key=>$val){
-        if($key == "ulv"){
-            $des .= "玩家等级: $val; ";
-        }else if($key == "gem"){
-            $des .= "当前宝石: $val; ";
-        }else if($key == "agem"){
-            $des .= "宝石增加: $val; ";
-        }else if($key == "dgem"){
-            $des .= "宝石减少: $val; ";
-        }else if($key == "elec"){
-            $des .= "当前电力: $val; ";
-        }else if($key == "alec"){
-            $des .= "电力增加: $val; ";
-        }else if($key == "dlec"){
-            $des .= "电力减少: $val; ";
-        }else if($key == "wat"){
-            $des .= "当前水: $val; ";
-        }else if($key == "awat"){
-            $des .= "水增加: $val; ";
-        }else if($key == "dwat"){
-            $des .= "水减少: $val; ";
-        }else if($key == "food"){
-            $des .= "当前食物: $val; ";
-        }else if($key == "afod"){
-            $des .= "食物增加: $val; ";
-        }else if($key == "dfod"){
-            $des .= "食物减少: $val; ";
-        }else if($key == "inj"){
-            $des .= "当前治疗针: $val; ";
-        }else if($key == "ainj"){
-            $des .= "治疗针增加: $val; ";
-        }else if($key == "dinj"){
-            $des .= "治疗针减少: $val; ";
-        }else if($key == "skp"){
-            $des .= "当前技能点: $val; ";
-        }else if($key == "askp"){
-            $des .= "技能点增加: $val; ";
-        }else if($key == "dskp"){
-            $des .= "技能点减少: $val; ";
-        }else if($key == "pkg"){
-            $des .= "当前决斗币: $val; ";
-        }else if($key == "apkg"){
-            $des .= "决斗币增加: $val; ";
-        }else if($key == "dpkg"){
-            $des .= "决斗币减少: $val; ";
-        }else if($key == "btid"){
-            $des .= "建筑类型: $val; ";
-        }else if($key == "bnum"){
-            $des .= "建筑数量: $val; ";
-        }else if($key == "blv"){
-            $des .= "建筑等级: $val; ";
-        }else if($key == "bmlv"){
-            $des .= "合并等级: $val; ";
-        }else if($key == "flr"){
-            $des .= "楼层数: $val; ";
-        }else if($key == "hnum"){
-            $des .= "英雄数: $val; ";
-        }else if(str_contains ($key, "hlv")){
-            $strs = strsplit($key, "_");
-            $id = $strs[1];
-            $des .= "英雄[$id]等级: $val; ";
-        }else if($key == "htid"){
-            $des .= "英雄: $val; ";
-        }else if($key == "hsid"){
-            $des .= "技能: $val; ";
-        }else if($key == "hqu"){
-            $des .= "英雄品阶: $val; ";
-        }else if($key == "hstr"){
-            $des .= "英雄星级: $val; ";
-        }else if($key == "hskv"){
-            $des .= "技能等级: $val; ";
-        }else if($key == "bfid"){
-            $des .= "关卡: $val; ";
-        }else if($key == "bfst"){
-            $des .= "首次通关: $val; ";
-        }else if(str_contains ($key, "inum")){
-            $strs = strsplit($key, "_");
-            $id = $strs[1];
-            $des .= "道具[$id]数目: $val; ";
-        }else if(str_contains ($key, "iadd")){
-            $strs = strsplit($key, "_");
-            $id = $strs[1];
-            $des .= "道具[$id]增加: $val; ";
-        }else if(str_contains ($key, "idel")){
-            $strs = strsplit($key, "_");
-            $id = $strs[1];
-            $des .= "道具[$id]减少: $val; ";
-        }else if($key == "arpk"){
-            $des .= "竞技场次数: $val; ";
-        }else if($key == "seid"){
-            $des .= "神装: $val; ";
-        }else if($key == "selv"){
-            $des .= "神装强化: $val; ";
-        }else if($key == "sesr"){
-            $des .= "神装升星: $val; ";
-        }
-    }
-    return $des;
-}
-
 // </editor-fold>
 
 $count = count($ret);
 
-for ($i=0;$i<$count;$i++){
+for ($i = 0; $i < $count; $i++) {
     $ret[$i]['name'] = getCmdName($ret[$i]['cmd']);
     $ret[$i]['des'] = getCmdDes($ret[$i]);
-    $ret[$i]['des'] .= getDumpDes($ret[$i]);
 }
-
-echo json_encode($ret);
+echo json_encode($ret);

+ 10 - 24
Gameserver/gamesys/app/providers/level.php

@@ -1,9 +1,7 @@
 <?php
 
 /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ * 查询玩家等级
  */
 include_once dirname(__FILE__) . '/../main.php';
 /**
@@ -11,9 +9,9 @@ include_once dirname(__FILE__) . '/../main.php';
  * 关卡统计业务逻辑
  * @author jgao
  */
-define("CHECK_LEVEL", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s' AND `TABLE_SCHEMA`= '%s'");
-define("SELECT_LEVEL", "SELECT tab_sys_%s.dump FROM `tab_sys_%s` left join `tab_rolename` on tab_sys_%s.oid = tab_rolename.uid WHERE tab_sys_%s.cmd='6502' and tab_rolename.insertDatetime>='%s 00:00:00' and tab_rolename.insertDatetime<='%s 23:59:59' and tab_sys_%s.dump like '%%bfst%%'");
-define("SELECT_GUIDE", "SELECT count(*) FROM `tab_sys_%s` left join `tab_rolename` on tab_sys_%s.oid = tab_rolename.uid WHERE tab_sys_%s.cmd='6012' and tab_rolename.insertDatetime>='%s 00:00:00' and tab_rolename.insertDatetime<='%s 23:59:59'");
+// define("CHECK_LEVEL", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s' AND `TABLE_SCHEMA`= '%s'");
+// define("SELECT_LEVEL", "SELECT tab_sys_%s.dump FROM `tab_sys_%s` left join `tab_rolename` on tab_sys_%s.oid = tab_rolename.uid WHERE tab_sys_%s.cmd='6502' and tab_rolename.insertDatetime>='%s 00:00:00' and tab_rolename.insertDatetime<='%s 23:59:59' and tab_sys_%s.dump like '%%bfst%%'");
+// define("SELECT_GUIDE", "SELECT count(*) FROM `tab_sys_%s` left join `tab_rolename` on tab_sys_%s.oid = tab_rolename.uid WHERE tab_sys_%s.cmd='6012' and tab_rolename.insertDatetime>='%s 00:00:00' and tab_rolename.insertDatetime<='%s 23:59:59'");
 
 define("CHECK_LEVEL_UC", "SELECT table_name FROM information_schema.TABLES WHERE table_name ='tab_sys_%s_%s' AND `TABLE_SCHEMA`= '%s'");
 define("SELECT_LEVEL_UC", "SELECT tab_sys_%s_%s.dump FROM `tab_sys_%s_%s` left join `tab_rolename` on tab_sys_%s_%s.oid = tab_rolename.uid WHERE tab_sys_%s_%s.cmd='6502' and tab_rolename.insertDatetime>='%s 00:00:00' and tab_rolename.insertDatetime<='%s 23:59:59' and tab_sys_%s_%s.dump like '%%bfst%%'");
@@ -34,33 +32,21 @@ for ($i = 0; $i <= 0; $i++) {
     $ucday = strtotime("2017-09-28 00:00:00");
     $iday = strtotime("$date   +$i   day");
     $day = date("Ymd", $iday);
-    $day_format = date("Y-m-d", $iday);
-//    if ($iday <= $ucday) {
+    $day_format = date("Y-m-d", $iday); 
     $sql = sprintf(CHECK_LEVEL_UC, $plat, $day, CDB_NAME);
     $exist = $db->fetch_array($sql);
-//    } else {
-//        $sql = sprintf(CHECK_LEVEL, $day, CDB_NAME);
-//        $exist = $db->fetch_array($sql);
-//    }
+ 
 
     if (count($exist) <= 0) {
         continue;
     }
-
-//    if ($iday <= $ucday) {
-    $sql = sprintf(SELECT_LEVEL_UC, $plat, $day, $plat, $day, $plat, $day, $plat, $day, $day_format, $day_format, $plat, $day, $plat);
-//    } else {
-//        $sql = sprintf(SELECT_LEVEL, $day, $day, $day, $day, $day_format, $day_format, $day);
-//    }
+ 
+    $sql = sprintf(SELECT_LEVEL_UC, $plat, $day, $plat, $day, $plat, $day, $plat, $day, $day_format, $day_format, $plat, $day, $plat); 
 
     $arr = $db->fetch_array($sql);
 
-//    if ($iday <= $ucday) {
-    $sql = sprintf(SELECT_GUIDE_UC, $plat, $day, $plat, $day, $plat, $day, $day_format, $day_format);
-//    } else {
-//        $sql = sprintf(SELECT_GUIDE, $day, $day, $day, $day_format, $day_format);
-//    }
-
+ 
+    $sql = sprintf(SELECT_GUIDE_UC, $plat, $day, $plat, $day, $plat, $day, $day_format, $day_format); 
     $count = $db->fetch_row($sql);
     $count = (int) $count[0][0];
 }

+ 7 - 8
Gameserver/gamesys/app/providers/retention.php

@@ -1,19 +1,17 @@
 <?php
 
 /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ * 留存1
  */
 include_once dirname(__FILE__) . '/../main.php';
 /**
  * Description of retention
- * 留存统计业务逻辑
- * @author jgao
+ * 留存统计业务逻辑1
+ * @author gwang
  */
-define("SELECT_BASE", "select count(uid) as total from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59'");
+define("SELECT_BASE", "select count(userID) as total from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59'");
 
-define("SELECT_ONE", "select count(uid) as total from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59' and `lastUpdatetime`>='%s 00:00:00'");
+define("SELECT_ONE", "select count(userID) as total from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59' and `lastlogin`>='%s 00:00:00'");
 
 
 $date = $_POST['date'];
@@ -27,6 +25,7 @@ $sql = sprintf(SELECT_BASE, $date, $date);
 $arr = $db->fetch_array($sql);
 $new = $arr[0]['total'];
 $array[] = $new;
+
 // 计算次留
 $iday = strtotime("$date   +1   day");
 $day = date("Y-m-d", $iday);
@@ -81,4 +80,4 @@ $db->close();
 $result = new stdClass();
 $result->data1 = $array;
 $result->data2 = $array2;
-echo json_encode($result);
+echo json_encode($result);

+ 3 - 5
Gameserver/gamesys/app/providers/retention2.php

@@ -1,9 +1,7 @@
 <?php
 
 /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ * 留存2
  */
 include_once dirname(__FILE__) . '/../main.php';
 /**
@@ -11,9 +9,9 @@ include_once dirname(__FILE__) . '/../main.php';
  * 留存统计业务逻辑
  * @author jgao
  */
-define("SELECT_BASE", "select count(uid) as total from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59'");
+define("SELECT_BASE", "select count(userID) as total from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59'");
 
-define("SELECT_ONE", "select count(uid) as total from tab_rolename where `insertDatetime`>='%s 00:00:00' and `insertDatetime`<='%s 23:59:59' and `lastUpdatetime`>='%s 00:00:00'");
+define("SELECT_ONE", "select count(userID) as total from tab_rolename where `ts`>='%s 00:00:00' and `ts`<='%s 23:59:59' and `lastlogin`>='%s 00:00:00'");
 
 
 $startTime = $_POST['date1'];

+ 199 - 199
Gameserver/gamesys/home/js/index.js

@@ -298,201 +298,201 @@
             return reval;
         },
         loadMenu: function () {
-        	// -------------------------------------功能菜单数据配置-------------------------------------------------------          
-            var data = 
-            [
-			    {
-			        "F_ModuleId": "1",
-			        "F_ParentId": "0",
-			        "F_EnCode": "SysManage",
-			        "F_FullName": "数据统计",
-			        "F_Icon": "fa fa-desktop",
-			        "F_UrlAddress": null,
-			        "F_Target": "expand",
-			        "F_IsMenu": 0,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": null,
-			        "F_CreateDate": null,
-			        "F_CreateUserId": null,
-			        "F_CreateUserName": null,
-			        "F_ModifyDate": "2015-11-17 11:22:46",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-			    {
-			        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
-			        "F_ParentId": "1",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "行为分析",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/action/action.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "留存率统计",
-			        "F_CreateDate": "2015-11-12 14:38:20",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2016-04-29 14:05:33",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-			    {
-			        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
-			        "F_ParentId": "1",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "留存率统计",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/retention/retention.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "留存率统计",
-			        "F_CreateDate": "2015-11-12 14:38:20",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2016-04-29 14:05:33",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-                            {
-			        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
-			        "F_ParentId": "1",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "订单统计",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/order/order.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "订单统计",
-			        "F_CreateDate": "2015-11-12 14:38:20",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2016-04-29 14:05:33",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-                            {
-			        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
-			        "F_ParentId": "1",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "关卡统计",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/level/level.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "关卡统计",
-			        "F_CreateDate": "2015-11-12 14:38:20",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2016-04-29 14:05:33",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-			    {
-			        "F_ModuleId": "99",
-			        "F_ParentId": "0",
-			        "F_EnCode": "SysManage",
-			        "F_FullName": "单元测试",
-			        "F_Icon": "fa fa-desktop",
-			        "F_UrlAddress": null,
-			        "F_Target": "expand",
-			        "F_IsMenu": 0,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": null,
-			        "F_CreateDate": null,
-			        "F_CreateUserId": null,
-			        "F_CreateUserName": null,
-			        "F_ModifyDate": "2015-11-17 11:22:46",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },
-			    {
-			        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
-			        "F_ParentId": "99",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "常规测试",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/test/test.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "常规测试",
-			        "F_CreateDate": "2015-11-12 14:38:20",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2016-04-29 14:05:33",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    },{
-			        "F_ModuleId": "99-2",
-			        "F_ParentId": "99",
-			        "F_EnCode": "AreaManage",
-			        "F_FullName": "刚哥测试",
-			        "F_Icon": "fa fa-leaf",
-			        "F_UrlAddress": "pages/ganggetest/gtest.html",
-			        "F_Target": "iframe",
-			        "F_IsMenu": 1,
-			        "F_AllowExpand": 1,
-			        "F_IsPublic": 0,
-			        "F_AllowEdit": null,
-			        "F_AllowDelete": null,
-			        "F_SortCode": 1,
-			        "F_DeleteMark": 0,
-			        "F_EnabledMark": 1,
-			        "F_Description": "普通测试",
-			        "F_CreateDate": "2020年6月8日 17:52:35",
-			        "F_CreateUserId": "System",
-			        "F_CreateUserName": "超级管理员",
-			        "F_ModifyDate": "2020年6月8日 17:52:35",
-			        "F_ModifyUserId": "System",
-			        "F_ModifyUserName": "超级管理员"
-			    }
-		    ];
+            // -------------------------------------功能菜单数据配置-------------------------------------------------------          
+            var data =
+                [
+                    {
+                        "F_ModuleId": "1",
+                        "F_ParentId": "0",
+                        "F_EnCode": "SysManage",
+                        "F_FullName": "数据统计",
+                        "F_Icon": "fa fa-desktop",
+                        "F_UrlAddress": null,
+                        "F_Target": "expand",
+                        "F_IsMenu": 0,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": null,
+                        "F_CreateDate": null,
+                        "F_CreateUserId": null,
+                        "F_CreateUserName": null,
+                        "F_ModifyDate": "2015-11-17 11:22:46",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
+                        "F_ParentId": "1",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "行为分析",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/action/action.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "留存率统计",
+                        "F_CreateDate": "2015-11-12 14:38:20",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2016-04-29 14:05:33",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
+                        "F_ParentId": "1",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "留存率统计",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/retention/retention.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "留存率统计",
+                        "F_CreateDate": "2015-11-12 14:38:20",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2016-04-29 14:05:33",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
+                        "F_ParentId": "1",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "订单统计",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/order/order.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "订单统计",
+                        "F_CreateDate": "2015-11-12 14:38:20",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2016-04-29 14:05:33",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
+                        "F_ParentId": "1",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "关卡统计",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/level/level.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "关卡统计",
+                        "F_CreateDate": "2015-11-12 14:38:20",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2016-04-29 14:05:33",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "99",
+                        "F_ParentId": "0",
+                        "F_EnCode": "SysManage",
+                        "F_FullName": "单元测试",
+                        "F_Icon": "fa fa-desktop",
+                        "F_UrlAddress": null,
+                        "F_Target": "expand",
+                        "F_IsMenu": 0,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": null,
+                        "F_CreateDate": null,
+                        "F_CreateUserId": null,
+                        "F_CreateUserName": null,
+                        "F_ModifyDate": "2015-11-17 11:22:46",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    },
+                    {
+                        "F_ModuleId": "7ae94059-9aa5-48eb-8330-4e2a6565b193",
+                        "F_ParentId": "99",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "常规测试",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/test/test.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "常规测试",
+                        "F_CreateDate": "2015-11-12 14:38:20",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2016-04-29 14:05:33",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    }, {
+                        "F_ModuleId": "99-2",
+                        "F_ParentId": "99",
+                        "F_EnCode": "AreaManage",
+                        "F_FullName": "刚哥测试",
+                        "F_Icon": "fa fa-leaf",
+                        "F_UrlAddress": "pages/ganggetest/gtest.html",
+                        "F_Target": "iframe",
+                        "F_IsMenu": 1,
+                        "F_AllowExpand": 1,
+                        "F_IsPublic": 0,
+                        "F_AllowEdit": null,
+                        "F_AllowDelete": null,
+                        "F_SortCode": 1,
+                        "F_DeleteMark": 0,
+                        "F_EnabledMark": 1,
+                        "F_Description": "普通测试",
+                        "F_CreateDate": "2020年6月8日 17:52:35",
+                        "F_CreateUserId": "System",
+                        "F_CreateUserName": "超级管理员",
+                        "F_ModifyDate": "2020年6月8日 17:52:35",
+                        "F_ModifyUserId": "System",
+                        "F_ModifyUserName": "超级管理员"
+                    }
+                ];
             var _html = "";
             $.each(data, function (i) {
                 var row = data[i];
@@ -505,12 +505,12 @@
                     _html += '<a href="#">';
                     _html += '<i class="' + row.F_Icon + '"></i><span>' + row.F_FullName + '</span><i class="fa fa-angle-left pull-right"></i>';
                     _html += '</a>';
-                    var childNodes = $.learunindex.jsonWhere(data, function (v) { return v.F_ParentId == row.F_ModuleId ;});
+                    var childNodes = $.learunindex.jsonWhere(data, function (v) { return v.F_ParentId == row.F_ModuleId; });
                     if (childNodes.length > 0) {
                         _html += '<ul class="treeview-menu">';
                         $.each(childNodes, function (i) {
                             var subrow = childNodes[i];
-                            var subchildNodes = $.learunindex.jsonWhere(data, function (v) { return v.F_ParentId == subrow.F_ModuleId ;});
+                            var subchildNodes = $.learunindex.jsonWhere(data, function (v) { return v.F_ParentId == subrow.F_ModuleId; });
                             _html += '<li>';
                             if (subchildNodes.length > 0) {
                                 _html += '<a href="#"><i class="' + subrow.F_Icon + '"></i>' + subrow.F_FullName + '';
@@ -539,10 +539,10 @@
                     e.slideUp(500, function () {
                         e.removeClass("menu-open");
                     }),
-                    e.parent("li").removeClass("active");
+                        e.parent("li").removeClass("active");
                 } else if (e.is(".treeview-menu") && !e.is(":visible")) {
                     var f = d.parents("ul").first(),
-                    g = f.find("ul:visible").slideUp(500);
+                        g = f.find("ul:visible").slideUp(500);
                     g.removeClass("menu-open");
                     var h = d.parent("li");
                     e.slideDown(500, function () {

+ 30 - 0
Gameserver/gamesys/home/js/utils.js

@@ -0,0 +1,30 @@
+// utils.js 2020.6.16 created by wg js辅助代码
+
+var LoyalSoft = {};                                                             // 命名空间 龙游
+LoyalSoft.Utils = {                                                             // 命名空间 工具类
+    // 创建table, data:数据(数组), 挂载到哪个HTML节点下
+    createTable: function (data, node) {                                        // 方法
+        var rows = data.length;
+        var cols = data[0].length;
+        var $tab = $("<table draggable=true></table>");                         // 创建表格table元素
+
+        var $th = $("<tr></tr>");                                               // 创建表头行
+        for (var key in data[0]) {
+            var $thcell = $("<td></td>");                                       // 创建表头单元格
+            $thcell.html(key);                                                  // 填充表头文本
+            $th.append($thcell);                                                // 将单元格添加到表头
+        }
+        $tab.append($th);                                                       // 添加表头
+        for (var j = 0; j < rows; j++) {
+            var $tr = $("<tr></tr>");                                           // 创建表格tr行元素
+            for (var key in data[j]) {
+                var $td = $("<td></td>");                                       // 创建td单元格元素
+                $td.html(data[j][key]);                                         // 填充数据
+                $tr.append($td);                                                // 将td单元格添加到表格行tr上
+            }
+            $tab.append($tr);                                                   // 将tr表格行添加到table表格上
+        }
+        $(node).append($tab);                                                   // 将创建好的整个table挂载到div上
+        $(node).append("<br/>");                                                // 换行 
+    },
+}

+ 6 - 11
Gameserver/gamesys/home/pages/action/action.html

@@ -70,13 +70,7 @@
                 <input id="name-text" class="form-control" size="40" type="text" value="">
               </div>
             </div>
-            <div class="control-group">
-              <!-- Text input-->
-              <label class="control-label" for="input01">账号(c32):</label>
-              <div class="input-group col-md-8">
-                <input id="c32-text" class="form-control" size="40" type="text" value="">
-              </div>
-            </div>
+ 
             <div class="control-group">
               <!-- Text input-->
               <label class="control-label" for="input01">oid:</label>
@@ -137,11 +131,12 @@
             <table id="tab_players" data-toggle="table" data-height="800">
               <thead>
                 <tr>
-                  <th data-field="uid">玩家id</th>
+                  <th data-field="userID">玩家id</th>
+				  <th data-field="roleName">昵称</th>
                   <th data-field="plat">平台</th>
-                  <th data-field="area">分区</th>
-                  <th data-field="insertDatetime">创建时间</th>
-                  <th data-field="lastUpdatetime">最后登录</th>
+                  <th data-field="zoneid">分区</th>
+                  <th data-field="ts">创建时间</th>
+                  <th data-field="lastlogin">最后登录</th>
                 </tr>
               </thead>
             </table>

+ 5 - 6
Gameserver/gamesys/home/pages/action/action.js

@@ -59,7 +59,7 @@ Date.prototype.format = function(format) {
 $('#tab_players').on('click-row.bs.table', function (e, row, element) {
     $('.success').removeClass('success');//去除之前选中的行的,选中样式
     $(element).addClass('success');//添加当前选中的 success样式用于区别
-    var date = new Date(row.lastUpdatetime.split(" ")[0]);
+    var date = new Date(row.lastlogin.split(" ")[0]);
     $('#action-date1-text').val(date.format("yyyy-MM-dd"));
     date.setDate(date.getDate()-3); 
     $('#action-date-text').val(date.format("yyyy-MM-dd"));
@@ -101,17 +101,16 @@ function ok_click() {
 
 function c32_ok_click() {
     var nameTxt = $('#name-text').val();
-    var c32Txt = $('#c32-text').val();
+    
     var oidTxt = $('#oid-text').val();
 
-    if (nameTxt == "" && c32Txt == "" && oidTxt == "") {
+    if (nameTxt == ""  && oidTxt == "") {
         alert("请填写玩家名称 账号ID oid!");
         return;
     }
 
     var url = getProviderUrl("actionc32");
-    url += "?name=" + nameTxt;
-    url += "&c32=" + c32Txt;
+    url += "?name=" + nameTxt; 
     url += "&oid=" + oidTxt;
 
     $('#tab_players').bootstrapTable('refresh', {url: url});
@@ -137,7 +136,7 @@ function one_click() {
     var url = getProviderUrl("actionone");
     url += "?date=" + date;
     url += "&date1=" + date1;
-    url += "&oid=" + data.uid;
+    url += "&oid=" + data.userID;
 
     $('#tab_one').bootstrapTable('refresh', {url: url});
 }

+ 1 - 35
Gameserver/gamesys/home/pages/ganggetest/ganggeceshi.js

@@ -16,41 +16,7 @@ function search() {
 }
 
 function Canvas(data) {
-
-    //    $("#glable").text(data);
-    createTable(data);
-    
-}
-
-function createTable(data) {
-    var rows = data.length;
-    var cols = data[0].length;
-    var $tab = $("<table draggable=true></table>");                                            //创建表格table元素
-
-    var $th = $("<tr></tr>");                                                   // 创建表头行
-    for (var key in data[0]) {
-        var $thcell = $("<td></td>");
-        $thcell.html(key);
-        $th.append($thcell);
-    }
-    $tab.append($th);                                                       // 添加表头
-
-    for (var j = 0; j < rows; j++) {
-        //创建表格tr行元素
-        var $tr = $("<tr></tr>");
-        for (var key in data[j])  {
-            //创建td单元格元素
-            var $td = $("<td></td>");
-            $td.html(data[j][key]);
-            //将td单元格添加到表格行tr上
-            $tr.append($td);
-        }
-        //将tr表格行添加到table表格上
-        $tab.append($tr);
-    }
-    //将创建好的整个table挂载到div上
-    $("#tab").append($tab);
-    $("#tab").append("<br/>");
+    LoyalSoft.Utils.createTable(data,'#tab');    
 }
 $(Init());                                                                      // 初始化
 

+ 1 - 0
Gameserver/gamesys/home/pages/ganggetest/gtest.html

@@ -15,6 +15,7 @@
     <script src="../../js/bootstrap/js/bootstrap-datetimepicker.min.js"></script>
     <script src="../../js/bootstrap/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
     <script src="../api.js"></script>
+    <script src="../../js/utils.js"></script>
     <style type="text/css">
         table {
             border: #0099FF 1px solid;

+ 2 - 0
Gameserver/gamesys/home/pages/retention/retention.js

@@ -12,6 +12,8 @@ $('.form_date').datetimepicker({
 var chart = null;
 var chart2 = null;
 var chart3 = null;
+
+
 function Canvas(datas, datas2) {
     var lineChartData = {
         labels: ["当天注册人数", "次日留存人数", "3日留存人数", "5日留存人数", "7日留存人数", "15日留存人数", "30日留存人数"],

+ 1 - 4
Gameserver/nbproject/private/private.xml

@@ -12,10 +12,7 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
-            <file>file:/D:/www/ylsj2019/Gameserver/Amfphp/model/User/UserGameHeroModel.php</file>
-            <file>file:/D:/www/ylsj2019/Gameserver/Amfphp/process/UserProc.php</file>
-            <file>file:/D:/www/ylsj2019/Gameserver/Amfphp/base/ErrCode.php</file>
-            <file>file:/D:/www/ylsj2019/Gameserver/Amfphp/process/FightProc/SweepGatesProc.php</file>
+            <file>file:/D:/www/ylsj2019/Gameserver/Amfphp/process/StatProc.php</file>
         </group>
     </open-files>
 </project-private>