12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package marketing_tool_service
-
- import (
- "SCRM/models"
- "SCRM/service"
- "time"
- )
-
- func GetValidActivities(orgID int64, appID int64, keyWord string, page int, count int) ([]*models.Activity, int64, error) {
- if count <= 0 {
- return []*models.Activity{}, 0, nil
- }
- if page < 1 {
- page = 1
- }
-
- var activities []*models.Activity
- var totalCount int64
- db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status <> 9", orgID, appID)
- if len(keyWord) > 0 {
- likeParam := "%" + keyWord + "%"
- db = db.Where("title LIKE ?", likeParam)
- }
-
- err := db.
- Count(&totalCount).
- Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
- Error
-
- if err == nil {
- return activities, totalCount, nil
- } else {
- return nil, 0, err
- }
- }
-
- func GetActivitiesWithStatus(orgID int64, appID int64, keyWord string, status int, page int, count int) ([]*models.Activity, int64, error) {
- if count <= 0 {
- return []*models.Activity{}, 0, nil
- }
- if page < 1 {
- page = 1
- }
-
- var activities []*models.Activity
- var totalCount int64
- db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status = ?", orgID, appID, status)
- if len(keyWord) > 0 {
- likeParam := "%" + keyWord + "%"
- db = db.Where("title LIKE ?", likeParam)
- }
- err := db.
- Count(&totalCount).
- Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
- Error
-
- if err == nil {
- return activities, totalCount, nil
- } else {
- return nil, 0, err
- }
- }
-
- func GetDidEndedActivities(orgID int64, appID int64, keyWord string, page int, count int) ([]*models.Activity, int64, error) {
- if count <= 0 {
- return []*models.Activity{}, 0, nil
- }
- if page < 1 {
- page = 1
- }
-
- var activities []*models.Activity
- var totalCount int64
- now := time.Now().Unix()
- db := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? AND user_app_id = ? AND status = 1 AND start_time < ?", orgID, appID, now)
- if len(keyWord) > 0 {
- likeParam := "%" + keyWord + "%"
- db = db.Where("title LIKE ?", likeParam)
- }
- err := db.
- Count(&totalCount).
- Order("ctime desc").Limit(count).Offset((page - 1) * count).Find(&activities).
- Error
-
- if err == nil {
- return activities, totalCount, nil
- } else {
- return nil, 0, err
- }
- }
|