|
@@ -97,10 +97,12 @@ func sendTemplateMsgCygx(sendMap map[string]interface{}, openIdArr []string, res
|
|
|
if err != nil {
|
|
|
fmt.Println("SendTemplateMsgOne Marshal Err:", err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("SendTemplateMsgOne Marshal Err:%s", err.Error()))
|
|
|
+ err = errors.New("SendTemplateMsgOne Marshal Err:" + err.Error())
|
|
|
return err
|
|
|
}
|
|
|
err = toSendTemplateMsgCygx(data, resource, sendType, openId, uniqueCode)
|
|
|
if err != nil {
|
|
|
+ err = errors.New("toSendTemplateMsgCygx Err:" + err.Error())
|
|
|
fmt.Println("send err:", err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("ToSendTemplateMsg Err:%s", err.Error()))
|
|
|
}
|
|
@@ -114,6 +116,7 @@ func toSendTemplateMsgCygx(data []byte, resource string, sendType int, openId, u
|
|
|
//获取accessToken
|
|
|
accessToken, err, errMsg := getWxAccessTokenCygx()
|
|
|
if err != nil {
|
|
|
+ err = errors.New("getWxAccessTokenCygx Err:" + err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("获取Token失败,err:%s,errMsg:%s", err.Error(), errMsg))
|
|
|
return
|
|
|
}
|
|
@@ -122,6 +125,7 @@ func toSendTemplateMsgCygx(data []byte, resource string, sendType int, openId, u
|
|
|
client := http.Client{}
|
|
|
resp, err := client.Post(sendUrl, "application/json", bytes.NewBuffer(data))
|
|
|
if err != nil {
|
|
|
+ err = errors.New("Post Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
defer resp.Body.Close()
|
|
@@ -131,6 +135,7 @@ func toSendTemplateMsgCygx(data []byte, resource string, sendType int, openId, u
|
|
|
var templateResponse SendTemplateResponse
|
|
|
err = json.Unmarshal(body, &templateResponse)
|
|
|
if err != nil {
|
|
|
+ err = errors.New("SendResult Unmarshal Err:" + err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("SendResult Unmarshal Err:%s", err.Error()))
|
|
|
return err
|
|
|
}
|
|
@@ -153,6 +158,7 @@ func toSendTemplateMsgCygx(data []byte, resource string, sendType int, openId, u
|
|
|
go func() {
|
|
|
err = models.AddUserTemplateRecord(tr)
|
|
|
if err != nil {
|
|
|
+ err = errors.New("AddUserTemplateRecord Err:" + err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("AddUserTemplateRecord Err:%s", err.Error()))
|
|
|
}
|
|
|
}()
|
|
@@ -163,6 +169,7 @@ func toSendTemplateMsgCygx(data []byte, resource string, sendType int, openId, u
|
|
|
//强刷token并重新推送
|
|
|
accessToken, err, errMsg = refreshWxAccessTokenCygx()
|
|
|
if err != nil {
|
|
|
+ err = errors.New("refreshWxAccessToken Err:" + err.Error())
|
|
|
utils.FileLog.Info(fmt.Sprintf("refreshWxAccessToken Err:%s", err.Error()))
|
|
|
return err
|
|
|
}
|
|
@@ -276,3 +283,95 @@ func refreshWxAccessTokenCygx() (accessToken string, err error, errMsg string) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func TemplateList() (err error) {
|
|
|
+ //utils.FileLog.Info("Send:" + string(data))
|
|
|
+ //获取accessToken
|
|
|
+ accessToken, err, errMsg := getWxAccessTokenCygx()
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("获取Token失败,err:%s,errMsg:%s", err.Error(), errMsg))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sendUrl := "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" + accessToken
|
|
|
+
|
|
|
+ client := http.Client{}
|
|
|
+ //resp, err := client.Post(sendUrl, "application/json", bytes.NewBuffer(data))
|
|
|
+ resp, err := client.Get(sendUrl)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer resp.Body.Close()
|
|
|
+
|
|
|
+ body, _ := ioutil.ReadAll(resp.Body)
|
|
|
+ utils.FileLog.Info("Cygx_SendResult:" + string(body))
|
|
|
+ var templateResponse models.TemplateLibraryResp
|
|
|
+ err = json.Unmarshal(body, &templateResponse)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("SendResult Unmarshal Err:%s", err.Error()))
|
|
|
+ fmt.Println("SendResult Unmarshal Err:%s", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加到数据库
|
|
|
+ err = models.AddTemplates(templateResponse.TemplateList)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("添加到数据库失败,err:%s", err.Error()))
|
|
|
+ fmt.Println("添加到数据库失败,err:%s", err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 发送类目模板消息
|
|
|
+func SendWxCategoryTemplateMsgCygx(sendInfo *models.SendWxCategoryTemplate) (err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go alarm_msg.SendAlarmMsg("查研观向小助手发送类目模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("发送类目模版消息失败,Err:%s,%s", err.Error(), msg))
|
|
|
+ }
|
|
|
+ if msg != "" {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("发送类目模版消息失败,msg:%s", msg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ utils.FileLog.Info("services SendMsg")
|
|
|
+ fmt.Println("send start")
|
|
|
+ utils.FileLog.Info("send start")
|
|
|
+
|
|
|
+ sendMap := make(map[string]interface{})
|
|
|
+ sendData := make(map[string]interface{})
|
|
|
+ var uniqueCodeStr string
|
|
|
+
|
|
|
+ templateItem, err := models.GetTemplateLibraryByTemplateId(sendInfo.TemplateId)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("获取模板库失败,err:%s", err.Error()))
|
|
|
+ err = errors.New("获取模板库失败 Err:" + err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ keywords := utils.ExtractDataFields(templateItem.Content)
|
|
|
+ if len(keywords) == len(sendInfo.Keywords) {
|
|
|
+ for i, v := range keywords {
|
|
|
+ sendData[v] = map[string]interface{}{"value": sendInfo.Keywords[i], "color": "#173177"}
|
|
|
+ //sendData[v] = map[string]interface{}{"value": "", "color": "#173177"}
|
|
|
+ uniqueCodeStr += sendInfo.Keywords[i]
|
|
|
+ //uniqueCodeStr += ""
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ sendMap["data"] = sendData
|
|
|
+ if sendInfo.TemplateId != "" {
|
|
|
+ sendMap["template_id"] = sendInfo.TemplateId
|
|
|
+ uniqueCodeStr += sendInfo.TemplateId
|
|
|
+ }
|
|
|
+ uniqueCode := utils.MD5(uniqueCodeStr)
|
|
|
+
|
|
|
+ err = sendTemplateMsgCygx(sendMap, sendInfo.OpenIdArr, sendInfo.Resource, uniqueCode, sendInfo.SendType)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("sendTemplateMsgCygx Err:" + err.Error())
|
|
|
+ utils.FileLog.Info("send err:" + err.Error())
|
|
|
+ }
|
|
|
+ fmt.Println("send end")
|
|
|
+ utils.FileLog.Info("send end")
|
|
|
+ return
|
|
|
+}
|