pay_switch.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package service
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "gadmin/config"
  6. "gadmin/internal/admin/forms"
  7. "gadmin/internal/admin/gm_rpc/rpc_share"
  8. "gadmin/utility/character"
  9. "gadmin/utility/serializer"
  10. "github.com/gin-gonic/gin"
  11. "github.com/sirupsen/logrus"
  12. clientv3 "go.etcd.io/etcd/client/v3"
  13. msg2 "leafstalk/covenant/msg"
  14. )
  15. var (
  16. PaySwitchService = &sPaySwitch{
  17. key: "covenant/servers/loginparams/PayConfig",
  18. }
  19. )
  20. type sPaySwitch struct {
  21. key string
  22. }
  23. func (s *sPaySwitch) GetPaySwitch(ctx *gin.Context) serializer.Response {
  24. var payConfig forms.PayConfig
  25. kv := clientv3.NewKV(config.Etcd)
  26. getResp, err := kv.Get(ctx, s.key)
  27. if err != nil {
  28. return serializer.DBErr(err.Error(), err)
  29. }
  30. if len(getResp.Kvs) == 0 {
  31. return serializer.Suc(payConfig)
  32. }
  33. if err = json.Unmarshal(getResp.Kvs[0].Value, &payConfig); err != nil {
  34. return serializer.DBErr(err.Error(), err)
  35. }
  36. return serializer.Suc(payConfig)
  37. }
  38. func (s *sPaySwitch) EditPaySwitch(ctx *gin.Context, req forms.EditPaySwitchReq) serializer.Response {
  39. successIds := make([]int, 0)
  40. failIds := make([]int, 0)
  41. for _, serverId := range ServerOption.GetServerIds() {
  42. msg := msg2.GmIosPay{
  43. MsgId: character.GenerateMsgId(),
  44. IosPayOpenLevel: req.IosOpenLevel,
  45. OperatorId: ctx.GetInt64("admin_id"),
  46. }
  47. var resp *msg2.ResponseGmIosPay
  48. res, err := config.GmNats.GmRequest(serverId, "UpdateGmIosPay", msg)
  49. if err != nil {
  50. logrus.Warnf("EditPaySwitch serverId:%v, msg:%v GmRequest err:%+v", serverId, msg, err)
  51. failIds = append(failIds, serverId)
  52. continue
  53. }
  54. if err = json.Unmarshal(res, &resp); err != nil {
  55. logrus.Warnf("EditPaySwitch serverId:%v, msg:%v Unmarshal err:%+v", serverId, msg, err)
  56. failIds = append(failIds, serverId)
  57. continue
  58. }
  59. successIds = append(successIds, serverId)
  60. }
  61. msgId := character.GenerateMsgId()
  62. if len(failIds) == 0 {
  63. rpc_share.MsgMap[msgId] = fmt.Sprintf("GM成功修改苹果支付开启等级为: %v", req.IosOpenLevel)
  64. } else {
  65. rpc_share.MsgMap[msgId] = fmt.Sprintf("GM修改服务器%v的苹果支付开启等级为: %v失败", failIds, req.IosOpenLevel)
  66. }
  67. rpc_share.LogChan <- rpc_share.LogMsg{
  68. MsgID: msgId,
  69. }
  70. return serializer.Suc(req)
  71. //payConfig := forms.PayConfig{
  72. // IosOpenLevel: req.IosOpenLevel,
  73. //}
  74. //
  75. //marshal, err := json.Marshal(payConfig)
  76. //if err != nil {
  77. // return serializer.DBErr(err.Error(), err)
  78. //}
  79. //
  80. //logrus.Warnf("sPaySwitch PayConfig:%v", string(marshal))
  81. //
  82. //kv := clientv3.NewKV(config.Etcd)
  83. //putResp, err := kv.Put(ctx, s.key, string(marshal), clientv3.WithPrevKV())
  84. //if err != nil {
  85. // return serializer.DBErr(err.Error(), err)
  86. //}
  87. //
  88. //logrus.Warnf("Revision:%v", putResp.Header.Revision)
  89. //if putResp.PrevKv != nil {
  90. // logrus.Warnf("key:%v", string(putResp.PrevKv.Key))
  91. // logrus.Warnf("Value:%v", string(putResp.PrevKv.Value))
  92. // logrus.Warnf("Version:%v", strconv.FormatInt(putResp.PrevKv.Version, 10))
  93. //}
  94. //
  95. //return serializer.Suc(nil)
  96. }