fix: guard RefererId and monetary fields against zero-value overwrite in updateUserBasicInfo

- Change RefererId, Balance, GiftAmount, Commission from int64 to *int64 in UpdateUserBasiceInfoRequest
- When field is nil (not sent by client), skip update entirely — prevents zero-value from clobbering existing data
- When field is non-nil, dereference and apply as before (including explicit 0 to clear a value)
- Mirrors the existing guard pattern already used for Avatar, ReferCode, Enable, IsAdmin, etc.

Fixes: RefererId unconditional overwrite at line 123 (P02)
Fixes: Balance/GiftAmount/Commission triggering adjustment to 0 when omitted (P03)
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-05-25 19:52:28 -07:00
parent fd522b6c71
commit 6d9263ceef
3 changed files with 43 additions and 41 deletions
+14 -14
View File
@@ -38,20 +38,20 @@ type (
Id int64 `form:"id" validate:"required"`
}
UpdateUserBasiceInfoRequest {
UserId int64 `json:"user_id" validate:"required"`
Password string `json:"password"`
Avatar string `json:"avatar"`
Balance int64 `json:"balance"`
Commission int64 `json:"commission"`
ReferralPercentage uint8 `json:"referral_percentage"`
OnlyFirstPurchase *bool `json:"only_first_purchase"`
GiftAmount int64 `json:"gift_amount"`
Telegram int64 `json:"telegram"`
ReferCode string `json:"refer_code"`
RefererId int64 `json:"referer_id"`
Enable *bool `json:"enable"`
IsAdmin *bool `json:"is_admin"`
Remark string `json:"remark"`
UserId int64 `json:"user_id" validate:"required"`
Password string `json:"password"`
Avatar string `json:"avatar"`
Balance *int64 `json:"balance"`
Commission *int64 `json:"commission"`
ReferralPercentage uint8 `json:"referral_percentage"`
OnlyFirstPurchase *bool `json:"only_first_purchase"`
GiftAmount *int64 `json:"gift_amount"`
Telegram int64 `json:"telegram"`
ReferCode string `json:"refer_code"`
RefererId *int64 `json:"referer_id"`
Enable *bool `json:"enable"`
IsAdmin *bool `json:"is_admin"`
Remark string `json:"remark"`
}
UpdateUserNotifySettingRequest {
UserId int64 `json:"user_id" validate:"required"`