123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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)
- }
|