客服系统红点

This commit is contained in:
xiekaidong 2023-07-04 10:41:10 +08:00
parent f228e84585
commit b445b12dff
8 changed files with 198 additions and 3 deletions

View File

@ -26,6 +26,7 @@ function DataManager:init()
self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data")
self:initManager("ShopData", "app/userdata/shop/shop_data")
self:initManager("SummonData", "app/userdata/summon/summon_data")
self:initManager("AIHelperData", "app/userdata/game_setting/ai_helper_data")
end
function DataManager:initManager(name, path)
@ -102,6 +103,7 @@ function DataManager:clear()
self.SummonData:clear()
-- 任务数据最后清理
self.TaskData:clear()
self.AIHelperData:clear()
ModuleManager.TaskManager:clear()
self:clearTryOpenFunc()
end
@ -143,6 +145,7 @@ function DataManager:initWithServerData(data)
-- 商店礼包都初始化完了后检查一下每日红点
self.ShopData:checkShopDiscountRedPoint()
self.SummonData:init(data.summon, true)
self.AIHelperData:init(nil, true)
-- 成长基金要在ShopData和PlayerDataBagData还有之后初始化依赖这些数据
if data.fund then
self.GrowthFundData:init(data.fund.funds)

View File

@ -82,4 +82,14 @@ function GameSettingManager:showSupport(objectId)
GFunc.openUrl(CS.System.Uri(url .. language .. userId .. tempStr .. customData).AbsoluteUri)
end
function GameSettingManager:reqAiHelper()
self:sendMessage(ProtoMsgType.FromMsgEnum.AIHelpUnreadReq, {}, {}, self.rspAiHelper)
end
function GameSettingManager:rspAiHelper(result)
if result.error_code == GConst.ERROR_STR.SUCCESS then
DataManager.AIHelperData:init(result)
end
end
return GameSettingManager

View File

@ -9,6 +9,8 @@ local ProtoMsgType = {
[147149505] = "EnergyByADRsp",
[236190053] = "ChapterShardsChallengeStartReq",
[236191886] = "ChapterShardsChallengeStartRsp",
[252740891] = "PVPOverCDReq",
[252742724] = "PVPOverCDRsp",
[295348381] = "ChangeAvatarReq",
[295350214] = "ChangeAvatarRsp",
[317272657] = "IdleQuickReq",
@ -27,10 +29,16 @@ local ProtoMsgType = {
[613795629] = "WatchADRsp",
[737107384] = "BuyMallIdleReq",
[737109217] = "BuyMallIdleRsp",
[822916593] = "MatchReq",
[822918426] = "MatchRsp",
[834139466] = "ChapterGoldChallengeStartReq",
[834141299] = "ChapterGoldChallengeStartRsp",
[904222760] = "ArenaBountyLevelUnlockReq",
[904224593] = "ArenaBountyLevelUnlockRsp",
[1008447203] = "DeleteReq",
[1008449036] = "DeleteRsp",
[1067411524] = "BuyTicketReq",
[1067413357] = "BuyTicketRsp",
[1068769299] = "ReconnectReq",
[1068771132] = "ReconnectRsp",
[1070841461] = "LoginReq",
@ -56,6 +64,8 @@ local ProtoMsgType = {
[1690299770] = "SummonRsp",
[1746317288] = "IdleInfoReq",
[1746319121] = "IdleInfoRsp",
[1751460231] = "PVPHeroesArrayReq",
[1751462064] = "PVPHeroesArrayRsp",
[1901321540] = "PipedReq",
[2060508030] = "ChangeAvatarFrameReq",
[2060509863] = "ChangeAvatarFrameRsp",
@ -69,23 +79,39 @@ local ProtoMsgType = {
[2285873970] = "ChapterBoxRewardRsp",
[2429586383] = "MailCycleReq",
[2429588216] = "MailCycleRsp",
[2494225153] = "PVPSettlementADRewardReq",
[2494226986] = "PVPSettlementADRewardRsp",
[2494731810] = "TriggerGoldGiftReq",
[2494733643] = "TriggerGoldGiftRsp",
[2514397758] = "PVPInfoReq",
[2514399591] = "PVPInfoRsp",
[2515553923] = "BuyMallDailyReq",
[2515555756] = "BuyMallDailyRsp",
[2524879713] = "PVPRecordHistoryReq",
[2524881546] = "PVPRecordHistoryRsp",
[2553351971] = "ChapterDailyChallengeStartReq",
[2553353804] = "ChapterDailyChallengeStartRsp",
[2581180989] = "MailListReq",
[2581182822] = "MailListRsp",
[2620369240] = "SevenDayRewardReq",
[2620371073] = "SevenDayRewardRsp",
[2708281176] = "PVPChallengeSettlementReq",
[2708283009] = "PVPChallengeSettlementRsp",
[2731281392] = "MailExtractReq",
[2731283225] = "MailExtractRsp",
[2849800229] = "MailReadReq",
[2849802062] = "MailReadRsp",
[2909093054] = "AIHelpUnreadReq",
[2909094887] = "AIHelpUnreadRsp",
[3003864530] = "ActTriggerGiftNtf",
[3013273736] = "PVPRankHeroesReq",
[3013275569] = "PVPRankHeroesRsp",
[3024278414] = "PVPSeasonRewardReq",
[3024280247] = "PVPSeasonRewardRsp",
[3038151923] = "TaskDailyRefreshReq",
[3038153756] = "TaskDailyRefreshRsp",
[3058879524] = "PVPRankReq",
[3058881357] = "PVPRankRsp",
[3062745642] = "FundAwardReq",
[3062747475] = "FundAwardRsp",
[3087688987] = "IdleRewardReq",
@ -94,6 +120,7 @@ local ProtoMsgType = {
[3137377372] = "ActPayReq",
[3137379205] = "ActPayRsp",
[3190730044] = "KickOutNtf",
[3197501935] = "ArenaBountyBoughtNtf",
[3224230499] = "SevenDayTaskRewardReq",
[3224232332] = "SevenDayTaskRewardRsp",
[3309820798] = "HeroPutOnReq",
@ -114,6 +141,8 @@ local ProtoMsgType = {
[3597634953] = "BattleSkillRefreshRsp",
[3607879254] = "AuthReq",
[3607881087] = "AuthRsp",
[3613497485] = "ArenaBountyRewardReq",
[3613499318] = "ArenaBountyRewardRsp",
[3624439233] = "NewMailNtf",
[3663247602] = "MallDailyResetNtf",
[3663314292] = "MallDailyResetReq",
@ -132,6 +161,8 @@ local ProtoMsgType = {
[4106157842] = "BountyLevelUnlockRsp",
[4133057746] = "ChapterGoldChallengeFarmReq",
[4133059579] = "ChapterGoldChallengeFarmRsp",
[4152754481] = "PVPChallengeStartReq",
[4152756314] = "PVPChallengeStartRsp",
[4256333947] = "ExistReq",
[4256335780] = "ExistRsp",
},
@ -145,6 +176,8 @@ local ProtoMsgType = {
EnergyByADRsp = 147149505,
ChapterShardsChallengeStartReq = 236190053,
ChapterShardsChallengeStartRsp = 236191886,
PVPOverCDReq = 252740891,
PVPOverCDRsp = 252742724,
ChangeAvatarReq = 295348381,
ChangeAvatarRsp = 295350214,
IdleQuickReq = 317272657,
@ -163,10 +196,16 @@ local ProtoMsgType = {
WatchADRsp = 613795629,
BuyMallIdleReq = 737107384,
BuyMallIdleRsp = 737109217,
MatchReq = 822916593,
MatchRsp = 822918426,
ChapterGoldChallengeStartReq = 834139466,
ChapterGoldChallengeStartRsp = 834141299,
ArenaBountyLevelUnlockReq = 904222760,
ArenaBountyLevelUnlockRsp = 904224593,
DeleteReq = 1008447203,
DeleteRsp = 1008449036,
BuyTicketReq = 1067411524,
BuyTicketRsp = 1067413357,
ReconnectReq = 1068769299,
ReconnectRsp = 1068771132,
LoginReq = 1070841461,
@ -192,6 +231,8 @@ local ProtoMsgType = {
SummonRsp = 1690299770,
IdleInfoReq = 1746317288,
IdleInfoRsp = 1746319121,
PVPHeroesArrayReq = 1751460231,
PVPHeroesArrayRsp = 1751462064,
PipedReq = 1901321540,
ChangeAvatarFrameReq = 2060508030,
ChangeAvatarFrameRsp = 2060509863,
@ -205,23 +246,39 @@ local ProtoMsgType = {
ChapterBoxRewardRsp = 2285873970,
MailCycleReq = 2429586383,
MailCycleRsp = 2429588216,
PVPSettlementADRewardReq = 2494225153,
PVPSettlementADRewardRsp = 2494226986,
TriggerGoldGiftReq = 2494731810,
TriggerGoldGiftRsp = 2494733643,
PVPInfoReq = 2514397758,
PVPInfoRsp = 2514399591,
BuyMallDailyReq = 2515553923,
BuyMallDailyRsp = 2515555756,
PVPRecordHistoryReq = 2524879713,
PVPRecordHistoryRsp = 2524881546,
ChapterDailyChallengeStartReq = 2553351971,
ChapterDailyChallengeStartRsp = 2553353804,
MailListReq = 2581180989,
MailListRsp = 2581182822,
SevenDayRewardReq = 2620369240,
SevenDayRewardRsp = 2620371073,
PVPChallengeSettlementReq = 2708281176,
PVPChallengeSettlementRsp = 2708283009,
MailExtractReq = 2731281392,
MailExtractRsp = 2731283225,
MailReadReq = 2849800229,
MailReadRsp = 2849802062,
AIHelpUnreadReq = 2909093054,
AIHelpUnreadRsp = 2909094887,
ActTriggerGiftNtf = 3003864530,
PVPRankHeroesReq = 3013273736,
PVPRankHeroesRsp = 3013275569,
PVPSeasonRewardReq = 3024278414,
PVPSeasonRewardRsp = 3024280247,
TaskDailyRefreshReq = 3038151923,
TaskDailyRefreshRsp = 3038153756,
PVPRankReq = 3058879524,
PVPRankRsp = 3058881357,
FundAwardReq = 3062745642,
FundAwardRsp = 3062747475,
IdleRewardReq = 3087688987,
@ -230,6 +287,7 @@ local ProtoMsgType = {
ActPayReq = 3137377372,
ActPayRsp = 3137379205,
KickOutNtf = 3190730044,
ArenaBountyBoughtNtf = 3197501935,
SevenDayTaskRewardReq = 3224230499,
SevenDayTaskRewardRsp = 3224232332,
HeroPutOnReq = 3309820798,
@ -250,6 +308,8 @@ local ProtoMsgType = {
BattleSkillRefreshRsp = 3597634953,
AuthReq = 3607879254,
AuthRsp = 3607881087,
ArenaBountyRewardReq = 3613497485,
ArenaBountyRewardRsp = 3613499318,
NewMailNtf = 3624439233,
MallDailyResetNtf = 3663247602,
MallDailyResetReq = 3663314292,
@ -268,6 +328,8 @@ local ProtoMsgType = {
BountyLevelUnlockRsp = 4106157842,
ChapterGoldChallengeFarmReq = 4133057746,
ChapterGoldChallengeFarmRsp = 4133059579,
PVPChallengeStartReq = 4152754481,
PVPChallengeStartRsp = 4152756314,
ExistReq = 4256333947,
ExistRsp = 4256335780,
},
@ -281,6 +343,8 @@ local ProtoMsgType = {
EnergyByADRsp = "EnergyByADRsp",
ChapterShardsChallengeStartReq = "ChapterShardsChallengeStartReq",
ChapterShardsChallengeStartRsp = "ChapterShardsChallengeStartRsp",
PVPOverCDReq = "PVPOverCDReq",
PVPOverCDRsp = "PVPOverCDRsp",
ChangeAvatarReq = "ChangeAvatarReq",
ChangeAvatarRsp = "ChangeAvatarRsp",
IdleQuickReq = "IdleQuickReq",
@ -299,10 +363,16 @@ local ProtoMsgType = {
WatchADRsp = "WatchADRsp",
BuyMallIdleReq = "BuyMallIdleReq",
BuyMallIdleRsp = "BuyMallIdleRsp",
MatchReq = "MatchReq",
MatchRsp = "MatchRsp",
ChapterGoldChallengeStartReq = "ChapterGoldChallengeStartReq",
ChapterGoldChallengeStartRsp = "ChapterGoldChallengeStartRsp",
ArenaBountyLevelUnlockReq = "ArenaBountyLevelUnlockReq",
ArenaBountyLevelUnlockRsp = "ArenaBountyLevelUnlockRsp",
DeleteReq = "DeleteReq",
DeleteRsp = "DeleteRsp",
BuyTicketReq = "BuyTicketReq",
BuyTicketRsp = "BuyTicketRsp",
ReconnectReq = "ReconnectReq",
ReconnectRsp = "ReconnectRsp",
LoginReq = "LoginReq",
@ -328,6 +398,8 @@ local ProtoMsgType = {
SummonRsp = "SummonRsp",
IdleInfoReq = "IdleInfoReq",
IdleInfoRsp = "IdleInfoRsp",
PVPHeroesArrayReq = "PVPHeroesArrayReq",
PVPHeroesArrayRsp = "PVPHeroesArrayRsp",
PipedReq = "PipedReq",
ChangeAvatarFrameReq = "ChangeAvatarFrameReq",
ChangeAvatarFrameRsp = "ChangeAvatarFrameRsp",
@ -341,23 +413,39 @@ local ProtoMsgType = {
ChapterBoxRewardRsp = "ChapterBoxRewardRsp",
MailCycleReq = "MailCycleReq",
MailCycleRsp = "MailCycleRsp",
PVPSettlementADRewardReq = "PVPSettlementADRewardReq",
PVPSettlementADRewardRsp = "PVPSettlementADRewardRsp",
TriggerGoldGiftReq = "TriggerGoldGiftReq",
TriggerGoldGiftRsp = "TriggerGoldGiftRsp",
PVPInfoReq = "PVPInfoReq",
PVPInfoRsp = "PVPInfoRsp",
BuyMallDailyReq = "BuyMallDailyReq",
BuyMallDailyRsp = "BuyMallDailyRsp",
PVPRecordHistoryReq = "PVPRecordHistoryReq",
PVPRecordHistoryRsp = "PVPRecordHistoryRsp",
ChapterDailyChallengeStartReq = "ChapterDailyChallengeStartReq",
ChapterDailyChallengeStartRsp = "ChapterDailyChallengeStartRsp",
MailListReq = "MailListReq",
MailListRsp = "MailListRsp",
SevenDayRewardReq = "SevenDayRewardReq",
SevenDayRewardRsp = "SevenDayRewardRsp",
PVPChallengeSettlementReq = "PVPChallengeSettlementReq",
PVPChallengeSettlementRsp = "PVPChallengeSettlementRsp",
MailExtractReq = "MailExtractReq",
MailExtractRsp = "MailExtractRsp",
MailReadReq = "MailReadReq",
MailReadRsp = "MailReadRsp",
AIHelpUnreadReq = "AIHelpUnreadReq",
AIHelpUnreadRsp = "AIHelpUnreadRsp",
ActTriggerGiftNtf = "ActTriggerGiftNtf",
PVPRankHeroesReq = "PVPRankHeroesReq",
PVPRankHeroesRsp = "PVPRankHeroesRsp",
PVPSeasonRewardReq = "PVPSeasonRewardReq",
PVPSeasonRewardRsp = "PVPSeasonRewardRsp",
TaskDailyRefreshReq = "TaskDailyRefreshReq",
TaskDailyRefreshRsp = "TaskDailyRefreshRsp",
PVPRankReq = "PVPRankReq",
PVPRankRsp = "PVPRankRsp",
FundAwardReq = "FundAwardReq",
FundAwardRsp = "FundAwardRsp",
IdleRewardReq = "IdleRewardReq",
@ -366,6 +454,7 @@ local ProtoMsgType = {
ActPayReq = "ActPayReq",
ActPayRsp = "ActPayRsp",
KickOutNtf = "KickOutNtf",
ArenaBountyBoughtNtf = "ArenaBountyBoughtNtf",
SevenDayTaskRewardReq = "SevenDayTaskRewardReq",
SevenDayTaskRewardRsp = "SevenDayTaskRewardRsp",
HeroPutOnReq = "HeroPutOnReq",
@ -386,6 +475,8 @@ local ProtoMsgType = {
BattleSkillRefreshRsp = "BattleSkillRefreshRsp",
AuthReq = "AuthReq",
AuthRsp = "AuthRsp",
ArenaBountyRewardReq = "ArenaBountyRewardReq",
ArenaBountyRewardRsp = "ArenaBountyRewardRsp",
NewMailNtf = "NewMailNtf",
MallDailyResetNtf = "MallDailyResetNtf",
MallDailyResetReq = "MallDailyResetReq",
@ -404,6 +495,8 @@ local ProtoMsgType = {
BountyLevelUnlockRsp = "BountyLevelUnlockRsp",
ChapterGoldChallengeFarmReq = "ChapterGoldChallengeFarmReq",
ChapterGoldChallengeFarmRsp = "ChapterGoldChallengeFarmRsp",
PVPChallengeStartReq = "PVPChallengeStartReq",
PVPChallengeStartRsp = "PVPChallengeStartRsp",
ExistReq = "ExistReq",
ExistRsp = "ExistRsp",
},

View File

@ -18,6 +18,7 @@ function GameSettingUI:onLoadRootComplete()
self.uiMap = self.root:genAllChildren()
self:_display()
self:_addListeners()
self:_bind()
self:addEventListener(EventManager.CUSTOM_EVENT.BIND_ACCOUNT_SUCCESS, function()
self:refreshAccountInfo()
end)
@ -162,6 +163,7 @@ function GameSettingUI:initSupportBtn()
self.uiMap["game_setting_ui.bg.support_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUPPORT_DESC_2))
self.uiMap["game_setting_ui.bg.support_btn"]:addClickListener(function()
ModuleManager.GameSettingManager:showSupport()
DataManager.AIHelperData:clearRp()
end)
end
@ -216,6 +218,17 @@ function GameSettingUI:_addListeners()
end)
end
function GameSettingUI:_bind()
self:bind(DataManager.AIHelperData, "isDirty", function()
local supportBtn = self.uiMap["game_setting_ui.bg.support_btn"]
if DataManager.AIHelperData:getRp() then
supportBtn:addRedPoint(88, 24, 0.8)
else
supportBtn:removeRedPoint()
end
end, true)
end
function GameSettingUI:refreshMusic()
local offIcon = self.uiMap["game_setting_ui.bg.music_bg.off"]
local onIcon = self.uiMap["game_setting_ui.bg.music_bg.on"]

View File

@ -51,8 +51,14 @@ function SelectOtherBtnUI:onLoadRootComplete()
self.uiMap["select_other_btn_ui.bg.mail_btn"]:setVisible(false)
end
cellCount = cellCount + 1
self.uiMap["select_other_btn_ui.bg.setting_btn"]:setAnchoredPositionY(y)
self.uiMap["select_other_btn_ui.bg.setting_btn"]:addClickListener(function()
local settingBtn = self.uiMap["select_other_btn_ui.bg.setting_btn"]
if DataManager.AIHelperData:getRp() then
settingBtn:addRedPoint(124, 35, 0.8, nil, nil, true)
else
settingBtn:removeRedPoint()
end
settingBtn:setAnchoredPositionY(y)
settingBtn:addClickListener(function()
self:closeUI()
ModuleManager.GameSettingManager:showSettingUI()
end)

View File

@ -257,6 +257,10 @@ function MainCityUI:_bind()
end
end
end)
self:bind(DataManager.AIHelperData, "isDirty", function()
self:refreshSettingBtn()
end)
end
function MainCityUI:initBottomUI()
@ -779,6 +783,10 @@ function MainCityUI:updateTime()
self:refreshRightBtns()
self.waitRefreshSideBar = false
end
if DataManager.AIHelperData:getNeedReqTime() then
ModuleManager.GameSettingManager:reqAiHelper()
end
end
function MainCityUI:updateSideBarStatus()
@ -908,7 +916,7 @@ function MainCityUI:refreshBottomRp()
end
function MainCityUI:refreshSettingBtn()
if DataManager.MailData:getIsOpen() and DataManager.MailData:getRedPoint() then
if (DataManager.MailData:getIsOpen() and DataManager.MailData:getRedPoint()) or DataManager.AIHelperData:getRp() then
self.settingbtn:addRedPoint(40, 40, 0.7)
else
self.settingbtn:removeRedPoint()

View File

@ -0,0 +1,52 @@
local AIHelperData = class("AIHelperData", BaseData)
local INIT_DELAY_TIME = 10
local REQ_INTERVAL = 1800
function AIHelperData:ctor()
self.data.isDirty = false
self.aiHelperRpCount = 0
end
function AIHelperData:init(data, isInit)
self.nextReqTime = Time:getServerTime() + REQ_INTERVAL
if isInit then -- 初始化没有数据,自己构建一份,并且延迟发送请求
data = {
count = 0
}
self.nextReqTime = Time:getServerTime() + INIT_DELAY_TIME
end
if not data then
return
end
self.aiHelperRpCount = data.count
self:setIsDirty()
end
function AIHelperData:setIsDirty()
self.data.isDirty = not self.data.isDirty
end
function AIHelperData:getNextReqTime()
return self.nextReqTime
end
function AIHelperData:getNeedReqTime()
if self:getNextReqTime() <= Time:getServerTime() then
self.nextReqTime = Time:getServerTime() + REQ_INTERVAL
return true
end
return false
end
function AIHelperData:getRp()
return self.aiHelperRpCount > 0
end
function AIHelperData:clearRp()
self.aiHelperRpCount = 0
self:setIsDirty()
end
return AIHelperData

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c61b7067b2b095246bcc2b80c0f7f55f
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}