fix: pkg model and dao
This commit is contained in:
parent
aa618d5919
commit
3f89b36d8c
|
|
@ -2,6 +2,7 @@ package dao
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"twin-api/app/common/model"
|
||||
"twin-api/base/global"
|
||||
|
||||
|
|
@ -62,6 +63,44 @@ func (p *Pkg) GetByPkgName(name string) (*model.Pkg, error) {
|
|||
return &res, nil
|
||||
}
|
||||
|
||||
func (p *Pkg) GetOne(name, version string) (*model.Pkg, error) {
|
||||
var res model.Pkg
|
||||
tx := p.db.Table(p.TableName())
|
||||
if name != "" {
|
||||
tx = tx.Where("name = ? AND version = ?", name, version)
|
||||
}
|
||||
|
||||
tx.Order("id desc")
|
||||
if err := tx.First(&res).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return &res, nil
|
||||
}
|
||||
|
||||
func (p *Pkg) GetUserPkg(userId int64, pkg, version string) (*model.Pkg, error) {
|
||||
var res model.Pkg
|
||||
tx := p.db.Table(p.TableName() + " p ")
|
||||
tx = tx.Joins(fmt.Sprintf(" JOIN %s u ON u.package_id = p.id", NewUserPkg().TableName()))
|
||||
tx = tx.Where("u.user_id = ?", userId)
|
||||
tx = tx.Where("p.name = ? ", pkg)
|
||||
tx = tx.Where("p.version = ?", version)
|
||||
if err := tx.Select("u.*,p.*").Find(&res).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return nil, err
|
||||
}
|
||||
if res.Id == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return &res, nil
|
||||
}
|
||||
|
||||
func (p *Pkg) Query(pkgName, version string, status, page, size int, sort string) ([]*model.Pkg, int64, error) {
|
||||
var res []*model.Pkg
|
||||
var count int64
|
||||
|
|
@ -78,6 +117,11 @@ func (p *Pkg) Query(pkgName, version string, status, page, size int, sort string
|
|||
if err := tx.Count(&count).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
if sort != "" {
|
||||
tx = tx.Order(sort)
|
||||
} else {
|
||||
tx = tx.Order("id desc")
|
||||
}
|
||||
|
||||
if err := tx.Limit(size).Offset((page - 1) * size).Find(&res).Error; err != nil {
|
||||
return nil, 0, err
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
package model
|
||||
|
||||
type Pkg struct {
|
||||
Id int64
|
||||
ExpireTime int64
|
||||
CreateTime int64
|
||||
UpdateTime int64
|
||||
Status int64
|
||||
Name string
|
||||
Version string
|
||||
Link string
|
||||
Id int64 `json:"id"`
|
||||
ExpireTime int64 `json:"expire_time"`
|
||||
CreateTime int64 `json:"create_time"`
|
||||
UpdateTime int64 `json:"update_time"`
|
||||
Status int64 `json:"status"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Link string `json:"link"`
|
||||
}
|
||||
|
||||
const (
|
||||
|
|
|
|||
Loading…
Reference in New Issue