// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里填写详细说明,主要填写该模块的功能简要
//
Create: 2019-03-02 16:49:03
// --------------------------------------------------------------------
var MainuiController = require("mainui_controller");
var MainuiConst = require("mainui_const");
var ActionEvent = require("action_event")
var ActionConst = require("action_const")
var ActionModel = cc.Class({
extends: BaseClass,
ctor: function () {
},
properties: {
},
initConfig: function () {
// -- 基金红点数据
this.fund_red_list = {}
},
//------------------@ 基金活动相关
// -- 开启中的基金活动id
setOpenFundIds(id_list) {
this.fund_id_list = id_list || []
this.checkFundRedStatus()
},
getOpenFundIds() {
return this.fund_id_list || []
},
// -- 设置基金的数据
setFundSrvData(data) {
this.fund_datas = this.fund_datas || {}
if (data && data.id) {
this.fund_datas[data.id] = data
this.updateFundStatus(data.id, data.status)
}
},
// -- 获取基金数据
getFundSrvDataById(id) {
this.fund_datas = this.fund_datas || {}
return this.fund_datas[id] || {}
},
updateFundStatus(id, status) {
this.fund_id_list = this.fund_id_list || []
for (let k = 0; k < this.fund_id_list.length; ++k) {
let v = this.fund_id_list[k]
if (v.id == id) {
v.status = status
break
}
}
this.checkFundRedStatus()
},
//检查超值基金红点
checkFundRedStatus() {
this.fund_id_list = this.fund_id_list || []
for(let k=0;k 7)return;
day = day || 1;
// 福利
this.welfareRetPoint = [];
for(var i=1; i<=day;i++){
var welfare = this.getSevenGoalWelfareList(i);
this.welfareRetPoint[i] = false;
for(var k in welfare){
if(welfare[k].status == 1){
this.welfareRetPoint[i] = true;
break;
}
}
}
// 每日目标
this.growRetPoint = [];
for(var i=1; i<=day;i++){
var grow = this.getServerGrowListData(i-1);
this.growRetPoint[i] = false;
for(var k in grow){
if(grow[k].status == 1){
this.growRetPoint[i] = true;
break;
}
}
}
// 超值礼包
this.giftRetPoint = [];
for(var i=1; i<=day;i++){
var grow = this.getServerGiftListData(i-1);
this.giftRetPoint[i] = false;
for(var k in grow){
if(grow[k].status == 1){
this.giftRetPoint[i] = true;
break;
}
}
}
this.halfRedPoint = [];
// 0、还有领取 1、已领取
for(var i=1; i<=day;i++){
var half = this.getHalfGiftList(i);
this.halfRedPoint[i] = false;
for(var k in half){
if(k == 0 && half[k].status == 0){
this.halfRedPoint[i] = true;
break;
}
}
}
// 宝箱
this.boxRedPoint = [];
var box = this.getSevenGoalBoxList();
for(var i in box){
this.boxRedPoint[i] = false;
if(box[i].status == 1){
this.boxRedPoint[i] = true;
}
}
var redStatus = false;
var redStatus1 = false;
var redStatus2 = false;
var redStatus3 = false;
var redStatus4 = false;
var redStatus5 = false;
for(var i in this.welfareRetPoint){
if(this.welfareRetPoint[i] == true){
redStatus1 = true;
break;
}
}
for(var i in this.growRetPoint){
if(this.growRetPoint[i] == true){
redStatus2 = true;
break;
}
}
for(var i in this.giftRetPoint){
if(this.giftRetPoint[i] == true){
redStatus3 = true;
break;
}
}
for(var i in this.halfRedPoint){
if(this.halfRedPoint[i] == true){
redStatus5 = true;
break;
}
}
for(var i in this.boxRedPoint){
if(this.boxRedPoint[i] == true){
redStatus4 = true;
break;
}
}
redStatus = redStatus1 || redStatus2 || redStatus3 || redStatus4 || redStatus5;
var icon_id = MainuiConst.icon.seven_goal;
if(this.getSevenGoldPeriod() == 1){
icon_id = MainuiConst.icon.seven_goal
}else if(this.getSevenGoldPeriod() == 2){
icon_id = MainuiConst.icon.seven_goal1;
}else if(this.getSevenGoldPeriod() == 3){
icon_id = MainuiConst.icon.seven_goal2;
}else{
icon_id = MainuiConst.icon.seven_goal3
}
MainuiController.getInstance().setFunctionTipsStatus(icon_id, redStatus);
},
// 红点状态
getRedPointWelfareStatus:function(day){
if(!this.welfareRetPoint)return;
var status = false;
status = this.welfareRetPoint[day];
return status;
},
// 更新
updataRedPointWelfareStatus:function(day, status){
if(!this.welfareRetPoint)return;
this.welfareRetPoint[day] = status;
},
getRedPointGrowStatus:function(day){
if(!this.growRetPoint)return;
var status = false;
status = this.growRetPoint[day];
return status;
},
// 更新
updataRedPointGrowStatus:function(day, status){
if(!this.growRetPoint)return;
this.growRetPoint[day] = status;
},
getRedPointGiftStatus:function(day){
if(!this.giftRetPoint)return;
var status = false;
status = this.giftRetPoint[day];
return status;
},
// 更新
updataRedPointGiftStatus:function(day, status){
if(!this.giftRetPoint)return;
this.giftRetPoint[day] = status;
},
// 福利礼包
getRedPointHalfStatus:function(day){
if(!this.halfRedPoint)return;
var status = false;
status = this.halfRedPoint[day];
return status;
},
// 更新
updataRedPointHalfStatus:function(day, status){
if(!this.halfRedPoint)return;
this.halfRedPoint[day] = status
},
getRedPointBoxStatus:function(index){
if(!this.boxRedPoint)return;
var status = false;
status = this.boxRedPoint[index];
return status;
},
// 更新
updataRedPointBoxStatus:function(index, status){
if(!this.boxRedPoint)return;
this.boxRedPoint[index] = status;
},
// 七天目标*********** start *****
initSevenWalfare:function(index){
this.setWalfareData(index);
this.setWalfareGrowUpData(index);
this.setHalfGiftData(index);
this.setBoxRewardData(index);
},
// 宝箱
setBoxRewardData:function(index){
var data = Config.day_goals_data.data_all_target[index]
this.boxRewardData = [];
for(var i in data){
this.boxRewardData.push(data[i][0]);
}
this.boxRewardData.sort(function(a,b){
return a.id - b.id;
})
},
getBoxRewardData:function(){
return this.boxRewardData || [];
},
// 福利
setWalfareData:function(index){
var data = Config.day_goals_data.data_welfarecollection[index];
this.welfareData = Utils.deepCopy(data);
},
// 成长目标
setWalfareGrowUpData:function(index){
var data = Config.day_goals_data.data_growthtarget[index];
this.welfareGrowData = [];
this.welfareGiftData = [];
for(var i in data){
var tab = [];
var tab1 = [];
for(var k in data[i]){
if(data[i][k].target_type == 1){
tab.push(data[i][k]);
}else if(data[i][k].target_type == 2){
tab1.push(data[i][k]);
}
}
this.welfareGrowData.push(tab);
this.welfareGiftData.push(tab1);
}
},
// 福利礼包
setHalfGiftData:function(index){
var data = Config.day_goals_data.data_halfdiscount[index];
this.walfareHalfData = [];
for(var i=1;i<=7;i++){
this.walfareHalfData[i] = [];
}
for(var i in data){
this.walfareHalfData[data[i][0].day].push(data[i][0]);
}
for(var i=1;i<=7;i++){
this.walfareHalfData[i].sort(function(a,b){
return a.id - b.id;
});
}
},
getWalfareData:function(day){
if(!this.welfareData)return;
return this.welfareData[day] || [];
},
getWalfareGrowUpData:function(day){
if(!this.welfareGrowData)return;
return this.welfareGrowData[day] || [];
},
getWelfareGiftData:function(day){
if(!this.welfareGiftData)return;
return this.welfareGiftData[day] || [];
},
getWelfareHalfData:function(day){
if(this.walfareHalfData && this.walfareHalfData[day]){
return this.walfareHalfData[day] || [];
}
},
// *********** 协议相关*********
// 七天目标的福利领取
setSevenGoalWelfareList:function(data){
this.welfareList = [];
for(var i=1;i<=7;i++){
this.welfareList[i] = [];
}
for(var i in data){
this.welfareList[data[i].day].push(data[i]);
}
},
getSevenGoalWelfareList:function(day){
if(!this.welfareList)return;
return this.welfareList[day] || [];
},
// 更新数据
updataGoalWelfareList:function(day, index, status){
this.welfareList[day][index].status = status;
},
// 七天目标的成长目标
setSevenGoalGrowList:function(data){
var grow_list = [];
for(var i=1;i<=7;i++){
grow_list[i] = [];
}
for(var i in data){
grow_list[data[i].day].push(data[i]);
}
this.serverGrowListData = [];
this.serverGiftListData = [];
for(var i in grow_list){
var tab = [];
var tab1 = [];
for(var k in grow_list[i]){
if(grow_list[i][k].target_type == 1){
tab.push(grow_list[i][k]);
}else if(grow_list[i][k].target_type == 2){
tab1.push(grow_list[i][k]);
}
}
this.serverGrowListData.push(tab);
this.serverGiftListData.push(tab1);
}
},
getServerGrowListData:function(day){
if(this.serverGrowListData && this.serverGrowListData[day]){
return this.serverGrowListData[day] || [];
}
return [];
},
// 更新数据
updataGrowListData:function(day, index, status){
this.serverGrowListData[day][index].status = status;
},
getServerGiftListData:function(day){
if(!this.serverGiftListData)return;
return this.serverGiftListData[day] || [];
},
// 更新数据
updataGiftListData:function(day, index, status){
this.serverGiftListData[day][index].status = status;
},
// 福利礼包礼包购买
setHalfGiftList:function(data){
this.halfGiftList = [];
for(var i=1;i<=7;i++){
this.halfGiftList[i] = [];
}
for(var i=1;i<=7;i++){
var half_list = this.getWelfareHalfData(i);
for(var k in half_list){
for(var b in data){
if(half_list[k].id == data[b].day){
this.halfGiftList[i].push(data[b]);
}
}
}
}
},
getHalfGiftList:function(day){
if(this.halfGiftList && this.halfGiftList[day]){
return this.halfGiftList[day] || [];
}
},
// 更新数据
updataHalfListData:function(day, index, status){
this.halfGiftList[day][index].status = status;
},
// 活跃宝箱
setSevenGoalBoxList:function(data){
this.boxList = data;
},
getSevenGoalBoxList:function(){
if(!this.boxList)return;
this.boxList.sort(Utils.tableLowerSorter(["goal_id"]));
return this.boxList || [];
},
// 更新数据
updataBoxListData:function(index, status){
this.boxList[index].status = status;
},
sortItemList(list){
let tempsort = {
[0] : 2, //-- 0 未领取放中间
[1] : 1, //-- 1 可领取放前面
[2] : 3, //-- 2 已领取放最后
}
let sortFunc = function (objA,objB){
if (objA.status != objB.status){
if (tempsort[objA.status] && tempsort[objB.status]){
return tempsort[objA.status] - tempsort[objB.status]
}else{
return -1
}
}else{
return objA.aim - objB.aim
}
}
list.sort(sortFunc)
},
//设置倒计时
setCountDownTime(text,less_time){
let node = text.node
if(!node)return
node.stopAllActions();
if (less_time > 0){
this.setTimeFormatString(text,less_time)
let callfun = cc.callFunc(function () {
less_time = less_time - 1;
if (less_time < 0) {
node.stopAllActions();
text.string = "00:00:00"
} else {
this.setTimeFormatString(text,less_time)
}
}.bind(this))
node.runAction(cc.repeatForever(cc.sequence(cc.delayTime(1), callfun)))
}else{
this.setTimeFormatString(text,less_time)
}
},
setTimeFormatString(text,time){
var TimeTool = require("timetool")
if(time > 0){
text.string = TimeTool.getTimeForFunction(time);
}else{
text.node.stopAllActions();
text.string = "00:00:00"
}
},
// *********** end *********************************************
// 幸运值
setLucklyRewardData:function(){
var data = Config.dial_data.data_get_lucky_award;
var list = this.sortLucklyData(data);
this.lucky_num1 = list[0];
this.lucky_num2 = list[1];
},
getLucklyRewardData:function(index){
if(!this.lucky_num1 || !this.lucky_num2)return [];
if(index == 1){
return this.lucky_num1 || [];
}else if(index == 2){
return this.lucky_num2 || [];
}
},
// 抽奖两个按钮
setBuyRewardData:function(){
var data = Config.dial_data.data_get_limit_open;
var list = this.sortLucklyData(data, true);
this.buy_num_list1 = list[0];
this.buy_num_list2 = list[1];
},
getBuyRewardData:function(index){
if(!this.buy_num_list1 || !this.buy_num_list2)return [];
if(index == 1){
return this.buy_num_list1 || [];
}else if(index == 2){
return this.buy_num_list2 || [];
}
},
sortLucklyData:function(data, _type){
var list1 = [];
var list2 = [];
for(var i in data){
var v = data[i];
if(v.type == 1){
list1.push(v);
}else if(v.type == 2){
list2.push(v);
}
}
if(_type){
list1.sort(function(a, b){
return a.type2-b.type2;
});
list2.sort(function(a, b){
return a.type2-b.type2;
});
}else{
list1.sort(function(a, b){
return a.id- b.id;
});
list2.sort(function(a, b){
return a.id - b.id;
});
}
return [list1,list2];
},
// ------- 探宝服务器返回----------
// 寻宝数据
setTreasureInitData:function(data){
this.treasureInitData = [];
for(var i in data){
this.treasureInitData[data[i].type] = data[i];
}
},
getTreasureInitData:function(index){
if(!this.treasureInitData)return[];
return this.treasureInitData[index] || [];
},
// 更新
updataTreasureInitData:function(index, data){
if(!this.treasureInitData)return;
this.treasureInitData[index].count = data.count;
this.treasureInitData[index].end_time = data.end_time;
this.treasureInitData[index].lucky = data.lucky;
this.treasureInitData[index].lucky_award = data.lucky_award;
this.treasureInitData[index].rand_lists = data.rand_lists;
},
// 更新日记
updataTreasureLogData:function(index, data){
if(!this.treasureInitData)return;
this.treasureInitData[index].log_list = data;
},
// *********探宝红点*********
lucklyRedPoint:function(){
this.setLucklyRewardData();
this.tab_redpoint = [false,false];
for(var val=1;val<=2;val++){
var data = this.getLucklyRewardData(val);
var serve_data = this.getTreasureInitData(val);
var status = false;
for(var j in data){
var _bool = true;
for(var k in serve_data.lucky_award){
if(data[j].id == serve_data.lucky_award[k].lucky){
_bool = false;
break;
}
}
if(serve_data.lucky < data[j].lucky_val){
_bool = false;
}
if(_bool == true){
status = true;
break;
}
}
this.setLucklyTabRedPoint(val,status);
}
MainuiController.getInstance().setFunctionTipsStatus(MainuiConst.icon.lucky_treasure, this.tab_redpoint[1] || this.tab_redpoint[2]);
},
// 获取幸运探宝页签红点
setLucklyTabRedPoint:function(index,status){
this.tab_redpoint[index] = status;
},
getLucklyTabRedPoint:function(index){
if(this.tab_redpoint && this.tab_redpoint[index]){
return this.tab_redpoint[index];
}
return false;
},
getFundRedStatusByBid( bid ){
return this.fund_red_list[bid]
},
//杂货铺数据
setStoneShopData:function(data){
this.stone_shop_data = {};
for(var i in data){
var v = data[i];
this.stone_shop_data[v.id]= v;
}
},
getStoneShopData:function(id){
if(this.stone_shop_data && this.stone_shop_data[id] != null){
return this.stone_shop_data[id]
}
return null
},
// -----------每日红点仅显示一次-----------
updateGiftRedPointStatus:function(data){
var bid = data.bid;
this.gift_id_list = this.gift_id_list || [];
this.gift_id_list[bid] = data;
},
getGiftRedStatusByBid:function(bid){
if(!this.gift_id_list)return;
var list = this.gift_id_list[bid];
if(list){
return list.status
}
},
setGiftRedStatus:function(data){
if(!this.gift_id_list)return;
var bid = data.bid;
var status = data.status;
var list = this.gift_id_list[bid];
if(list && list.status != status){
list.status = status;
}
gcore.GlobalEvent.fire(ActionEvent.SHOW_ACTIVITY_RED_POINT, bid, status);
},
updataFestvalRedStatus(bid,data){
let red_status = this.getRedPointStatus(data)
let festval_bid = MainuiConst.icon.festval
if(bid == ActionConst.ActionRankCommonType.festval_day){
festval_bid = MainuiConst.icon.festval_spring
}else if(bid == ActionConst.ActionRankCommonType.lover_day){
festval_bid = MainuiConst.icon.festval_lover
}
MainuiController.getInstance().setFunctionTipsStatus(festval_bid, red_status)
},
getRedPointStatus(data){
if(!data) return false;
let red_status = false
for(let k=0;k