修复: 邀请列表 UNIX_TIMESTAMP 在 DATETIME(N) 上返回小数导致 Scan int64 失败
MySQL DATETIME 带小数秒精度时, UNIX_TIMESTAMP() 返回 "1779966403.631" 形式的 DECIMAL, Go 端 int64 字段无法 Scan, 触发 100 条 Scan error, 前端拿到的 invited_at/created_at 全为 0。 改用 CAST(UNIX_TIMESTAMP(...) AS SIGNED) 在 SQL 层截断转 BIGINT, 与 getInviteRecordsLogic / getInviteSalesLogic 的现有约定一致。
This commit is contained in:
@@ -48,7 +48,7 @@ func (l *GetInviteManageListLogic) GetInviteManageList(req *types.GetInviteManag
|
||||
var rows []inviteRow
|
||||
if err = applyInviteManageFilters(l.svcCtx.DB.WithContext(l.ctx).
|
||||
Table("user invitee").
|
||||
Select("invitee.id as invitee_id, invitee.avatar as invitee_avatar, invitee.enable as invitee_enable, UNIX_TIMESTAMP(invitee.created_at) as invited_at, invitee.referer_id as inviter_id").
|
||||
Select("invitee.id as invitee_id, invitee.avatar as invitee_avatar, invitee.enable as invitee_enable, CAST(UNIX_TIMESTAMP(invitee.created_at) AS SIGNED) as invited_at, invitee.referer_id as inviter_id").
|
||||
Where("invitee.referer_id > 0 AND invitee.deleted_at IS NULL"), req).
|
||||
Order("invitee.created_at DESC").
|
||||
Limit(req.Size).
|
||||
|
||||
Reference in New Issue
Block a user