浏览代码

易董活动详情短连接转成长链接

xingzai 2 年之前
父节点
当前提交
fd500964c3
共有 4 个文件被更改,包括 81 次插入1 次删除
  1. 8 1
      controllers/activity.go
  2. 8 0
      models/yidong.go
  3. 62 0
      services/yidong.go
  4. 3 0
      utils/config.go

+ 8 - 1
controllers/activity.go

@@ -920,7 +920,14 @@ func (this *ActivityCoAntroller) Detail() {
 		activityInfo.Listndustrial = industrialList
 		if activityInfo.YidongActivityId != "" {
 			ydTgc, _ := services.GetYiDongCreateUserInfo(user)
-			activityInfo.YidongActivityUrl += "?source=11&fromHz=true&tgc=" + ydTgc
+			yidongLongLink, err := services.GetYiDongOriginalLink(activityInfo)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "GetYiDongOriginalLink,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
+				return
+			}
+			//yidongKwy := activityInfo.YidongActivityUrl
+			activityInfo.YidongActivityUrl = yidongLongLink + "?source=11&fromHz=true&tgc=" + ydTgc
 		}
 		//处理按钮是否展示问题
 		resp.Detail = services.ActivityButtonShow(activityInfo)

+ 8 - 0
models/yidong.go

@@ -129,3 +129,11 @@ type ApifoxModalSingUpClass struct {
 type SingUpMap struct {
 	Msg string `json:"msg"` // 请求信息,成功信息
 }
+
+type ApifoxgetOriginalLink struct {
+	Result    string  `json:"result"`    // 结果Map
+	Success   bool    `json:"success"`   // 成功标识,可作为请求是否成功标识
+	ErrorCode *string `json:"errorCode"` // 错误码,001:活动不存在;002:该活动不支持此渠道报名;003:该手机号或邮箱已经被其他账号提交报名;004:不在报名时间;005:报名人数已满
+	ErrorMsg  *string `json:"errorMsg"`  // 错误信息
+	Timestamp float64 `json:"timestamp"` // 时间戳
+}

+ 62 - 0
services/yidong.go

@@ -441,6 +441,68 @@ func GetYiDongCreateUserInfo(user *models.WxUserItem) (userTgc string, err error
 	return
 }
 
+//GetYiDongOriginalLink 将易懂的短连接转为长链接
+func GetYiDongOriginalLink(item *models.ActivityDetail) (yidongLongLink string, err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("将易懂的短连接转为长链接 失败:"+err.Error(), 2)
+			utils.FileLog.Info(err.Error())
+		}
+	}()
+	sliceYidongActivityUrl := strings.Split(item.YidongActivityUrl, "/")
+	var shortLink string
+	if len(sliceYidongActivityUrl) > 1 {
+		shortLink = sliceYidongActivityUrl[len(sliceYidongActivityUrl)-1]
+	}
+	var token string
+	token, err = GetYiDongToken()
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	url := utils.YiDonggetOriginalLink + shortLink + "&access_token=" + token
+	fmt.Println(url)
+	method := "GET"
+
+	client := &http.Client{}
+	req, err := http.NewRequest(method, url, nil)
+
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	res, err := client.Do(req)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	defer res.Body.Close()
+
+	var ApifoxModal *models.ApifoxgetOriginalLink
+	body, err := ioutil.ReadAll(res.Body)
+	if err != nil {
+		fmt.Println(err)
+		utils.FileLog.Info(err.Error())
+		return
+	}
+	err = json.Unmarshal(body, &ApifoxModal)
+	if err != nil {
+		fmt.Println("Getres.PublicGetDate Err:", err.Error())
+		utils.FileLog.Info(err.Error())
+		return
+	}
+	lingLink := ApifoxModal.Result
+
+	slicelingLink := strings.Split(lingLink, "redirect_uri=")
+	//var shortLink string
+	if len(slicelingLink) > 1 {
+		lingLink = slicelingLink[len(slicelingLink)-1]
+	}
+	yidongLongLink = lingLink
+	return
+}
+
 //处理易董这边过来的时间格式
 func GetActivityTextTime(timeYidong string) (timeText string) {
 	strTime := timeYidong

+ 3 - 0
utils/config.go

@@ -78,6 +78,7 @@ var (
 	YiDongZhengTongYunAppid   string //易董 证通云请求appid
 	YiDongZhengTongYunSecret  string //易董 证通云请求secret
 	YiDongHuaWeiYunUrl        string //易董 华为云请求域名
+	YiDonggetOriginalLink     string //易董 短连接转为长链接
 )
 
 func init() {
@@ -232,11 +233,13 @@ func YiDongApiConfig() {
 		YiDongZhengTongYunAppid = "ca86a257ebb46fce"
 		YiDongZhengTongYunSecret = "338db2b2ca86a257ebb46fced9003f53"
 		YiDongHuaWeiYunUrl = "https://achievement.valueonline.cn/"
+		YiDonggetOriginalLink = "https://services.easy-board.com.cn/short-link/getOriginalLink?shortKey="
 	} else {
 		YiDongZhengTongYunUrl = "https://services-dev.valueonline.cn/"
 		YiDongZhengTongYunAppid = "d9bfb79627ac30d0"
 		YiDongZhengTongYunSecret = "96a61dd2d9bfb79627ac30d02188bbe2"
 		YiDongHuaWeiYunUrl = "https://achievement-test.valueonline.cn/"
+		YiDonggetOriginalLink = "https://services-dev.valueonline.cn/short-link/getOriginalLink?shortKey="
 	}
 }