WeekQuery.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import Common from '../common/Common';
  2. import DataModelBase from '../framework/DataModelBase';
  3. import DataModelManager from '../framework/DataModelManager';
  4. import LogicUnitManager from '../framework/LogicUnitManager';
  5. import Event from '../net/Event';
  6. // TODO 查询数据保存到WeekRank中
  7. export default class WeekQuery extends DataModelBase
  8. {
  9. constructor(modelName)
  10. {
  11. super(modelName);
  12. this.weekRank = DataModelManager.getModel('WeekRank');
  13. this.configData = DataModelManager.getModel('ConfigData');
  14. this.lum = LogicUnitManager;
  15. this.loginLogic = this.lum.getBehavior('LoginBehavior');
  16. }
  17. getPullRankInfoUrl(rankType)
  18. {
  19. //return requestUrl + areaCode;
  20. }
  21. pullData(rankType)
  22. {
  23. var requestUrl = this.configData.getApiAddress() == '' ? 'http://192.168.3.178:8080/ranklist/pull_area_ranklist' : this.configData.getApiAddress()+'/ranklist/pull_area_ranklist';
  24. var areaCode = this.loginLogic.area_code;
  25. switch(rankType)
  26. {
  27. case Common.RankType.CityRank:
  28. areaCode = areaCode / 100 * 100;
  29. break;
  30. case Common.RankType.ProvinceRank:
  31. areaCode = areaCode / 10000 * 10000;
  32. break;
  33. case Common.RankType.CountryRank:
  34. areaCode = 111111;
  35. break;
  36. }
  37. this.weekRank.clearBuff();
  38. var xhr = cc.loader.getXMLHttpRequest();
  39. xhr.open("POST", requestUrl, true);
  40. let self = this;
  41. xhr.onreadystatechange = function()
  42. {
  43. if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300))
  44. {
  45. console.log('http res(' + xhr.responseText.length + '):' + xhr.responseText);
  46. try
  47. {
  48. var ret = JSON.parse(xhr.responseText);
  49. self.onGetDataSuccess(rankType, ret);
  50. }
  51. catch(e)
  52. {
  53. console.log('err:' + e);
  54. }
  55. }
  56. };
  57. var body = {"area_code" : areaCode.toString() };
  58. xhr.send(JSON.stringify(body));
  59. }
  60. // TODO 保存数据
  61. onGetDataSuccess(rankType, json)
  62. {
  63. //this.weekRank.addRank(rankType, rankInfo);
  64. for (var i = 0; i < json.records.length; ++i)
  65. {
  66. var rankInfo =
  67. {
  68. headUrl : 'https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJ0J3Obq3uG2q5Pib0S3B8ickiaaLhffLbqLWiaiaiaFW2nHrxDWI4uoGibyKDUHhtNNoYmaYbDwtSFbbrVg/132',
  69. nickName : 'avatar',
  70. weekScore : 890,
  71. };
  72. if (!json.records[i].userInfo)
  73. {
  74. continue;
  75. }
  76. var userInfo = JSON.parse(json.records[i].userInfo);
  77. rankInfo.weekScore = json.records[i].score ? json.records[i].score : 0;
  78. rankInfo.headUrl = userInfo.avatarUrl;
  79. rankInfo.nickName = userInfo.nickName;
  80. this.weekRank.addRank(rankType, rankInfo);
  81. }
  82. this.weekRank.swapBuff(rankType);
  83. this.loginLogic.emit(Event.COM_MSG.REFRESH_RANK_VIEW);
  84. }
  85. }