fix: 审核通过后允许切换已认证角色

This commit is contained in:
zetaloop
2026-04-03 19:24:35 +08:00
parent f1baefdf47
commit d1981c23ab
3 changed files with 28 additions and 11 deletions
@@ -8,6 +8,8 @@ import (
"juwan-backend/app/user_verifications/rpc/internal/svc"
"juwan-backend/app/user_verifications/rpc/pb"
userspb "juwan-backend/app/users/rpc/pb"
"slices"
"github.com/zeromicro/go-zero/core/logx"
)
@@ -41,7 +43,7 @@ func (l *UpdateUserVerificationsLogic) UpdateUserVerifications(in *pb.UpdateUser
}
}
_, err := l.svcCtx.UserVeriModelRW.UpdateOneID(in.Id).
uv, err := l.svcCtx.UserVeriModelRW.UpdateOneID(in.Id).
SetNillableRejectReason(in.RejectReason).
SetNillableMaterials(materials).
SetNillableRole(in.Role).
@@ -53,5 +55,26 @@ func (l *UpdateUserVerificationsLogic) UpdateUserVerifications(in *pb.UpdateUser
return nil, errors.New("save user verifications failed")
}
if in.Status != nil && *in.Status == "approved" && uv.Role != "" {
userResp, err := l.svcCtx.UserRpc.GetUsersById(l.ctx, &userspb.GetUsersByIdReq{Id: uv.UserID})
if err != nil {
logx.Errorf("get user by id failed when syncing verified roles, err:%v.", err)
return nil, errors.New("sync verified roles failed")
}
verifiedRoles := append([]string{}, userResp.Users.VerifiedRoles...)
if !slices.Contains(verifiedRoles, uv.Role) {
verifiedRoles = append(verifiedRoles, uv.Role)
_, err = l.svcCtx.UserRpc.UpdateUsers(l.ctx, &userspb.UpdateUsersReq{
Id: uv.UserID,
VerifiedRoles: verifiedRoles,
})
if err != nil {
logx.Errorf("update user verified roles failed, err:%v.", err)
return nil, errors.New("sync verified roles failed")
}
}
}
return &pb.UpdateUserVerificationsResp{}, nil
}