Эх сурвалжийг харах

Merge branch 'need/cygx_999' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 5 сар өмнө
parent
commit
d76647bf62

+ 1 - 0
controllers/home.go

@@ -645,6 +645,7 @@ func (this *HomeController) NewList() {
 	//行业筛选
 	if chartPermissionId > 0 {
 		conditionInit += " AND chart_permission_id  =  " + strconv.Itoa(chartPermissionId)
+		condition += " AND chart_permission_id  =  " + strconv.Itoa(chartPermissionId)
 	}
 
 	//if tagIds == "" && chartPermissionId == 0 {

+ 16 - 4
models/ficc_report/report.go

@@ -137,11 +137,23 @@ func GetByReportId(reportId int) (item *Report, err error) {
 func GetFiccRreportToCygxArticle(condition string, pars []interface{}) (items []*Report, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ` SELECT	* FROM report WHERE state = 2 AND  is_public_publish = 1 
-			AND classify_name_first IN ('宏观报告','晨会纪要','调研纪要')
-			AND classify_name_second IN ('大类资产周报','晨会纪要','黑色调研')
-			AND IF ( classify_name_first = '宏观报告' , classify_name_second = '大类资产周报' ,1=1 )
+			AND classify_name_first IN ('宏观报告','晨会纪要','调研纪要','数据点评')
+			AND classify_name_second IN ('大类资产周报','晨会纪要','黑色调研','宏观G2观察','人民币汇率双周报','房地产市场跟踪','黄金月报','铜行业数据点评','原油基本面推演','原油船期数据跟踪','EIA原油库存点评')
+			AND IF ( classify_name_first = '宏观报告' , classify_name_second IN  ('大类资产周报','宏观G2观察''人民币汇率双周报''房地产市场跟踪''黄金月报')  ,1=1 )
 			AND IF ( classify_name_first = '晨会纪要' , classify_name_second = '晨会纪要' ,1=1 )
-			AND IF ( classify_name_first = '调研纪要' , classify_name_second = '黑色调研' ,1=1 ) ` + condition + ` ORDER BY  modify_time	 DESC   `
+			AND IF ( classify_name_first = '调研纪要' , classify_name_second = '黑色调研' ,1=1 ) 
+			AND IF ( classify_name_first = '数据点评' , classify_name_second  IN  ('铜行业数据点评','原油基本面推演','原油船期数据跟踪','EIA原油库存点评')  ,1=1 ) ` + condition + ` ORDER BY  modify_time	 DESC   `
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+type GetReporteSetResp struct {
+	ClassifyNameFirst  string `description:"一级分类名称" `
+	ClassifyNameSecond string `description:"二级分类名称"`
+	TagName            string `description:"自定义标签筛选"`
+}
+
+// 获取同步规则种类
+type GetReporteSetListResp struct {
+	List []*GetReporteSetResp
+}

+ 4 - 2
models/resource_data.go

@@ -21,6 +21,7 @@ type CygxResourceData struct {
 	SearchTitle       string    `description:"搜索匹配用的标题"`
 	SearchContent     string    `description:"搜索匹配用的内容"`
 	SearchOrderTime   string    `description:"搜索排序时间"`
+	TagName           string    `description:"标签名"`
 }
 
 // FICC研报小程序
@@ -132,6 +133,7 @@ func UpdateResourceDataByItem(item *CygxResourceData) (err error) {
 	updateParams["PublishDate"] = item.PublishDate
 	updateParams["SearchTag"] = item.SearchTag
 	updateParams["SearchTitle"] = item.SearchTitle
+	updateParams["TagName"] = item.TagName
 	updateParams["SearchContent"] = item.SearchContent
 	updateParams["SearchOrderTime"] = item.SearchOrderTime
 	ptrStructOrTableName := "cygx_resource_data"
@@ -201,7 +203,7 @@ func HideCygxResourceDataFiccReport(sourceIds []int) (err error) {
 		}
 	}()
 	//隐藏资源表
-	sql := ` UPDATE cygx_resource_data SET is_hide= 1  WHERE source_id IN (` + utils.GetOrmInReplace(lenArr) + `)  AND source = ? `
+	sql := ` DELETE  FROM cygx_resource_data  WHERE source_id IN (` + utils.GetOrmInReplace(lenArr) + `)  AND source = ? `
 	_, err = to.Raw(sql, sourceIds, utils.CYGX_OBJ_FICC_REPORT).Exec()
 	if err != nil {
 		return
@@ -209,7 +211,7 @@ func HideCygxResourceDataFiccReport(sourceIds []int) (err error) {
 
 	//对应文章取消发布
 	sql = ` UPDATE cygx_article SET publish_status= 0  WHERE report_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
-	_, err = to.Raw(sql, sourceIds, utils.CYGX_OBJ_FICC_REPORT).Exec()
+	_, err = to.Raw(sql, sourceIds).Exec()
 	if err != nil {
 		return
 	}

+ 2 - 0
models/seller.go

@@ -18,6 +18,7 @@ type AdminItem struct {
 	OpenId         string `description:"openId"`
 	CompanyName    string `description:"客户名称"`
 	UserId         int    `description:"联系人id"`
+	ShareSellerId  int    `description:"共享销售ID"`
 }
 
 func GetSellerByCompanyId(companyId int) (item *AdminItem, err error) {
@@ -95,6 +96,7 @@ func GetAdminListByGroupId(groupId int) (items []*Admin, err error) {
 func GetRaiSellerByCompanyId(companyId int) (item *AdminItem, err error) {
 	o := orm.NewOrmUsingDB("weekly_report")
 	sql := ` SELECT
+   			a.share_seller_id,
      		b.admin_id,
 			b.real_name,
 			b.mobile 

+ 39 - 6
services/ficc_report.go

@@ -3,6 +3,7 @@ package services
 //FICC研报
 import (
 	"context"
+	"encoding/json"
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
@@ -164,6 +165,10 @@ func GetReportDetail(userinfo *models.WxUserItem, reportId int) (reportDetail fi
 	reportItem.ArticleId = detailArticle.ArticleId
 	reportItem.Disclaimer = GetConfigCodeDisclaimer()
 
+	if reportInfo.ClassifyNameFirst == "晨会纪要" && reportInfo.ClassifyNameSecond == "晨会纪要" {
+		reportItem.Title = "FICC/周期品晨会纪要"
+	}
+
 	//版头版尾样式
 	{
 		if reportInfo.HeadResourceId > 0 {
@@ -433,6 +438,7 @@ func GetChapterListByReportChapterIdList(classifyNameFirst string, reportId int,
 
 // 获取FICC研报到查研观向数据库中
 func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
+	//func GetFiccRreportToCygxArticle() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -453,6 +459,21 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 	//if len(reportList) == 0 {
 	//	return
 	//}
+	//获取研报的匹配关系
+	conf, e := models.GetConfigByCode(utils.GET_FICC_REPORT_SET)
+	if e != nil {
+		err = errors.New("GetConfigByCode, Err: " + e.Error())
+		return
+	}
+	if conf.ConfigValue == "" {
+		err = errors.New("同步FICC研报的规则配置值有误")
+		return
+	}
+	listFiccSet := new(ficc_report.GetReporteSetListResp)
+	if e = json.Unmarshal([]byte(conf.ConfigValue), &listFiccSet); e != nil {
+		err = errors.New("同步FICC研报的规则配置值解析失败 Err: " + e.Error())
+		return
+	}
 
 	if len(reportList) > 0 {
 		var reportIds []int
@@ -476,6 +497,9 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 			item.ReportId = v.Id
 			item.PublishDate = v.PublishTime.Format(utils.FormatDateTime)
 			item.Title = v.Title
+			if v.ClassifyNameFirst == "晨会纪要" && v.ClassifyNameSecond == "晨会纪要" {
+				item.Title = "FICC/周期品晨会纪要"
+			}
 			item.Body = v.Content
 			item.Abstract = v.Abstract
 			item.CreateDate = time.Now().Format(utils.FormatDate)
@@ -483,12 +507,19 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 			item.IsReport = 1
 			item.IsClass = 1
 
-			if (v.ClassifyNameFirst == "宏观报告" && v.ClassifyNameSecond == "大类资产周报") || (v.ClassifyNameFirst == "晨会纪要" && v.ClassifyNameSecond == "晨会纪要") || (v.ClassifyNameFirst == "调研纪要" && v.ClassifyNameSecond == "黑色调研") {
-				item.SubCategoryName = v.ClassifyNameSecond
-				item.MatchTypeName = v.ClassifyNameSecond
-			} else {
+			var haveSet bool
+			for _, vSet := range listFiccSet.List {
+				if v.ClassifyNameFirst == vSet.ClassifyNameFirst && v.ClassifyNameSecond == vSet.ClassifyNameSecond {
+					haveSet = true
+					item.SubCategoryName = v.ClassifyNameSecond
+					item.MatchTypeName = v.ClassifyNameSecond
+					continue
+				}
+			}
+			if !haveSet {
 				continue
 			}
+
 			detailCategory, detailCategoryErr := models.GetCygxReportMappingCelueDetailByZhoQiCategoryName(item.SubCategoryName)
 			if detailCategoryErr != nil {
 				continue
@@ -531,7 +562,7 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 					return err
 				}
 			}
-			UpdateFICCReportResourceData(v.Id)
+			UpdateFICCReportResourceData(v.Id, listFiccSet)
 
 			AddCygxReportMappingCategoryGroupByArticleId(articleIdMax)
 		}
@@ -545,7 +576,9 @@ func GetFiccRreportToCygxArticle(cont context.Context) (err error) {
 	}
 	var cygxFiccReportIds []int
 	for _, v := range listCygxFiccReport {
-		cygxFiccReportIds = append(cygxFiccReportIds, v.ReportId)
+		if v.PublishStatus == 1 {
+			cygxFiccReportIds = append(cygxFiccReportIds, v.ReportId)
+		}
 	}
 	lenArr := len(cygxFiccReportIds)
 	if lenArr == 0 {

+ 6 - 5
services/rai_serve_count.go

@@ -641,7 +641,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 
 		mapActivityeBill := make(map[string]bool)
 		for _, v := range listBillByActivity {
-			mapActivityeBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
+			mapActivityeBill[fmt.Sprint("UID_", v.Mobile, "SID_", v.SourceId)] = true
 		}
 
 		mapArticleBillDel := make(map[string]bool)
@@ -660,7 +660,11 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 		}
 
 		for _, v := range signUpDetailList {
-			if mapActivityeBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
+			if v.UserId == 0 && v.Mobile != "" {
+				v.UserId = mapUserMobileUserId[v.Mobile] // 空降的部分联系人 userid 为0这里做一下修复
+			}
+
+			if mapActivityeBill[fmt.Sprint("UID_", v.Mobile, "SID_", v.ActivityId)] { // 如果内容存在就不插入
 				continue
 			}
 			item := new(rai_serve.CygxRaiServeBill)
@@ -672,9 +676,6 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 				item.ServeTypeId = 2
 				item.ServeTypeName = "线下活动"
 			}
-			if v.UserId == 0 && v.Mobile != "" {
-				v.UserId = mapUserMobileUserId[v.Mobile] // 空降的部分联系人 userid 为0这里做一下修复
-			}
 
 			item.UserId = v.UserId
 			item.Mobile = v.Mobile

+ 9 - 2
services/resource_data.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/models/ficc_report"
 	"hongze/hongze_cygx/utils"
 	"strconv"
 	"strings"
@@ -470,7 +471,6 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 		for _, v := range listArticle {
 			//fmt.Println(v.ArticleId)
 			v.Body = ""
-			v.BodyHtml = ""
 			v.Source = 0          //配合前端这里强制改为 0
 			v.ArticleResponse = 0 //配合前端这里强制改为 0
 			//v.Source = utils.CYGX_OBJ_YANXUANSPECIAL
@@ -951,7 +951,7 @@ func initsql12_17() {
 }
 
 // 更新FICC研报
-func UpdateFICCReportResourceData(sourceId int) {
+func UpdateFICCReportResourceData(sourceId int, listFiccSet *ficc_report.GetReporteSetListResp) {
 	var err error
 	defer func() {
 		if err != nil {
@@ -1051,6 +1051,13 @@ func UpdateFICCReportResourceData(sourceId int) {
 		item.SearchContent = annotation + abstract + detail.FieldName + detail.Stock + industrialName + subjectName
 		item.SearchOrderTime = detail.PublishDate
 
+		//跟踪、深度、纪要三个自定义的搜索标签
+		for _, vSt := range listFiccSet.List {
+			if item.SearchTag == vSt.ClassifyNameSecond {
+				item.TagName = vSt.TagName
+			}
+		}
+
 		if totalData == 0 {
 			newId, e := models.AddCygxResourceData(item)
 			if e != nil {

+ 8 - 3
services/tag.go

@@ -182,7 +182,7 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 				resourceDataIdStrs = append(resourceDataIdStrs, strconv.Itoa(v))
 				resourceDataIdMap[v] = true
 			}
-			conditionInit += " AND id IN  (" + strings.Join(resourceDataIdStrs, ",") + ")   OR IF   ( source IN ('ficcreport') , search_tag IN ('黑色调研')  ,1=1 ) "
+			conditionInit += " AND id IN  (" + strings.Join(resourceDataIdStrs, ",") + ")   "
 		}
 	case 1: // 热门活动
 		conf, e := models.GetConfigByCode(utils.CYGX_TAG_HOT_ACTIVITY_ID)
@@ -258,7 +258,12 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 		conditionInit = "   AND source = '" + utils.CYGX_OBJ_ASKSERIEVIDEO + "'"
 
 	case 5: //固定标签【跟踪】,包含以下系列:医药-趋势观察 ,科技-产业跟踪 ,智造-产业跟踪 ,消费-月度调研 ,周期-(周度观点,产业跟踪)
-		condition = " AND sub_category_name  IN ('趋势观察','产业跟踪','月度调研')  AND category_name IN ('医药行业','智造行业','消费行业','科技行业') OR  ( sub_category_name IN  ('周度观点','产业跟踪')  AND  category_name  = '周期' )  AND publish_status = 1 "
+		condition = `   AND category_name IN ( '医药行业', '智造行业', '消费行业', '科技行业', '周期' )  
+						AND IF  ( category_name IN ( '医药行业' ), sub_category_name IN ( '趋势观察' ), 1 = 1 ) 
+						AND IF	( category_name IN ( '科技行业' ), sub_category_name IN ( '产业跟踪' ), 1 = 1 ) 
+						AND IF	( category_name IN ( '智造行业' ), sub_category_name IN ( '产业跟踪' ), 1 = 1 ) 
+						AND IF	( category_name IN ( '消费行业' ), sub_category_name IN ( '月度调研' ), 1 = 1 ) 
+						AND IF	( category_name IN ( '周期' ), sub_category_name IN ( '周度观点', '产业跟踪' ), 1 = 1 ) AND publish_status = 1 `
 		pars = make([]interface{}, 0)
 		articleList, e := models.GetArticleList(condition, pars)
 		if e != nil {
@@ -270,7 +275,7 @@ func GetConditionInitByTagIds(tagIds string, chartPermissionId int) (conditionIn
 		for _, v := range articleList {
 			articleIds = append(articleIds, strconv.Itoa(v.ArticleId))
 		}
-		conditionInit = "  AND source_id IN ( " + strings.Join(articleIds, ",") + ")  AND source = '" + utils.CYGX_OBJ_ARTICLE + "' OR IF   ( source IN ('ficcreport') , search_tag IN ('晨会纪要','大类资产周报')  ,1=1 )"
+		conditionInit = " AND source IN ('article','ficcreport')  AND  IF (  source = 'article'  , source_id IN ( " + strings.Join(articleIds, ",") + ")  ,1=1 )  AND IF   ( source =  'ficcreport' , tag_name IN ('跟踪')  ,1=1 )  "
 	}
 
 	return

+ 11 - 1
services/wechat_send_msg.go

@@ -106,7 +106,17 @@ func SendPermissionApplyTemplateMsg(realName, companyName, mobile, applyMethod,
 			err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
 			return
 		}
-		mobileOpenid = sealldetail.Mobile
+		//如果有共享销售给共享销售也推模版消息
+		if sealldetail.ShareSellerId > 0 {
+			adminShare, e := models.GetSellerByAdminId(sealldetail.ShareSellerId)
+			if e != nil {
+				err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+				return
+			}
+			mobileOpenid = sealldetail.Mobile + "," + adminShare.Mobile
+		} else {
+			mobileOpenid = sealldetail.Mobile
+		}
 	}
 
 	openIdList, e := models.GetWxOpenIdByMobileList(mobileOpenid)

+ 11 - 1
services/wx_category_template_msg.go

@@ -92,7 +92,17 @@ func SendPermissionApplyTemplateMsgAdminByYxCategory(req models.ApplyTryReq, com
 				err = errors.New("GetRaiSellerByCompanyId, Err: " + e.Error())
 				return
 			}
-			mobileOpneid = sealldetail.Mobile
+			//如果有共享销售给共享销售也推模版消息
+			if sealldetail.ShareSellerId > 0 {
+				adminShare, e := models.GetSellerByAdminId(sealldetail.ShareSellerId)
+				if e != nil {
+					err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+					return
+				}
+				mobileOpneid = sealldetail.Mobile + "," + adminShare.Mobile
+			} else {
+				mobileOpneid = sealldetail.Mobile
+			}
 		}
 	}
 

+ 1 - 0
utils/constants.go

@@ -237,6 +237,7 @@ const (
 	TPL_MSG                                  = "tpl_msg"                           //王芳手机号地址参数
 	TPL_MSG_NEI_RONG_ZU                      = "tpl_msg_nei_rong_zu"               //内容组四人
 	CYGX_TAG_HOT_ACTIVITY_ID          string = "cygx_tag_hot_activity_id"          //标签管理自定义的热门活动ID
+	GET_FICC_REPORT_SET               string = "get_ficc_report_set"               //同步FICC研报的规则
 )
 
 const (