activity_remind.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package activity
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "hongze/hongze_yb/models/tables/yb_activity"
  6. "hongze/hongze_yb/models/tables/yb_activity_remind"
  7. "hongze/hongze_yb/services/user"
  8. "log"
  9. "time"
  10. )
  11. // CreateRemind 新增提醒
  12. func CreateRemind(activityId int, userInfo *user.UserInfo) (err error) {
  13. userId := int(userInfo.UserID)
  14. ok, msg := checkRemindOk(userId, activityId)
  15. if !ok {
  16. err = errors.New(msg)
  17. return
  18. }
  19. remindInfo := &yb_activity_remind.YbActivityRemind{
  20. ActivityID: uint32(activityId),
  21. UserID: uint64(userId),
  22. CompanyID: uint64(userInfo.CompanyID),
  23. RealName: userInfo.RealName,
  24. Mobile: userInfo.Mobile,
  25. CreateTime: time.Now(),
  26. }
  27. err = remindInfo.Create()
  28. if err != nil {
  29. log.Print(err)
  30. err = errors.New("设置提醒失败")
  31. }
  32. return
  33. }
  34. // checkRemindOk 验证是否可以新增提醒
  35. func checkRemindOk(userId, activityId int) (ok bool, msg string) {
  36. activity, err := yb_activity.GetOneById(activityId)
  37. if err == gorm.ErrRecordNotFound {
  38. msg = "活动信息有误"
  39. return
  40. }
  41. _, err = yb_activity_remind.RemindExist(userId, activityId)
  42. if err != gorm.ErrRecordNotFound {
  43. msg = "请勿重复设置提醒"
  44. return
  45. }
  46. // 活动时间
  47. nowUtime := time.Now().Unix()
  48. endUtime := activity.EndTime.Unix()
  49. if nowUtime > endUtime {
  50. msg = "活动已结束"
  51. return
  52. }
  53. nowUtime += 60 * 15
  54. startUtime := activity.StartTime.Unix()
  55. if nowUtime > startUtime {
  56. msg = "活动开始前十五分钟内无法设置会议提醒"
  57. return
  58. }
  59. ok = true
  60. return
  61. }
  62. // CancelRemind 取消提醒
  63. func CancelRemind(activityId int, userInfo *user.UserInfo) (err error) {
  64. userId := int(userInfo.UserID)
  65. _, err = yb_activity.GetOneById(activityId)
  66. if err == gorm.ErrRecordNotFound {
  67. err = errors.New("活动信息有误")
  68. return
  69. }
  70. remindInfo, err := yb_activity_remind.RemindExist(userId, activityId)
  71. if err == gorm.ErrRecordNotFound {
  72. err = errors.New("提醒信息有误")
  73. return
  74. }
  75. err = yb_activity_remind.Delete(remindInfo)
  76. if err != nil {
  77. log.Print(err.Error())
  78. err = errors.New("取消提醒失败")
  79. }
  80. return
  81. }