123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package cygx
- import (
- "encoding/json"
- "fmt"
- "hongze/hz_crm_api/models/cygx"
- "hongze/hz_crm_api/services/alarm_msg"
- "hongze/hz_crm_api/utils"
- "io/ioutil"
- nhttp "net/http"
- "strconv"
- "strings"
- "time"
- )
- // get公共请求方法
- func PublicGetDate(url, authorization string) (body []byte, err error) {
- defer func() {
- if err != nil {
- go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", url+"Get ErrMsg:"+err.Error(), utils.EmailSendToUsers)
- }
- }()
- method := "GET"
- client := &nhttp.Client{}
- req, err := nhttp.NewRequest(method, url, nil)
- if err != nil {
- return
- }
- req.Header.Add("Authorization", authorization)
- res, err := client.Do(req)
- if err != nil {
- return
- }
- defer res.Body.Close()
- body, err = ioutil.ReadAll(res.Body)
- if err != nil {
- return
- }
- return
- }
- // 获取用户的Token
- func GetUserTokenByMobile(mobile string) (token string, err error) {
- //缓存校验
- cacheKey := fmt.Sprint("xygx_chart:chart_token:add:", "Mobile", mobile)
- ttlTime := utils.Rc.GetRedisTTL(cacheKey)
- if ttlTime > 0 {
- token, _ = utils.Rc.RedisString(cacheKey)
- }
- if token == "" {
- url := utils.HZ_CELUE_API_Url + "auth/login"
- method := "POST"
- payload := strings.NewReader(`{
- "phone_number":"` + mobile + `",
- "password":"hz123456"}`)
- client := &nhttp.Client{}
- req, errReq := nhttp.NewRequest(method, url, payload)
- if errReq != nil {
- err = errReq
- return
- }
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("Cookie", "sessionid=naj5j5kl1jjynh7og1rsaxkl1vrsl829")
- res, errReq := client.Do(req)
- if errReq != nil {
- err = errReq
- return
- }
- defer res.Body.Close()
- body, errReq := ioutil.ReadAll(res.Body)
- if errReq != nil {
- err = errReq
- return
- }
- var chartResult cygx.ChartUserTokenResultApi
- errReq = json.Unmarshal(body, &chartResult)
- if errReq != nil {
- err = errReq
- return
- }
- token = chartResult.Data.AccessToken
- utils.Rc.Put(cacheKey, token, time.Hour*24)
- }
- return
- }
- // 获取图表收藏
- func GetChartCollectionByApi(mobile string, take, skip int) (items []*cygx.HomeChartListResp, err error, total int) {
- defer func() {
- if err != nil {
- go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetChartPtagByApi ErrMsg:"+err.Error(), utils.EmailSendToUsers)
- }
- }()
- url := utils.HZ_CELUE_API_Url + "charts/favorites?take=" + strconv.Itoa(take) + "&skip=" + strconv.Itoa(skip)
- authorization, err := GetUserTokenByMobile(mobile)
- if err != nil {
- return
- }
- authorization = "bearer " + authorization
- body, err := PublicGetDate(url, authorization)
- if err != nil {
- return
- }
- var chartResult cygx.ChartFavoritesResultApi
- err = json.Unmarshal(body, &chartResult)
- if err != nil {
- return
- }
- for _, v := range chartResult.Data {
- item := new(cygx.HomeChartListResp)
- item.ChartId = v.ChartId
- item.Title = v.ChartInfo.Title
- item.TitleEn = v.ChartInfo.TitleEn
- t1, _ := time.Parse("2006-01-02T15:04:05Z", v.CreateDate)
- item.CreateDate = t1.Add(+time.Hour * 8).Format(utils.FormatDateTime)
- item.PtagName = v.ChartInfo.Ptag.Name
- item.CtagName = v.ChartInfo.Ctag.Name
- item.BodyHtml = v.ChartInfo.Cover
- item.HttpUrl = "https://vmp.hzinsights.com/v2/charts/" + strconv.Itoa(v.ChartId)
- item.IsNeedJump = true
- items = append(items, item)
- }
- total = chartResult.Pagination.Total
- return
- }
- // 判断策略平台是否已经添加过收藏
- func GetIsCollectionChart(mobile string, chartId int) (isCollection bool, err error) {
- //获取所有的收藏列表,进行比对看看是否收藏,调用三方接口详情没有是否收藏的字段
- list, err, _ := GetChartCollectionByApi(mobile, 9999, 0)
- if err != nil {
- return
- }
- for _, v := range list {
- if v.ChartId == chartId {
- isCollection = true
- }
- }
- return
- }
- // GetChartTitleMapByid 通过图表ID获取文章标题 map
- func GetChartTitleMapByid(chartIds []int) (mapResp map[int]string) {
- var err error
- defer func() {
- if err != nil {
- go alarm_msg.SendAlarmMsg(" 通过图表ID获取文章标题 map,信息失败,Err:"+err.Error(), 3)
- }
- }()
- lenchartIds := len(chartIds)
- if lenchartIds == 0 {
- return
- }
- var condition string
- var pars []interface{}
- condition = ` AND chart_id IN (` + utils.GetOrmInReplace(lenchartIds) + `) `
- pars = append(pars, chartIds)
- chartList, err := cygx.GetChartList(condition, pars, 0, lenchartIds)
- if err != nil {
- return
- }
- mapResp = make(map[int]string, 0)
- for _, v := range chartList {
- mapResp[v.ChartId] = v.Title
- }
- return
- }
|