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