user_changeNickName.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package gatesink
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/common"
  5. coreservice "bet24.com/servers/coreservice/client"
  6. "bet24.com/servers/fishhall/config"
  7. cash "bet24.com/servers/micros/money/proto"
  8. userservices "bet24.com/servers/micros/userservices/proto"
  9. "bet24.com/servers/transaction"
  10. "encoding/json"
  11. "fmt"
  12. )
  13. // 修改昵称
  14. func (this *user) changeNickName(msg, data string) {
  15. obj := transaction.NewTransChangeNickName()
  16. err := json.Unmarshal([]byte(data), &obj.In)
  17. if err != nil {
  18. log.Release("changeNickName UnMarshal data failed %v", data)
  19. this.WriteMsg(msg, fmt.Sprintf("changeNickName UnMarshal data failed %v", data))
  20. return
  21. }
  22. obj.In.NewNickName = coreservice.ParseKeyword(obj.In.NewNickName)
  23. /*
  24. //删除头尾空格
  25. obj.In.NewNickName = strings.TrimSpace(obj.In.NewNickName)
  26. //昵称长度:[4,30]
  27. nickNameRegexp := regexp.MustCompile(`^([A-Za-z0-9]+\s*){4,32}$`)
  28. //昵称非法
  29. if NickNames := nickNameRegexp.FindAllString(obj.In.NewNickName, -1); len(NickNames) <= 0 {
  30. log.Debug("changeNickName NickName Illegality NewNickName=%s NickNames=%v", obj.In.NewNickName, NickNames)
  31. obj.Out.RetCode = -1
  32. obj.Out.ErrorMsg = "Illegality"
  33. buf, err := json.Marshal(obj.Out)
  34. if err != nil {
  35. log.Release("changeNickName Illegality marshal fail %v", err)
  36. this.WriteMsg(msg, fmt.Sprintf("changeNickName Illegality marshal fail %v", err))
  37. return
  38. }
  39. this.WriteMsg(msg, string(buf))
  40. return
  41. }
  42. */
  43. obj.In.UserID = this.getUserId()
  44. if changeTimes, gold := this.getChangeNameInfo(); gold > 0 {
  45. remark := fmt.Sprintf("第%d次修改昵称", changeTimes)
  46. success := cash.ReduceMoney(this.getUserId(), gold, common.LOGTYPE_CHANGE_NICKNAME, "修改昵称", remark, this.GetIP())
  47. if !success {
  48. obj.Out.RetCode = 21
  49. obj.Out.ErrorMsg = "金币不足"
  50. buf, err := json.Marshal(obj.Out)
  51. if err != nil {
  52. log.Release("changeNickName marshal err %v", err)
  53. this.WriteMsg(msg, fmt.Sprintf("changeNickName marshal err %v", err))
  54. return
  55. }
  56. // 把修改昵称结果通知客户端
  57. this.WriteMsg(msg, string(buf))
  58. return
  59. }
  60. }
  61. obj.DoAction(nil)
  62. buf, err := json.Marshal(obj.Out)
  63. if err != nil {
  64. log.Release("changeNickName marshal err %v", err)
  65. this.WriteMsg(msg, fmt.Sprintf("changeNickName marshal err %v", err))
  66. return
  67. }
  68. // 刷新coreservice中的用户信息
  69. go userservices.UpdateUserInfo(this.getUserId())
  70. // 把修改昵称结果通知客户端
  71. this.WriteMsg(msg, string(buf))
  72. return
  73. }
  74. // 修改昵称次数
  75. func (this *user) changeNameInfo(msg, data string) {
  76. var ret struct {
  77. ChangeTimes int
  78. GoldAmount int
  79. }
  80. ret.ChangeTimes, ret.GoldAmount = this.getChangeNameInfo()
  81. buf, err := json.Marshal(ret)
  82. if err != nil {
  83. log.Release("changeNameInfo marshal err %v", err)
  84. this.WriteMsg(msg, fmt.Sprintf("changeNameInfo marshal err %v", err))
  85. return
  86. }
  87. this.WriteMsg(msg, string(buf))
  88. return
  89. }
  90. // 获取修改昵称信息
  91. func (this *user) getChangeNameInfo() (int, int) {
  92. changeTimes, gold := 0, 0
  93. // 没有修改昵称配置信息
  94. if len(config.HallConfig.ChangeNames) == 0 {
  95. return changeTimes, gold
  96. }
  97. // 已修改次数
  98. changeTimes = transaction.ChangeNameTimes(this.getUserId())
  99. // 修改次数+1
  100. changeTimes++
  101. for _, v := range config.HallConfig.ChangeNames {
  102. gold = v.Gold
  103. if changeTimes == v.Times {
  104. break
  105. }
  106. }
  107. return changeTimes, gold
  108. }