difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
"use strict";
cc._RF.push(module, '70062pr0GVInaTKlun3vtGf', 'vedio_model');
// Scripts/mod/vedio/vedio_model.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-05-16 17:20:08
// --------------------------------------------------------------------
var MainuiController = require("mainui_controller");
 
var MainuiConst = require("mainui_const");
 
var VedioModel = cc.Class({
  "extends": BaseClass,
  ctor: function ctor() {},
  properties: {},
  initConfig: function initConfig() {
    this.today_like_num = 0; //-- 今日点赞数
 
    this.today_like_is_full = false; //-- 今日是否点赞数达到最大
 
    this.all_vedio_data = {}; // 全部录像数据
 
    this.filt_lv_flag = true; // 是否筛选等级相近的玩家录像
  },
  setPublicVedioData: function setPublicVedioData(data) {
    if (!data) return;
    var self = this; // -- 类型
 
    if (!self.all_vedio_data[data.type]) {
      self.all_vedio_data[data.type] = {};
    } // -- 条件
 
 
    if (!self.all_vedio_data[data.type][data.cond_type]) {
      self.all_vedio_data[data.type][data.cond_type] = {};
    } // -- 添加录像数据
 
 
    if (!self.all_vedio_data[data.type][data.cond_type].vedio_data) {
      self.all_vedio_data[data.type][data.cond_type].vedio_data = [];
    }
 
    for (var i = 0; i < data.replay_list.length; ++i) {
      var v = data.replay_list[i];
      self.all_vedio_data[data.type][data.cond_type].vedio_data.push(v);
    } // -- 判断一下数据是否已经达到最大值,达到了则不再继续请求数据
 
 
    if (data.len > self.all_vedio_data[data.type][data.cond_type].vedio_data.length) {
      self.all_vedio_data[data.type][data.cond_type].is_full = false;
    } else {
      self.all_vedio_data[data.type][data.cond_type].is_full = true;
    }
  },
  // -- 获取录像大厅数据
  getPublicVedioData: function getPublicVedioData(vedioType, cond_type) {
    var vedio_data = {};
 
    if (vedioType) {
      if (this.all_vedio_data[vedioType]) {
        vedio_data = this.all_vedio_data[vedioType][cond_type] || {};
      }
    }
 
    return vedio_data;
  },
  // -- 设置今日点赞数
  setTodayLikeNum: function setTodayLikeNum(num) {
    this.today_like_num = num;
    var red_status = false;
    this.today_like_is_full = true;
    var likes_limit_cfg = Config.video_data.data_const["likes_limit"];
 
    if (likes_limit_cfg && likes_limit_cfg.val > num) {
      red_status = true;
      this.today_like_is_full = false;
    }
 
    MainuiController.getInstance().setFunctionTipsStatus(MainuiConst.icon.vedio, red_status);
  },
  getTodayLikeNum: function getTodayLikeNum() {
    return this.today_like_num;
  },
  // -- 是否请求过录像数据
  checkIsReqVedioDataByType: function checkIsReqVedioDataByType(vedioType, cond_type) {
    if (this.all_vedio_data[vedioType] && this.all_vedio_data[vedioType][cond_type]) {
      return true;
    }
 
    return false;
  },
  getFiltLevelFlag: function getFiltLevelFlag() {
    return this.filt_lv_flag;
  },
  // -- 缓存一下竞技场分页是否勾选筛选等级相近的玩家
  setFiltLevelFlag: function setFiltLevelFlag(flag) {
    this.filt_lv_flag = flag;
  },
  checkTodayLikeIsFull: function checkTodayLikeIsFull() {
    return this.today_like_is_full;
  },
  // -- 更新数据(本地缓存主动更新)
  updateVedioData: function updateVedioData(vedioType, id, key, val) {
    var new_data;
 
    for (var i in this.all_vedio_data) {
      var all_data = this.all_vedio_data[i];
 
      for (var k in all_data) {
        var v = all_data[k];
 
        for (var m = 0; m < v.vedio_data.length; m++) {
          var vData = v.vedio_data[m];
 
          if (vData.id == id) {
            vData[key] = val;
            new_data = vData;
          }
        }
      }
    }
 
    return new_data;
  }
});
 
cc._RF.pop();