123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package marketing_tool
-
- import (
- "SCRM/controllers"
- "SCRM/enums"
- "SCRM/models"
- "SCRM/service/marketing_tool_service"
- "time"
-
- "github.com/astaxie/beego"
- )
-
- func ActivityCtlRegistRouters() {
- beego.Router("/api/activities", &ActivityAPIController{}, "get:Activities")
- }
-
- type ActivityAPIController struct {
- controllers.BaseAuthAPIController
- }
-
- // /api/activities [get]
- // @param page?:int
- // @param keyword?:string
- // @param status?:int 1.已发布 2.待发布 3.未通过 4.已结束 其他取全部
- func (this *ActivityAPIController) Activities() {
- page, _ := this.GetInt("page")
- keyword := this.GetString("keyword")
- status, _ := this.GetInt("status")
- if page <= 0 {
- page = 1
- }
- if status < 1 || status > 4 {
- status = 0
- }
-
- adminUserInfo := this.GetAdminUserInfo()
- var activities []*models.Activity
- var totalCount int64
- var getActivityErr error
- if status == 1 {
- activities, totalCount, getActivityErr = marketing_tool_service.GetActivitiesWithStatus(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, keyword, 1, page, 10)
- } else if status == 2 {
- activities, totalCount, getActivityErr = marketing_tool_service.GetActivitiesWithStatus(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, keyword, 4, page, 10)
- } else if status == 3 {
- activities, totalCount, getActivityErr = marketing_tool_service.GetActivitiesWithStatus(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, keyword, 3, page, 10)
- } else if status == 4 {
- activities, totalCount, getActivityErr = marketing_tool_service.GetDidEndedActivities(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, keyword, page, 10)
- } else {
- activities, totalCount, getActivityErr = marketing_tool_service.GetValidActivities(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, keyword, page, 10)
- }
-
- if getActivityErr != nil {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- activityJSONList := make([]map[string]interface{}, 0, len(activities))
- for _, activity := range activities {
- var json map[string]interface{}
- // 活动状态 1:已发布 2:待审核 3:未通过 4:草稿 9:已删除
- if activity.Status == 1 { // 已发布/已结束
- json = this._convertToPublishedActivityViewJSON(activity)
- } else if activity.Status == 3 { // 未通过
- json = this._convertToUnapprovedActivityViewJSON(activity)
- } else if activity.Status == 4 { // 草稿
- json = this._convertToActivityDraftsViewJSON(activity)
- }
- activityJSONList = append(activityJSONList, json)
- }
-
- this.ServeSuccessJSON(map[string]interface{}{
- "activities": activityJSONList,
- "total": totalCount,
- })
- }
-
- func (this *ActivityAPIController) _convertToPublishedActivityViewJSON(activity *models.Activity) map[string]interface{} {
- json := make(map[string]interface{})
- now := time.Now().Unix()
- if activity.StartTime < now {
- json["status"] = 4
- } else {
- json["status"] = 1
- }
- json["id"] = activity.Id
- json["poster_photo"] = activity.PosterPhoto
- json["title"] = activity.Title
- json["is_recommend"] = activity.IsRecommend
- json["read_num"] = activity.ReadNum
- json["comment_num"] = activity.CommentNum
- json["star_num"] = activity.StarNum
- json["join_num"] = activity.JoinNum
- json["limit_num"] = activity.LimitNum
- json["start_time"] = activity.StartTime
- return json
- }
-
- func (this *ActivityAPIController) _convertToActivityDraftsViewJSON(activity *models.Activity) map[string]interface{} {
- json := make(map[string]interface{})
- json["status"] = 2
- json["id"] = activity.Id
- json["poster_photo"] = activity.PosterPhoto
- json["title"] = activity.Title
- return json
- }
-
- func (this *ActivityAPIController) _convertToUnapprovedActivityViewJSON(activity *models.Activity) map[string]interface{} {
- json := make(map[string]interface{})
- json["status"] = 3
- json["id"] = activity.Id
- json["poster_photo"] = activity.PosterPhoto
- json["title"] = activity.Title
- json["reason"] = activity.Reason
- json["start_time"] = activity.StartTime
- return json
- }
|