fix: pkg model and dao
This commit is contained in:
parent
aa618d5919
commit
3f89b36d8c
|
|
@ -2,6 +2,7 @@ package dao
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"twin-api/app/common/model"
|
"twin-api/app/common/model"
|
||||||
"twin-api/base/global"
|
"twin-api/base/global"
|
||||||
|
|
||||||
|
|
@ -62,6 +63,44 @@ func (p *Pkg) GetByPkgName(name string) (*model.Pkg, error) {
|
||||||
return &res, nil
|
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) {
|
func (p *Pkg) Query(pkgName, version string, status, page, size int, sort string) ([]*model.Pkg, int64, error) {
|
||||||
var res []*model.Pkg
|
var res []*model.Pkg
|
||||||
var count int64
|
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 {
|
if err := tx.Count(&count).Error; err != nil {
|
||||||
return nil, 0, err
|
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 {
|
if err := tx.Limit(size).Offset((page - 1) * size).Find(&res).Error; err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
type Pkg struct {
|
type Pkg struct {
|
||||||
Id int64
|
Id int64 `json:"id"`
|
||||||
ExpireTime int64
|
ExpireTime int64 `json:"expire_time"`
|
||||||
CreateTime int64
|
CreateTime int64 `json:"create_time"`
|
||||||
UpdateTime int64
|
UpdateTime int64 `json:"update_time"`
|
||||||
Status int64
|
Status int64 `json:"status"`
|
||||||
Name string
|
Name string `json:"name"`
|
||||||
Version string
|
Version string `json:"version"`
|
||||||
Link string
|
Link string `json:"link"`
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue