1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package service
- import (
- "context"
- "errors"
- "icloudapp.cn/tools/repository/mysql"
- sEntity "icloudapp.cn/tools/service/entity"
- "icloudapp.cn/tools/service/model"
- )
- type Fonts struct {
- ctx context.Context
- Base
- query *model.MFont
- }
- func NewFonts(ctx context.Context) *Fonts {
- model.SetDefault(mysql.DBConn)
- fonts := &Fonts{ctx: ctx}
- fonts.query = model.Font
- return fonts
- }
- func (f *Fonts) Info(ID int64) (*sEntity.Font, error) {
- return f.query.WithContext(f.ctx).Where(f.query.ID.Eq(ID)).First()
- }
- func (f *Fonts) Infos(IDS ...int64) ([]*sEntity.Font, error) {
- return f.query.WithContext(f.ctx).Where(f.query.ID.In(IDS...)).Find()
- }
- func (f *Fonts) InfoByHash(hash string) (*sEntity.Font, error) {
- return f.query.WithContext(f.ctx).Where(f.query.Hash.Eq(hash)).First()
- }
- func (f *Fonts) Add(fonts *sEntity.Font) (*sEntity.Font, error) {
- exist, err := f.InfoByHash(fonts.Hash)
- if err != nil {
- return nil, err
- }
- if exist.ID > 0 {
- if exist.Status == -1 {
- affected, err := f.query.WithContext(f.ctx).Where(f.query.ID.Eq(exist.ID)).Update(f.query.Status, -1)
- if err != nil {
- return nil, err
- }
- if affected.RowsAffected == 0 {
- return nil, errors.New("更新数据失败")
- }
- }
- return exist, nil
- }
- err = f.query.WithContext(f.ctx).Create(fonts)
- if err != nil {
- return nil, err
- }
- return fonts, nil
- }
|