|
@@ -0,0 +1,135 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "github.com/rdlucklib/rdluck_tools/http"
|
|
|
+ "hongze/hongze_cygxzs/models"
|
|
|
+ "hongze/hongze_cygxzs/utils"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+func GetWxUsersSubscribeCygx() {
|
|
|
+
|
|
|
+ list, _ := models.GetCygxUserRecordyList()
|
|
|
+ unionIdMap := make(map[string]string)
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ unionIdMap[v.OpenId] = v.OpenId
|
|
|
+ }
|
|
|
+ i := 0
|
|
|
+ openIdList := WxUsersGetV1()
|
|
|
+ fmt.Println("openIdList:", len(openIdList))
|
|
|
+ time.Sleep(3 * time.Second)
|
|
|
+ for _, v := range openIdList {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ err := models.SetUserSubscribeByOpenid(v)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ fmt.Println("SetUserSubscribeByOpenid Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ detail, err := models.GetUserRecordByUserOpenId(v)
|
|
|
+
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ fmt.Println("GetUserRecordByUserOpenId Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if detail != nil {
|
|
|
+ err = models.SetUserSubscribeByMobile(detail.BindAccount)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ fmt.Println("SetUserSubscribeByMobile Err:" + err.Error())
|
|
|
+ fmt.Println(detail.BindAccount)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ openId := v
|
|
|
+
|
|
|
+ i++
|
|
|
+ fmt.Println(openId, i)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+type WxUsers struct {
|
|
|
+ WxBase
|
|
|
+ Total int
|
|
|
+ Count int
|
|
|
+ Data struct {
|
|
|
+ Openid []string
|
|
|
+ }
|
|
|
+ NextOpenid string `json:"next_openid"`
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+type WxBase struct {
|
|
|
+ Errcode int
|
|
|
+ Errmsg string
|
|
|
+}
|
|
|
+
|
|
|
+func WxUsersGetV1() (openIdList []string) {
|
|
|
+ accessToken := "68_Vybgr0jXdiqCJW7NjEROyrSAGT-txiflR9QSKn-9BRo-dAWsuDwwh-Adn2MUqRgrWDwusQx4F_IdB5aWCtFKAvJ6roWrSbP0F98PIMX1drK0Dv9xpSbKsS3PCkUMGNcAIABVC"
|
|
|
+
|
|
|
+ openIdList = make([]string, 0)
|
|
|
+
|
|
|
+ nextOpenid := ""
|
|
|
+
|
|
|
+QUERY_WX:
|
|
|
+ url := "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + accessToken + "&next_openid=" + nextOpenid
|
|
|
+ result, err := http.Get(url)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("GetUser Err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(WxUsers)
|
|
|
+ err = json.Unmarshal(result, &item)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Unmarshal Err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item.Errcode != 0 {
|
|
|
+ utils.FileLog.Info("微信接口返回异常 Err:", item.Errmsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = errors.New(item.Errmsg)
|
|
|
+
|
|
|
+ openIdList = append(openIdList, item.Data.Openid...)
|
|
|
+
|
|
|
+
|
|
|
+ if item.Count >= 10000 && item.NextOpenid != "" {
|
|
|
+ nextOpenid = item.NextOpenid
|
|
|
+ goto QUERY_WX
|
|
|
+ }
|
|
|
+ return openIdList
|
|
|
+}
|