Browse Source

海通国际V1.2

xingzai 3 years ago
parent
commit
320d3092f1
9 changed files with 182 additions and 200 deletions
  1. 43 33
      controllers/article.go
  2. 35 60
      controllers/home.go
  3. 36 62
      controllers/search.go
  4. 2 0
      go.mod
  5. 11 0
      go.sum
  6. 8 6
      models/article_history_record.go
  7. 30 27
      models/crm_company.go
  8. 3 1
      models/page_history_record.go
  9. 14 11
      services/htgj.go

+ 43 - 33
controllers/article.go

@@ -978,8 +978,10 @@ func (this *ArticleController) Pdfwatermark() {
 // @Title 获取报告详情(无需token)
 // @Description 获取报告详情接口
 // @Param   ArticleId   query   int  true       "报告ID"
-// @Param   UserName     query string  true       "用户名称"
-// @Param   Sign   query   string  true       "加密签名"
+// @Param   CompanyCode     query string  false       "机构编号"
+// @Param   CompanyName     query string  false       "机构名称"
+// @Param   Email     query string  false       "邮箱"
+// @Param   Sign   query   string  false       "加密签名"
 // @Success 200 {object} models.ArticleDetailHtgjResp
 // @router /detailPublic [get]
 func (this *ArticleCommonController) DetailPublic() {
@@ -990,14 +992,27 @@ func (this *ArticleCommonController) DetailPublic() {
 	}()
 
 	articleId, _ := this.GetInt("ArticleId")
-	userName := this.GetString("UserName")
+	companyCode := this.GetString("CompanyCode")
+	companyNameHt := this.GetString("CompanyName")
+	email := this.GetString("Email")
 	sign := this.GetString("Sign")
-	errMsg, err, wxUser, companyName := services.CheckHtgj(userName, sign)
+	resp := new(models.ArticleDetailHtgjResp)
+	if companyCode == "" || email == "" {
+		resp.HasPermission = 2
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
 	if articleId <= 0 {
 		br.Msg = "文章不存在"
 		br.ErrMsg = "文章不存在,文章ID错误"
 		return
 	}
+
+	errMsg, err, wxUser, companyName := services.CheckHtgj(companyCode, companyNameHt, email, sign)
+
 	if errMsg != "" {
 		br.Msg = errMsg
 		return
@@ -1051,7 +1066,7 @@ func (this *ArticleCommonController) DetailPublic() {
 	if strings.Contains(detail.CategoryName, "研选") {
 		detail.IsResearch = true
 	}
-	resp := new(models.ArticleDetailHtgjResp)
+
 	resp.HasPermission = hasPermission
 	if hasPermission == 1 {
 		//获取销售手机号
@@ -1149,29 +1164,26 @@ func (this *ArticleCommonController) AddStopTimePublic() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-
 	articleId := req.ArticleId
 	stopTime := req.StopTime
 	outType := req.OutType
 	source := req.Source
-	userName := req.UserName
+	companyCode := req.CompanyCode
+	companyName := req.CompanyName
+	wxuUserName := req.Email
 	sign := req.Sign
-
-	var companyName, wxuUserName string
-	userNameList := strings.Split(userName, "-")
-	if len(userNameList) != 2 {
-		br.Msg = "用户信息格式错误"
-		br.ErrMsg = "用户信息格式错误" + userName
+	if companyCode == "" || companyName == "" || wxuUserName == "" || sign == "" {
+		br.Msg = "上传失败"
+		br.ErrMsg = "必填参数不能为空"
 		return
 	}
-	if sign == "" {
-		br.Msg = "签名错误"
-		br.ErrMsg = "签名错误" + sign
+	companyNameHt := companyCode[0:4] + "_" + companyName
+	errMsg := services.CheckSign(companyCode+companyName+wxuUserName, sign)
+	if errMsg != "" {
+		br.Msg = errMsg
 		return
 	}
-	companyName = userNameList[0]
-	wxuUserName = userNameList[1]
-	companyInfo, err := models.GetCompanyByName(companyName)
+	companyInfo, err := models.GetCompanyByName(companyNameHt)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
@@ -1185,7 +1197,7 @@ func (this *ArticleCommonController) AddStopTimePublic() {
 	}
 	uid := user.UserId
 	if articleId <= 0 {
-		br.Msg = "参数错误"
+		br.Msg = "文章ID不存在"
 		br.ErrMsg = "参数错误"
 		return
 	}
@@ -1341,24 +1353,22 @@ func (this *ArticleCommonController) PageHistoryPublic() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	userName := req.UserName
+	companyCode := req.CompanyCode
+	companyName := req.CompanyName
+	wxuUserName := req.Email
 	sign := req.Sign
-
-	var companyName, wxuUserName string
-	userNameList := strings.Split(userName, "-")
-	if len(userNameList) != 2 {
-		br.Msg = "用户信息格式错误"
-		br.ErrMsg = "用户信息格式错误" + userName
+	if companyCode == "" || companyName == "" || wxuUserName == "" || sign == "" {
+		br.Msg = "上传失败"
+		br.ErrMsg = "必填参数不能为空"
 		return
 	}
-	if sign == "" {
-		br.Msg = "签名错误"
-		br.ErrMsg = "签名错误" + sign
+	companyNameHt := companyCode[0:4] + "_" + companyName
+	errMsg := services.CheckSign(companyCode+companyName+wxuUserName, sign)
+	if errMsg != "" {
+		br.Msg = errMsg
 		return
 	}
-	companyName = userNameList[0]
-	wxuUserName = userNameList[1]
-	companyInfo, err := models.GetCompanyByName(companyName)
+	companyInfo, err := models.GetCompanyByName(companyNameHt)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()

+ 35 - 60
controllers/home.go

@@ -173,8 +173,10 @@ func (this *HomeController) ListHome() {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   ChartPermissionId   query   int  true       "品类id,最新传0"
-// @Param   UserName     query string  true       "用户名称"
-// @Param   Sign   query   string  true       "加密签名"
+// @Param   CompanyCode     query string  false       "机构编号"
+// @Param   CompanyName     query string  false       "机构名称"
+// @Param   Email     query string  false       "邮箱"
+// @Param   Sign   query   string  false       "加密签名"
 // @Success 200 {object} models.HomeListResp
 // @router /listPublic [get]
 func (this *BaseHomeController) ListHomePublic() {
@@ -184,25 +186,38 @@ func (this *BaseHomeController) ListHomePublic() {
 		this.ServeJSON()
 	}()
 
-	userName := this.GetString("UserName")
+	companyCode := this.GetString("CompanyCode")
+	companyName := this.GetString("CompanyName")
+	email := this.GetString("Email")
 	sign := this.GetString("Sign")
-	errMsg, errHt, wxUser, _ := services.CheckHtgj(userName, sign)
-	if errHt != nil {
-		br.Msg = "获取"
-		br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
-		return
-	}
-	if errMsg != "" {
-		br.Msg = errMsg
-		return
-	}
-	user := wxUser
-	if user == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,用户信息为空"
-		br.Ret = 408
-		return
+	var userType int
+	var err error
+	if companyCode != "" && companyName != "" && email != "" {
+		errMsg, errHt, wxUser, _ := services.CheckHtgj(companyCode, companyName, email, sign)
+		if errHt != nil {
+			br.Msg = "获取"
+			br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
+			return
+		}
+		if errMsg != "" {
+			br.Msg = errMsg
+			return
+		}
+		user := wxUser
+		if user == nil {
+			br.Msg = "请登录"
+			br.ErrMsg = "请登录,用户信息为空"
+			br.Ret = 408
+			return
+		}
+		userType, _, err = services.GetUserType(user.CompanyId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
+			return
+		}
 	}
+
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
 	chartPermissionId, _ := this.GetInt("ChartPermissionId")
@@ -215,19 +230,12 @@ func (this *BaseHomeController) ListHomePublic() {
 		currentIndex = 1
 	}
 	startSize = paging.StartIndex(currentIndex, pageSize)
-
 	var condition string
 	var pars []interface{}
 	var total int
 	resp := new(models.HomeListResp)
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp.HaveResearch = true
-	userType, _, err := services.GetUserType(user.CompanyId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
-		return
-	}
 	condition += ` AND is_summary = 1  `
 	if chartPermissionId > 0 {
 		categoryId, err := models.GetCategoryId(chartPermissionId)
@@ -276,33 +284,7 @@ func (this *BaseHomeController) ListHomePublic() {
 		br.Msg = "获取帖子数据失败,Err:" + err.Error()
 		return
 	}
-	//研选的五张图片
-	detailResearch, err := models.GetConfigByCode("category_research_img_url")
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "获取数据研选分类图片失败,Err:" + err.Error()
-		return
-	}
-	researchList := strings.Split(detailResearch.ConfigValue, "{|}")
-	//对应分类的所图片
-	detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
-		return
-	}
-	categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
-	mapCategoryUrl := make(map[string]string)
-	var categoryId string
-	var imgUrlChart string
-	for _, v := range categoryUrlList {
-		vslice := strings.Split(v, "_")
-		categoryId = vslice[0]
-		imgUrlChart = vslice[len(vslice)-1]
-		mapCategoryUrl[categoryId] = imgUrlChart
-	}
-
-	for k, v := range list {
+	for k, _ := range list {
 		item := list[k]
 		//如果文章一开始的内容是图片,优先展示第一张图片
 		imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
@@ -318,13 +300,6 @@ func (this *BaseHomeController) ListHomePublic() {
 		if item.Pv > 999 {
 			list[k].Pv = 999
 		}
-		//如果是研选系列的任意取五张图片的中的一张
-		if v.CategoryId == "0" {
-			knum := v.ArticleId % 5
-			list[k].ImgUrlPc = researchList[knum]
-		} else {
-			list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
-		}
 	}
 	resp.List = list
 	resp.Paging = page

+ 36 - 62
controllers/search.go

@@ -228,8 +228,10 @@ func (this *SearchController) SearchReport() {
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   KeyWord   query   string  true       "搜索关键词"
 // @Param   OrderColumn   query   int  true       "排序字段 ,Comprehensive综合 ,Matching匹配度 ,PublishDate 发布时间 "
-// @Param   UserName     query string  true       "用户名称"
-// @Param   Sign   query   string  true       "加密签名"
+// @Param   CompanyCode     query string  false       "机构编号"
+// @Param   CompanyName     query string  false       "机构名称"
+// @Param   Email     query string  false       "邮箱"
+// @Param   Sign   query   string  false       "加密签名"
 // @Success 200 {object} models.SearchItem
 // @router /listPublic [get]
 func (this *BaseSearchController) SearchListPublic() {
@@ -255,44 +257,11 @@ func (this *BaseSearchController) SearchListPublic() {
 		br.ErrMsg = "请输入搜索词"
 		return
 	}
-	userName := this.GetString("UserName")
+	companyCode := this.GetString("CompanyCode")
+	companyNameHt := this.GetString("CompanyName")
+	email := this.GetString("Email")
 	sign := this.GetString("Sign")
-	errMsg, errHt, wxUser, _ := services.CheckHtgj(userName, sign)
-	if errHt != nil {
-		br.Msg = "获取"
-		br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
-		return
-	}
-	if errMsg != "" {
-		br.Msg = errMsg
-		return
-	}
-	user := wxUser
-	//研选的五张图片
-	detailResearch, errConfig := models.GetConfigByCode("category_research_img_url")
-	if errConfig != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "获取数据研选分类图片失败,Err:" + errConfig.Error()
-		return
-	}
-	researchList := strings.Split(detailResearch.ConfigValue, "{|}")
-	//对应分类的所图片
-	detailCategoryUrl, errConfig := models.GetConfigByCode("category_map_img_url")
-	if errConfig != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "行业配置信息失败,Err:" + errConfig.Error()
-		return
-	}
-	categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
-	mapCategoryUrl := make(map[string]string)
-	var categoryId string
-	var imgUrlChart string
-	for _, v := range categoryUrlList {
-		vslice := strings.Split(v, "_")
-		categoryId = vslice[0]
-		imgUrlChart = vslice[len(vslice)-1]
-		mapCategoryUrl[categoryId] = imgUrlChart
-	}
+
 	if orderColumn == "" {
 		orderColumn = "Matching"
 	}
@@ -302,12 +271,12 @@ func (this *BaseSearchController) SearchListPublic() {
 	var total int64
 	var err error
 	if orderColumn == "PublishDate" {
-		tmpResult, tmpTotal, tmpErr := services.EsMultiMatchFunctionScoreQueryTimeSort(indexName, keyWord, startSize, 100, user.UserId)
+		tmpResult, tmpTotal, tmpErr := services.EsMultiMatchFunctionScoreQueryTimeSort(indexName, keyWord, startSize, 100, 0)
 		result = tmpResult
 		total = tmpTotal
 		err = tmpErr
 	} else {
-		tmpResult, tmpTotal, tmpErr := services.EsMultiMatchFunctionScoreQuerySort(indexName, keyWord, startSize, pageSize, user.UserId, orderColumn)
+		tmpResult, tmpTotal, tmpErr := services.EsMultiMatchFunctionScoreQuerySort(indexName, keyWord, startSize, pageSize, 0, orderColumn)
 		result = tmpResult
 		total = tmpTotal
 		err = tmpErr
@@ -320,27 +289,32 @@ func (this *BaseSearchController) SearchListPublic() {
 	if len(result) == 0 {
 		result = make([]*models.SearchItem, 0)
 	}
-	detail, errKey := models.GetNewSearchKeyWordByThisUser(user.UserId, keyWord)
-	if errKey != nil && errKey.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取信息失败,Err:" + errKey.Error()
-		return
-	}
-	//同一个用户一分钟之内搜索的词不重复记录
-	if detail == nil || time.Now().After(detail.CreateTime.Add(+time.Minute*1)) {
-		keyWordItem := new(models.CygxSearchKeyWord)
-		keyWordItem.UserId = user.UserId
-		keyWordItem.KeyWord = keyWord
-		keyWordItem.CreateTime = time.Now()
-		go models.AddSearchKeyWord(keyWordItem)
-	}
-	for k, v := range result {
-		//如果是研选系列的任意取五张图片的中的一张
-		if v.CategoryId == "0" {
-			knum := v.ArticleId % 5
-			result[k].ImgUrlPc = researchList[knum]
-		} else {
-			result[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
+
+	if companyCode != "" && companyNameHt != "" && email != "" {
+		errMsg, errHt, wxUser, _ := services.CheckHtgj(companyCode, companyNameHt, email, sign)
+		if errHt != nil {
+			br.Msg = "获取"
+			br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
+			return
+		}
+		if errMsg != "" {
+			br.Msg = errMsg
+			return
+		}
+		user := wxUser
+		detail, errKey := models.GetNewSearchKeyWordByThisUser(user.UserId, keyWord)
+		if errKey != nil && errKey.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + errKey.Error()
+			return
+		}
+		//同一个用户一分钟之内搜索的词不重复记录
+		if detail == nil || time.Now().After(detail.CreateTime.Add(+time.Minute*1)) {
+			keyWordItem := new(models.CygxSearchKeyWord)
+			keyWordItem.UserId = user.UserId
+			keyWordItem.KeyWord = keyWord
+			keyWordItem.CreateTime = time.Now()
+			go models.AddSearchKeyWord(keyWordItem)
 		}
 	}
 	resp := new(models.SearchResp)

+ 2 - 0
go.mod

@@ -13,9 +13,11 @@ require (
 	github.com/medivhzhan/weapp/v2 v2.4.2
 	github.com/olivere/elastic/v7 v7.0.29
 	github.com/pdfcpu/pdfcpu v0.3.13
+	github.com/prometheus/procfs v0.7.3 // indirect
 	github.com/rdlucklib/rdluck_tools v1.0.2
 	github.com/satori/go.uuid v1.2.0 // indirect
 	github.com/tealeg/xlsx v1.0.5
+	golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect
 	golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
 )

+ 11 - 0
go.sum

@@ -100,6 +100,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
 github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
 github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -187,6 +188,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
+github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
 github.com/rdlucklib/rdluck_tools v1.0.2 h1:Xf1khfttpAh4D1jtMVE5OxLXhFUaDnvG74vZH7FSZQY=
 github.com/rdlucklib/rdluck_tools v1.0.2/go.mod h1:9Onw9o4w19C8KE5lxb8GyxgRBbZweRVkQSc79v38EaA=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -231,6 +234,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE=
+golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/image v0.0.0-20190823064033-3a9bac650e44/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk=
@@ -259,6 +264,8 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk=
 golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -266,6 +273,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -279,8 +287,11 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=

+ 8 - 6
models/article_history_record.go

@@ -72,12 +72,14 @@ type AddStopTimeRep struct {
 }
 
 type AddStopTimeHtgjRep struct {
-	ArticleId int    `description:"文章ID"`
-	StopTime  int    `description:"停留时间"`
-	OutType   int    `description:"退出方式,1正常退出,2强制关闭"`
-	Source    string `description:"来源,MOBILE:手机端,PC:电脑端"`
-	UserName  string `description:"用户信息"`
-	Sign      string `description:"签名"`
+	ArticleId   int    `description:"文章ID"`
+	StopTime    int    `description:"停留时间"`
+	OutType     int    `description:"退出方式,1正常退出,2强制关闭"`
+	Source      string `description:"来源,MOBILE:手机端,PC:电脑端"`
+	CompanyCode string `description:"机构编码"`
+	CompanyName string `description:"机构名称"`
+	Email       string `description:"机构邮箱"`
+	Sign        string `description:"签名"`
 }
 
 type AddStopTimeNewRep struct {

+ 30 - 27
models/crm_company.go

@@ -8,33 +8,34 @@ import (
 )
 
 type Company struct {
-	CompanyId       int       `orm:"column(company_id);pk"`
-	CompanyName     string    `description:"客户名称"`
-	CompanyType     int       `orm:"column(type)"`
-	CreditCode      string    `description:"社会统一信用码"`
-	CompanyCode     string    `description:"客户编码"`
-	Sort            int       `description:"优先级"`
-	IsFeeCustomer   int       `description:"是否付费用户"`
-	Country         string    `description:"国家编码"`
-	Province        string    `description:"省"`
-	City            string    `description:"市"`
-	Address         string    `description:"详细地址"`
-	Enabled         int       `description:"用户状态"`
-	CreatedTime     time.Time `description:"创建时间"`
-	LastUpdatedTime time.Time `description:"最后一次阅读时间"`
-	Seller          string    `description:"销售员"`
-	SellsId         int       `description:"销售员id"`
-	CompanyBelong   string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
-	StartDate       string    `description:"合同开始日期"`
-	EndDate         string    `description:"合同结束日期"`
-	LastType        int       `description:"原客户标签"`
-	IsVip           int       `description:"0:普通用户,1:大客户"`
-	FirstStartDate  string    `description:"首次设置为试用客户开始时间"`
-	FirstEndDate    string    `description:"首次设置为试用客户结束时间"`
-	DateType        int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
-	Remark          string    `description:"备注信息"`
-	RegionType      string    `description:"地区类型,国内,国外"`
-	OpenCompanyCode string    `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
+	CompanyId             int       `orm:"column(company_id);pk"`
+	CompanyName           string    `description:"客户名称"`
+	CompanyType           int       `orm:"column(type)"`
+	CreditCode            string    `description:"社会统一信用码"`
+	CompanyCode           string    `description:"客户编码"`
+	Sort                  int       `description:"优先级"`
+	IsFeeCustomer         int       `description:"是否付费用户"`
+	Country               string    `description:"国家编码"`
+	Province              string    `description:"省"`
+	City                  string    `description:"市"`
+	Address               string    `description:"详细地址"`
+	Enabled               int       `description:"用户状态"`
+	CreatedTime           time.Time `description:"创建时间"`
+	LastUpdatedTime       time.Time `description:"最后一次阅读时间"`
+	Seller                string    `description:"销售员"`
+	SellsId               int       `description:"销售员id"`
+	CompanyBelong         string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
+	StartDate             string    `description:"合同开始日期"`
+	EndDate               string    `description:"合同结束日期"`
+	LastType              int       `description:"原客户标签"`
+	IsVip                 int       `description:"0:普通用户,1:大客户"`
+	FirstStartDate        string    `description:"首次设置为试用客户开始时间"`
+	FirstEndDate          string    `description:"首次设置为试用客户结束时间"`
+	DateType              int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
+	Remark                string    `description:"备注信息"`
+	RegionType            string    `description:"地区类型,国内,国外"`
+	OpenCompanyCode       string    `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
+	TripartiteCompanyCode string    `description:"第三方给过来的客户编码,判断客户是否存在"`
 }
 
 type CompanyLog struct {
@@ -219,6 +220,8 @@ func AddCompany(item *Company) (lastId int64, err error) {
 func (company *Company) Update(cols []string) (err error) {
 	o := orm.NewOrm()
 	_, err = o.Update(company, cols...)
+	fmt.Println(company)
+	fmt.Println(err)
 	return
 }
 

+ 3 - 1
models/page_history_record.go

@@ -30,7 +30,9 @@ type CygxPageHistoryRecordHtgjRep struct {
 	DetailId               string `description:"详情ID"`
 	ChartPermissionId      int    `description:"行业ID"`
 	IndustrialManagementId string `description:"产业ID"`
-	UserName               string `description:"用户信息"`
+	CompanyCode            string `description:"机构编码"`
+	CompanyName            string `description:"机构名称"`
+	Email                  string `description:"机构邮箱"`
 	Sign                   string `description:"签名"`
 }
 

+ 14 - 11
services/htgj.go

@@ -9,32 +9,29 @@ import (
 	"time"
 )
 
-func CheckHtgj(userName, sign string) (errMsg string, errHt error, user *models.WxUser, companyName string) {
-	errMsg = CheckSign(userName, sign)
+func CheckHtgj(companyCodeHt, companyNameHt, email, sign string) (errMsg string, errHt error, user *models.WxUser, companyName string) {
+	errMsg = CheckSign(companyCodeHt+companyNameHt+email, sign)
 	if errMsg != "" {
 		errMsg = "签名方式错误!"
 		return
 	}
-	var wxuUserName string
+	var wxuUserName, tripartiteCompanyCode string
 	var startDate, endDate string
 	var companyId int64
 
+	companyName = companyCodeHt[0:4] + "_" + companyNameHt
+	tripartiteCompanyCode = companyCodeHt + "_" + companyNameHt
 	wxUser := new(models.WxUser)
 	productId := 2
 	productName := "权益"
 	itemCompany := new(models.Company)
-	userNameList := strings.Split(userName, "-")
-	if len(userNameList) != 2 {
-		errMsg = "用户信息格式错误" + userName
-		return
-	}
 	sellerInfo, err := models.GetSellerByName(utils.HtgjDefaultSaleName)
 	if err != nil {
 		errHt = err
 		return
 	}
-	companyName = userNameList[0]
-	wxuUserName = userNameList[1]
+
+	wxuUserName = email
 	countCompay, err := models.GetCompanyCountByName(companyName)
 	if err != nil {
 		errHt = err
@@ -59,6 +56,7 @@ func CheckHtgj(userName, sign string) (errMsg string, errHt error, user *models.
 		}
 		startDate = time.Now().Format(utils.FormatDate)
 		endDate = time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
+		itemCompany.TripartiteCompanyCode = tripartiteCompanyCode
 		itemCompany.CompanyName = companyName
 		itemCompany.CreditCode = ""
 		itemCompany.CompanyCode = companyCode
@@ -75,7 +73,9 @@ func CheckHtgj(userName, sign string) (errMsg string, errHt error, user *models.
 			errHt = err
 			return
 		}
+		//更新三方Code
 		itemCompany.OpenCompanyCode = GenerateOpenCompanyCode(int(companyId))
+		itemCompany.CompanyId = int(companyId)
 		itemCompany.Update([]string{"OpenCompanyCode"})
 
 		companyProduct := new(models.CompanyProduct)
@@ -88,7 +88,7 @@ func CheckHtgj(userName, sign string) (errMsg string, errHt error, user *models.
 		companyProduct.Status = "试用"
 		companyProduct.StartDate = startDate
 		companyProduct.EndDate = endDate
-		companyProduct.IndustryId = 11
+		companyProduct.IndustryId = 11 //11是海通国际的ID
 		companyProduct.IndustryName = "其他类型"
 		companyProduct.SellerId = sellerInfo.AdminId
 		companyProduct.SellerName = sellerInfo.RealName
@@ -206,6 +206,7 @@ func CheckHtgj(userName, sign string) (errMsg string, errHt error, user *models.
 	if countUser == 0 {
 		wxUser.CompanyId = int(companyId)
 		wxUser.RealName = wxuUserName
+		wxUser.Email = wxuUserName
 		wxUser.CreatedTime = time.Now()
 		newUserId, err := models.AddWxUser(wxUser)
 		if err != nil {
@@ -298,7 +299,9 @@ func AddCompanyPermission(companyId, sysUserId, productId int, productName, sysU
 func CheckSign(userName, sign string) (errMsg string) {
 	var pwdSign string
 	pwdSign = userName + utils.HtgjSalt
+	fmt.Println("pwdSign", pwdSign)
 	pwdSign = strings.ToUpper(utils.MD5(pwdSign))
+	fmt.Println(pwdSign)
 	if sign != pwdSign {
 		errMsg = "签名错误"
 	}