|
@@ -4,6 +4,7 @@ import (
|
|
|
"encoding/json"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
+ "github.com/go-resty/resty/v2"
|
|
|
"hongze/hz_crm_api/models"
|
|
|
"hongze/hz_crm_api/models/cygx"
|
|
|
"hongze/hz_crm_api/services"
|
|
@@ -198,6 +199,7 @@ func MakeActivitySigninImg(activityId int) (imgUrl string, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ fmt.Println("resourceUrl", resourceUrl)
|
|
|
detailConfig, e := cygx.GetCygxConfigDetailByCode(Cygx_activity_sigin_html)
|
|
|
if e != nil {
|
|
|
err = errors.New("GetCygxConfigDetailByCode 获取配置签到码格式信息失败, Err: " + e.Error())
|
|
@@ -582,3 +584,235 @@ func MakeActivityMomentsImg(activityId int) {
|
|
|
// err = cygx.AddCygxActivityPoster(item)
|
|
|
// return
|
|
|
//}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// MakeActivityDetailImg2(2992)
|
|
|
+//}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// var condition string
|
|
|
+// var pars []interface{}
|
|
|
+//
|
|
|
+// condition = " AND active_state = 1 AND xcx_detail_img = '' "
|
|
|
+// list, errList := cygx.GetActivityListAll(condition, pars, 0, 999)
|
|
|
+// if errList != nil {
|
|
|
+// fmt.Println(errList)
|
|
|
+// return
|
|
|
+// }
|
|
|
+//
|
|
|
+// for _, v := range list {
|
|
|
+// MakeActivityDetailImg2(v.ActivityId)
|
|
|
+// }
|
|
|
+//}
|
|
|
+
|
|
|
+// MakeActivityDetailImg 生成活动详情二维码 生成太阳码并上传OSS 30天有效
|
|
|
+func MakeActivityDetailImg(activityId int) (imgUrl string, err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil || msg != "" {
|
|
|
+ fmt.Println(err)
|
|
|
+ go alarm_msg.SendAlarmMsg("生成活动详情二维码,失败,MakeActivityDetailImg 活动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
|
|
|
+ }
|
|
|
+ itemToken, err := models.GetWxToken(utils.WxCygxAppId, utils.WxCygxAppSecret)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if itemToken.AccessToken == "" {
|
|
|
+ msg = "accessToken is empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ client := resty.New()
|
|
|
+ resp, err := client.R().
|
|
|
+ SetQueryParam("access_token", itemToken.AccessToken).
|
|
|
+ SetBody(map[string]interface{}{
|
|
|
+ "path": "activityPages/activityDetail/activityDetail?id=" + strconv.Itoa(activityId),
|
|
|
+ "width": 430,
|
|
|
+ }).
|
|
|
+ Post("https://api.weixin.qq.com/wxa/getwxacode")
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if resp.StatusCode() != http.StatusOK {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println(resp.Status())
|
|
|
+ var resourceUrl string
|
|
|
+
|
|
|
+ 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"
|
|
|
+ imageContent, e := os.Create(imagePath)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ msg = "获取微信二维码失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ writeStringRes, e := io.WriteString(imageContent, string(resp.Body()))
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ fmt.Println("writeStringRes", 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)
|
|
|
+ }()
|
|
|
+ fmt.Println(resourceUrl)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// MakeActivityDetailImg2 生成活动详情二维码 生成太阳码并上传OSS 永久有效
|
|
|
+func MakeActivityDetailImg2(activityId int) (imgUrl string, err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil || msg != "" {
|
|
|
+ fmt.Println(err)
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ itemToken, err := models.GetWxToken(utils.WxCygxAppId, utils.WxCygxAppSecret)
|
|
|
+ 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":"activityPages/activityDetail/activityDetail",
|
|
|
+ "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
|
|
|
+ }
|
|
|
+
|
|
|
+ err = cygx.UpdateCygxActivityXcxDetailImg(resourceUrl, activityId)
|
|
|
+ fmt.Println("resourceUrl", resourceUrl)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|