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
// --------------------------------------------------------------------
// @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 () {
    },
 
    properties: {
    },
 
    initConfig: function () {
        this.today_like_num = 0   //-- 今日点赞数
        this.today_like_is_full = false //-- 今日是否点赞数达到最大
        this.all_vedio_data = {}  // 全部录像数据
        this.filt_lv_flag = true  // 是否筛选等级相近的玩家录像
    },
    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(let i=0;i<data.replay_list.length;++i){
            let 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( vedioType, cond_type ){
        let vedio_data = {}
        if(vedioType){
            if(this.all_vedio_data[vedioType]){
                vedio_data = this.all_vedio_data[vedioType][cond_type] || {}
            }
        }
        return vedio_data
    },
    // -- 设置今日点赞数
    setTodayLikeNum( num ){
        this.today_like_num = num
        let red_status = false
        this.today_like_is_full = true
        let 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(  ){
        return this.today_like_num
    },
 
    // -- 是否请求过录像数据
    checkIsReqVedioDataByType( vedioType, cond_type ){
        if(this.all_vedio_data[vedioType] && this.all_vedio_data[vedioType][cond_type]){
            return true
        }
        return false
    },
    getFiltLevelFlag(  ){
        return this.filt_lv_flag
    },
    // -- 缓存一下竞技场分页是否勾选筛选等级相近的玩家
    setFiltLevelFlag( flag ){
        this.filt_lv_flag = flag
    },
    checkTodayLikeIsFull(  ){
        return this.today_like_is_full
    },
    // -- 更新数据(本地缓存主动更新)
    updateVedioData( vedioType, id, key, val ){
        let new_data
        for(let i in this.all_vedio_data){
            let all_data = this.all_vedio_data[i]
            for(let k in all_data){
                let v = all_data[k]
                for(let m=0;m<v.vedio_data.length;m++){
                    let vData = v.vedio_data[m]
                    if(vData.id == id){
                        vData[key] = val
                        new_data = vData
                    }
                }
            }
        }
        return new_data
    }
});