123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package marketing_tool_service
-
- import (
- "SCRM/models"
- "SCRM/service"
- "time"
-
- "github.com/jinzhu/gorm"
- )
-
- 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
- }
- }
-
- func GetActivityWithID(orgID int64, activityID int64) (*models.Activity, error) {
- var activity models.Activity
- err := service.PatientReadDB().Model(&models.Activity{}).Where("user_org_id = ? and id = ?", orgID, activityID).First(&activity).Error
- if err != nil {
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- } else {
- return nil, err
- }
- }
- return &activity, nil
- }
-
- func GetActivityParagraphByActivityID(activityID int64) (*models.ActivityParagraph, error) {
- var paragraph models.ActivityParagraph
- err :=
- service.PatientReadDB().Model(&models.ActivityParagraph{}).
- Where("activity_id = ? and status = 1", activityID).
- First(¶graph).
- Error
- if err != nil {
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- } else {
- return nil, err
- }
- }
- return ¶graph, nil
- }
|