scrm-go

activity_service.go 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package marketing_tool_service
  2. import (
  3. "SCRM/models"
  4. "SCRM/service"
  5. "time"
  6. )
  7. func GetValidActivities(orgID int64, appID int64, keyWord string, page int, count int) ([]*models.Activity, int64, error) {
  8. if count <= 0 {
  9. return []*models.Activity{}, 0, nil
  10. }
  11. if page < 1 {
  12. page = 1
  13. }
  14. var activities []*models.Activity
  15. var totalCount int64
  16. db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status <> 9", orgID, appID)
  17. if len(keyWord) > 0 {
  18. likeParam := "%" + keyWord + "%"
  19. db = db.Where("title LIKE ?", likeParam)
  20. }
  21. err := db.
  22. Count(&totalCount).
  23. Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
  24. Error
  25. if err == nil {
  26. return activities, totalCount, nil
  27. } else {
  28. return nil, 0, err
  29. }
  30. }
  31. func GetActivitiesWithStatus(orgID int64, appID int64, keyWord string, status int, page int, count int) ([]*models.Activity, int64, error) {
  32. if count <= 0 {
  33. return []*models.Activity{}, 0, nil
  34. }
  35. if page < 1 {
  36. page = 1
  37. }
  38. var activities []*models.Activity
  39. var totalCount int64
  40. db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status = ?", orgID, appID, status)
  41. if len(keyWord) > 0 {
  42. likeParam := "%" + keyWord + "%"
  43. db = db.Where("title LIKE ?", likeParam)
  44. }
  45. err := db.
  46. Count(&totalCount).
  47. Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
  48. Error
  49. if err == nil {
  50. return activities, totalCount, nil
  51. } else {
  52. return nil, 0, err
  53. }
  54. }
  55. func GetDidEndedActivities(orgID int64, appID int64, keyWord string, page int, count int) ([]*models.Activity, int64, error) {
  56. if count <= 0 {
  57. return []*models.Activity{}, 0, nil
  58. }
  59. if page < 1 {
  60. page = 1
  61. }
  62. var activities []*models.Activity
  63. var totalCount int64
  64. now := time.Now().Unix()
  65. db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status = 1 AND start_time < ?", orgID, appID, now)
  66. if len(keyWord) > 0 {
  67. likeParam := "%" + keyWord + "%"
  68. db = db.Where("title LIKE ?", likeParam)
  69. }
  70. err := db.
  71. Count(&totalCount).
  72. Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
  73. Error
  74. if err == nil {
  75. return activities, totalCount, nil
  76. } else {
  77. return nil, 0, err
  78. }
  79. }