WeekRank.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. import Common from '../common/Common';
  2. import DataModelBase from '../framework/DataModelBase';
  3. export default class WeekRank extends DataModelBase
  4. {
  5. constructor(modelName)
  6. {
  7. super(modelName);
  8. this._arrCityRank = [];
  9. this._arrProvinceRank = [];
  10. this._arrCountryRank = [];
  11. this._arrCityRankBuff = [];
  12. this._arrProvinceRankBuff = [];
  13. this._arrCountryRankBuff = [];
  14. }
  15. getRankNum(rankType)
  16. {
  17. switch(rankType)
  18. {
  19. case Common.RankType.CityRank:
  20. return this._arrCityRank.length;
  21. break;
  22. case Common.RankType.ProvinceRank:
  23. return this._arrProvinceRank.length;
  24. break;
  25. case Common.RankType.CountryRank:
  26. return this._arrCountryRank.length;
  27. break;
  28. }
  29. }
  30. clearRank(rankType)
  31. {
  32. switch(rankType)
  33. {
  34. case Common.RankType.CityRank:
  35. this._arrCityRank.length = 0;
  36. break;
  37. case Common.RankType.ProvinceRank:
  38. this._arrProvinceRank.length = 0;
  39. break;
  40. case Common.RankType.CountryRank:
  41. this._arrCountryRank.length = 0;
  42. break;
  43. }
  44. }
  45. clearBuff(rankType)
  46. {
  47. switch(rankType)
  48. {
  49. case Common.RankType.CityRank:
  50. this._arrCityRankBuff.length = 0;
  51. break;
  52. case Common.RankType.ProvinceRank:
  53. this._arrProvinceRankBuff.length = 0;
  54. break;
  55. case Common.RankType.CountryRank:
  56. this._arrCountryRankBuff.length = 0;
  57. break;
  58. }
  59. }
  60. addRank (rankType, rankInfo)
  61. {
  62. switch(rankType)
  63. {
  64. case Common.RankType.CityRank:
  65. this._arrCityRankBuff.push(rankInfo);
  66. break;
  67. case Common.RankType.ProvinceRank:
  68. this._arrProvinceRankBuff.push(rankInfo);
  69. break;
  70. case Common.RankType.CountryRank:
  71. this._arrCountryRankBuff.push(rankInfo);
  72. break;
  73. }
  74. }
  75. swapBuff(rankType)
  76. {
  77. this.clearRank(rankType);
  78. switch(rankType)
  79. {
  80. case Common.RankType.CityRank:
  81. for (var i = 0; i < this._arrCityRankBuff.length; ++i)
  82. {
  83. this._arrCityRank.push(this._arrCityRankBuff[i]);
  84. }
  85. this._arrCityRankBuff.length = 0;
  86. break;
  87. case Common.RankType.ProvinceRank:
  88. for (var i = 0; i < this._arrProvinceRankBuff.length; ++i)
  89. {
  90. this._arrProvinceRank.push(this._arrProvinceRankBuff[i]);
  91. }
  92. this._arrProvinceRankBuff.length = 0;
  93. break;
  94. case Common.RankType.CountryRank:
  95. for (var i = 0; i < this._arrCountryRankBuff.length; ++i)
  96. {
  97. this._arrCountryRank.push(this._arrCountryRankBuff[i]);
  98. }
  99. this._arrCountryRankBuff.length = 0;
  100. break;
  101. }
  102. }
  103. cityRank()
  104. {
  105. if (this._arrCityRank.length > 1)
  106. this._arrCityRank.sort(this.sort);
  107. }
  108. provinceRank()
  109. {
  110. if (this._arrProvinceRank.length > 1)
  111. this._arrProvinceRank.sort(this.sort);
  112. }
  113. countryRank()
  114. {
  115. if (this._arrcountryRank.length > 1)
  116. this._arrcountryRank.sort(this.sort);
  117. }
  118. sort(r1, r2)
  119. {
  120. if (r1.weekScore > r2.weekScore)
  121. return -1;
  122. return 1;
  123. }
  124. getRank(rankType, id)
  125. {
  126. switch(rankType)
  127. {
  128. case Common.RankType.CityRank:
  129. if (id < 0 || id >= this._arrCityRank.length)
  130. return null;
  131. return this._arrCityRank[id];
  132. break;
  133. case Common.RankType.ProvinceRank:
  134. if (id < 0 || id >= this._arrProvinceRank.length)
  135. return null;
  136. return this._arrProvinceRank[id];
  137. break;
  138. case Common.RankType.CountryRank:
  139. if (id < 0 || id >= this._arrCountryRank.length)
  140. return null;
  141. return this._arrCountryRank[id];
  142. break;
  143. }
  144. }
  145. getSelfRankID(rankType)
  146. {
  147. switch(rankType)
  148. {
  149. case Common.RankType.CityRank:
  150. for (var i = 0; i < this._arrCityRank.length; ++i)
  151. {
  152. var info = this._arrCityRank[i];
  153. if (!info)
  154. continue;
  155. if (info.headUrl == this.selfUrl && info.nickName == this.selfName)
  156. return i;
  157. }
  158. break;
  159. case Common.RankType.ProvinceRank:
  160. for (var i = 0; i < this._arrProvinceRank.length; ++i)
  161. {
  162. var info = this._arrProvinceRank[i];
  163. if (!info)
  164. continue;
  165. if (info.headUrl == this.selfUrl && info.nickName == this.selfName)
  166. return i;
  167. }
  168. break;
  169. case Common.RankType.CountryRank:
  170. for (var i = 0; i < this._arrCountryRank.length; ++i)
  171. {
  172. var info = this._arrCountryRank[i];
  173. if (!info)
  174. continue;
  175. if (info.headUrl == this.selfUrl && info.nickName == this.selfName)
  176. return i;
  177. }
  178. break;
  179. }
  180. return -1;
  181. }
  182. }