fix: 审核通过后允许切换已认证角色
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user