Browse Source

no message

xingzai 1 year ago
parent
commit
ca006dc0d5

+ 40 - 1
controllers/activity.go

@@ -20,6 +20,45 @@ type ActivityNoLoginController struct {
 	BaseAuthMobileController
 }
 
+// @Title 活动类型列表
+// @Description 活动类型列表接口
+// @Param   IsResearch   query   bool  true       "是否为研选"
+// @Success 200 {object} models.ActivityTypeListResp
+// @router /activityTypelist [get]
+func (this *ActivityNoLoginController) List() {
+	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"
+		br.Ret = 408
+		return
+	}
+	resp := new(models.ActivityTypeListResp)
+	isResearch, _ := this.GetBool("IsResearch", false)
+	var condition string
+
+	//是否仅展示研选下的活动类型
+	if isResearch {
+		condition = " AND source_type IN (0,2) "
+	}
+	list, err := models.GetActivityTypeList(condition)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 // @Title 活动类型下的主题列表
 // @Description 获取活动类型下的主题列表接口
 // @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
@@ -407,7 +446,7 @@ func (this *ActivityNoLoginController) ActivityListNew() {
 	}
 	//未开始进行中默认按照时间正序
 	if activeState == "1" || activeState == "1,2" || activeState == "" {
-		conditionOrder = ` ORDER BY art.activity_time ASC  `
+		conditionOrder = ` ORDER BY  art.top_time DESC , art.activity_time ASC  `
 	}
 
 	condition += conditionOrder

+ 35 - 0
controllers/morning_meeting.go

@@ -1,6 +1,7 @@
 package controllers
 
 import (
+	"encoding/json"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/services"
@@ -179,3 +180,37 @@ func (this *MorningMeetingController) GatherDetail() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 晨会精华点击记录
+// @Description 晨会精华点击记录接口
+// @Param	request	body models.ArticleCollectResp true "type json string"
+// @Success 200
+// @router /history/add [post]
+func (this *MorningMeetingController) SpecialMsg() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请重新登录"
+		br.Ret = 408
+		return
+	}
+	var req models.AddCygxMorningMeetingReviewChapterHistoryReq
+
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	articleId := req.Id
+	sourcePage := req.SourcePage
+
+	go services.AddCygxMorningMeetingReviewChapterHistory(user, articleId, sourcePage)
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功!"
+}

+ 2 - 0
models/activity.go

@@ -154,6 +154,7 @@ type ActivityDetail struct {
 	IsResearchPoints          bool                       `description:"是否为研选扣点"`
 	CancelDeadline            string                     `description:"取消报名截止时间"`
 	ChartPermissionNameDeputy string                     `description:"副行业名称"`
+	TopTime                   int                        `description:"置顶时间"`
 }
 
 // 活动详情
@@ -232,6 +233,7 @@ type ActivityListResp struct {
 	SiginupDeadline         string                     `description:"报名截止时间"`
 	CancelDeadline          string                     `description:"取消报名截止时间"`
 	IsYidongActivity        bool                       `description:"是否属于易董同步过来的活动"`
+	TopTime                 int                        `description:"置顶时间"`
 }
 
 type ActivityCheck struct {

+ 2 - 2
models/activity_type.go

@@ -17,9 +17,9 @@ type ActivityTypeListResp struct {
 }
 
 // 列表
-func GetActivityTypeList() (items []*ActivityType, err error) {
+func GetActivityTypeList(condition string) (items []*ActivityType, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_activity_type ORDER BY sort DESC`
+	sql := `SELECT * FROM cygx_activity_type WHERE 1= 1  ` + condition + `  ORDER BY sort DESC`
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }

+ 8 - 0
models/cygx_morning_meeting_review_chapter.go

@@ -20,6 +20,14 @@ type CygxMorningMeetingReviewChapter struct {
 	Content              string    `json:"content"`             // 内容
 }
 
+// 通过ID获取详情
+func GetCygxMorningMeetingReviewChapterDetail(id int) (item *CygxMorningMeetingReviewChapter, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_review_chapter  WHERE id =? `
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
 // 列表
 func GetCygxMorningMeetingReviewChapterList(condition string, pars []interface{}) (items []*CygxMorningMeetingGatherDetailListResp, err error) {
 	o := orm.NewOrm()

+ 1 - 0
models/db.go

@@ -96,6 +96,7 @@ func init() {
 		new(CygxYanxuanSpecialFollow),
 		new(CygxYanxuanSpecialCompany),
 		new(CygxResourceData),
+		new(CygxMorningMeetingReviewChapterHistory),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 36 - 0
models/morning_meeting_review_chapter_history.go

@@ -0,0 +1,36 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxMorningMeetingReviewChapterHistory struct {
+	Id               int       `orm:"column(id);pk"`
+	ArticleId        int       `description:"文章ID"`
+	UserId           int       `description:"用户ID"`
+	CreateTime       time.Time `description:"创建时间"`
+	Mobile           string    `description:"手机号"`
+	Email            string    `description:"邮箱"`
+	CompanyId        int       `description:"公司id"`
+	CompanyName      string    `description:"公司名称"`
+	RealName         string    `description:"用户实际名称"`
+	SellerName       string    `description:"所属销售"`
+	SourcePage       string    `description:"页面来源 微信、首页、展开"`
+	RegisterPlatform int       `description:"来源 1小程序,2:网页"`
+	ModifyTime       time.Time `description:"更新时间"`
+	MeetingId        int       `description:"晨会精华主表ID"`
+}
+
+type AddCygxMorningMeetingReviewChapterHistoryReq struct {
+	Id         int    `description:"晨会精华ID"`
+	SourcePage string `description:"页面来源 微信、首页、展开"`
+}
+
+// 添加历史信息
+func AddCygxMorningMeetingReviewChapterHistory(item *CygxMorningMeetingReviewChapterHistory) (lastId int64, err error) {
+	o := orm.NewOrm()
+	item.ModifyTime = time.Now()
+	lastId, err = o.Insert(item)
+	return
+}

+ 1 - 0
models/product_interior.go

@@ -85,6 +85,7 @@ type CygxProductInteriorResp struct {
 	VisibleRange      int                       `description:"设置可见范围1全部,0内部"`
 	Abstract          string                    `description:"摘要"`
 	Department        string                    `description:"作者"`
+	Pv                int                       `description:"PV"`
 }
 
 type ProductInteriorUrlResp struct {

+ 11 - 0
models/product_interior_history.go

@@ -27,3 +27,14 @@ func AddCygxProductInteriorHistory(item *CygxProductInteriorHistory) (lastId int
 	lastId, err = o.Insert(item)
 	return
 }
+
+// 列表
+func GetCygxProductInteriorHistoryList(condition string, pars []interface{}) (items []*CygxProductInteriorHistory, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_product_interior_history as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 17 - 0
models/report_history_record.go

@@ -78,3 +78,20 @@ func GetNewArticleHistoryRecord(uid, articleId int) (item *AddStopTimeNewRep, er
 	err = o.Raw(sql, uid, articleId).QueryRow(&item)
 	return
 }
+
+type ListPvResp struct {
+	ArticleId int `description:"文章ID"`
+	Pv        int `description:"pv"`
+}
+
+// 列表
+func GetCygxReportHistoryRecordListPv(condition string, pars []interface{}) (items []*ListPvResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT  article_id ,COUNT(*)  as  pv  FROM cygx_report_history_record WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += " GROUP BY article_id "
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 1 - 0
models/report_selection.go

@@ -17,6 +17,7 @@ type CygxReportSelectionRep struct {
 	ReadNum           int    `description:"阅读次数"`
 	Periods           string `description:"期数"`
 	MarketStrategy    string `description:"市场策略核心逻辑汇总"`
+	Pv                int    `description:"pv"`
 }
 
 type CygxReportSelectionListPublicRep struct {

+ 18 - 0
routers/commentsRouter.go

@@ -133,6 +133,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ActivityNoLoginController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ActivityNoLoginController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/activityTypelist`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ActivityNoLoginController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ActivityNoLoginController"],
         beego.ControllerComments{
             Method: "LabelTypeList",
@@ -727,6 +736,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MorningMeetingController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MorningMeetingController"],
+        beego.ControllerComments{
+            Method: "SpecialMsg",
+            Router: `/history/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ProductInteriorController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:ProductInteriorController"],
         beego.ControllerComments{
             Method: "Detail",

+ 1 - 0
services/activity.go

@@ -1075,6 +1075,7 @@ func ActivityArrButtonShow(items []*models.ActivityDetail, user *models.WxUserIt
 			SiginupDeadline:         v.SiginupDeadline,
 			CancelDeadline:          v.CancelDeadline,
 			IsYidongActivity:        v.IsYidongActivity,
+			TopTime:                 v.TopTime,
 		}
 		au := new(models.UserPermissionAuthInfo)
 		au.SellerName = authInfo.SellerName

+ 50 - 0
services/morning_meeting.go

@@ -0,0 +1,50 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"time"
+)
+
+// 添加晨会点评点击记录
+func AddCygxMorningMeetingReviewChapterHistory(user *models.WxUserItem, articleId int, sourcePage string) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("添加晨会点评点击记录失败 ,AddCygxMorningMeetingReviewChapterHistory err"+err.Error(), "id:", articleId, "sourcePage:", sourcePage, "userid:", user.UserId), 2)
+		}
+	}()
+
+	detail, e := models.GetCygxMorningMeetingReviewChapterDetail(articleId)
+	if e != nil {
+		err = errors.New("GetCygxMorningMeetingReviewChapterDetail, Err: " + e.Error())
+		return
+	}
+	historyRecord := new(models.CygxMorningMeetingReviewChapterHistory)
+	historyRecord.UserId = user.UserId
+	historyRecord.ArticleId = articleId
+	historyRecord.SourcePage = sourcePage
+	historyRecord.CreateTime = time.Now()
+	historyRecord.Mobile = user.Mobile
+	historyRecord.Email = user.Email
+	historyRecord.CompanyId = user.CompanyId
+	historyRecord.CompanyName = user.CompanyName
+	historyRecord.MeetingId = int(detail.MeetingId)
+	historyRecord.RegisterPlatform = utils.REGISTER_PLATFORM
+	sellerItem, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
+		return
+	}
+	historyRecord.RealName = user.RealName
+	if sellerItem != nil {
+		historyRecord.SellerName = sellerItem.RealName
+	}
+	_, e = models.AddCygxMorningMeetingReviewChapterHistory(historyRecord)
+	if e != nil {
+		err = errors.New("AddCygxMorningMeetingReviewChapterHistorymodels, Err: " + e.Error())
+		return
+	}
+	return
+}

+ 28 - 0
services/product_interior.go

@@ -133,3 +133,31 @@ func AddCygxProductInteriorHistory(user *models.WxUserItem, articleId int) (err
 	_, err = models.AddCygxProductInteriorHistory(historyRecord)
 	return
 }
+
+// 获取产品内测的阅读数据
+func GetCygxProductInteriorHistoryListPvMap(productInteriorIs []int) (mapPv map[int]int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("获取产品内测的阅读数据,信息失败,Err:"+err.Error(), 3)
+		}
+	}()
+	lenproductInteriorIs := len(productInteriorIs)
+	if lenproductInteriorIs == 0 {
+		return
+	}
+	var condition string
+	var pars []interface{}
+	condition = ` AND product_interior_id IN (` + utils.GetOrmInReplace(lenproductInteriorIs) + `) `
+	pars = append(pars, productInteriorIs)
+	list, err := models.GetCygxProductInteriorHistoryList(condition, pars)
+	if err != nil {
+		return
+	}
+	mapPv = make(map[int]int, 0)
+	for _, v := range list {
+		mapPv[v.ProductInteriorId]++
+	}
+	return
+}

+ 27 - 0
services/report_history_record.go

@@ -39,3 +39,30 @@ func AddCygxReportHistoryRecord(item *models.CygxReportHistoryRecord) (err error
 	}
 	return
 }
+
+// 获取 报告精选,本周研究汇总、上周纪要汇总Pv 阅读数据
+func GetCygxReportHistoryRecordListMap(articleIds []int, reportType string) (mapPv map[int]int) {
+	var err error
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("获取产品内测的阅读数据,信息失败,Err:"+err.Error(), 3)
+		}
+	}()
+	lenArr := len(articleIds)
+	if lenArr == 0 {
+		return
+	}
+	var condition string
+	var pars []interface{}
+	condition = ` AND article_id IN (` + utils.GetOrmInReplace(lenArr) + `) AND  report_type = ?`
+	pars = append(pars, articleIds, reportType)
+	list, e := models.GetCygxReportHistoryRecordListPv(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		return
+	}
+	mapPv = make(map[int]int, 0)
+	for _, v := range list {
+		mapPv[v.ArticleId] = v.Pv
+	}
+	return
+}

+ 8 - 0
services/resource_data.go

@@ -158,7 +158,9 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 			err = errors.New("GetResourceDataList, Err: " + e.Error())
 			return
 		}
+		mapPv := GetCygxReportHistoryRecordListMap(minutessummaryIds, "szjyhz")
 		for _, v := range listresearchsummary {
+			v.Pv = mapPv[v.ArticleId]
 			v.PublishDate = utils.TimeRemoveHms2(v.PublishDate)
 			mapItems[fmt.Sprint("minutessummary", v.ArticleId)].Minutessummary = v
 		}
@@ -175,7 +177,9 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 			err = errors.New("GetReportSelectionListHome, Err: " + e.Error())
 			return
 		}
+		mapPv := GetCygxReportHistoryRecordListMap(minutessummaryIds, "bzyjhz")
 		for _, v := range listresearchsummary {
+			v.Pv = mapPv[v.ArticleId]
 			v.PublishDate = utils.TimeRemoveHms2(v.PublishDate)
 			mapItems[fmt.Sprint("researchsummary", v.ArticleId)].Researchsummary = v
 		}
@@ -191,8 +195,10 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 			err = errors.New("GetCygxProductInteriorList, Err: " + e.Error())
 			return
 		}
+		ProductInteriorHistoryMap := GetCygxProductInteriorHistoryListPvMap(articleIds)
 		for _, v := range listProductInterior {
 			v.Body = ProductInteriorHtml(v.Body)
+			v.Pv = ProductInteriorHistoryMap[v.ProductInteriorId]
 			v.PublishTime = utils.TimeRemoveHms2(v.PublishTime)
 			mapItems[fmt.Sprint("productinterior", v.ProductInteriorId)].ProductInterior = v
 		}
@@ -434,10 +440,12 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 			err = errors.New("GetReportSelectionList, Err: " + e.Error())
 			return
 		}
+		mapPv := GetCygxReportHistoryRecordListMap(reportselectionIds, "bgjx")
 		for _, v := range listreportselection {
 			v.Title += "(第" + v.Periods + "期)"
 			v.MarketStrategy = AnnotationHtml(v.MarketStrategy)
 			v.PublishDate = utils.TimeRemoveHms2(v.PublishDate)
+			v.Pv = mapPv[v.ArticleId]
 			mapItems[fmt.Sprint("reportselection", v.ArticleId)].ReportSelection = v
 		}
 	}