Browse Source

Merge branch 'crm/crm_16.5' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

zhangchuanxing 1 month ago
parent
commit
076660fd7b

+ 67 - 12
controllers/cygx/user_rai_label.go

@@ -6,6 +6,7 @@ import (
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
+	cygxService "hongze/hz_crm_api/services/cygx"
 	"hongze/hz_crm_api/utils"
 	"strconv"
 	"time"
@@ -160,10 +161,13 @@ func (this *UserRaiLabelController) Detail() {
 			br.ErrMsg = "操作失败,Err:" + errInfo.Error()
 			return
 		}
+		activitySignupDetai, _ := cygx.GetCygxActivitySignupDetailDetailLast(sourceId, detail.UserId)
 		item.ActivityName = activityInfo.ActivityName
 		item.ActivityTypeName = activityInfo.ActivityTypeName
 		item.ActivityTime = activityInfo.ActivityTime
-		item.Duration = "5'30''"
+		if activitySignupDetai != nil {
+			item.Duration = activitySignupDetai.Duration
+		}
 		item.Label = detail.Label
 		resp.Activity = item
 	case 3, 5:
@@ -199,18 +203,69 @@ func (this *UserRaiLabelController) Detail() {
 		item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
 		resp.Seller = item
 	case 7, 8:
-		detailArticle, err := cygx.GetArticleIdInfoByArticleId(sourceId)
-		if err != nil {
-			br.Msg = "内容不存在"
-			br.ErrMsg = "操作失败,Err:" + err.Error()
-			return
-		}
 		item := new(cygx.WxUserRaiLabelArticleResp)
-		item.Title = detailArticle.Title
-		item.PublishDate = detailArticle.PublishDate
-		item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
-		item.SourceText = "查研观向小程序"
-		item.StopTime = "2:30"
+		switch detail.TableName {
+		case "cygx_article":
+			//文章
+			detailArticle, err := cygx.GetArticleIdInfoByArticleId(sourceId)
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			historyDetail, err := cygx.GetCygxArticleHistoryRecordAllDetailLast(sourceId, detail.UserId)
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			item.Title = detailArticle.Title
+			item.PublishDate = detailArticle.PublishDate.Format(utils.FormatDateTime)
+			item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
+			item.SourceText = cygxService.GetArticleSourcePlatformText(historyDetail.RegisterPlatform)
+			item.StopTime = strconv.Itoa(historyDetail.StopTime)
+
+		case "cygx_report_selection":
+			//报告精选
+			detailReportSelection, err := cygx.GetCygxReportSelectionInfoById(sourceId)
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			historyDetail, err := cygx.GetCygxReportHistoryRecordDetailLast(sourceId, detail.UserId, "bgjx")
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			item.Title = detailReportSelection.Title
+			item.PublishDate = detailReportSelection.PublishDate
+			item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
+			item.SourceText = cygxService.GetArticleSourcePlatformText(historyDetail.RegisterPlatform)
+			item.StopTime = strconv.Itoa(historyDetail.StopTime)
+
+		case "cygx_research_summary":
+			//本周研究汇总
+			detailResearchSummary, err := cygx.GetCygxResearchSummaryInfoById(sourceId)
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			historyDetail, err := cygx.GetCygxReportHistoryRecordDetailLast(sourceId, detail.UserId, "bzyjhz")
+			if err != nil {
+				br.Msg = "内容不存在"
+				br.ErrMsg = "操作失败,Err:" + err.Error()
+				return
+			}
+			item.Title = detailResearchSummary.Title
+			item.PublishDate = detailResearchSummary.PublishDate
+			item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
+			item.SourceText = cygxService.GetArticleSourcePlatformText(historyDetail.RegisterPlatform)
+			item.StopTime = strconv.Itoa(historyDetail.StopTime)
+		}
+
 		item.Label = detail.Label
 		resp.Article = item
 	}

+ 5 - 0
controllers/roadshow/calendar_meeting_user.go

@@ -7,6 +7,7 @@ import (
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
+	cygxService "hongze/hz_crm_api/services/cygx"
 	"hongze/hz_crm_api/utils"
 	"strconv"
 	"strings"
@@ -115,6 +116,10 @@ func (this *CalendarMeetingUserController) Add() {
 		br.ErrMsg = "操作失败-MultiAddRsCalendarMeetingUser!Err:" + err.Error()
 		return
 	}
+
+	for _, v := range items {
+		cygxService.RoadShowWxUserRaiLabelRedisAdd(rsCalendarId, v.UserId, v.CreateTime) //添加用户参加路演标签到Redis
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "添加成功"

+ 8 - 0
models/cygx/activity_signup_detail.go

@@ -156,3 +156,11 @@ func UpdateActivitySignupDetailMultiByYiDong(items []*CygxActivitySignupDetail)
 	}
 	return
 }
+
+// 根据用户ID,文章ID获取用户最新一条参会记录
+func GetCygxActivitySignupDetailDetailLast(articleId, userId int) (item *CygxActivitySignupDetail, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_activity_signup_detail WHERE   activity_id = ?  AND user_id = ?     ORDER BY id DESC    LIMIT 1 `
+	err = o.Raw(sql, articleId, userId).QueryRow(&item)
+	return
+}

+ 35 - 1
models/cygx/askserie_video_history_record.go

@@ -1,6 +1,9 @@
 package cygx
 
-import "github.com/beego/beego/v2/client/orm"
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
 
 type CygxAskserieVideoHistoryRecordResp struct {
 	Id               int    `orm:"column(id);pk"`
@@ -72,3 +75,34 @@ func GetCygxAskserieVideoCollectionList(condition string, pars []interface{}) (i
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+type CygxArticleHistoryRecordAll struct {
+	Id               int `orm:"column(id);pk"`
+	ArticleId        int
+	UserId           int
+	CreateTime       string
+	ModifyTime       time.Time
+	Mobile           string    `description:"手机号"`
+	Email            string    `description:"邮箱"`
+	CompanyId        int       `description:"公司id"`
+	CompanyName      string    `description:"公司名称"`
+	StopTime         int       `description:"停留时间"`
+	OutType          int       `description:"退出方式,1正常退出,2强制关闭"`
+	Source           string    `description:"来源,MOBILE:手机端,PC:电脑端"`
+	RealName         string    `description:"用户实际名称"`
+	CreateDateApi    time.Time `description:"同步创建时间"`
+	CelueHistoryId   int       `description:"策略平台记录的ID"`
+	Platfor          int       `description:"PV阅读记录来源,1:查研观向,2:策略平台"`
+	IsDel            int       `description:"是否删除"`
+	RegisterPlatform int       `description:"来源"`
+	CompanyStatus    string    `description:"公司状态"`
+	SellerName       string    `description:"所属销售"`
+}
+
+// 根据用户ID,文章ID获取用户最新一条阅读记录
+func GetCygxArticleHistoryRecordAllDetailLast(articleId, userId int) (item *CygxArticleHistoryRecordAll, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_article_history_record_all WHERE   article_id = ?  AND user_id = ?   AND is_del = 0  ORDER BY id DESC    LIMIT 1 `
+	err = o.Raw(sql, articleId, userId).QueryRow(&item)
+	return
+}

+ 32 - 0
models/cygx/report_history_record.go

@@ -0,0 +1,32 @@
+package cygx
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxReportHistoryRecord struct {
+	Id               int `orm:"column(id);pk"`
+	ArticleId        int
+	UserId           int
+	CreateTime       time.Time
+	Mobile           string    `description:"手机号"`
+	Email            string    `description:"邮箱"`
+	CompanyId        int       `description:"公司id"`
+	CompanyName      string    `description:"公司名称"`
+	ModifyTime       time.Time `description:"修改时间"`
+	ReportType       string    `description:"报告类型,bgjx:报告精选、bzyjhz:本周研究汇总、szjyhz:上周纪要汇总"`
+	RealName         string    `description:"用户实际名称"`
+	SellerName       string    `description:"所属销售"`
+	StopTime         int       `description:"停留时间"`
+	OutType          int       `description:"退出方式,1正常退出,2强制关闭"`
+	RegisterPlatform int       `description:"来源 1小程序,2:网页"`
+}
+
+// 根据用户ID,文章ID获取用户最新一条阅读记录
+func GetCygxReportHistoryRecordDetailLast(articleId, userId int, reportType string) (item *CygxArticleHistoryRecordAll, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_report_history_record WHERE   article_id = ?  AND user_id = ?   AND report_type = ?    ORDER BY id DESC    LIMIT 1 `
+	err = o.Raw(sql, articleId, userId, reportType).QueryRow(&item)
+	return
+}

+ 8 - 7
models/cygx/wx_user_rai_label.go

@@ -21,6 +21,7 @@ type WxUserRaiLabel struct {
 	SysUserRealName string    `description:"创建人名称"`
 	CreateTime      time.Time `description:"创建时间"`
 	ModifyTime      time.Time `description:"更新时间"`
+	TableName       string    `description:"数据来源的表名"`
 }
 
 type WxUserRaiLabelList struct {
@@ -88,7 +89,7 @@ func GetWxUserRaiLabelListByUserIds(userIdArr []int) (list []*WxUserRaiLabelList
 			WHERE
 				user_id IN ( ` + utils.GetOrmInReplace(lenArr) + ` ) 
 			ORDER BY
-				user_id DESC 
+				create_time DESC 
 			) AS t 
 		WHERE
 			t.rank <= 10 
@@ -165,12 +166,12 @@ type WxUserRaiLabelSellerResp struct {
 }
 
 type WxUserRaiLabelArticleResp struct {
-	Title       string    `description:"标题"`
-	PublishDate time.Time `description:"发布时间"`
-	CreateTime  string    `description:"创建时间"`
-	SourceText  string    `description:"阅读来源"`
-	StopTime    string    `description:"阅读停留时间"`
-	Label       string    `description:"标签内容"`
+	Title       string `description:"标题"`
+	PublishDate string `description:"发布时间"`
+	CreateTime  string `description:"创建时间"`
+	SourceText  string `description:"阅读来源"`
+	StopTime    string `description:"阅读停留时间"`
+	Label       string `description:"标签内容"`
 }
 
 type WxUserRaiLabelRedis struct {

+ 19 - 0
services/cygx/user_rai_label.go

@@ -51,3 +51,22 @@ func ActivityWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (er
 	}
 	return
 }
+
+// 添加用户参加路演标签到Redis
+func RoadShowWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
+			go alarm_msg.SendAlarmMsg("添加用户参加路演标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
+		}
+	}()
+	log := &cygx.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 3, CreateTime: createTime}
+	if utils.Re == nil {
+		err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
+		if err != nil {
+			fmt.Println("RoadShowWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
+		}
+	}
+	return
+}