Implement greet inbox and outbox

- Add user_greet model and startup table sync
- Implement /greet/user and /greet/delete handlers
- Implement noticeFriendGreeting inbox and noticeUserGreetingHistory outbox
- Return peer profile and center unit info for greeting notices
- Update login topInfo friend greet counters from unread inbox messages

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-06-05 01:54:59 +08:00
parent d48293be44
commit 101f7e8a3f
16 changed files with 641 additions and 15 deletions
+13 -3
View File
@@ -30,13 +30,23 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) {
return nil, err
}
friendGreetCnt64, err := ss.UserEng.Table(new(usermodel.UserGreet)).
Where("receiver_id = ?", ss.UserID).
Where("deleted_from_receiver = ?", false).
Where("readed = ?", false).
Count()
if err != nil {
return nil, err
}
friendsRequestCnt := int(friendsRequestCnt64)
friendsApprovalWaitCnt := int(friendsApprovalWaitCnt64)
friendGreetCnt := int(friendGreetCnt64)
res = loginapischema.TopInfoResp{
Result: loginapischema.TopInfoData{
FriendActionCnt: 0,
FriendGreetCnt: 0,
FriendActionCnt: friendGreetCnt,
FriendGreetCnt: friendGreetCnt,
FriendVarietyCnt: 0,
FriendNewCnt: friendsRequestCnt + friendsApprovalWaitCnt,
PresentCnt: 0,
@@ -44,7 +54,7 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) {
ServerDatetime: now.Format("2006-01-02 15:04:05"),
ServerTimestamp: now.Unix(),
NoticeFriendDatetime: now.Format("2006-01-02 15:04:05"),
NoticeMailDatetime: "2000-01-01 12:00:00",
NoticeMailDatetime: now.Format("2006-01-02 15:04:05"),
FriendsApprovalWaitCnt: friendsApprovalWaitCnt,
FriendsRequestCnt: friendsRequestCnt,
IsTodayBirthday: false,