Browse Source

专项调研活动,详情接口

xingzai 2 years ago
parent
commit
5f27331156
4 changed files with 510 additions and 26 deletions
  1. 404 23
      controllers/activity.go
  2. 87 3
      models/activity.go
  3. 1 0
      models/activity_type.go
  4. 18 0
      routers/commentsRouter_controllers.go

+ 404 - 23
controllers/activity.go

@@ -3179,9 +3179,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	}
 	pageSize, _ := this.GetInt("PageSize")
 	isPower, _ := this.GetInt("IsPower")
-	//currentIndex, _ := this.GetInt("CurrentIndex")
 	chartPermissionIds := this.GetString("ChartPermissionIds")
-	//activityTypeIds := this.GetString("ActivityTypeIds")
 	whichDay := this.GetString("WhichDay")
 	activeState := this.GetString("ActiveState")
 	//入参为 undefined 时的处理
@@ -3200,7 +3198,6 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-
 	var startSize int
 	pageSize = 40
 	var sortTime string
@@ -3227,7 +3224,6 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
-	fmt.Println(permissionNameStr)
 	//判断客户规模是否属于可见范围的活动
 	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -3238,7 +3234,6 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	var sqlExport string
 	resp := new(models.ActivityTypeListHomeResp)
 	for k, v := range list {
-
 		var condition string
 		permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
 		sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
@@ -3290,15 +3285,12 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		} else {
 			conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
 		}
-
 		if companyProduct != nil {
 			if companyProduct.Scale != "" {
 				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
 			}
 		}
-
 		condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
-
 		sortTime = ` mintimesort ASC `
 		labelList, err := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
 		if err != nil {
@@ -3312,6 +3304,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			labelList[k2].ImgUrlBg = v.ImgUrlBgs
 		}
 		list[k].List = labelList
+		list[k].Resource = 1
 	}
 
 	//userType = 1
@@ -3355,8 +3348,10 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	for k2, v2 := range specialList {
 		specialList[k2].KeyWord = services.LabelStr(v2.KeyWord)
 	}
+
 	itemList := new(models.ActivityTypeHome)
 	itemList.ActivityTypeName = "专项产业调研"
+	itemList.Resource = 2
 	itemList.List = specialList
 	itemList.ActivityTypeId = 7
 	itemList.ImgUrl = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202112/20211216/YSo4QpqtQgwFJzYnxF9TNpAXrFIz.png"
@@ -3373,6 +3368,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			item.ActivityTypeId = v.ActivityTypeId
 			item.ImgUrlBg = v.ImgUrlBg
 			item.ImgUrl = v.ImgUrl
+			item.Resource = v.Resource
 			items = append(items, item)
 			intArr = append(intArr, len(v.List))
 		}
@@ -3389,6 +3385,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 				item.ActivityTypeId = v2.ActivityTypeId
 				item.ImgUrlBg = v2.ImgUrlBg
 				item.ImgUrl = v2.ImgUrl
+				item.Resource = v2.Resource
 				itemsNew = append(itemsNew, item)
 				activityMap[v2.ActivityTypeId] = len(v2.List)
 			}
@@ -3412,21 +3409,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			rightPx += basicsHeight + rowHeight*len(v.List)
 		}
 	}
-
-	////如果第三个活动数量比第四个多,则两者调换
-	//if len(itemsNew) > 3 {
-	//	if len(itemsNew[2].List) > len(itemsNew[3].List) {
-	//		var itemsNewCopy []*models.ActivityTypeHome
-	//		for _, v := range itemsNew {
-	//			itemsNewCopy = append(itemsNewCopy, v)
-	//		}
-	//		itemsNew[2] = itemsNewCopy[3]
-	//		itemsNew[3] = itemsNewCopy[2]
-	//	}
-	//}
-
 	//记录用户搜索的筛选条件
-
 	item := new(models.CygxActivitySearchHistory)
 	item.UserId = user.UserId
 	item.Mobile = user.Mobile
@@ -3437,10 +3420,408 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	item.IsPower = isPower
 	item.WhichDay = whichDay
 	go models.AddCygxActivitySearchHistory(item)
-
 	resp.List = itemsNew
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 专项产业调研列表
+// @Description 获取专项产业调研列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Success 200 {object} models.GetCygxActivitySpecialDetailListResp
+// @router /special/list [get]
+func (this *ActivityCoAntroller) SpecialList() {
+	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")
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+	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 + "',"
+		}
+	}
+
+	//判断客户规模是否属于可见范围的活动
+	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
+	}
+	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
+	permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
+	permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
+	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 `
+	condition = ` AND art.publish_status = 1  AND art.label != '' `
+	var conditionOr string
+
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (1=1 AND   art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (1=1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += ` OR (` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += ` OR ( 1=1 ` + condition + `) `
+	}
+	if companyProduct != nil {
+		if companyProduct.Scale != "" {
+			conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		}
+	}
+	if companyProduct != nil {
+		if companyProduct.Scale != "" {
+			conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		}
+	}
+	condition += sqlExport + conditionOr
+	total, err := models.GetActivitySpecialCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	list, errList := models.GetCygxActivitySpecialDetailList(condition, pars, uid, startSize, pageSize)
+	if errList != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + errList.Error()
+		return
+	}
+	detail, err := models.GetConfigByCode("city_img_url")
+	if err != nil {
+		br.Msg = "获取数据失败"
+		br.ErrMsg = "城市配置信息失败,Err:" + err.Error()
+		return
+	}
+	detailChart, err := models.GetConfigByCode("chart_img_url")
+	if err != nil {
+		br.Msg = "获取数据失败"
+		br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
+		return
+	}
+
+	addressList := strings.Split(detail.ConfigValue, "{|}")
+	mapAddress := make(map[string]string)
+	chartList := strings.Split(detailChart.ConfigValue, "{|}")
+	mapChart := make(map[string]string)
+	var cityName string
+	var chartName string
+	var imgUrl string
+	var imgUrlChart string
+	for _, v := range addressList {
+		vslice := strings.Split(v, "_")
+		cityName = vslice[0]
+		imgUrl = vslice[len(vslice)-1]
+		mapAddress[cityName] = imgUrl
+	}
+	for _, v := range chartList {
+		vslice := strings.Split(v, "_")
+		chartName = vslice[0]
+		imgUrlChart = vslice[len(vslice)-1]
+		mapChart[chartName] = imgUrlChart
+	}
+	for k, v := range list {
+		//if v.ChartPermissionName == "研选" {
+		//	list[k].ActivityTypeName = "研选电话会"
+		//	list[k].ImgUrlText = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202112/20211221/bIdfv8t86xrFRpDOeGGHXOmKEuKl.png"
+		//}
+		list[k].ImgUrlText = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202112/20211221/bIdfv8t86xrFRpDOeGGHXOmKEuKl.png"
+		if mapChart[v.ChartPermissionName] != "" {
+			list[k].ImgUrl = mapChart[v.ChartPermissionName]
+		}
+		list[k].ActivityTypeName = "专项调研"
+
+	}
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := new(models.GetCygxActivitySpecialDetailListResp)
+	resp.List = list
+	resp.Paging = page
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+
+}
+
+// @Title  专项产业调研详情
+// @Description 获取专项产业调研详情接口
+// @Param   ActivityId   query   int  true       "活动ID"
+// @Success Ret=200 {object} models.CygxActivitySpecialResp
+// @router /special/detail [get]
+func (this *ActivityCoAntroller) SpecialDetail() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	uid := user.UserId
+	activityId, _ := this.GetInt("ActivityId")
+	if activityId < 1 {
+		br.Msg = "请输入活动ID"
+		return
+	}
+	resp := new(models.CygxActivitySpecialResp)
+	hasPermission := 0
+
+	activityInfo, err := models.GetCygxActivitySpecialDetailById(uid, activityId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+		return
+	}
+	if activityInfo == nil {
+		br.Msg = "活动不存在"
+		br.ErrMsg = "活动ID错误,Err:" + "activityId:" + strconv.Itoa(activityId)
+		return
+	}
+	applyCount, err := models.GetApplyRecordCount(uid)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+		return
+	}
+	//获取FICC销售信息 如果是FICC的客户类型,则默认他申请过
+	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+		return
+	}
+	if user.CompanyId <= 1 {
+		//companyDetailStatus = ""
+	} else {
+		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+			return
+		}
+		if companyPermission == "" {
+			if applyCount > 0 {
+				hasPermission = 4
+			} else {
+				if sellerItem != nil {
+					hasPermission = 5
+				} else {
+					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						br.Msg = "获取信息失败"
+						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+						return
+					}
+					if sellerItemQy != nil {
+						hasPermission = 2
+						resp.SellerMobile = sellerItemQy.Mobile
+						resp.SellerName = sellerItemQy.RealName
+					} else {
+						hasPermission = 3
+					}
+				}
+			}
+			resp.HasPermission = hasPermission
+			resp.OperationMode = "Apply"
+			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+			br.Ret = 200
+			br.Success = true
+			br.Msg = "获取成功"
+			br.Data = resp
+			return
+		}
+		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
+		if err != nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+			return
+		}
+		if companyDetail == nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
+			return
+		}
+	}
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
+	}
+	itemAct := new(models.ActivityDetail)
+	itemAct.CustomerTypeIds = activityInfo.CustomerTypeIds
+	noPower, err := services.GetShareNoPowe(itemAct, permissionStr, userType)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
+	}
+
+	//获取用户的产业规模,判断是否允许可见
+	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
+	}
+	if companyProduct != nil {
+		if companyProduct.Scale != "" {
+			if strings.Count(activityInfo.Scale, companyProduct.Scale) > 0 {
+				noPower = false
+			}
+		}
+	}
+	if noPower {
+		br.Msg = "您暂无查看该活动权限"
+		br.ErrMsg = "被分享客户不可见,获取信息失败"
+		return
+	}
+
+	if userType == 1 && activityInfo.ChartPermissionName == "研选" {
+		br.Msg = "您暂无查看该活动权限"
+		br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
+		return
+	}
+	//判断是否已经申请过
+	if user.CompanyId > 1 {
+		permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取客户权限信息失败,Err:" + err.Error()
+			return
+		}
+		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
+		//冻结客户
+		if err != nil {
+			if err.Error() == utils.ErrNoRow() {
+				if applyCount > 0 {
+					hasPermission = 4
+				} else {
+					if sellerItem != nil {
+						hasPermission = 5
+					} else {
+						//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+						sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+						if err != nil && err.Error() != utils.ErrNoRow() {
+							br.Msg = "获取信息失败"
+							br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+							return
+						}
+						if sellerItemQy != nil {
+							hasPermission = 2
+							resp.SellerMobile = sellerItemQy.Mobile
+							resp.SellerName = sellerItemQy.RealName
+						} else {
+							hasPermission = 3
+						}
+					}
+				}
+				resp.HasPermission = hasPermission
+				resp.OperationMode = "Apply"
+				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				br.Data = resp
+				return
+			} else {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取客户公司信息失败,Err:" + err.Error()
+				return
+			}
+		}
+		var havePower bool
+		if strings.Contains(permissionStr, activityInfo.ActivityTypeName) {
+			havePower = true
+		}
+		if havePower {
+			hasPermission = 1
+			resp.HaqveJurisdiction = true
+		} else {
+			if permissionStr == "专家" {
+				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+				resp.MsgType = "Type"
+			} else {
+				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+				resp.MsgType = "Industry"
+			}
+			if companyItem.ProductId == 2 {
+				resp.SellerMobile = companyItem.Mobile
+				resp.SellerName = companyItem.SellerName
+				resp.OperationMode = "Call"
+				hasPermission = 2
+			} else {
+				hasPermission = 5
+			}
+		}
+	} else { //潜在客户
+		if applyCount > 0 {
+			hasPermission = 4
+		} else {
+			if sellerItem != nil {
+				hasPermission = 5
+			} else {
+				hasPermission = 3
+			}
+		}
+		resp.OperationMode = "Apply"
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+	}
+	if hasPermission == 1 {
+		resp.Detail = activityInfo
+	}
+	resp.HasPermission = hasPermission
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 87 - 3
models/activity.go

@@ -1,7 +1,6 @@
 package models
 
 import (
-	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
@@ -572,9 +571,94 @@ func GetActivityLabelSpecialListAll(condition string, pars []interface{}, startS
 		sql += condition
 	}
 	sql += ` GROUP BY art.label ORDER BY art.last_updated_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
 
-	fmt.Println(sql)
+//专项调研活动列表
+type CygxActivitySpecialDetail struct {
+	ActivityId            int    `description:"活动ID "`
+	ActivityTypeName      string `description:"活动名称"`
+	SpecialType           int    `description:"调研形式、 1 线上 , 2 线下"`
+	City                  string `description:"调研城市"`
+	ChartPermissionName   string `description:"行业名称"`
+	ResearchTheme         string `description:"调研主题"`
+	ActivityTimeText      string `description:"活动预期时间带文字"`
+	TripImgLink           string `description:"行程图片链接"`
+	IsSignup              int    `description:"是否感兴趣 1是 ,0 否"`
+	Label                 string `description:"主题标签"`
+	ImgUrl                string `description:"图片链接"`
+	ImgUrlText            string `description:"图片链接文字"`
+	IndustrialName        string `description:"产业名称"`
+	IndustrialSubjectName string `description:"标的名称(相关公司)"`
+	Scale                 string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。多个用, 隔开"`
+	CustomerTypeIds       string `description:"活动可见的客户类型,多个ID用 , 隔开"`
+}
+
+type GetCygxActivitySpecialDetailListResp struct {
+	Paging *paging.PagingItem `description:"分页数据"`
+	List   []*CygxActivitySpecialDetail
+}
 
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+type CygxActivitySpecialResp struct {
+	HaqveJurisdiction bool   `description:"是否有权限"`
+	OperationMode     string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
+	HasPermission     int    `description:"操作方式,1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请,5:有IFCC、无权益"`
+	PopupMsg          string `description:"权限弹窗信息"`
+	MsgType           string `description:"Type : 类型 , Industry : 行业"`
+	SellerMobile      string `description:"销售电话"`
+	SellerName        string `description:"销售姓名"`
+	Detail            *CygxActivitySpecialDetail
+}
+
+//获取数量
+func GetActivitySpecialCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_special as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
+//获取专项调研活动列表
+func GetCygxActivitySpecialDetailList(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*CygxActivitySpecialDetail, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT
+	art.*,
+	c.image_url AS img_url,
+	(
+	SELECT
+		COUNT( 1 ) 
+	FROM
+		cygx_activity_special_signup AS s 
+	WHERE
+		s.activity_id = art.activity_id 
+		AND s.user_id = ?
+	) AS is_signup
+FROM
+	cygx_activity_special AS art
+	INNER JOIN chart_permission AS c ON c.chart_permission_id = art.chart_permission_id 
+WHERE
+	1 = 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY art.last_updated_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, pars, uid, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+//通过纪要ID获取活动详情
+func GetCygxActivitySpecialDetailById(uid, ActivityId int) (item *CygxActivitySpecialDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_special_signup AS s WHERE s.activity_id = a.activity_id AND s.user_id = ? ) AS is_signup 
+FROM
+	cygx_activity_special AS a 
+WHERE
+	activity_id = ?
+	AND publish_status = 1`
+	err = o.Raw(sql, uid, ActivityId).QueryRow(&item)
 	return
 }

+ 1 - 0
models/activity_type.go

@@ -48,6 +48,7 @@ type ActivityTypeHome struct {
 	ImgUrlBg         string `description:"背景图片"`
 	ImgUrlBgs        string `description:"背景图片"`
 	Position         int    `description:"位置 ,1:左 ,2:右边"`
+	Resource         int    `description:"位置 ,1:活动 ,2:专项产业调研"`
 	List             []*CygxActivityLabelList
 }
 

+ 18 - 0
routers/commentsRouter_controllers.go

@@ -169,6 +169,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"],
+        beego.ControllerComments{
+            Method: "SpecialDetail",
+            Router: "/special/detail",
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"],
+        beego.ControllerComments{
+            Method: "SpecialList",
+            Router: "/special/list",
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:AdviceController"] = append(beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:AdviceController"],
         beego.ControllerComments{
             Method: "ApplyApprove",