package common import ( "app.yhyue.com/moapp/MessageCenter/entity" "app.yhyue.com/moapp/MessageCenter/rpc/internal/config" "app.yhyue.com/moapp/jybase/common" m "app.yhyue.com/moapp/jybase/mongodb" qrpc "app.yhyue.com/moapp/jybase/rpc" "fmt" ) // GetUserOpenIdAndWxPushState 查询微信openid微信消息通知状态 // mId mongoUserid、oId 用户openid、pId positionId 用户职位id func GetUserOpenIdAndWxPushState(mId, oId, pId, settingKey string) (openId string, wxPushOpen bool) { uData := func() map[string]interface{} { query := map[string]interface{}{} if oId != "" { query["s_m_openid"] = oId } else if mId != "" { query["_id"] = m.StringTOBsonId(mId) } else if pId != "" { uInfo := entity.Mysql.SelectBySql("SELECT user_id FROM base_service.base_position WHERE id = ? ", pId) if uInfo != nil && len(*uInfo) > 0 { fmt.Println((*uInfo)[0]["user_id"]) base_user_id := common.Int64All((*uInfo)[0]["user_id"]) if base_user_id != 0 { query["base_user_id"] = base_user_id } } } if len(query) > 0 { rData, _ := entity.MQFW.FindOneByField("user", query, fmt.Sprintf(`{"s_m_openid":1,"o_pushset.%s.i_wxpush":1}`, settingKey)) if rData != nil && len(*rData) > 0 { return *rData } } return nil }() if uData == nil { return openId, false } openId = common.ObjToString(uData["s_m_openid"]) if pushsetMap := common.ObjToMap(uData["o_pushset"]); pushsetMap != nil && len(*pushsetMap) > 0 { if pushkeyMap := common.ObjToMap((*pushsetMap)[settingKey]); pushkeyMap != nil && len(*pushkeyMap) > 0 { wxPushOpen = common.Int64All((*pushkeyMap)["i_wxpush"]) == 1 } } return } // sendWxTmplMsg 发送微信模版消息 func sendWxTmplMsg(openId, tplId, link string, msg map[string]*qrpc.TmplItem) (pushOk bool) { pushOk, _ = qrpc.WxSendTmplMsg(config.ConfigJson.WxTmplConfig.RpcAddr, &qrpc.WxTmplMsg{ OpenId: openId, TplId: tplId, TmplData: msg, Url: link, //Url: Config.WebDomain + "/front/sess/" + util.Se_Topnet.EncodeString(s_m_openid+",uid,"+strconv.Itoa(int(time.Now().Unix()))+",msgremind") + "__" + hex.EncodeToString([]byte(fmt.Sprintf("type=%s&advertcode=%s", tp, wtmc.AdvertCode))), }) return } // SendJySchoolMsg 发送剑鱼学堂类型消息 // 标题 课程报名成功通知 // 消息模版 课程名称 {{thing1.DATA}} 课程时间 {{time7.DATA}} 课程地点 {{thing6.DATA}} 课程类型 {{const11.DATA}} func SendJySchoolMsg(openId, title, date, address, class, link string) bool { msg := map[string]*qrpc.TmplItem{ "thing1": &qrpc.TmplItem{ Value: title, }, "time7": &qrpc.TmplItem{ Value: date, }, "thing6": &qrpc.TmplItem{ Value: address, }, "const11": &qrpc.TmplItem{ Value: class, }, } return sendWxTmplMsg(openId, "配置文件获取", link, msg) } // SendSystemMsg 系统消息模版(包含服务通知、私信) // 消息模版 工单类型 {{thing19.DATA}} 工单标题 {{thing6.DATA}} 项目名称 {{thing13.DATA}} 服务时间 {{time25.DATA}} 服务地址 {{thing26.DATA}} func SendSystemMsg(openId, msgClass, title, context, date, link string) bool { msg := map[string]*qrpc.TmplItem{ "thing19": &qrpc.TmplItem{ Value: msgClass, }, "thing6": &qrpc.TmplItem{ Value: title, }, "thing13": &qrpc.TmplItem{ Value: context, }, "time25": &qrpc.TmplItem{ Value: date, }, "thing26": &qrpc.TmplItem{ Value: "如不再接收此类信息,请在我的-设置-推送设置关闭设置。", }, } return sendWxTmplMsg(openId, "配置文件获取", link, msg) }