浏览代码

Merge branch 'yx_1.1' into debug

zwxi 1 年之前
父节点
当前提交
f5384bc69d
共有 3 个文件被更改,包括 176 次插入10 次删除
  1. 160 0
      services/cygx/activity_poster.go
  2. 10 10
      services/cygx/research_summary.go
  3. 6 0
      utils/config.go

+ 160 - 0
services/cygx/activity_poster.go

@@ -405,3 +405,163 @@ func MakeActivityMomentsImg(activityId int) {
 		return
 	}
 }
+
+// MakeMfyxActivitySigninImg 生成mfyx太阳码并上传OSS
+//func MakeMfyxActivitySigninImg(activityId int) (imgUrl string, err error) {
+//	var msg string
+//	defer func() {
+//		if err != nil || msg != "" {
+//			fmt.Println(err)
+//			utils.FileLog.Info("MakeMfyxActivitySigninImg Err:", err.Error())
+//			go alarm_msg.SendAlarmMsg("扫码签到日志记录,失败,活动ID:"+strconv.Itoa(activityId)+err.Error()+";msg:"+msg, 3)
+//		}
+//	}()
+//	activityInfo, e := cygx.GetAddActivityInfoById(activityId)
+//	if e != nil {
+//		err = errors.New("活动不存在, Err: " + e.Error())
+//		return
+//	}
+//	if activityInfo == nil {
+//		return
+//	}
+//	if activityInfo.ActivityTypeId != 5 && activityInfo.ActivityTypeId != 6 && activityInfo.ActivityTypeId != 8 {
+//		return
+//	}
+//	itemToken, err := models.GetWxToken(utils.WxMfyxAppId, utils.WxMfyxAppSecret)
+//	if err != nil {
+//		return
+//	}
+//	if itemToken.AccessToken == "" {
+//		msg = "accessToken is empty"
+//		return
+//	}
+//	var envVersion string
+//	var resourceUrl string
+//	if utils.RunMode == "release" {
+//		envVersion = "release"
+//	} else {
+//		envVersion = "trial"
+//	}
+//	url := "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + itemToken.AccessToken
+//	method := "POST"
+//	payload := strings.NewReader(`{
+//		"page":"` + utils.WX_MSG_PATH_ACTIVITY_SIGNIN + `",
+//		"scene":"` + strconv.Itoa(activityId) + `",
+//		"env_version":"` + envVersion + `",
+//		"check_path":false,
+//		"auto_color":true
+//				}`)
+//	client := &http.Client{}
+//	req, err := http.NewRequest(method, url, payload)
+//	if err != nil {
+//		msg = "获取微信二维码失败,Err:" + err.Error()
+//		return
+//	}
+//	req.Header.Add("Content-Type", "application/json")
+//	postBody, err := client.Do(req)
+//	if err != nil {
+//		msg = "获取微信二维码失败,Err:" + err.Error()
+//		return
+//	}
+//	defer postBody.Body.Close()
+//	uploadDir := "static/img/share/"
+//	uuid := utils.GetRandStringNoSpecialChar(28)
+//	if !utils.FileIsExist(uploadDir) {
+//		err = os.MkdirAll(uploadDir, 0755)
+//		if err != nil {
+//			msg = "生成文件夹失败,Err:" + err.Error()
+//			return
+//		}
+//	}
+//	imagePath := uploadDir + uuid + ".jpg"
+//	switch header := postBody.Header.Get("Content-Type"); {
+//	case strings.HasPrefix(header, "application/json"):
+//		tokenResp := ReturnBodyRule{}
+//		decoder := json.NewDecoder(postBody.Body)
+//		if decodeErr := decoder.Decode(&tokenResp); decodeErr != nil {
+//			msg = "获取微信二维码失败,Err:" + decodeErr.Error()
+//			return
+//		}
+//	case strings.HasPrefix(header, "image"):
+//		reply, e := ioutil.ReadAll(postBody.Body)
+//		if e != nil {
+//			err = e
+//			msg = "获取微信二维码失败,Err:" + err.Error()
+//			return
+//		}
+//		imageContent, e := os.Create(imagePath)
+//		if e != nil {
+//			err = e
+//			msg = "获取微信二维码失败,Err:" + err.Error()
+//			return
+//		}
+//		writeStringRes, e := io.WriteString(imageContent, string(reply))
+//		if e != nil {
+//			err = e
+//			fmt.Println(writeStringRes)
+//			return
+//		}
+//		closeErr := imageContent.Close()
+//		if closeErr != nil {
+//			err = closeErr
+//			return
+//		}
+//		randStr := utils.GetRandStringNoSpecialChar(28)
+//		fileName := randStr + ".jpg"
+//		savePath := uploadDir + time.Now().Format("200601/20060102/")
+//		savePath += fileName
+//		//上传到阿里云
+//		err = services.UploadFileToAliyun(fileName, imagePath, savePath)
+//		if err != nil {
+//			fmt.Println("文件上传失败,Err:" + err.Error())
+//			return
+//		}
+//		fileHost := "https://hzstatic.hzinsights.com/"
+//		resourceUrl = fileHost + savePath
+//		defer func() {
+//			os.Remove(imagePath)
+//		}()
+//	default:
+//		msg = "生成二维码失败"
+//		return
+//	}
+//
+//	detailConfig, e := cygx.GetCygxConfigDetailByCode(Cygx_activity_sigin_html)
+//	if e != nil {
+//		err = errors.New("GetCygxConfigDetailByCode 获取配置签到码格式信息失败, Err: " + e.Error())
+//		return
+//	}
+//	configValue := detailConfig.ConfigValue
+//	configValue = strings.Replace(configValue, "{{TITLE}}", activityInfo.ActivityName, -1)
+//	configValue = strings.Replace(configValue, "{{IMG}}", resourceUrl, -1)
+//	configValue = strings.Replace(configValue, "{{PLEASE}}", "请扫码确认签到", -1)
+//	configValue = strings.Replace(configValue, "{{SHOWTEXT}}", "将签到成功页面出示给接待人员", -1)
+//	htm2ImgReq := make(map[string]interface{})
+//	htm2ImgReq["html_content"] = configValue
+//	htm2ImgReq["width"] = 1364
+//	htm2ImgReq["height"] = 2060
+//	res, err := postHtml2Img(htm2ImgReq)
+//	if err != nil || res == nil {
+//		msg = "html转图片请求失败"
+//		return
+//	}
+//	if res.Code != 200 {
+//		msg = "html转图片请求失败"
+//		err = errors.New("html转图片失败: " + res.Msg)
+//		return
+//	}
+//	imgUrl = res.Data
+//	// 记录海报信息
+//
+//	err = cygx.UpdateCygxActivitySigninImg(imgUrl, activityId)
+//	if err != nil {
+//		return
+//	}
+//	item := new(cygx.CygxActivityPoster)
+//	item.ActivityId = activityId
+//	item.ImgXcx = resourceUrl
+//	item.ImgPoster = imgUrl
+//	item.CreateTime = time.Now()
+//	err = cygx.AddCygxActivityPoster(item)
+//	return
+//}

+ 10 - 10
services/cygx/research_summary.go

@@ -406,14 +406,14 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				mapOpenidPushed[openIditem.UserId] = openIditem.OpenId
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(articleInfo.NickName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(articleInfo.NickName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 			//如果小助手勾选了对应的权限信息 就做正常推送
 			if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidDepartmentFllow[openIditem.UserId] != "" {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				mapOpenidPushed[openIditem.UserId] = openIditem.OpenId
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(articleInfo.NickName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(articleInfo.NickName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 		}
 		//优先推送3: 关注产业
@@ -438,14 +438,14 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				mapOpenidPushed[openIditem.UserId] = openIditem.OpenId
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 			//如果小助手勾选了对应的权限信息 就做正常推送
 			if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidFllow[openIditem.UserId] != "" {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				mapOpenidPushed[openIditem.UserId] = openIditem.OpenId
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 		}
 		//针对哪些没有关注作者,没有关注产业,没有预约纪要的人的推送
@@ -464,13 +464,13 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 			if mapUserIdChooseSend[openIditem.UserId] == 0 {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 			//如果小助手勾选了对应的权限信息 就做正常推送
 			if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidFllow[openIditem.UserId] != "" {
 				services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 				// 研选发类目模板消息
-				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+				go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 			}
 		}
 
@@ -505,13 +505,13 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 				if mapUserIdChooseSend[openIditem.UserId] == 0 {
 					services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 					// 研选发类目模板消息
-					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 				}
 				//如果小助手勾选了对应的权限信息 就做正常推送
 				if mapUserIdChooseSend[openIditem.UserId] != 0 && mapUserFllowCeLue[openIditem.UserId] != "" {
 					services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 					// 研选发类目模板消息
-					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 				}
 			}
 		} else {
@@ -525,13 +525,13 @@ func DoArticleOnenIdWxTemplateMsg(articleId int, source int) (err error) {
 				if mapUserIdChooseSend[openIditem.UserId] == 0 {
 					services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 					// 研选发类目模板消息
-					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 				}
 				//如果小助手勾选了对应的权限信息 就做正常推送
 				if mapUserIdChooseSend[openIditem.UserId] != 0 && mapOpenidFllow[openIditem.UserId] != "" {
 					services.SendWxMsgWithCygxActivityAppointmentNew(first, keyword1, keyword2, keyword3, keyword4, openIditem, articleId)
 					// 研选发类目模板消息
-					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", articleInfo.Title, articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
+					go services.SendWxCategoryMsgWithCygxActivityAppointmentNew(industryName, "发布了新报告", utils.TruncateActivityNameString(articleInfo.Title), articleInfo.PublishDate.Format(utils.FormatDateTimeMinute2), openIditem, articleId)
 				}
 			}
 		}

+ 6 - 0
utils/config.go

@@ -64,6 +64,8 @@ var (
 	WxMsgTemplateIdWithRoadshowDeleteNotice  string //路演->研究员收到活动删除通知
 	CYGX_WEB_URL                             string //查研观向web端网址
 	CYGX_MFYX_URL                            string //查研观向web端网址
+	WxMfyxAppId                              string //买方研选小程序APPID
+	WxMfyxAppSecret                          string //买方研选小程序 秘钥
 
 	WxMsgCategoryTemplateIdActivityChangeApply       string //买方研选活动变更通知-类目模板ID
 	WxMsgCategoryTemplateIdActivityCancleApply       string //买方研选活动取消通知-类目模板ID
@@ -238,6 +240,10 @@ func init() {
 	AdminWxAppId = "wx1392111da5426e9e"
 	AdminWxAppSecret = "30eceb7cf29bf2f046031155ab55d7b4"
 
+	// 买方研选
+	WxMfyxAppId = "wx5e3240ab90c247ac"
+	WxMfyxAppSecret = "6b1316b46dc9c63429f5c1df6f51b4ac"
+
 	THS_PubKey = `-----BEGIN PUBLIC KEY-----
 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqugglfCboOEfWtHlGBOW
 40a4Y3xOs0MPBwjTOzHgcaWzx5XCc20VftGVXkWlpjs8u4dza/Bp1SV7SJ5Y7U95