Pārlūkot izejas kodu

小程序活动列表,主题列表

xingzai 3 gadi atpakaļ
vecāks
revīzija
e115869534
3 mainītis faili ar 266 papildinājumiem un 7 dzēšanām
  1. 254 7
      controllers/activity.go
  2. 1 0
      models/activity.go
  3. 11 0
      services/activity.go

+ 254 - 7
controllers/activity.go

@@ -156,7 +156,6 @@ func (this *ActivityCoAntroller) ActivityList() {
 			permissionSqlStr += "'" + v + "',"
 		}
 	}
-
 	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
 	permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionSqlStr + `)`
 	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
@@ -1615,11 +1614,6 @@ func (this *ActivityCoAntroller) LabelList() {
 	}
 	condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
 	resp := new(models.GetCygxActivityLabelListRep)
-
-	if label != "" {
-		resp.Label = label
-		resp.ImgUrl = ""
-	}
 	//主题
 	if label != "" {
 		sortTime = ` timesort DESC `
@@ -1648,6 +1642,8 @@ func (this *ActivityCoAntroller) LabelList() {
 				resp.List = append(resp.List, v)
 			}
 		}
+		resp.Label = label
+		resp.ImgUrl = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Ft-img.51f.com%2Fxf%2Fxw%2F6b0d6f76-650c-4550-b549-8b016709e3b1.JPEG&refer=http%3A%2F%2Ft-img.51f.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640240724&t=1090d681d7d2351c563f2a101e6b842c"
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"
@@ -1942,12 +1938,17 @@ func (this *ActivityCoAntroller) LabelTypeList() {
 		condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
 
 		sortTime = ` mintimesort ASC `
-		list[k].List, err = models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
+		labelList, err := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
 			return
 		}
+		//标签字段关联的产业与标签处理
+		for k2, v2 := range labelList {
+			labelList[k2].KeyWord = services.LabelStr(v2.KeyWord)
+		}
+		list[k].List = labelList
 	}
 	//获取对应活动的数量并排序
 	intArr := make([]int, 0)
@@ -1994,3 +1995,249 @@ func (this *ActivityCoAntroller) LabelTypeList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 更多主题列表
+// @Description 获取活动更多主题列表接口
+// @Success 200 {object} models.GetCygxActivityLabelListRep
+// @router /labelMoreList [get]
+func (this *ActivityCoAntroller) LabelMoreList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	var startSize, pageSize int
+	var condition string
+	var sortTime string
+	//var conditionStatus string
+	var pars []interface{}
+	//活动可见限制
+	var sqlExport string
+	resp := new(models.GetCygxActivityLabelListRep)
+	slicePer := strings.Split(permissionStr, ",")
+	var permissionSqlStr string
+	for _, v := range slicePer {
+		if userType == 1 {
+			if v != "研选" {
+				permissionSqlStr += "'" + v + "',"
+			}
+		} else {
+			permissionSqlStr += "'" + v + "',"
+		}
+	}
+	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
+	permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionSqlStr + `)`
+	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+	if userType == 2 {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	}
+	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	}
+	sqlExport += `) `
+
+	//进行中的活动
+	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.active_state = 2 `
+	var conditionOr string
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+	}
+	condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+
+	//进行中的活动
+	sortTime = ` mintimesort ASC `
+	list, errList := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
+	if errList != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + errList.Error()
+		return
+	}
+
+	//已结束的活动
+	conditionOr = ""
+	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.active_state = 3 `
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+	}
+	condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+	startSize = 0
+	pageSize = 24 - len(list)
+
+	//已结束的活动
+	sortTime = ` timesort DESC `
+	listEnd, err := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	for _, v := range listEnd {
+		list = append(list, v)
+	}
+	//标签字段关联的产业与标签处理
+	for k, v := range list {
+		list[k].KeyWord = services.LabelStr(v.KeyWord)
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
+// @Title 活动列表(4.3版本)
+// @Description 获取活动列表接口(4.3版本)
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3"
+// @Param   Label   query   string  false       "搜索主题 多个用 , 隔开"
+// @Success 200 {object} models.GetCygxActivityListRep
+// @router /listNew [get]
+func (this *ActivityCoAntroller) ActivityListNew() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	uid := user.UserId
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	label := this.GetString("Label")
+	activeState := this.GetString("ActiveState")
+	if label == "undefined" {
+		label = ""
+	}
+	if activeState == "undefined" {
+		activeState = ""
+	}
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	var condition string
+	var pars []interface{}
+	//活动可见限制
+	var sqlExport string
+	slicePer := strings.Split(permissionStr, ",")
+	var permissionSqlStr string
+	for _, v := range slicePer {
+		if userType == 1 {
+			if v != "研选" {
+				permissionSqlStr += "'" + v + "',"
+			}
+		} else {
+			permissionSqlStr += "'" + v + "',"
+		}
+	}
+	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
+	permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionSqlStr + `)`
+	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+	if userType == 2 {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	}
+	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	}
+	sqlExport += `) `
+	//主题
+	if label != "" {
+		condition = ` AND art.label  LIKE '%` + label + `%' `
+	}
+	if activeState != "" {
+		condition += ` AND art.active_state  IN (` + activeState + `)`
+	}
+	condition += ` AND art.publish_status = 1 `
+	var conditionOr string
+	// 有专家权限的这几种用户,不做行业权限校验
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + `) `
+	}
+	condition += ` AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+	total, err := models.GetActivityCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	if activeState == "2" || activeState == "3" {
+		condition += ` ORDER BY art.activity_time DESC  `
+	} else {
+		condition += ` ORDER BY art.active_state ASC, art.activity_time ASC  `
+	}
+	list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize)
+	if errList != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + errList.Error()
+		return
+	}
+	for k, v := range list {
+		if strings.Contains(v.ActivityName, "【") {
+			list[k].IsBrackets = 1
+		}
+		if v.SignupNum > v.LimitPeopleNum {
+			list[k].SignupNum = v.LimitPeopleNum
+		}
+		if services.GetShowSustainable() && v.ChartPermissionName == "研选" {
+			list[k].IsShowSustainable = true
+		}
+		if v.ChartPermissionName == "研选" && v.ActivityTypeId == 1 {
+			list[k].ActivityTypeName = "研选电话会"
+		}
+		list[k].ImgUrl = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202111/20211104/QbTGTNhD9MxYp24cJ7V5WpCN0oNl.png"
+	}
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := new(models.GetCygxActivityListRep)
+	resp.List = list
+	resp.Paging = page
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 1 - 0
models/activity.go

@@ -455,6 +455,7 @@ func GetActivityLabelListAll(condition, sortTime string, pars []interface{}, sta
 		sql += condition
 	}
 	sql += ` GROUP BY art.label ORDER BY ` + sortTime + ` ,art.activity_id DESC  LIMIT ?,? `
+
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }

+ 11 - 0
services/activity.go

@@ -637,3 +637,14 @@ func SendEmailFileForAskMsg(cont context.Context) (err error) {
 	}
 	return
 }
+
+//活动标签字符串处理
+func LabelStr(label string) (labelNew string) {
+	slicebr := strings.Split(label, "-")
+	if len(slicebr) < 2 {
+		labelNew = label
+	} else {
+		labelNew = slicebr[1]
+	}
+	return labelNew
+}