gms_coin.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package gm_services
  2. import (
  3. "fmt"
  4. "gadmin/config"
  5. "gadmin/internal/admin/forms"
  6. "gadmin/internal/admin/gm_rpc/gate"
  7. "gadmin/internal/admin/gm_rpc/rpc_share"
  8. sqlModel "gadmin/internal/gorm/model"
  9. "gadmin/utility"
  10. "gadmin/utility/character"
  11. "gadmin/utility/player"
  12. "gadmin/utility/token"
  13. "github.com/gin-gonic/gin"
  14. msg2 "leafstalk/covenant/msg"
  15. "strings"
  16. "time"
  17. )
  18. const (
  19. coin int64 = 2001
  20. diamond int64 = 2002
  21. )
  22. // AddCoin 增加用户金币或钻石
  23. func AddCoin(ctx *gin.Context, params forms.AddCoinReq) (err error) {
  24. if params.UserId == 0 {
  25. return errNoUser
  26. }
  27. playerAttr, err := player.GetAttrByUserId(params.UserId)
  28. if err != nil {
  29. return
  30. }
  31. //获取userAccount
  32. var userAccountModel sqlModel.UserAccount
  33. err = config.LDB.WithContext(ctx).Scopes(sqlModel.UserAccountTable(&userAccountModel, playerAttr.AccID)).Where("accId = ?", playerAttr.AccID).First(&userAccountModel).Error
  34. if err != nil {
  35. return
  36. }
  37. openIdArr := strings.Split(userAccountModel.Openid, "@")
  38. msg := msg2.GmAddMaterial{
  39. MsgId: character.GenerateMsgId(),
  40. PlayerID: params.UserId,
  41. Materials: map[int64]int64{coin: params.Coin},
  42. OperatorId: token.GetUID(ctx),
  43. ClientPlat: openIdArr[1],
  44. }
  45. if params.GoodId == 1 {
  46. msg.Materials = map[int64]int64{coin: params.Coin}
  47. err = gate.SendToWorld(0, &msg)
  48. if err == nil {
  49. rpc_share.MsgMap[msg.MsgId] = fmt.Sprintf("%s,GM为玩家[%d]变更金币[%d]",
  50. utility.FormatSecond(time.Now()),
  51. params.UserId,
  52. params.Coin)
  53. }
  54. return
  55. } else {
  56. msg.Materials = map[int64]int64{diamond: params.Coin}
  57. err = gate.SendToWorld(0, &msg)
  58. if err == nil {
  59. rpc_share.MsgMap[msg.MsgId] = fmt.Sprintf("%s,GM为玩家[%d]变更钻石[%d]",
  60. utility.FormatSecond(time.Now()),
  61. params.UserId,
  62. params.Diamond)
  63. }
  64. return
  65. }
  66. }
  67. func BuyGoods(params forms.AddCoinReq) (err error) {
  68. if params.UserId == 0 {
  69. return errNoUser
  70. }
  71. if params.GoodId > 0 {
  72. // msg := msg2.GmAddMaterial{
  73. // MsgId: utils.GenerateMsgId(),
  74. // PlayerID: params.UserId,
  75. // Materials: []*model.DropMaterial{{coin, int(params.Coin)}},
  76. // }
  77. // err = gate.SendToWorld(0, &msg)
  78. // if err == nil {
  79. // rpc_share.MsgMap[msg.MsgId] = fmt.Sprintf("%s,GM为玩家[%d]添加金币[%d]",
  80. // utils.FormatSecond(time.Now()),
  81. // params.UserId,
  82. // params.Coin)
  83. // }
  84. }
  85. return
  86. }