فهرست منبع

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

xingzai 2 سال پیش
والد
کامیت
05fce1a152
7فایلهای تغییر یافته به همراه153 افزوده شده و 42 حذف شده
  1. 1 1
      models/article.go
  2. 54 14
      models/send_company_user.go
  3. 1 1
      services/article.go
  4. 1 1
      services/elastic.go
  5. 71 1
      services/send_company_user.go
  6. 22 22
      services/tactics.go
  7. 3 2
      services/task.go

+ 1 - 1
models/article.go

@@ -255,7 +255,7 @@ type ArticleDetailTest struct {
 	Body      string `json:"-" description:"内容"`
 }
 
-func GetArticleDetailTestById(articleId int) (item *ArticleDetailTest, err error) {
+func GetArticleDetailTestById(articleId int) (item *ArticleDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_article WHERE article_id = ? `
 	err = o.Raw(sql, articleId).QueryRow(&item)

+ 54 - 14
models/send_company_user.go

@@ -6,22 +6,35 @@ import (
 )
 
 type CompanyJson struct {
-	CompanyName  string `json:"name"`        //公司名称
-	ShortName    string `json:"short_name"`  //公司简称
-	CreditCode   string `json:"social"`      //社会信用代码
-	City         string `json:"city"`        //所在地级市或直辖市
-	SignType     string `json:"sign_type"`   //客户重要度(A类、B类、C类、D类)
-	Fe           string `json:"f_e"`         //客户类型(FICC、权益、策略)
-	IndustryName string `json:"industry"`    //所属行业(公募、私募、券商资管、保险、海外、其他类型)
-	Mobile       string `json:"sale_phone"`  //所属销售(销售手机号)
-	Status       string `json:"status"`      //客户状态(正式、试用)
-	Permission   string `json:"permissions"` //客户权限(医药,科技,智造,消费,策略,专家,路演服务,研选)
-	StartDate    string `json:"start_time"`  //服务期限开始时间
-	EndDate      string `json:"end_time"`    //服务期限结束时间
-	Info         string `json:"info"`        //简介
-	CreatedTime  string `json:"create_time"` //创建时间
+	CompanyName  string `json:"name"`       //公司名称
+	ShortName    string `json:"short_name"` //公司简称
+	CreditCode   string `json:"social"`     //社会信用代码
+	City         string `json:"city"`       //所在地级市或直辖市
+	SignType     string `json:"sign_type"`  //客户重要度(A类、B类、C类、D类)
+	Fe           string `json:"f_e"`        //客户类型(FICC、权益、策略)
+	IndustryName string `json:"industry"`   //所属行业(公募、私募、券商资管、保险、海外、其他类型)
+	Mobile       string `json:"sale_phone"` //所属销售(销售手机号)
+	Status       string `json:"status"`     //客户状态(正式、试用)
+	//Permission     string            `json:"permissions"`     //客户权限(医药,科技,智造,消费,策略,专家,路演服务,研选)
+	StartDate      string            `json:"start_time"`      //服务期限开始时间
+	EndDate        string            `json:"end_time"`        //服务期限结束时间
+	Info           string            `json:"info"`            //简介
+	CreatedTime    string            `json:"create_time"`     //创建时间
+	PermissionData []*PermissionData `json:"permission_data"` //创建时间
 	//CreatedTimes string //创建时间
 	EndDateTime time.Time //创建时间
+	Cid         int       // 公司ID
+}
+
+type PermissionDataList struct {
+	PermissionData []*PermissionData
+}
+type PermissionData struct {
+	PermissionName string `json:"permission_name"` //权限名称
+	StartTime      string `json:"start_time"`      //权限开始时间
+	EndTime        string `json:"end_time"`        //权限结束时间
+	IsTryOut       int    `json:"is_try_out"`      //权限是否试用:0=否,1=是
+	Money          int    `json:"money"`           //权限是否试用:0=否,1=是
 }
 
 type UserJson struct {
@@ -100,6 +113,33 @@ func GetSendCompanyList(condition string) (items []*CompanyJson, err error) {
 	return
 }
 
+type PermissionDataResp struct {
+	CompanyId      int       `description:"公司ID"`
+	PermissionName string    `description:"行业名称"`
+	Status         string    `description:"状态"`
+	StartDate      time.Time `description:"行业名称"`
+	EndDate        time.Time `description:"行业名称"`
+}
+
+func GetSendCompanyPermissionDataList(condition string, pars []interface{}) (items []*PermissionDataResp, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT
+				company_id,
+				c.permission_name,
+				cp.status,
+				cp.end_date,
+				cp.start_date 
+			FROM
+				company_report_permission AS cp
+				INNER JOIN chart_permission AS c ON cp.chart_permission_id = c.chart_permission_id 
+			WHERE
+				1 = 1
+				AND cp.STATUS IN ( '正式', '试用', '永续' )
+				AND c.chart_permission_name IN ( '医药', '消费', '科技', '智造', '策略', '买方研选', '专家', '路演服务' ) ` + condition + ` GROUP BY c.permission_name, cp.company_id `
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
 //获取FICC公司
 func GetSendCompanyFiccList(condition string) (items []*CompanyJson, err error) {
 	o := orm.NewOrm()

+ 1 - 1
services/article.go

@@ -693,7 +693,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 	var clueApiUrl string
 	clueApiUrl = fmt.Sprint(utils.ApiUrl, "articles/", artcleId)
 	fmt.Println(clueApiUrl)
-
+	GetSummarytoEs(artcleId)
 	authorization := utils.ApiAuthorization
 	body, err := PublicGetDate(clueApiUrl, authorization)
 	if err != nil {

+ 1 - 1
services/elastic.go

@@ -981,7 +981,7 @@ func EsArticleSearch(keyWord string, startSize, pageSize int, orderColumn string
 	queryMap["highlight"] = highlightMap
 	jsonBytes, _ := json.Marshal(queryMap)
 	fmt.Println(string(jsonBytes))
-	//utils.FileLog.Info(string(jsonBytes))
+	utils.FileLog.Info(string(jsonBytes))
 	request := client.Search(indexName).Source(queryMap) // sets the JSON request
 	searchByMatch, err := request.Do(context.Background())
 	if searchByMatch != nil {

+ 71 - 1
services/send_company_user.go

@@ -3,6 +3,7 @@ package services
 import (
 	"context"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"github.com/tealeg/xlsx"
 	"hongze/hongze_cygx/models"
@@ -168,7 +169,7 @@ func DotongbuShangHai(cont context.Context) (err error) {
 	}
 
 	//偶尔需要单独同步某一个公司的人员
-	//condition = ` AND c.company_id  =  5676  `
+	//condition = ` AND c.company_id  =  6599  `
 
 	//同30小时有变更的公司
 	DotongbuShangHaApi(condition)
@@ -205,6 +206,37 @@ func DotongbuShangHaApi(condition string) (err error) {
 		msg = "GetSendCompanyList Err:" + err.Error()
 		return
 	}
+	mappermissionData := make(map[int][]*models.PermissionData)
+	if len(companyList) > 0 {
+		comapnyIdArr := make([]int, 0)
+		for _, v := range companyList {
+			comapnyIdArr = append(comapnyIdArr, v.Cid)
+		}
+		var conditionComapny string
+		var pars []interface{}
+		conditionComapny += ` AND cp.company_id  IN (` + utils.GetOrmInReplace(len(comapnyIdArr)) + ` )  `
+		pars = append(pars, comapnyIdArr)
+		permissionDataList, e := models.GetSendCompanyPermissionDataList(conditionComapny, pars)
+		if e != nil {
+			err = errors.New("GetSendCompanyPermissionDataList, Err: " + e.Error())
+			return
+		}
+		var IsTryOut int
+		for _, v := range permissionDataList {
+			if v.Status == "试用" {
+				IsTryOut = 1
+			} else {
+				IsTryOut = 0
+			}
+			mappermissionData[v.CompanyId] = append(mappermissionData[v.CompanyId], &models.PermissionData{
+				PermissionName: v.PermissionName,
+				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
+				EndTime:        strconv.Itoa(int(v.EndDate.Unix())),
+				IsTryOut:       IsTryOut,
+			})
+		}
+	}
+
 	fmt.Println("权益客户", len(companyList))
 	var companyItems []*models.CompanyJson
 	if len(companyList) > 0 {
@@ -214,6 +246,9 @@ func DotongbuShangHaApi(condition string) (err error) {
 			companyList[k].Fe = "权益"
 			companyList[k].EndDate = strconv.Itoa(int(companyList[k].EndDateTime.Unix()))
 			//一次同步一百条
+			if len(mappermissionData[companyList[k].Cid]) > 0 {
+				companyList[k].PermissionData = mappermissionData[companyList[k].Cid]
+			}
 			companyItems = append(companyItems, companyList[k])
 			if (k+1)%100 == 0 {
 				data, err := json.Marshal(companyItems)
@@ -237,6 +272,7 @@ func DotongbuShangHaApi(condition string) (err error) {
 			jsonstr := string(data)
 			jsonstr = "{\"sync_data\": " + jsonstr + " }"
 			SendComapnyToShanghai(url, jsonstr, "权益")
+			utils.FileLog.Info("发送模版消息失败,msg:%s", jsonstr)
 			companyItems = make([]*models.CompanyJson, 0)
 		}
 	}
@@ -246,6 +282,37 @@ func DotongbuShangHaApi(condition string) (err error) {
 		msg = "GetSendCompanyFiccList Err:" + err.Error()
 		return err
 	}
+	mappermissionDataFicc := make(map[int][]*models.PermissionData)
+	if len(companyFiccList) > 0 {
+		comapnyIdArr := make([]int, 0)
+		for _, v := range companyFiccList {
+			comapnyIdArr = append(comapnyIdArr, v.Cid)
+		}
+		var conditionComapny string
+		var pars []interface{}
+		conditionComapny = ` AND cp.company_id  IN (` + utils.GetOrmInReplace(len(comapnyIdArr)) + ` )  `
+		pars = append(pars, comapnyIdArr)
+		permissionDataList, e := models.GetSendCompanyPermissionDataList(conditionComapny, pars)
+		if e != nil {
+			err = errors.New("GetSendCompanyPermissionDataList, Err: " + e.Error())
+			return
+		}
+		var IsTryOut int
+		for _, v := range permissionDataList {
+			if v.Status == "试用" {
+				IsTryOut = 1
+			} else {
+				IsTryOut = 0
+			}
+			mappermissionDataFicc[v.CompanyId] = append(mappermissionDataFicc[v.CompanyId], &models.PermissionData{
+				PermissionName: v.PermissionName,
+				StartTime:      strconv.Itoa(int(v.StartDate.Unix())),
+				EndTime:        strconv.Itoa(int(v.EndDate.Unix())),
+				IsTryOut:       IsTryOut,
+			})
+		}
+	}
+
 	fmt.Println("FICC客户", len(companyFiccList))
 	var companyFiccItems []*models.CompanyJson
 	if len(companyFiccList) > 0 {
@@ -254,6 +321,9 @@ func DotongbuShangHaApi(condition string) (err error) {
 		for k, _ := range companyFiccList {
 			companyFiccList[k].Fe = "FICC"
 			companyFiccList[k].EndDate = strconv.Itoa(int(companyFiccList[k].EndDateTime.Unix()))
+			if len(mappermissionData[companyList[k].Cid]) > 0 {
+				companyList[k].PermissionData = mappermissionData[companyList[k].Cid]
+			}
 			//一次同步一百条
 			companyFiccItems = append(companyFiccItems, companyFiccList[k])
 			if (k+1)%100 == 0 {

+ 22 - 22
services/tactics.go

@@ -719,38 +719,38 @@ func BodyAnalysis2(body string) (expertNumStr, expertContentStr, interviewDateSt
 	return
 }
 
-func GetSummarytoEs(cont context.Context) (err error) {
+func GetSummarytoEs(articleId int) (err error) {
 	defer func() {
 		if err != nil {
 			go utils.SendAlarmMsg("同步ES记录失败", 2)
 		}
 	}()
-	endDate := time.Now().AddDate(0, 0, -30).Format(utils.FormatDate)
-	//allList, err := models.GetArticleAll()
-	allList, err := models.GetArticleAllDate(endDate)
+	//endDate := time.Now().AddDate(0, 0, -30).Format(utils.FormatDate)
+	v, err := models.GetArticleDetailTestById(articleId)
+	//allList, err := models.GetArticleAllDate(endDate)
 	if err != nil {
 		fmt.Println("GetArticleAll Err:", err.Error())
 		return
 	}
 	indexName := utils.IndexName
-	for _, v := range allList {
-		content := html.UnescapeString(v.Body)
-		doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
-		if err != nil {
-			fmt.Println("create doc err:", err.Error())
-			return err
-		}
-		bodyText := doc.Text()
-		item := new(ElasticTestArticleDetail)
-		item.ArticleId = v.ArticleId
-		item.Title = v.Title
-		item.PublishDate = v.PublishDate
-		bodyText, _ = GetReportContentTextSub(v.Body)
-		item.BodyText = bodyText
-		item.CategoryId = strconv.Itoa(v.CategoryId)
-		item.ExpertBackground = v.ExpertBackground
-		EsAddOrEditData(indexName, strconv.Itoa(v.ArticleId), item)
-		fmt.Println(v.ArticleId)
+	//for _, v := range allList {
+	content := html.UnescapeString(v.Body)
+	doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
+	if err != nil {
+		fmt.Println("create doc err:", err.Error())
+		return err
 	}
+	bodyText := doc.Text()
+	item := new(ElasticTestArticleDetail)
+	item.ArticleId = v.ArticleId
+	item.Title = v.Title
+	item.PublishDate = v.PublishDate
+	bodyText, _ = GetReportContentTextSubNew(v.Body)
+	item.BodyText = bodyText
+	item.CategoryId = strconv.Itoa(v.CategoryId)
+	item.ExpertBackground = v.ExpertBackground
+	EsAddOrEditData(indexName, strconv.Itoa(v.ArticleId), item)
+	fmt.Println(v.ArticleId)
+	//}
 	return
 }

+ 3 - 2
services/task.go

@@ -17,8 +17,8 @@ func Task() {
 	if utils.RunMode == "release" && utils.IsTask {
 		//syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
 		//task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)
-		getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
-		task.AddTask("getSummarytoEs", getSummarytoEs)
+		//getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
+		//task.AddTask("getSummarytoEs", getSummarytoEs)
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */5 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
 		task.AddTask("getArticleListByApi", getArticleListByApi)
 
@@ -106,6 +106,7 @@ func Task() {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
 		task.AddTask("getArticleListByApi", getArticleListByApi)
 	}
+
 	//GetCygxActivityAttendanceDetail()
 	//CreateIndexNameArticleHistory()
 	//AddAllArticleHistory()