init: hgmj server initial commit

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 16:50:13 +08:00
co-authored by Claude Opus 4.7
commit 625e89c15d
1870 changed files with 254090 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
package reportser
import (
"strings"
"time"
"91jd-server/common/dataReport"
"91jd-server/common/db"
"91jd-server/middleware/ua"
"91jd-server/models/v/usermod"
)
const (
LoginTypeDeviceID = "deviceid"
LoginTypePhone = "phone"
LoginTypeEmail = "email"
LoginTypeAccount = "username"
)
func ReportUserLogin(t *db.MongoTool, user *usermod.User, ua ua.UA, ip string, loginType string) error {
if user == nil {
return nil
}
if loginType == "" {
loginType = LoginTypeDeviceID
}
createTime := time.Now().Unix()
eventID := newEventId(dataReport.ReportAppId(), user.UID, "", createTime)
event := dataReport.NewCommonField(eventID, dataReport.EventTypeUserLogin, user.UID, user.DistrictCode, ua, ip)
event.Payload = jsonRawMessage(&dataReport.UserLoginEvent{
Type: loginType,
})
return persistEvent(t, event)
}
func LoginTypeEventValue(loginType int) string {
switch loginType {
case usermod.MobileLogin:
return LoginTypePhone
case usermod.DevIDLogin, usermod.TokenLogin, usermod.QrCodeLogin:
return LoginTypeDeviceID
default:
return LoginTypeDeviceID
}
}
func LoginTypeFromH5(p usermod.LoginWithH5) string {
switch {
case strings.TrimSpace(p.Mobile) != "":
return LoginTypePhone
case strings.TrimSpace(p.Email) != "":
return LoginTypeEmail
case strings.TrimSpace(p.Account) != "":
return LoginTypeAccount
default:
return LoginTypeDeviceID
}
}