36 lines
714 B
Go
36 lines
714 B
Go
package del_email
|
|
|
|
import (
|
|
"pmail/db"
|
|
"pmail/models"
|
|
"pmail/services/auth"
|
|
"pmail/utils/context"
|
|
"pmail/utils/errors"
|
|
"xorm.io/builder"
|
|
)
|
|
|
|
func DelEmail(ctx *context.Context, ids []int) error {
|
|
var emails []*models.Email
|
|
|
|
err := db.Instance.Table("email").Where(builder.In("id", ids)).Find(&emails)
|
|
if err != nil {
|
|
return errors.Wrap(err)
|
|
}
|
|
for _, email := range emails {
|
|
// 检查是否有权限
|
|
hasAuth := auth.HasAuth(ctx, email)
|
|
if !hasAuth {
|
|
return errors.New("No Auth!")
|
|
}
|
|
email.Status = 3
|
|
}
|
|
|
|
_, err = db.Instance.Table("email").Where(builder.In("id", ids)).Cols("status").Update(map[string]interface{}{"status": 3})
|
|
|
|
if err != nil {
|
|
return errors.Wrap(err)
|
|
}
|
|
|
|
return nil
|
|
}
|