fix: allow clearing user remark in basic info update
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
+1
-1
@@ -51,7 +51,7 @@ type (
|
||||
RefererId *int64 `json:"referer_id"`
|
||||
Enable *bool `json:"enable"`
|
||||
IsAdmin *bool `json:"is_admin"`
|
||||
Remark string `json:"remark"`
|
||||
Remark *string `json:"remark"`
|
||||
}
|
||||
UpdateUserNotifySettingRequest {
|
||||
UserId int64 `json:"user_id" validate:"required"`
|
||||
|
||||
@@ -101,7 +101,11 @@ func (l *UpdateUserBasicInfoLogic) UpdateUserBasicInfo(req *types.UpdateUserBasi
|
||||
}
|
||||
|
||||
if req.Commission != nil && *req.Commission != userInfo.Commission {
|
||||
if isWithdrawalScene(req.Remark) {
|
||||
remark := ""
|
||||
if req.Remark != nil {
|
||||
remark = *req.Remark
|
||||
}
|
||||
if isWithdrawalScene(remark) {
|
||||
logWithdrawalGuard(l.Logger, userInfo.Id)
|
||||
return errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "commission overwrite is blocked in withdrawal scene")
|
||||
}
|
||||
@@ -129,8 +133,8 @@ func (l *UpdateUserBasicInfoLogic) UpdateUserBasicInfo(req *types.UpdateUserBasi
|
||||
if req.IsAdmin != nil {
|
||||
userInfo.IsAdmin = req.IsAdmin
|
||||
}
|
||||
if req.Remark != "" {
|
||||
userInfo.Remark = req.Remark
|
||||
if req.Remark != nil {
|
||||
userInfo.Remark = *req.Remark
|
||||
}
|
||||
if req.OnlyFirstPurchase != nil {
|
||||
userInfo.OnlyFirstPurchase = req.OnlyFirstPurchase
|
||||
|
||||
@@ -3236,7 +3236,7 @@ type UpdateUserBasiceInfoRequest struct {
|
||||
RefererId *int64 `json:"referer_id"`
|
||||
Enable *bool `json:"enable"`
|
||||
IsAdmin *bool `json:"is_admin"`
|
||||
Remark string `json:"remark"`
|
||||
Remark *string `json:"remark"`
|
||||
}
|
||||
|
||||
type UpdateUserNotifyRequest struct {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestUpdateUserBasiceInfoRequestDistinguishesOmittedAndEmptyRemark(t *testing.T) {
|
||||
var omitted UpdateUserBasiceInfoRequest
|
||||
if err := json.Unmarshal([]byte(`{"user_id":1001}`), &omitted); err != nil {
|
||||
t.Fatalf("unmarshal omitted remark: %v", err)
|
||||
}
|
||||
if omitted.Remark != nil {
|
||||
t.Fatalf("omitted remark should stay nil, got %q", *omitted.Remark)
|
||||
}
|
||||
if omitted.RefererId != nil {
|
||||
t.Fatalf("omitted referer_id should stay nil, got %d", *omitted.RefererId)
|
||||
}
|
||||
if omitted.Balance != nil || omitted.GiftAmount != nil || omitted.Commission != nil {
|
||||
t.Fatalf("omitted money fields should stay nil, got balance=%v gift=%v commission=%v", omitted.Balance, omitted.GiftAmount, omitted.Commission)
|
||||
}
|
||||
|
||||
var cleared UpdateUserBasiceInfoRequest
|
||||
if err := json.Unmarshal([]byte(`{"user_id":1001,"remark":""}`), &cleared); err != nil {
|
||||
t.Fatalf("unmarshal empty remark: %v", err)
|
||||
}
|
||||
if cleared.Remark == nil {
|
||||
t.Fatal("explicit empty remark should be present")
|
||||
}
|
||||
if *cleared.Remark != "" {
|
||||
t.Fatalf("explicit empty remark should decode to empty string, got %q", *cleared.Remark)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user