package push import ( "applet/app/comm/db" "applet/app/comm/db/model" "applet/app/comm/md" "applet/app/comm/utils" "applet/app/comm/utils/logx" jg_push "code.fnuoos.com/go_rely_warehouse/zyos_go_jg_push.git/hdl" md2 "code.fnuoos.com/go_rely_warehouse/zyos_go_jg_push.git/md" "encoding/json" "fmt" "github.com/jinzhu/copier" "github.com/tidwall/gjson" "time" "xorm.io/xorm" ) func JgPush(eg *xorm.Engine, args md.PushParams) { thirdJgPush := db.SysCfgFindWithDb(eg, args.MasterId, "third_jg_push_ak", "third_jg_push_sk") if thirdJgPush["third_jg_push_ak"] == "" || thirdJgPush["third_jg_push_sk"] == "" { return } // 插入推送记录 log := &model.SysPushApp{ Title: args.Title, Content: args.Content, Provider: "mob", Type: args.PushType, State: 1, SendAt: 0, DeviceProvider: 1, Target: 2, TargetCondition: fmt.Sprintf(`{"type":"user","val":["%s"]}`, utils.IntToStr(args.Uid)), Skip: args.Skip, CreateAt: time.Now(), UpdateAt: time.Now(), } if _, err := db.InertSysPushAppOne(eg, log); err != nil { // e.OutErr(c, e.ERR_DB_ORM, err) // return logx.Warn(err) } var skipData md.SkipData err2 := json.Unmarshal([]byte(args.Skip), &skipData) alia := args.MasterId + "_" + utils.IntToStr(args.Uid) var aud = md2.PushAudience{Alias: []string{alia}} var extras = md2.SkipData{} if err2 == nil { copier.Copy(&extras, skipData) extrasStr, _ := json.Marshal(skipData.Data) extras.Data = string(extrasStr) } var param = md2.PushParam{ Platform: "all", Audience: aud, Title: args.Title, Content: args.Content, Extras: extras, } send, resp, err := jg_push.Send(thirdJgPush["third_jg_push_ak"], thirdJgPush["third_jg_push_sk"], param) fmt.Println(err) fmt.Println(send) if err != nil { return } if send == "" { return } // 发送成功处理 log.State = 2 if _, err := db.UpdateSysPushApp(eg, log); err != nil { logx.Warn(err) } sendData := struct { Alias string `json:"alias"` Content string `json:"content"` Error string `json:"error"` ApiMsg string `json:"api_msg"` Title string `json:"title"` }{ Alias: alia, Content: args.Content, Error: gjson.Get(resp, "message").String(), ApiMsg: resp, Title: args.Title, } fmt.Println(sendData.Error) bendData, _ := json.Marshal(sendData) fmt.Println("插入到通知记录") // 插入到通知记录 _, err = db.SysPushUserInsertOne(eg, &model.SysPushUser{ PushId: int(log.Id), Uid: args.Uid, State: func() int { if send != "" { return 1 } return 0 }(), Time: time.Now(), SendData: string(bendData), Provider: "mob", Type: args.PushType, }) if err != nil { logx.Warn(err) } return }