del_email.go 714 B

1234567891011121314151617181920212223242526272829303132333435
  1. package del_email
  2. import (
  3. "pmail/db"
  4. "pmail/models"
  5. "pmail/services/auth"
  6. "pmail/utils/context"
  7. "pmail/utils/errors"
  8. "xorm.io/builder"
  9. )
  10. func DelEmail(ctx *context.Context, ids []int) error {
  11. var emails []*models.Email
  12. err := db.Instance.Table("email").Where(builder.In("id", ids)).Find(&emails)
  13. if err != nil {
  14. return errors.Wrap(err)
  15. }
  16. for _, email := range emails {
  17. // 检查是否有权限
  18. hasAuth := auth.HasAuth(ctx, email)
  19. if !hasAuth {
  20. return errors.New("No Auth!")
  21. }
  22. email.Status = 3
  23. }
  24. _, err = db.Instance.Table("email").Where(builder.In("id", ids)).Cols("status").Update(map[string]interface{}{"status": 3})
  25. if err != nil {
  26. return errors.Wrap(err)
  27. }
  28. return nil
  29. }