StatisticsProc.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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--id
  88. * @param type $ctx 当前指标
  89. * @param type $lastCtx 前一个指标 需要减一
  90. */
  91. static function TargetStatistics($type,$id = 0,$ctx = "0",$lastCtx = 0) {
  92. $key = "TargetStatistics-".req()->zoneid;
  93. $specialArr = array();
  94. switch ($type) {
  95. case Enum_TargetStatistics::registerUserNum:
  96. $field = "registerUserNum";
  97. break;
  98. case Enum_TargetStatistics::comNewGuide_UserNum:
  99. $field = "comNewGuideUserNum";
  100. break;
  101. case Enum_TargetStatistics::unlockbuidId:
  102. $field = "unlockbuidId-".$id;
  103. break;
  104. case Enum_TargetStatistics::mainTaskId_ComUserNum:
  105. $field = "mainTaskId_ComUserNum-".$id;
  106. break;
  107. case Enum_TargetStatistics::shopTaskId_ComUserNum:
  108. $field = "shopTaskId_ComUserNum-".$id;
  109. break;
  110. case Enum_TargetStatistics::shopTaskId_BuyUserNum:
  111. $field = "shopTaskId_BuyUserNum-".$id;
  112. break;
  113. case Enum_TargetStatistics::collegeTaskId_ComUserNum:
  114. $field = "collegeTaskId_ComUserNum-".$id;
  115. break;
  116. case Enum_TargetStatistics::collegeCouseId_UnlockUserNum:
  117. $field = "collegeCouseId_UnlockUserNum-".$id;
  118. break;
  119. case Enum_TargetStatistics::dailyTaskId_ComUserNum:
  120. $field = "dailyTaskId_ComUserNum-".$id;
  121. break;
  122. case Enum_TargetStatistics::storyGateId_ComUserNum:
  123. $field = "storyGateId_ComUserNum-".$id;
  124. break;
  125. case Enum_TargetStatistics::storyGateId_BattleNum:
  126. $field = "storyGateId_BattleNum-".$id;
  127. $specialArr[] = Enum_TargetStatistics::storyGateId_BattleNum;
  128. break;
  129. case Enum_TargetStatistics::HuanLingShiGateId_ComUserNum:
  130. $field = "HuanLingShiGateId_ComUserNum-".$id;
  131. break;
  132. case Enum_TargetStatistics::HuanLingShiGateId_BattleNum:
  133. $field = "HuanLingShiGateId_BattleNum-".$id;
  134. $specialArr[] = Enum_TargetStatistics::HuanLingShiGateId_BattleNum;
  135. break;
  136. case Enum_TargetStatistics::WeaponGateId_ComUserNum:
  137. $field = "WeaponGateId_ComUserNum-".$id;
  138. break;
  139. case Enum_TargetStatistics::WeaponGateId_BattleNum:
  140. $field = "WeaponGateId_BattleNum-".$id;
  141. $specialArr[] = Enum_TargetStatistics::WeaponGateId_BattleNum;
  142. break;
  143. case Enum_TargetStatistics::YanLingGateId_ComUserNum:
  144. $field = "YanLingGateId_ComUserNum-".$id;
  145. break;
  146. case Enum_TargetStatistics::YanLingGateId_BattleNum:
  147. $field = "YanLingGateId_BattleNum-".$id;
  148. $specialArr[] = Enum_TargetStatistics::YanLingGateId_BattleNum;
  149. break;
  150. case Enum_TargetStatistics::userlevel:
  151. $field = "userlevel-".$id;
  152. $fieldNew = "userlevel-".$lastCtx;
  153. break;
  154. case Enum_TargetStatistics::newUserLotteryDraw_one:
  155. $field = "newUserLotteryDraw_one";
  156. break;
  157. case Enum_TargetStatistics::newUserLotteryDraw_ten:
  158. $field = "newUserLotteryDraw_ten";
  159. break;
  160. case Enum_TargetStatistics::yanLingLotteryDraw_one:
  161. $field = "yanLingLotteryDraw_one";
  162. break;
  163. case Enum_TargetStatistics::yanLingLotteryDraw_ten:
  164. $field = "yanLingLotteryDraw_ten";
  165. break;
  166. case Enum_TargetStatistics::weaponLotteryDraw_one:
  167. $field = "weaponLotteryDraw_one";
  168. break;
  169. case Enum_TargetStatistics::weaponLotteryDraw_ten:
  170. $field = "weaponLotteryDraw_ten";
  171. break;
  172. case Enum_TargetStatistics::commonLotteryDraw_one:
  173. $field = "commonLotteryDraw_one";
  174. break;
  175. case Enum_TargetStatistics::commonLotteryDraw_ten:
  176. $field = "commonLotteryDraw_ten";
  177. break;
  178. case Enum_TargetStatistics::HuanLingShiLevel_UserNum:
  179. $field = "HuanLingShiLevel_UserNum-".$id."-level".$ctx;
  180. $fieldNew = "HuanLingShiLevel_UserNum-".$id."-level".$lastCtx;
  181. break;
  182. case Enum_TargetStatistics::HuanLingShiId_UserNum:
  183. $field = "HuanLingShiId_UserNum-".$id;
  184. break;
  185. case Enum_TargetStatistics::YanLingId_UserNum:
  186. $field = "YanLingId_UserNum-".$id;
  187. break;
  188. case Enum_TargetStatistics::YanLingIdLevel_UserNum:
  189. $field = "YanLingIdLevel_UserNum-".$id."-level".$ctx;
  190. $fieldNew ="YanLingIdLevel_UserNum-".$id."-level".$lastCtx;
  191. break;
  192. case Enum_TargetStatistics::WeaponId_UserNum:
  193. $field = "WeaponId_UserNum-".$id;
  194. break;
  195. case Enum_TargetStatistics::WeaponIdLevel_UserNum:
  196. $field = "WeaponIdLevel_UserNum-".$id."-level".$ctx;
  197. $fieldNew = "WeaponIdLevel_UserNum-".$id."-level".$lastCtx;
  198. break;
  199. default:
  200. break;
  201. }
  202. if(in_array($type,$specialArr)){
  203. $val = gMem()->hget($key,$field);
  204. if($val == null){
  205. $val = $ctx;
  206. } else {
  207. $vlist = explode('/',$val);
  208. $clist = explode('/',$ctx);
  209. $n1 = $vlist[0]+$clist[0];
  210. $n2 = $vlist[1]+$clist[1];
  211. $val = $n1."/".$n2;
  212. }
  213. gMem()->hset($key,$field,$val);
  214. } else {
  215. if($lastCtx != null){
  216. $count = gMem()->hget($key,$fieldNew);
  217. if($count != null){
  218. $count -= 1;
  219. if($count <= 0){
  220. $count = 0;
  221. }
  222. gMem()->hset($key,$field,$count);
  223. }
  224. }
  225. $count = gMem()->hget($key,$field);
  226. if($count == null){
  227. $count = 0;
  228. }
  229. gMem()->hset($key,$field,$count+1);
  230. }
  231. }
  232. }