|
@@ -647,7 +647,7 @@ func Subscribe(w ResponseWriter, r *Request) {
|
|
|
}
|
|
|
} else if pccodepre == "13" { //18pc关注项目=13
|
|
|
param := new(jrpc.FollowData)
|
|
|
- param.OpenId = openid
|
|
|
+ param.UserId = FindUserId(openid) //查询userid
|
|
|
param.Server = fmt.Sprint(config.Sysconfig["webrpcport"])
|
|
|
param.Projectname = redis.GetStr("sso", "pc_subscribe_"+source)
|
|
|
if param.Projectname != "" {
|
|
@@ -1000,7 +1000,8 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- m, b := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openid+`"}`, `{"_id":1,"s_headimage":1,"o_jy":1,"o_vipjy":1,"i_vip_status":1}`)
|
|
|
+ //部分未关注用户通过点击菜单创建的用户 openid和unionid为空
|
|
|
+ m, b := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openid+`","s_unionid":{"$ne":"`+openid+`"}}`, `{"_id":1,"s_headimage":1,"o_jy":1,"o_vipjy":1,"i_vip_status":1}`)
|
|
|
if b {
|
|
|
//剑鱼标讯订阅提醒 (1:关注事件,2:扫码事件,3:发送客服消息处理,4:支付操作)
|
|
|
if openid != "" {
|
|
@@ -1034,9 +1035,10 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
+ userId := util.ObjToString(BsonIdToSId((*m)["_id"]))
|
|
|
if pccodepre == "13" { //103pc关注项目
|
|
|
param := new(jrpc.FollowData)
|
|
|
- param.OpenId = openid
|
|
|
+ param.UserId = userId
|
|
|
param.Server = fmt.Sprint(config.Sysconfig["webrpcport"])
|
|
|
param.Projectname = redis.GetStr("sso", "pc_subscribe_"+r.EventKey)
|
|
|
if param.Projectname != "" {
|
|
@@ -1085,6 +1087,7 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
pcUser, pcresult, subkey = pcSetUserKeys(*m, r.EventKey, pccodepre)
|
|
|
go tools.MQFW.Update("user", &map[string]interface{}{
|
|
|
"s_m_openid": openid,
|
|
|
+ "s_unionid": map[string]interface{}{"$ne": openid},
|
|
|
}, &map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
|
"o_jy": pcUser["o_jy"],
|
|
@@ -1110,7 +1113,6 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
} else if pccodepre == "18" { //关注企业
|
|
|
company := redis.GetStr("sso", "pc_subscribe_"+r.EventKey) //企业名称
|
|
|
s_id := Findent(company) //查询s_id
|
|
|
- userId := FindUserId(openid) //查询userid
|
|
|
if company != "" {
|
|
|
if tools.MQFW.Count("jylab_followent", `{"s_userid":"`+userId+`","s_id":"`+s_id+`"}`) > 0 {
|
|
|
//已经关注过此企业
|
|
@@ -1139,9 +1141,7 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- go tools.MQFW.Update("user", &map[string]interface{}{
|
|
|
- "s_m_openid": openid,
|
|
|
- }, &map[string]interface{}{
|
|
|
+ go tools.MQFW.UpdateById("user", userId, &map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
|
"s_headimageurl": user.HeadImageUrl,
|
|
|
"s_nickname": user.Nickname,
|
|
@@ -1150,7 +1150,7 @@ func ScanHandler(w ResponseWriter, r *Request) {
|
|
|
"s_city": user.City,
|
|
|
"i_sex": user.Sex,
|
|
|
},
|
|
|
- }, false, false)
|
|
|
+ })
|
|
|
}
|
|
|
var activesign = config.Sysconfig["activesign"].(bool) //是否有活动进行
|
|
|
if activesign {
|
|
@@ -1217,7 +1217,7 @@ func Findent(entname string) string {
|
|
|
func FindUserId(openid string) string {
|
|
|
defer util.Catch()
|
|
|
userId := ""
|
|
|
- tem, ok := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openid+`"}`, `{"_id":1}`)
|
|
|
+ tem, ok := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openid+`","s_unionid":{"$ne":"`+openid+`"}}`, `{"_id":1}`)
|
|
|
if ok && len(*tem) > 0 {
|
|
|
userId = util.ObjToString(BsonIdToSId((*tem)["_id"]))
|
|
|
}
|
|
@@ -1637,7 +1637,7 @@ func NewStrQrHandle(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
//修改是否推送的状态
|
|
|
func updateIsPush(openid string, status int) {
|
|
|
- tools.MQFW.Update("user", map[string]interface{}{"s_m_openid": openid}, map[string]interface{}{
|
|
|
+ tools.MQFW.Update("user", map[string]interface{}{"s_m_openid": openid, "s_unionid": map[string]interface{}{"$ne": openid}}, map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
|
"i_ispush": status,
|
|
|
},
|
|
@@ -1719,7 +1719,7 @@ func vipFastSubscribe(user *map[string]interface{}, keyWord, openId, m string) (
|
|
|
})
|
|
|
}
|
|
|
if len(a_key) > 0 {
|
|
|
- flag = tools.MQFW.Update("user", `{"s_m_openid":"`+openId+`"}`, bson.M{
|
|
|
+ flag = tools.MQFW.Update("user", `{"s_m_openid":"`+openId+`","s_unionid":{"$ne":"`+openId+`"}}`, bson.M{
|
|
|
"$push": bson.M{
|
|
|
"o_vipjy.a_items." + strconv.Itoa(classify_index) + ".a_key": bson.M{
|
|
|
"$each": a_key,
|
|
@@ -1739,7 +1739,7 @@ func vipFastSubscribe(user *map[string]interface{}, keyWord, openId, m string) (
|
|
|
|
|
|
//快速订阅关键词
|
|
|
func fastSubscribe(content, openId string) (int, string, bool) {
|
|
|
- user, ok := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openId+`"}`, `{"o_jy":1:"o_vipjy":1,"i_vip_status":1}`)
|
|
|
+ user, ok := tools.MQFW.FindOneByField("user", `{"s_m_openid":"`+openId+`","s_unionid":{"$ne":"`+openId+`"}}`, `{"o_jy":1:"o_vipjy":1,"i_vip_status":1}`)
|
|
|
hasOldKey := false
|
|
|
if ok && user != nil {
|
|
|
//content = strings.TrimPrefix(content, "订阅")
|