transaction.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package userinfo
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. dbengine "bet24.com/servers/micros/dbengine/proto"
  8. pb "bet24.com/servers/micros/userservices/proto"
  9. )
  10. // 获取用户基本信息
  11. func trans_getInfo(userId int) *userInfo {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("transaction recover err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. statement := database.NewStatement()
  19. statement.SetNeedReturnValue(false)
  20. statement.SetOpenRecordSet(true)
  21. statement.SetProcName("WS_AllUser_GetBaseInfo")
  22. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  23. sqlstring := statement.GenSql()
  24. retRows := dbengine.ExecuteRs(sqlstring)
  25. if len(retRows) <= 0 {
  26. return nil
  27. }
  28. var out userInfo
  29. ret := retRows[0]
  30. out.UserId = userId
  31. out.NickName = (ret[0]).(string)
  32. out.Vip = int((ret[1]).(int64))
  33. out.FaceId = int((ret[2]).(int64))
  34. out.FaceUrl = (ret[3]).(string)
  35. out.Sex = int((ret[4]).(int64))
  36. out.UserWords = (ret[5]).(string)
  37. // out.IsRobot = int((ret[6]).(int64))
  38. out.PrivateRoomCount = int((ret[7]).(int64))
  39. out.Currency = ret[8].(string)
  40. out.Gold = int((ret[9]).(int64))
  41. out.Charm = int((ret[10]).(int64))
  42. if len(ret) > 11 {
  43. out.Diamond = int((ret[11]).(int64))
  44. }
  45. return &out
  46. }
  47. // 保存国家地区
  48. func saveCountry(userId int, countryName, currency string, isModify int) int {
  49. defer func() {
  50. if err := recover(); err != nil {
  51. log.Error("transaction recover err %v", err)
  52. log.Error("%s", debug.Stack())
  53. }
  54. }()
  55. statement := database.NewStatement()
  56. statement.SetNeedReturnValue(false)
  57. statement.SetOpenRecordSet(true)
  58. statement.SetProcName("WS_AllUser_SaveCountry")
  59. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  60. statement.AddParamter("@CountryName", database.AdParamInput, database.AdNVarChar, 32, countryName)
  61. statement.AddParamter("@Currency", database.AdParamInput, database.AdVarChar, 32, currency)
  62. statement.AddParamter("@IsModify", database.AdParamInput, database.AdInteger, 4, isModify)
  63. sqlString := statement.GenSql()
  64. retRows := dbengine.ExecuteRs(sqlString)
  65. if len(retRows) <= 0 {
  66. return 0
  67. }
  68. return int((retRows[0][0]).(int64))
  69. }
  70. // 获取用户装扮列表
  71. func getDecorationList(userId int) []pb.UserDecoration {
  72. var list []pb.UserDecoration
  73. statement := database.NewStatement()
  74. statement.SetNeedReturnValue(false)
  75. statement.SetOpenRecordSet(true)
  76. statement.SetProcName("WS_UserDecoration_GetList")
  77. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  78. sqlString := statement.GenSql()
  79. jsonData := dbengine.Execute(sqlString)
  80. if err := json.Unmarshal([]byte(jsonData), &list); err != nil {
  81. log.Error("userinfo.transaction getDecorationList json unmarshal err %v", err)
  82. }
  83. return list
  84. }
  85. // 保存用户装扮
  86. func saveDecorations(userId, decorationType, itemId int) int {
  87. defer func() {
  88. if err := recover(); err != nil {
  89. log.Error("transaction recover err %v", err)
  90. log.Error("%s", debug.Stack())
  91. }
  92. }()
  93. statement := database.NewStatement()
  94. statement.SetNeedReturnValue(false)
  95. statement.SetOpenRecordSet(true)
  96. statement.SetProcName("WS_UserDecoration_SaveInfo")
  97. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  98. statement.AddParamter("@DecorationType", database.AdParamInput, database.AdInteger, 4, decorationType)
  99. statement.AddParamter("@ItemID", database.AdParamInput, database.AdInteger, 4, itemId)
  100. sqlString := statement.GenSql()
  101. retRows := dbengine.ExecuteRs(sqlString)
  102. if len(retRows) <= 0 {
  103. return 0
  104. }
  105. return int(retRows[0][0].(int64))
  106. }
  107. // 改变个人开关的状态
  108. func changeSwitchStatus(userId int, switchType string, switchStatus int) {
  109. statement := database.NewStatement()
  110. statement.SetNeedReturnValue(false)
  111. statement.SetOpenRecordSet(false)
  112. statement.SetProcName("WS_UserSwitch_ChangeStatus")
  113. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  114. statement.AddParamter("@SwitchType", database.AdParamInput, database.AdNVarChar, 32, switchType)
  115. statement.AddParamter("@SwitchStatus", database.AdParamInput, database.AdTinyInt, 4, switchStatus)
  116. sqlString := statement.GenSql()
  117. dbengine.Execute(sqlString)
  118. }
  119. // 获取(个人)开关信息
  120. func getSwitchInfo(userId int) []pb.SwitchInfo {
  121. defer func() {
  122. if err := recover(); err != nil {
  123. log.Release("transaction.getSwitchInfo recover %v", err)
  124. log.Release("%s", debug.Stack())
  125. }
  126. }()
  127. statement := database.NewStatement()
  128. statement.SetNeedReturnValue(false)
  129. statement.SetOpenRecordSet(true)
  130. statement.SetProcName("WS_UserSwitch_GetSwitchInfo")
  131. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  132. sqlString := statement.GenSql()
  133. jsonData := dbengine.Execute(sqlString)
  134. var list []pb.SwitchInfo
  135. if err := json.Unmarshal([]byte(jsonData), &list); err != nil {
  136. log.Debug("transaction.getSwitchInfo userId=%d jsonData=%s err=%v", userId, jsonData, err)
  137. }
  138. return list
  139. }
  140. func updateUserCharm(userId, charm int) {
  141. statement := database.NewStatement()
  142. statement.SetNeedReturnValue(false)
  143. statement.SetOpenRecordSet(false)
  144. statement.SetProcName("WS_UserCharm_Update")
  145. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  146. statement.AddParamter("@Charm", database.AdParamInput, database.AdInteger, 4, charm)
  147. sqlString := statement.GenSql()
  148. dbengine.Execute(sqlString)
  149. }