Smail/server/models/rule.go
jinnrry cc4aa851bc v2.4.4 (#6)
pop3收件箱出现已删除邮件bug
从sqlx切换到xorm
第三方客户端发信出现在草稿箱bug
2024-04-13 09:26:34 +08:00

40 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package models
import (
"pmail/db"
"pmail/utils/context"
"pmail/utils/errors"
)
type Rule struct {
Id int `xorm:"id int unsigned not null pk autoincr" json:"id"`
UserId int `xorm:"user_id notnull default(0) comment('用户id')" json:"user_id"`
Name string `xorm:"name notnull default('') comment('规则名称')" json:"name"`
Value string `xorm:"value text comment('规则内容')" json:"value"`
Action int `xorm:"action notnull default(0) comment('执行动作,1已读,2转发,3删除')" json:"action"`
Params string `xorm:"params notnull default('') comment('执行参数')" json:"params"`
Sort int `xorm:"sort notnull default(0) comment('排序,越大约优先')" json:"sort"`
}
func (p *Rule) TableName() string {
return "rule"
}
func (p *Rule) Save(ctx *context.Context) error {
if p.Id > 0 {
_, err := db.Instance.Exec(db.WithContext(ctx, "update rule set name=? ,value = ? ,action = ?,params = ?,sort = ? where id = ?"), p.Name, p.Value, p.Action, p.Params, p.Sort, p.Id)
if err != nil {
return errors.Wrap(err)
}
return nil
} else {
_, err := db.Instance.Exec(db.WithContext(ctx, "insert into rule (name,value,user_id,action,params,sort) values (?,?,?,?,?,?)"), p.Name, p.Value, ctx.UserID, p.Action, p.Params, p.Sort)
if err != nil {
return errors.Wrap(err)
}
return nil
}
}