From 3db826b5783d737329a77dfb5b6da79dae372f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 29 Jan 2024 18:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=BF=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=94=A8=E6=88=B7=E5=90=8D=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E4=BF=A1=E6=81=AF=E7=9A=84API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/admin_dao.go | 15 +++++++++++- internal/rpc/services/service_admin.go | 33 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/internal/db/models/admin_dao.go b/internal/db/models/admin_dao.go index 2af1fe1f..800965fc 100644 --- a/internal/db/models/admin_dao.go +++ b/internal/db/models/admin_dao.go @@ -130,6 +130,19 @@ func (this *AdminDAO) FindAdminIdWithUsername(tx *dbs.Tx, username string) (int6 return int64(one.(*Admin).Id), nil } +// FindAdminWithUsername 根据用户名查询管理员信息 +func (this *AdminDAO) FindAdminWithUsername(tx *dbs.Tx, username string) (*Admin, error) { + one, err := this.Query(tx). + Attr("username", username). + State(AdminStateEnabled). + ResultPk(). + Find() + if err != nil || one == nil { + return nil, err + } + return one.(*Admin), nil +} + // UpdateAdminPassword 更改管理员密码 func (this *AdminDAO) UpdateAdminPassword(tx *dbs.Tx, adminId int64, password string) error { if adminId <= 0 { @@ -212,7 +225,7 @@ func (this *AdminDAO) UpdateAdmin(tx *dbs.Tx, adminId int64, username string, ca return nil } -// CheckAdminUsername 检查用户名是否存在 +// CheckAdminUsername 检查管理员用户名是否存在 func (this *AdminDAO) CheckAdminUsername(tx *dbs.Tx, adminId int64, username string) (bool, error) { query := this.Query(tx). State(AdminStateEnabled). diff --git a/internal/rpc/services/service_admin.go b/internal/rpc/services/service_admin.go index 55458d9f..205b4ff0 100644 --- a/internal/rpc/services/service_admin.go +++ b/internal/rpc/services/service_admin.go @@ -104,6 +104,39 @@ func (this *AdminService) CheckAdminUsername(ctx context.Context, req *pb.CheckA return &pb.CheckAdminUsernameResponse{Exists: exists}, nil } +// FindAdminWithUsername 使用用管理员户名查找管理员信息 +func (this *AdminService) FindAdminWithUsername(ctx context.Context, req *pb.FindAdminWithUsernameRequest) (*pb.FindAdminWithUsernameResponse, error) { + // 校验请求 + _, err := this.ValidateAdmin(ctx) + if err != nil { + return nil, err + } + + var tx = this.NullTx() + + if len(req.Username) == 0 { + return nil, errors.New("require 'username'") + } + admin, err := models.SharedAdminDAO.FindAdminWithUsername(tx, req.Username) + if err != nil { + return nil, err + } + if admin == nil { + return &pb.FindAdminWithUsernameResponse{Admin: nil}, nil + } + + return &pb.FindAdminWithUsernameResponse{ + Admin: &pb.Admin{ + Id: int64(admin.Id), + Fullname: admin.Fullname, + Username: admin.Username, + IsOn: admin.IsOn, + IsSuper: admin.IsSuper, + CanLogin: admin.CanLogin, + }, + }, nil +} + // FindAdminFullname 获取管理员名称 func (this *AdminService) FindAdminFullname(ctx context.Context, req *pb.FindAdminFullnameRequest) (*pb.FindAdminFullnameResponse, error) { // 校验请求