给信息增加过期时间

This commit is contained in:
hahwu 2026-02-25 11:30:18 +08:00
parent f9d33219f5
commit 468e65e8da
5 changed files with 67 additions and 31 deletions

View File

@ -110,6 +110,7 @@ func (c *ChampshipMgr) NotifyAll() (interface{}, error) {
NotifyAllPlayerMsg(&msg.Msg{ NotifyAllPlayerMsg(&msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
HandleType: msg.HANDLE_MOD_PLAYER_MSG, HandleType: msg.HANDLE_MOD_PLAYER_MSG,
End: GoUtil.Now() + onehour,
}) })
return nil, nil return nil, nil
} }
@ -234,11 +235,12 @@ func (c *ChampshipMgr) ai() (interface{}, error) {
} }
ChampshipData.Rank[k] = v ChampshipData.Rank[k] = v
} }
now := GoUtil.Now()
// 在锁外通知玩家,避免在持锁时启动 goroutine 访问可能被并发修改的数据 // 在锁外通知玩家,避免在持锁时启动 goroutine 访问可能被并发修改的数据
for uid := range uids { for uid := range uids {
go NotifyPlayer(uid, &msg.Msg{ go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: now + onehour,
}) })
} }
@ -461,6 +463,7 @@ func (c *ChampshipMgr) group() (interface{}, error) {
for _, uid := range notifyList { for _, uid := range notifyList {
go NotifyPlayer(uid, &msg.Msg{ go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: GoUtil.Now() + onehour,
}) })
} }
return nil, nil return nil, nil
@ -552,6 +555,7 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) {
for _, uid := range notifyList { for _, uid := range notifyList {
go NotifyPlayer(uid, &msg.Msg{ go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: GoUtil.Now() + onehour,
}) })
} }
return nil, nil return nil, nil

View File

@ -13,6 +13,12 @@ const (
CHESS_MODULE = "chess" CHESS_MODULE = "chess"
) )
const (
onehour = 3600
oneday = 24 * onehour
sevendays = 7 * oneday
)
// 解析参数 // 解析参数
func ParseArgs(args []interface{}) (gate.Agent, *Player, []byte) { func ParseArgs(args []interface{}) (gate.Agent, *Player, []byte) {
a := args[0].(gate.Agent) a := args[0].(gate.Agent)

View File

@ -514,7 +514,7 @@ func (p *Player) handle(m *msg.Msg) error {
case msg.HANDLE_TYPE_FRIEND_GREETING_REPLY: case msg.HANDLE_TYPE_FRIEND_GREETING_REPLY:
FriendMod := p.PlayMod.getFriendMod() FriendMod := p.PlayMod.getFriendMod()
if v, ok := m.Extra.(friend.ReplyInfo); ok { if v, ok := m.Extra.(friend.ReplyInfo); ok {
FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param, GoUtil.Now()+24*3600, nil) FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param, GoUtil.Now()+oneday, nil)
p.FriendLogBackData() p.FriendLogBackData()
} }
case msg.HANDLE_TYPE_FRIEND_SPONSOER: case msg.HANDLE_TYPE_FRIEND_SPONSOER:
@ -716,6 +716,8 @@ func NotifyChampshipResult(Uid, Rank int) {
if PlayerSimpleData == nil { if PlayerSimpleData == nil {
return return
} }
now := GoUtil.Now()
serveropenday := GoUtil.GetServerOpenDay()
for _, v := range PlayerSimpleData.Friend { for _, v := range PlayerSimpleData.Friend {
if CheckPlayerLose(v) { if CheckPlayerLose(v) {
continue continue
@ -724,8 +726,9 @@ func NotifyChampshipResult(Uid, Rank int) {
Type: msg.HANDLE_TYPE_CHAMPSHIP_RESULT, Type: msg.HANDLE_TYPE_CHAMPSHIP_RESULT,
From: Uid, From: Uid,
To: v, To: v,
SendT: GoUtil.Now(), SendT: now,
Extra: []int{Rank, GoUtil.GetServerOpenDay()}, End: now + sevendays,
Extra: []int{Rank, serveropenday},
}) })
} }
} }

View File

@ -1253,7 +1253,7 @@ func CheckPlayerLose(Uid int) bool {
return true return true
} }
now := GoUtil.Now() now := GoUtil.Now()
if now-FriendSimpleData.Loginout > 7*24*3600 { if now-FriendSimpleData.Loginout > sevendays {
return true return true
} }
return false return false

View File

@ -246,10 +246,12 @@ func RegHandbookAllReward(player *Player, buf []byte) error {
player.PushClientRes(&msg.ResHandbookAllReward{ player.PushClientRes(&msg.ResHandbookAllReward{
Code: msg.RES_CODE_SUCCESS, Code: msg.RES_CODE_SUCCESS,
}) })
now := GoUtil.Now()
NotifyAllFriend(player, &MsqMod.Msg{ NotifyAllFriend(player, &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_HANDBOOK_COLLECTION, Type: MsqMod.HANDLE_TYPE_HANDBOOK_COLLECTION,
From: int(player.M_DwUin), From: int(player.M_DwUin),
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Extra: MsqMod.HandbookMsg{ Extra: MsqMod.HandbookMsg{
Type: req.Type, Type: req.Type,
}, },
@ -1880,6 +1882,7 @@ func ReqApplyFriend(player *Player, buf []byte) error {
}) })
return fmt.Errorf("already applied") return fmt.Errorf("already applied")
} }
now := GoUtil.Now()
if req.Type == 1 { if req.Type == 1 {
Items, err := FriendMod.GetSponsorReward() Items, err := FriendMod.GetSponsorReward()
if err != nil { if err != nil {
@ -1899,12 +1902,13 @@ func ReqApplyFriend(player *Player, buf []byte) error {
}) })
return err return err
} }
player.AddLog(int(req.Uid), friend.LOG_TYPE_FRIEND_SPONSOR, "", GoUtil.Now()) player.AddLog(int(req.Uid), friend.LOG_TYPE_FRIEND_SPONSOR, "", now)
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_FRIEND_SPONSOER, Type: MsqMod.HANDLE_TYPE_FRIEND_SPONSOER,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Uid, To: Uid,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
player.PushClientRes(BaseMod.BackData()) player.PushClientRes(BaseMod.BackData())
player.TeLog("friend_invite_reward", map[string]interface{}{ player.TeLog("friend_invite_reward", map[string]interface{}{
@ -1915,7 +1919,8 @@ func ReqApplyFriend(player *Player, buf []byte) error {
Type: MsqMod.HANDLE_TYPE_APPLY, Type: MsqMod.HANDLE_TYPE_APPLY,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Uid, To: Uid,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
} }
FriendMgrSend(m) FriendMgrSend(m)
player.PushClientRes(&msg.ResApplyFriend{ player.PushClientRes(&msg.ResApplyFriend{
@ -2022,11 +2027,13 @@ func ReqRefuseFriend(player *Player, buf []byte) error {
Code: msg.RES_CODE_SUCCESS, Code: msg.RES_CODE_SUCCESS,
Uid: req.Uid, Uid: req.Uid,
}) })
now := GoUtil.Now()
m := &MsqMod.Msg{ m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_REFUSE, Type: MsqMod.HANDLE_TYPE_REFUSE,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Uid, To: Uid,
SendT: GoUtil.Now(), SendT: now,
End: now + 86400*7,
} }
FriendMgrSend(m) FriendMgrSend(m)
player.FriendApplyBackData() player.FriendApplyBackData()
@ -2069,13 +2076,6 @@ func ReqCardGive(player *Player, buf []byte) error {
}) })
return fmt.Errorf("card id empty") return fmt.Errorf("card id empty")
} }
// err = player.SubCard(CardId)
// if err != nil {
// player.SendErrClienRes(&msg.ResCardGive{
// Code: msg.RES_CODE_FAIL,
// Msg: err.Error(),
// })
// }
Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId)) Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId))
for _, v := range req.Uid { for _, v := range req.Uid {
Uid := int(v) Uid := int(v)
@ -2203,11 +2203,13 @@ func ReqRefuseCardGive(player *Player, buf []byte) error {
player.TeLog("ReqRefuseCardGive", map[string]interface{}{ player.TeLog("ReqRefuseCardGive", map[string]interface{}{
"card_id": CardInfo.CardId, "card_id": CardInfo.CardId,
}) })
now := GoUtil.Now()
m := &MsqMod.Msg{ m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_REG_CARD_REFUSE, Type: MsqMod.HANDLE_TYPE_REG_CARD_REFUSE,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: CardInfo.AUid, To: CardInfo.AUid,
SendT: GoUtil.Now(), SendT: now,
End: now + 86400,
Extra: *CardInfo, Extra: *CardInfo,
} }
FriendMgrSend(m) FriendMgrSend(m)
@ -3109,12 +3111,14 @@ func ReqFriendTLUpvote(player *Player, buf []byte) error {
}) })
return err return err
} }
now := GoUtil.Now()
// 添加时间线 // 添加时间线
m := &MsqMod.Msg{ m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_HANDBOOK_UPVOTE, Type: MsqMod.HANDLE_TYPE_HANDBOOK_UPVOTE,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(FUid), To: int(FUid),
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
} }
FriendMod.AddActLog(friend.ACT_LOG_TYPE_VISIT_UPVOTE, "") FriendMod.AddActLog(friend.ACT_LOG_TYPE_VISIT_UPVOTE, "")
player.UpdateUserInfo() player.UpdateUserInfo()
@ -3304,11 +3308,13 @@ func ReqSelfInvited(player *Player, buf []byte) error {
if err != nil { if err != nil {
return err return err
} }
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND, Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND,
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(req.InviterId), To: int(req.InviterId),
SendT: GoUtil.Now(), SendT: now,
End: now + 86400,
}) })
player.PushClientRes(&msg.ResSelfInvited{ player.PushClientRes(&msg.ResSelfInvited{
ResultCode: 1, ResultCode: 1,
@ -3887,11 +3893,13 @@ func ReqPlayroomGame(player *Player, buf []byte) error {
}) })
return err return err
} }
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Target, To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Extra: GameResult{ Extra: GameResult{
T: PlayroomMod.GetGameId(), T: PlayroomMod.GetGameId(),
Emoji: int(req.EmojiId), Emoji: int(req.EmojiId),
@ -3947,11 +3955,13 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error {
}) })
return fmt.Errorf("no game or target") return fmt.Errorf("no game or target")
} }
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Target, To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Item: Items, Item: Items,
Extra: GameResult{ Extra: GameResult{
T: PlayroomMod.GetGameId(), T: PlayroomMod.GetGameId(),
@ -4180,11 +4190,13 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "") FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "")
player.UpdateUserInfo() player.UpdateUserInfo()
} }
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Target, To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Item: Items, Item: Items,
Extra: GameResult{ Extra: GameResult{
T: playroom.GAME_TYPE_FILP, T: playroom.GAME_TYPE_FILP,
@ -4270,17 +4282,20 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error {
Msg: err.Error(), Msg: err.Error(),
}) })
} }
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(req.Id), To: int(req.Id),
Type: MsqMod.HANDLE_TYPE_PLAYROOM_UPVOTE, Type: MsqMod.HANDLE_TYPE_PLAYROOM_UPVOTE,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(req.Id), To: int(req.Id),
Type: MsqMod.HANDLE_TYPE_PLAYROOM_KISS, Type: MsqMod.HANDLE_TYPE_PLAYROOM_KISS,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PLAYROOM_UPVOTE}) player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PLAYROOM_UPVOTE})
player.AddPlayroomUpvote(int(req.Id)) player.AddPlayroomUpvote(int(req.Id))
@ -4597,13 +4612,15 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error {
) )
return err return err
} }
now := GoUtil.Now()
if Uid != 0 && Items != nil { if Uid != 0 && Items != nil {
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(Uid), To: int(Uid),
Type: MsqMod.HANDLE_TYPE_TREASURE_RESULT, Type: MsqMod.HANDLE_TYPE_TREASURE_RESULT,
Extra: Items[0].Num, Extra: Items[0].Num,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
} }
@ -4641,6 +4658,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
) )
return err return err
} }
now := GoUtil.Now()
for _, v := range FriendTreasureMod.List { for _, v := range FriendTreasureMod.List {
ItemNum := 0 ItemNum := 0
if v.Status == 1 { if v.Status == 1 {
@ -4650,7 +4668,8 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(v.Uid), To: int(v.Uid),
Type: MsqMod.FRIEND_TREASURE_HANDLE, Type: MsqMod.FRIEND_TREASURE_HANDLE,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)}, Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)},
}) })
} }
@ -5772,6 +5791,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
return fmt.Errorf("reply info not exist") return fmt.Errorf("reply info not exist")
} }
ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_NONE ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_NONE
now := GoUtil.Now()
if req.Type == 1 && ReplyInfo.Uid > 10000 { if req.Type == 1 && ReplyInfo.Uid > 10000 {
switch ReplyInfo.Type { switch ReplyInfo.Type {
case friend.REPLY_TYPE_GREETING: case friend.REPLY_TYPE_GREETING:
@ -5784,7 +5804,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: int(ReplyInfo.Uid), To: int(ReplyInfo.Uid),
Type: MsqMod.HANDLE_TYPE_FRIEND_GREETING_REPLY, Type: MsqMod.HANDLE_TYPE_FRIEND_GREETING_REPLY,
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
Extra: ReplyData, Extra: ReplyData,
}) })
case friend.REPLY_TYPE_CATNIP: // 猫草大作战同意邀请 case friend.REPLY_TYPE_CATNIP: // 猫草大作战同意邀请
@ -5796,7 +5817,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
err := player.SetCatnipPartner(GameId, ReplyInfo.Uid, activityInfo.EndT) err := player.SetCatnipPartner(GameId, ReplyInfo.Uid, activityInfo.EndT)
if err == nil { if err == nil {
CatnipMod := player.PlayMod.getCatnipMod() CatnipMod := player.PlayMod.getCatnipMod()
ActivityId := player.GetActivityId(activity.ACT_TYPE_MINING) ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP)
UserList, _ := CatnipMod.Agree(GameId, ReplyInfo.Uid) UserList, _ := CatnipMod.Agree(GameId, ReplyInfo.Uid)
player.TeLog("catnip_agree", map[string]interface{}{ player.TeLog("catnip_agree", map[string]interface{}{
"Id": int(GameId), "Id": int(GameId),
@ -5809,7 +5830,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
ActivityId: ActivityId, ActivityId: ActivityId,
GameId: int(GameId), GameId: int(GameId),
}, },
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
for _, v := range UserList { for _, v := range UserList {
@ -5821,7 +5843,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
ActivityId: ActivityId, ActivityId: ActivityId,
GameId: int(GameId), GameId: int(GameId),
}, },
SendT: GoUtil.Now(), SendT: now,
End: now + sevendays,
}) })
} }
player.CatnipBackData() player.CatnipBackData()