campus-supervision/service/super-service.go

84 lines
2.0 KiB
Go

package service
import (
"errors"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
"myschools.me/tcq/campus-supervision/model"
"myschools.me/tcq/campus-supervision/mysql"
)
func SuperAdd(data []byte) (*uint, error) {
db, _ := mysql.NewInstance()
super := &model.Super{
Content: data,
}
if err := db.Create(&super).Error; err != nil {
logrus.WithFields(logrus.Fields{
"func": "SuperAdd",
}).Warningf("err: %s", err.Error())
return nil, err
}
return &super.ID, nil
}
func SuperList(index, row int) ([]*model.Super, error) {
db, _ := mysql.NewInstance()
var count int64
supers := make([]*model.Super, 0)
if err := db.Model(&model.Super{}).Count(&count).Offset((index - 1) * row).Limit(row).Find(&supers).Error; err != nil {
logrus.WithFields(logrus.Fields{
"func": "SuperList",
}).Warningf("err: %s", err.Error())
return nil, err
}
return supers, nil
}
func SuperDetail(id uint) (*[]byte, error) {
db, _ := mysql.NewInstance()
super := &model.Super{}
if err := db.Where("id=?", id).First(super).Error; err != nil {
if err != gorm.ErrRecordNotFound {
logrus.WithFields(logrus.Fields{
"func": "SuperDetail",
}).Warningf("err: %s", err.Error())
return nil, err
}
}
if super.ID == 0 {
return nil, errors.New("无效id")
}
return &super.Content, nil
}
func SuperDetele(id uint) (bool, error) {
db, _ := mysql.NewInstance()
if err := db.Where("id=?", id).Delete(&model.Super{}).Error; err != nil {
if err != gorm.ErrRecordNotFound {
logrus.WithFields(logrus.Fields{
"func": "SuperDetele",
}).Warningf("err: %s", err.Error())
return false, err
}
}
return true, nil
}
func SuperSave(id uint, data []byte) (bool, error) {
db, _ := mysql.NewInstance()
super := &model.Super{
Content: data,
}
if err := db.Where(&model.Super{ID: id}).Select("content").Updates(&super).Error; err != nil {
logrus.WithFields(logrus.Fields{
"func": "SuperSave",
}).Warningf("err: %s", err.Error())
return false, err
}
return true, nil
}