add logics

This commit is contained in:
Rogee
2024-11-29 19:23:35 +08:00
parent dd0b6dd6c1
commit 3d7ee40a7a
12 changed files with 166 additions and 49 deletions

View File

@@ -6,7 +6,9 @@ import (
"backend/database/models/qvyun/public/model"
"backend/database/models/qvyun/public/table"
"backend/pkg/pg"
. "github.com/go-jet/jet/v2/postgres"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -22,15 +24,43 @@ func (svc *Service) Prepare() error {
return nil
}
// List
func (svc *Service) List(ctx context.Context) ([]model.Users, error) {
// GetByOpenID
func (svc *Service) GetByOpenID(ctx context.Context, openid string) (*model.Users, error) {
tbl := table.Users
stmt := tbl.SELECT(tbl.AllColumns)
svc.log.WithField("method", "List").Debug(stmt.DebugSql())
stmt := tbl.
SELECT(tbl.AllColumns).
WHERE(
tbl.OpenID.EQ(String(openid)),
)
svc.log.WithField("method", "GetByOpenID").Debug(stmt.DebugSql())
var items []model.Users
if err := stmt.QueryContext(ctx, svc.db, &items); err != nil {
return nil, errors.Wrap(err, "failed to query users")
var item model.Users
if err := stmt.QueryContext(ctx, svc.db, &item); err != nil {
return nil, errors.Wrap(err, "failed to query user by openid")
}
return items, nil
return &item, nil
}
// GetOrNew
func (svc *Service) GetOrNew(ctx context.Context, openid string, authInfo pg.UserOAuth) (*model.Users, error) {
user, err := svc.GetByOpenID(ctx, openid)
if err == nil {
return user, nil
}
if err != nil {
if errors.Is(err, sql.ErrNoRows) {
// user = &model.Users{
// OpenID: openid,
// OAuth:,authInfo
// }
// if err := user.Insert(ctx, svc.db, table.Users); err != nil {
// return nil, errors.Wrap(err, "failed to insert user")
// }
}
return nil, errors.Wrap(err, "failed to get user by openid")
}
return nil, errors.New("unknown error")
}