劲创营---任务项目
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

113 rindas
2.7 KiB

  1. package push
  2. import (
  3. "applet/app/comm/db"
  4. "applet/app/comm/db/model"
  5. "applet/app/comm/md"
  6. "applet/app/comm/utils"
  7. "applet/app/comm/utils/logx"
  8. jg_push "code.fnuoos.com/go_rely_warehouse/zyos_go_jg_push.git/hdl"
  9. md2 "code.fnuoos.com/go_rely_warehouse/zyos_go_jg_push.git/md"
  10. "encoding/json"
  11. "fmt"
  12. "github.com/jinzhu/copier"
  13. "github.com/tidwall/gjson"
  14. "time"
  15. "xorm.io/xorm"
  16. )
  17. func JgPush(eg *xorm.Engine, args md.PushParams) {
  18. thirdJgPush := db.SysCfgFindWithDb(eg, args.MasterId, "third_jg_push_ak", "third_jg_push_sk")
  19. if thirdJgPush["third_jg_push_ak"] == "" || thirdJgPush["third_jg_push_sk"] == "" {
  20. return
  21. }
  22. // 插入推送记录
  23. log := &model.SysPushApp{
  24. Title: args.Title,
  25. Content: args.Content,
  26. Provider: "mob",
  27. Type: args.PushType,
  28. State: 1,
  29. SendAt: 0,
  30. DeviceProvider: 1,
  31. Target: 2,
  32. TargetCondition: fmt.Sprintf(`{"type":"user","val":["%s"]}`, utils.IntToStr(args.Uid)),
  33. Skip: args.Skip,
  34. CreateAt: time.Now(),
  35. UpdateAt: time.Now(),
  36. }
  37. if _, err := db.InertSysPushAppOne(eg, log); err != nil {
  38. // e.OutErr(c, e.ERR_DB_ORM, err)
  39. // return
  40. logx.Warn(err)
  41. }
  42. var skipData md.SkipData
  43. err2 := json.Unmarshal([]byte(args.Skip), &skipData)
  44. alia := args.MasterId + "_" + utils.IntToStr(args.Uid)
  45. var aud = md2.PushAudience{Alias: []string{alia}}
  46. var extras = md2.SkipData{}
  47. if err2 == nil {
  48. copier.Copy(&extras, skipData)
  49. extrasStr, _ := json.Marshal(skipData.Data)
  50. extras.Data = string(extrasStr)
  51. }
  52. var param = md2.PushParam{
  53. Platform: "all",
  54. Audience: aud,
  55. Title: args.Title,
  56. Content: args.Content,
  57. Extras: extras,
  58. }
  59. send, resp, err := jg_push.Send(thirdJgPush["third_jg_push_ak"], thirdJgPush["third_jg_push_sk"], param)
  60. fmt.Println(err)
  61. fmt.Println(send)
  62. if err != nil {
  63. return
  64. }
  65. if send == "" {
  66. return
  67. }
  68. // 发送成功处理
  69. log.State = 2
  70. if _, err := db.UpdateSysPushApp(eg, log); err != nil {
  71. logx.Warn(err)
  72. }
  73. sendData := struct {
  74. Alias string `json:"alias"`
  75. Content string `json:"content"`
  76. Error string `json:"error"`
  77. ApiMsg string `json:"api_msg"`
  78. Title string `json:"title"`
  79. }{
  80. Alias: alia,
  81. Content: args.Content,
  82. Error: gjson.Get(resp, "message").String(),
  83. ApiMsg: resp,
  84. Title: args.Title,
  85. }
  86. fmt.Println(sendData.Error)
  87. bendData, _ := json.Marshal(sendData)
  88. fmt.Println("插入到通知记录")
  89. // 插入到通知记录
  90. _, err = db.SysPushUserInsertOne(eg, &model.SysPushUser{
  91. PushId: int(log.Id),
  92. Uid: args.Uid,
  93. State: func() int {
  94. if send != "" {
  95. return 1
  96. }
  97. return 0
  98. }(),
  99. Time: time.Now(),
  100. SendData: string(bendData),
  101. Provider: "mob",
  102. Type: args.PushType,
  103. })
  104. if err != nil {
  105. logx.Warn(err)
  106. }
  107. return
  108. }