StatisticsProc.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <?php
  2. /*
  3. * To change this license header, choose License Headers in Project Properties.
  4. * To change this template file, choose Tools | Templates
  5. * and open the template in the editor.
  6. */
  7. namespace loyalsoft;
  8. /**
  9. * Description of StatisticsProc
  10. *
  11. * @author cyzhao
  12. */
  13. class StatisticsProc {
  14. /**
  15. * 已经完成新手引导的玩家记录
  16. * @param type $uid
  17. * @param type $index
  18. */
  19. static function NewbieGuideRecord($uid,$index) {
  20. if($index == 2){//现在游戏新手引导就2步
  21. $key = "NewbieGuideRecord-".req()->zoneid;
  22. gMem()->lpush($key, $uid);
  23. }
  24. }
  25. /**
  26. * 玩家自己任务完成统计-----每日任务进度变化--主线,学院,日程,悬赏的任务全记录在这
  27. * @param type $id
  28. */
  29. static function SelfTaskDataCollect($taskId) {
  30. $task = $taskId."-".time();
  31. $arr = array();
  32. $arr[] = $task;
  33. $num = gMem()->rpush("SelfTaskDataCollect-".req()->uid."-". req()->zoneid, $arr);
  34. }
  35. /**
  36. * 全区:记录uid-主线任务id,玩家做任务更新id,以获取最高任务--------主线,学院,日程,悬赏的任务全记录在这
  37. * @param type $taskId
  38. */
  39. static function TaskDataCollect($taskId) {
  40. $taskMo = GameConfig::item_taskcard_getItem($taskId);
  41. // if($taskMo->type != 1){
  42. // return;
  43. // }
  44. $key = "TaskDataCollect-".req()->zoneid;
  45. gMem()->hset($key, req()->uid, $taskId);
  46. }
  47. /**
  48. * 全区--玩家解锁课程进度:uid-courseId
  49. * @param type $courseId
  50. */
  51. static function UserCourseIngRecord($courseId){
  52. $key = "UserCourseIngRecord-".req()->zoneid;
  53. gMem()->hset($key, req()->uid, $courseId);
  54. }
  55. /*
  56. * 统计全区------玩家最新解锁建筑
  57. */
  58. static function unlockBuild($buildId) {
  59. $key = "unlockBuild-".req()->zoneid;
  60. gMem()->hset($key, req()->uid, $buildId);
  61. }
  62. /**
  63. * 统计全区------玩家最新解锁关卡
  64. * @param type $gateId
  65. */
  66. static function unlockGate($gateId) {
  67. $key = "unlockGate-".req()->zoneid;
  68. gMem()->hset($key, req()->uid, $gateId);
  69. }
  70. static function dailyTaskInit() {
  71. $list = GameConfig::item_taskcard_type_getItemArray(2);
  72. if($list == null || count($list) == 0){
  73. return;
  74. }
  75. $key = "TargetStatistics-".req()->zoneid;
  76. foreach ($list as $value) {
  77. $str = "dailyTaskId_ComUserNum_".$value->typeId;
  78. if(gMem()->hexists($key, $str)){
  79. break;
  80. }
  81. gMem()->hset($key,$str,0);
  82. }
  83. }
  84. /**
  85. *
  86. * @param type $type
  87. * @param type $id
  88. * @param type $ctx
  89. */
  90. static function TargetStatistics($type,$id = 0,$ctx = "0") {
  91. $key = "TargetStatistics-".req()->zoneid;
  92. $specialArr = array();
  93. switch ($type) {
  94. case Enum_TargetStatistics::registerUserNum:
  95. $field = "registerUserNum";
  96. break;
  97. case Enum_TargetStatistics::comNewGuide_UserNum:
  98. $field = "comNewGuideUserNum";
  99. break;
  100. case Enum_TargetStatistics::unlockbuidId:
  101. $field = "unlockbuidId-".$id;
  102. break;
  103. case Enum_TargetStatistics::mainTaskId_ComUserNum:
  104. $field = "mainTaskId_ComUserNum-".$id;
  105. break;
  106. case Enum_TargetStatistics::shopTaskId_ComUserNum:
  107. $field = "shopTaskId_ComUserNum-".$id;
  108. break;
  109. case Enum_TargetStatistics::shopTaskId_BuyUserNum:
  110. $field = "shopTaskId_BuyUserNum-".$id;
  111. break;
  112. case Enum_TargetStatistics::collegeTaskId_ComUserNum:
  113. $field = "collegeTaskId_ComUserNum-".$id;
  114. break;
  115. case Enum_TargetStatistics::collegeCouseId_UnlockUserNum:
  116. $field = "collegeCouseId_UnlockUserNum-".$id;
  117. break;
  118. case Enum_TargetStatistics::dailyTaskId_ComUserNum:
  119. $field = "dailyTaskId_ComUserNum-".$id;
  120. break;
  121. case Enum_TargetStatistics::storyGateId_ComUserNum:
  122. $field = "storyGateId_ComUserNum-".$id;
  123. break;
  124. case Enum_TargetStatistics::storyGateId_BattleNum:
  125. $field = "storyGateId_BattleNum-".$id;
  126. $specialArr[] = Enum_TargetStatistics::storyGateId_BattleNum;
  127. break;
  128. case Enum_TargetStatistics::HuanLingShiGateId_ComUserNum:
  129. $field = "HuanLingShiGateId_ComUserNum-".$id;
  130. break;
  131. case Enum_TargetStatistics::HuanLingShiGateId_BattleNum:
  132. $field = "HuanLingShiGateId_ComUserNum-".$id;
  133. $specialArr[] = Enum_TargetStatistics::HuanLingShiGateId_BattleNum;
  134. break;
  135. case Enum_TargetStatistics::WeaponGateId_ComUserNum:
  136. $field = "WeaponGateId_ComUserNum-".$id;
  137. break;
  138. case Enum_TargetStatistics::WeaponGateId_BattleNum:
  139. $field = "WeaponGateId_BattleNum-".$id;
  140. $specialArr[] = Enum_TargetStatistics::WeaponGateId_BattleNum;
  141. break;
  142. case Enum_TargetStatistics::YanLingGateId_ComUserNum:
  143. $field = "YanLingGateId_ComUserNum-".$id;
  144. break;
  145. case Enum_TargetStatistics::YanLingGateId_BattleNum:
  146. $field = "YanLingGateId_BattleNum-".$id;
  147. $specialArr[] = Enum_TargetStatistics::YanLingGateId_BattleNum;
  148. break;
  149. case Enum_TargetStatistics::userlevel:
  150. $field = "userlevel-".$id;
  151. break;
  152. case Enum_TargetStatistics::newUserLotteryDraw_one:
  153. $field = "newUserLotteryDraw_one";
  154. break;
  155. case Enum_TargetStatistics::newUserLotteryDraw_ten:
  156. $field = "newUserLotteryDraw_ten";
  157. break;
  158. case Enum_TargetStatistics::yanLingLotteryDraw_one:
  159. $field = "yanLingLotteryDraw_one";
  160. break;
  161. case Enum_TargetStatistics::yanLingLotteryDraw_ten:
  162. $field = "yanLingLotteryDraw_ten";
  163. break;
  164. case Enum_TargetStatistics::weaponLotteryDraw_one:
  165. $field = "weaponLotteryDraw_one";
  166. break;
  167. case Enum_TargetStatistics::weaponLotteryDraw_ten:
  168. $field = "weaponLotteryDraw_ten";
  169. break;
  170. case Enum_TargetStatistics::commonLotteryDraw_one:
  171. $field = "commonLotteryDraw_one";
  172. break;
  173. case Enum_TargetStatistics::commonLotteryDraw_ten:
  174. $field = "commonLotteryDraw_ten";
  175. break;
  176. case Enum_TargetStatistics::HuanLingShiLevel_UserNum:
  177. $field = "HuanLingShiLevel_UserNum-".$id."-level".$ctx;
  178. break;
  179. case Enum_TargetStatistics::HuanLingShiId_UserNum:
  180. $field = "HuanLingShiId_UserNum-".$id;
  181. break;
  182. case Enum_TargetStatistics::YanLingId_UserNum:
  183. $field = "YanLingId_UserNum-".$id;
  184. break;
  185. case Enum_TargetStatistics::YanLingIdLevel_UserNum:
  186. $field = "YanLingIdLevel_UserNum-".$id."-level".$ctx;
  187. break;
  188. case Enum_TargetStatistics::WeaponId_UserNum:
  189. $field = "WeaponId_UserNum-".$id;
  190. break;
  191. case Enum_TargetStatistics::WeaponIdLevel_UserNum:
  192. $field = "WeaponIdLevel_UserNum-".$id."-level".$ctx;
  193. break;
  194. default:
  195. break;
  196. }
  197. if(in_array($type,$specialArr)){
  198. $val = gMem()->hget($key,$field);
  199. if($val == null){
  200. $val = $ctx;
  201. } else {
  202. $vlist = explode('/',$val);
  203. $clist = explode('/',$ctx);
  204. $n1 = $vlist[0]+$clist[0];
  205. $n2 = $vlist[1]+$clist[1];
  206. $val = $n1."/".$n2;
  207. }
  208. gMem()->hset($key,$field,$val);
  209. } else {
  210. $count = gMem()->hget($key,$field);
  211. if($count == null){
  212. $count = 0;
  213. }
  214. gMem()->hset($key,$field,$count+1);
  215. }
  216. }
  217. }