Полная зачистка legacy + закрытие fix24.1/fix24.2 + обновление логотипа
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/sirupsen/logrus"
|
||||
"gorm.io/gorm"
|
||||
"hy2xs-admin/model/constant"
|
||||
"hy2xs-admin/model/dto"
|
||||
"hy2xs-admin/model/entity"
|
||||
"time"
|
||||
)
|
||||
|
||||
func SavePeer(peer entity.Peer) (int64, error) {
|
||||
if tx := sqliteDB.Save(&peer); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return 0, errors.New(constant.SysError)
|
||||
}
|
||||
return *peer.Id, nil
|
||||
}
|
||||
|
||||
func DeletePeer(ids []int64) error {
|
||||
if tx := sqliteDB.Where("id in ?", ids).Delete(&entity.Peer{}); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func UpdatePeer(ids []int64, updates map[string]interface{}) error {
|
||||
if len(updates) == 0 {
|
||||
return nil
|
||||
}
|
||||
updates["update_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||
if tx := sqliteDB.Model(&entity.Peer{}).Where("id in ?", ids).Updates(updates); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetPeer(query interface{}, args ...interface{}) (entity.Peer, error) {
|
||||
var peer entity.Peer
|
||||
if tx := sqliteDB.Model(&entity.Peer{}).Where(query, args...).First(&peer); tx.Error != nil {
|
||||
if tx.Error == gorm.ErrRecordNotFound {
|
||||
return peer, errors.New(constant.WrongPassword)
|
||||
}
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return peer, errors.New(constant.SysError)
|
||||
}
|
||||
return peer, nil
|
||||
}
|
||||
|
||||
func ListPeer(query interface{}, args ...interface{}) ([]entity.Peer, error) {
|
||||
var peers []entity.Peer
|
||||
if tx := sqliteDB.Model(&entity.Peer{}).Where(query, args...).Order("create_time desc").Find(&peers); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return peers, errors.New(constant.SysError)
|
||||
}
|
||||
return peers, nil
|
||||
}
|
||||
|
||||
func PagePeer(peerPageDto dto.PeerPageDto) ([]entity.Peer, int64, error) {
|
||||
var peers []entity.Peer
|
||||
var total int64
|
||||
tx := sqliteDB.Model(&entity.Peer{})
|
||||
if peerPageDto.Username != nil && *peerPageDto.Username != "" {
|
||||
tx.Where("name like ?", fmt.Sprintf("%%%s%%", *peerPageDto.Username))
|
||||
}
|
||||
if peerPageDto.Deleted != nil {
|
||||
tx.Where("disabled = ?", *peerPageDto.Deleted)
|
||||
}
|
||||
if peerPageDto.Remark != nil && *peerPageDto.Remark != "" {
|
||||
tx.Where("remark like ?", fmt.Sprintf("%%%s%%", *peerPageDto.Remark))
|
||||
}
|
||||
tx.Count(&total)
|
||||
if tx.Scopes(Paginate(peerPageDto.PageNum, peerPageDto.PageSize)).Order("create_time desc").Find(&peers); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return peers, 0, errors.New(constant.SysError)
|
||||
}
|
||||
return peers, total, nil
|
||||
}
|
||||
|
||||
func UpdatePeerTraffic(name string, download int64, upload int64) error {
|
||||
if upload == 0 && download == 0 {
|
||||
return nil
|
||||
}
|
||||
updates := map[string]interface{}{}
|
||||
if download != 0 {
|
||||
updates["download_bytes"] = gorm.Expr("download_bytes + ?", download)
|
||||
}
|
||||
if upload != 0 {
|
||||
updates["upload_bytes"] = gorm.Expr("upload_bytes + ?", upload)
|
||||
}
|
||||
updates["update_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||
if tx := sqliteDB.Model(&entity.Peer{}).Where("name = ?", name).Updates(updates); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user