dbpinglogic.go 923 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package logic
  4. import (
  5. "context"
  6. "udeServer/internal/svc"
  7. "udeServer/internal/types"
  8. "github.com/zeromicro/go-zero/core/logx"
  9. )
  10. type DbPingLogic struct {
  11. logx.Logger
  12. ctx context.Context
  13. svcCtx *svc.ServiceContext
  14. }
  15. func NewDbPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DbPingLogic {
  16. return &DbPingLogic{
  17. Logger: logx.WithContext(ctx),
  18. ctx: ctx,
  19. svcCtx: svcCtx,
  20. }
  21. }
  22. func (l *DbPingLogic) DbPing() (resp *types.DbPingResponse, err error) {
  23. var info struct {
  24. Version string `db:"version"`
  25. Database string `db:"db_name"`
  26. }
  27. err = l.svcCtx.DB.QueryRowCtx(l.ctx, &info,
  28. "SELECT VERSION() AS version, DATABASE() AS db_name")
  29. if err != nil {
  30. l.Errorf("ping mysql failed: %v", err)
  31. return nil, err
  32. }
  33. return &types.DbPingResponse{
  34. Ok: true,
  35. Version: info.Version,
  36. Database: info.Database,
  37. }, nil
  38. }