xingzai 2 år sedan
förälder
incheckning
041e903b4c
6 ändrade filer med 358 tillägg och 7 borttagningar
  1. 63 0
      controllers/home.go
  2. 5 7
      models/chart.go
  3. 1 0
      models/micro_roadshow.go
  4. 74 0
      models/resource_data.go
  5. 9 0
      routers/commentsRouter.go
  6. 206 0
      services/resource_data.go

+ 63 - 0
controllers/home.go

@@ -240,3 +240,66 @@ func (this *MobileHomeController) List() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 首页列表接口
+// @Description 首页列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Success 200 {object} models.HomeArtAndChartListResp
+// @router /new [get]
+func (this *MobileHomeController) NewList() {
+	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
+	}
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	var condition string
+	var pars []interface{}
+	var total int
+	resp := new(models.HomeResourceDataListResp)
+
+	//condition += " AND source = 'activityspecial' "
+
+	total, err := models.GetResourceDataCount(condition, pars)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+
+	list, err := services.GetResourceDataList(condition, pars, startSize, pageSize, user)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	page = paging.GetPaging(currentIndex, pageSize, total)
+	resp.Paging = page
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 5 - 7
models/chart.go

@@ -139,8 +139,6 @@ type ChartUserTokenResultApi struct {
 	Msg  string               `json:"msg"`
 }
 
-
-
 type HomeChartListItem struct {
 	IsBindingMobile bool `description:"是否绑定过手机号"`
 	Paging          *paging.PagingItem
@@ -180,26 +178,26 @@ func GetChartListAll() (items []*HomeChartListResp, err error) {
 //}
 
 //获取图表列表
-func GetChartListCollection(chartIds string, userId, startSize, pageSize int) (items []*HomeChartListResp, err error) {
+func GetChartListCollection(condition string, pars []interface{}, userId, startSize, pageSize int) (items []*HomeChartListResp, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT a.*,
 			t.create_time AS t_create_time,
 			c.create_time AS c_create_time,
-			( SELECT COUNT(*) FROM cygx_chart_top AS t WHERE t.chart_id = a.chart_id AND t.user_id = ? ) AS num_top,
+			( SELECT COUNT(*) FROM cygx_chart_top AS t WHERE t.chart_id = a.chart_id AND t.user_id = ? ) AS is_top,
 			( SELECT COUNT(*) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS num_c 
 		FROM
 			cygx_chart_all AS a
 			LEFT JOIN cygx_chart_top AS t ON t.chart_id = a.chart_id
 			LEFT JOIN cygx_chart_collect AS c ON c.chart_id = a.chart_id 
 		WHERE
-			a.publish_status = 1 
-			AND a.chart_id IN (` + chartIds + `) 
+			a.publish_status = 1 ` + condition + `
+			
 		GROUP BY
 			a.chart_id 
 		ORDER BY
 			t_create_time DESC,
 			c_create_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, userId, userId, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, userId, userId, pars, startSize, pageSize).QueryRows(&items)
 	return
 }
 

+ 1 - 0
models/micro_roadshow.go

@@ -201,6 +201,7 @@ func GetMicroRoadShowVideoPageListV8(startSize, pageSize int, condition string,
 			video_duration AS play_seconds,
 			img_url AS background_img,            
 			industry_name,
+
 			share_img_url AS share_img,
 			industry_id AS industrial_management_id,
 			"" as  activity_id

+ 74 - 0
models/resource_data.go

@@ -0,0 +1,74 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"time"
+)
+
+type CygxResourceData struct {
+	Id          int       `orm:"column(id);pk"`
+	SourceId    int       `description:"资源ID"`
+	Source      string    `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
+	Title       string    `description:"标题"`
+	Annotation  string    `description:"核心观点"`
+	CreateTime  time.Time `description:"创建时间"`
+	PublishDate string    `description:"发布时间"`
+	Abstract    string    `description:"摘要"`
+}
+
+type CygxResourceDataResp struct {
+	Id                      int    `orm:"column(id);pk"`
+	SourceId                int    `description:"资源ID"`
+	Source                  string `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
+	Title                   string `description:"标题"`
+	Annotation              string `description:"核心观点"`
+	PublishDate             string `description:"发布时间"`
+	Abstract                string `description:"摘要"`
+	IsTop                   bool   `description:"是否置顶"`
+	IsCollection            bool   `description:"是否收藏 "`
+	BackgroundImg           string `description:"背景图"`
+	City                    string `description:"城市"`
+	IsSignup                int    `description:"是否已报名 1是 ,0 否"`
+	IsAppointment           int    `description:"是否已预约纪要 1是 ,0 否"`
+	IsCancelMeetingReminder int    `description:"是否添加了消息消息提醒   1是 ,0 否"`
+	ActiveState             string `description:"活动进行状态 未开始:1、进行中2、已结束3"`
+	ImgUrl                  string `description:"行业图片链接"`
+	ImgUrlText              string `description:"活动类型图片链接"`
+	ActivityType            int    `description:"活动线上线下类型 1线上,0 线下,2线下"`
+	IsShowOutboundCall      bool   `description:"是否展示预约外呼"`
+	IsShowMeetingReminder   bool   `description:"是否展示会议提醒"`
+	IsShowHelpSsk           bool   `description:"是否展示帮我带问"`
+	IsShowSignup            bool   `description:"是否展示我要报名"`
+	IsShowAppointment       bool   `description:"是否展示预约纪要"`
+	IsShowDetails           bool   `description:"是否展示查看详情按钮"`
+	TripStatus              int    `description:"行程进行状态 1:预报名,2:确定行程"`
+	IsTrip                  int    `description:"确定行程是否报名 1是 ,0 否"`
+	ActivityTimeText        string `description:"活动预期时间带文字"`
+	TripImgLink             string `description:"行程图片链接"`
+}
+
+type HomeResourceDataListResp struct {
+	Paging *paging.PagingItem
+	List   []*CygxResourceDataResp `description:"列表"`
+}
+
+//列表
+func GetResourceDataList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxResourceData, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT	 *   FROM cygx_resource_data  WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY publish_date  DESC   LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+//获取用户报名成功数量
+func GetResourceDataCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := `SELECT COUNT(1) AS count FROM cygx_resource_data WHERE   WHERE 1= 1 ` + condition
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -223,6 +223,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileHomeController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileHomeController"],
+        beego.ControllerComments{
+            Method: "NewList",
+            Router: `/new`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportBillboardController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportBillboardController"],
         beego.ControllerComments{
             Method: "ReadList",

+ 206 - 0
services/resource_data.go

@@ -0,0 +1,206 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+func GetResourceDataList(condition string, pars []interface{}, startSize, pageSize int, user *models.WxUserItem) (items []*models.CygxResourceDataResp, err error) {
+
+	uid := user.UserId
+	list, e := models.GetResourceDataList(condition, pars, startSize, pageSize)
+	if e != nil {
+		err = errors.New("GetResourceDataList, Err: " + e.Error())
+		return
+	}
+	mapItems := make(map[int]*models.CygxResourceDataResp)
+	for _, v := range list {
+		//预处理文章
+		item := new(models.CygxResourceDataResp)
+		item.Id = v.Id
+		item.SourceId = v.SourceId
+		item.Source = v.Source
+		item.Title = v.Title
+		item.Annotation = v.Annotation
+		item.Abstract = v.Abstract
+		mapItems[v.SourceId] = item
+	}
+	var articleIds []int
+	var newchartIds []int
+	var roadshowIds []int
+	var activityIds []int
+	var activityvideoIds []int
+	var activityvoiceIds []int
+	var activityspecialIds []int
+	//Source      string    `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
+	for _, v := range list {
+		if v.Source == "article" {
+			articleIds = append(articleIds, v.SourceId)
+		} else if v.Source == "newchart" {
+			newchartIds = append(newchartIds, v.SourceId)
+		} else if v.Source == "roadshow" {
+			roadshowIds = append(roadshowIds, v.SourceId)
+		} else if v.Source == "activity" {
+			activityIds = append(activityIds, v.SourceId)
+		} else if v.Source == "activityvideo" {
+			activityvideoIds = append(activityvideoIds, v.SourceId)
+		} else if v.Source == "activityvoice" {
+			activityvoiceIds = append(activityvoiceIds, v.SourceId)
+		} else if v.Source == "activityspecial" {
+			activityspecialIds = append(activityspecialIds, v.SourceId)
+		}
+	}
+
+	detail, e := models.GetConfigByCode("city_img_url")
+	if e != nil {
+		err = errors.New("GetResourceDataList, Err: " + e.Error())
+		return
+	}
+	detailChart, e := models.GetConfigByCode("chart_img_url")
+	if e != nil {
+		err = errors.New("GetResourceDataList, Err: " + e.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
+	}
+	var imgUrlResp string
+
+	//处理活动
+	if len(activityIds) > 0 {
+		pars = make([]interface{}, 0)
+		condition = ` AND art.activity_id IN (` + utils.GetOrmInReplace(len(activityIds)) + `)`
+		pars = append(pars, activityIds)
+		activityList, e := models.GetActivityListNew(condition, pars, uid, startSize, len(activityIds), 0, 0)
+		if e != nil {
+			err = errors.New("GetResourceDataList, Err: " + e.Error())
+			return
+		}
+		var activityListRersp []*models.ActivityListResp
+		for _, v := range activityList {
+			activityListRersp = append(activityListRersp, ActivityButtonShow(v))
+		}
+
+		for _, v := range activityListRersp {
+			if v.ActivityType == 0 {
+				if mapAddress[v.City] != "" {
+					imgUrlResp = mapAddress[v.City]
+				} else {
+					imgUrlResp = mapAddress["其它"]
+				}
+			} else {
+				if mapChart[v.ChartPermissionName] != "" {
+					imgUrlResp = mapChart[v.ChartPermissionName]
+				}
+			}
+			mapItems[v.ActivityId].Title = v.ActivityName
+			mapItems[v.ActivityId].City = v.City
+			mapItems[v.ActivityId].IsSignup = v.IsSignup
+			mapItems[v.ActivityId].IsCancelMeetingReminder = v.IsCancelMeetingReminder
+			mapItems[v.ActivityId].IsAppointment = v.IsAppointment
+			mapItems[v.ActivityId].ActiveState = v.ActiveState
+			mapItems[v.ActivityId].ImgUrlText = v.ImgUrlText
+			mapItems[v.ActivityId].ActivityType = v.ActivityType
+			mapItems[v.ActivityId].IsShowOutboundCall = v.IsShowOutboundCall
+			mapItems[v.ActivityId].IsShowMeetingReminder = v.IsShowMeetingReminder
+			mapItems[v.ActivityId].IsShowHelpSsk = v.IsShowHelpSsk
+			mapItems[v.ActivityId].IsShowSignup = v.IsShowSignup
+			mapItems[v.ActivityId].IsShowAppointment = v.IsShowAppointment
+			mapItems[v.ActivityId].IsShowDetails = v.IsShowDetails
+			mapItems[v.ActivityId].ActivityTimeText = v.ActivityTimeText
+			mapItems[v.ActivityId].ImgUrl = imgUrlResp
+		}
+	}
+
+	//处理图表
+	if len(newchartIds) > 0 {
+		pars = make([]interface{}, 0)
+		condition = ` AND a.chart_id IN (` + utils.GetOrmInReplace(len(newchartIds)) + `)`
+		pars = append(pars, newchartIds)
+		chartDateList, e := models.GetChartListCollection(condition, pars, uid, startSize, len(newchartIds))
+		if e != nil {
+			err = errors.New("GetResourceDataList, Err: " + e.Error())
+			return
+		}
+		for _, v := range chartDateList {
+			mapItems[v.ChartId].Title = v.Title
+			mapItems[v.ChartId].ImgUrl = v.BodyHtml
+			mapItems[v.ChartId].IsTop = v.IsTop
+		}
+	}
+
+	//处理专项调研
+	if len(activityspecialIds) > 0 {
+		pars = make([]interface{}, 0)
+		condition = ` AND art.activity_id IN (` + utils.GetOrmInReplace(len(activityspecialIds)) + `)`
+		pars = append(pars, activityspecialIds)
+		activitySpeciallist, e := models.GetCygxActivitySpecialDetailList(condition, pars, user.UserId, startSize, len(activityspecialIds))
+		if e != nil {
+			err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
+			return
+		}
+		UserMap, e := GetSpecialTripUserMap(activityIds, user.UserId)
+		if e != nil {
+			err = errors.New("GetSpecialTripUserMap, Err: " + e.Error())
+			return
+		}
+		for _, v := range activitySpeciallist {
+			if mapChart[v.ChartPermissionName] != "" {
+				imgUrlResp = mapChart[v.ChartPermissionName]
+			}
+			if _, ok := UserMap[v.ActivityId]; ok {
+				mapItems[v.ActivityId].IsTrip = 1
+			}
+			if v.Days == 0 {
+				mapItems[v.ActivityId].TripStatus = 1
+			} else {
+				mapItems[v.ActivityId].TripStatus = 2
+			}
+			resultTimeStart := utils.StrTimeToTime(v.ActivityTime)  //时间字符串格式转时间格式
+			resultTimeEnd := utils.StrTimeToTime(v.ActivityTimeEnd) //时间字符串格式转时间格式
+			if resultTimeStart.After(time.Now()) {
+				mapItems[v.ActivityId].ActiveState = strconv.Itoa(1)
+			} else if time.Now().After(resultTimeEnd) {
+				mapItems[v.ActivityId].ActiveState = strconv.Itoa(3)
+			} else {
+				mapItems[v.ActivityId].ActiveState = strconv.Itoa(2)
+			}
+			mapItems[v.ActivityId].Title = v.ResearchTheme
+			mapItems[v.ActivityId].ActivityType = v.SpecialType
+			mapItems[v.ActivityId].City = v.City
+			mapItems[v.ActivityId].ActivityTimeText = v.ActivityTimeText
+			mapItems[v.ActivityId].TripImgLink = v.TripImgLink
+			mapItems[v.ActivityId].IsSignup = v.IsSignup
+			mapItems[v.ActivityId].ImgUrl = imgUrlResp
+		}
+	}
+
+	for _, v := range mapItems {
+		fmt.Println(v)
+		items = append(items, v)
+	}
+	fmt.Println(activityIds)
+	return
+}