Browse Source

获取活动关联城市,当同一个活动标签对应多个城市的时候,展示最近举办的活动

xingzai 2 years ago
parent
commit
e7c947c93d
3 changed files with 58 additions and 4 deletions
  1. 10 4
      controllers/activity.go
  2. 24 0
      models/activity.go
  3. 24 0
      services/activity.go

+ 10 - 4
controllers/activity.go

@@ -12,7 +12,6 @@ import (
 	"strconv"
 	"strings"
 	"time"
-	"unicode/utf8"
 )
 
 // 活动
@@ -3142,6 +3141,12 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	//}
 	//isMaker := user.IsMaker
 
+	mapCity, err := services.GetActivityCityResp()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
 	//var sqlExport string
 	resp := new(models.ActivityTypeListHomeResp)
 	for k, v := range list {
@@ -3172,9 +3177,10 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			if v2.YidongActivityId != 0 {
 				v2.IsExternalLabel = true
 			}
-			if utf8.RuneCountInString(v2.City) != 2 {
-				labelList[k2].City = ""
-			}
+			labelList[k2].City = mapCity[fmt.Sprint(v2.KeyWord, "{|}", v.ActivityTypeId)]
+			//if utf8.RuneCountInString(v2.City) != 2 {
+			//	labelList[k2].City = ""
+			//}
 			labelList[k2].KeyWord = services.LabelStrV5(v2.KeyWord, v2.IsShowSubjectName, v2.TemporaryLabel)
 			labelList[k2].ImgUrlBg = v.ImgUrlBgs
 			if _, ok := mapkeyWord[fmt.Sprint(v.ActivityTypeId, "-", labelList[k2].KeyWord)]; ok {

+ 24 - 0
models/activity.go

@@ -733,6 +733,30 @@ func GetActivityLabelListAll(condition, sortTime string, pars []interface{}, sta
 	return
 }
 
+// 主题列表
+func GetActivityLabelListCity() (items []*CygxActivity, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			activity_id,
+			activity_type_id,
+			activity_time,
+			label,
+			temporary_label,
+			is_show_subject_name,
+			yidong_activity_id,
+			city 
+		FROM
+			cygx_activity AS art 
+		WHERE
+			1 = 1 
+			AND art.active_state IN ( 1, 2 ) 
+			AND city != '' 
+		ORDER BY
+			activity_time ASC  `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 type GetCygxActivityLabelListRep struct {
 	Label  string `description:"主题"`
 	ImgUrl string `description:"图片路径"`

+ 24 - 0
services/activity.go

@@ -12,6 +12,7 @@ import (
 	"strconv"
 	"strings"
 	"time"
+	"unicode/utf8"
 )
 
 // 修改活动状态
@@ -1828,3 +1829,26 @@ func ActivityVideoUserRmind(user *models.WxUserItem, activityId, fileType int) (
 	}
 	return
 }
+
+// GetActivityCityResp 获取活动关联城市,当同一个活动标签对应多个城市的时候,展示最近举办的活动
+func GetActivityCityResp() (mapItem map[string]string, err error) {
+	activityList, err := models.GetActivityLabelListCity()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	mapActivityCity := make(map[string]string)
+	if len(activityList) > 0 {
+		for _, v := range activityList {
+			if v.ActivityTypeId == utils.C_CLASS_ACTIVITY_TYPE_ID {
+				v.ActivityTypeId = utils.ANALYST_TELL_ACTIVITY_TYPE_ID
+			}
+			//如果城市民称长度大于2,那么就不显示
+			if utf8.RuneCountInString(v.City) != 2 || mapActivityCity[fmt.Sprint(v.Label, "{|}", v.ActivityTypeId)] != "" {
+				continue
+			}
+			mapActivityCity[fmt.Sprint(v.Label, "{|}", v.ActivityTypeId)] = v.City
+		}
+	}
+	mapItem = mapActivityCity
+	return
+}