transaction.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package handler
  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/userlabel/proto"
  9. )
  10. // 保存
  11. func trans_Save(userId, days int, info *pb.LabelInfo) {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Error("transaction err %v", err)
  15. log.Error("%s", debug.Stack())
  16. }
  17. }()
  18. buf, _ := json.Marshal(info.Days)
  19. statement := database.NewStatement()
  20. statement.SetNeedReturnValue(false)
  21. statement.SetOpenRecordSet(true)
  22. statement.SetProcName("WS_UserLabel_Save")
  23. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  24. statement.AddParamter("@TypeID", database.AdParamInput, database.AdInteger, 4, info.TypeId)
  25. statement.AddParamter("@LabelID", database.AdParamInput, database.AdVarChar, 32, info.LabelId)
  26. statement.AddParamter("@TotalValue", database.AdParamInput, database.AdInteger, 4, info.TotalValue)
  27. statement.AddParamter("@JsonData", database.AdParamInput, database.AdVarChar, 4096, string(buf))
  28. statement.AddParamter("@Days", database.AdParamInput, database.AdInteger, 4, days)
  29. sqlString := statement.GenSql()
  30. //log.Debug(sqlString)
  31. dbengine.Execute(sqlString)
  32. }
  33. // 获取
  34. func trans_GetInfo(userId int) []pb.LabelInfo {
  35. defer func() {
  36. if err := recover(); err != nil {
  37. log.Error("transaction err %v", err)
  38. log.Error("%s", debug.Stack())
  39. }
  40. }()
  41. statement := database.NewStatement()
  42. statement.SetNeedReturnValue(false)
  43. statement.SetOpenRecordSet(true)
  44. statement.SetProcName("WS_UserLabel_GetInfo")
  45. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  46. sqlString := statement.GenSql()
  47. //log.Debug(sqlString)
  48. retRows := dbengine.ExecuteRs(sqlString)
  49. rowLen := len(retRows)
  50. if rowLen <= 0 {
  51. return nil
  52. }
  53. var list []pb.LabelInfo
  54. for i := 0; i < rowLen; i++ {
  55. ret := retRows[i]
  56. var info pb.LabelInfo
  57. info.TypeId = int(ret[0].(int64))
  58. info.LabelId = ret[1].(string)
  59. info.TotalValue = int(ret[2].(int64))
  60. jsonData := ret[3].(string)
  61. if err := json.Unmarshal([]byte(jsonData), &info.Days); err != nil {
  62. log.Error("transaction.trans_GetInfo json unmarshal err %v", err)
  63. }
  64. list = append(list, info)
  65. }
  66. return list
  67. }
  68. // 获取IP、IMei用户
  69. func trans_GetIPAndIMei(ipAddress, iMei string, days int) []int {
  70. defer func() {
  71. if err := recover(); err != nil {
  72. log.Error("transaction err %v", err)
  73. log.Error("%s", debug.Stack())
  74. }
  75. }()
  76. statement := database.NewStatement()
  77. statement.SetNeedReturnValue(false)
  78. statement.SetOpenRecordSet(true)
  79. statement.SetProcName("WS_AllUser_GetIPAndIMei")
  80. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, ipAddress)
  81. statement.AddParamter("@IMei", database.AdParamInput, database.AdVarChar, 64, iMei)
  82. statement.AddParamter("@Days", database.AdParamInput, database.AdInteger, 4, days)
  83. sqlString := statement.GenSql()
  84. //log.Debug(sqlString)
  85. retRows := dbengine.ExecuteRs(sqlString)
  86. rowLen := len(retRows)
  87. if rowLen <= 0 {
  88. return nil
  89. }
  90. var list []int
  91. for i := 0; i < rowLen; i++ {
  92. ret := retRows[i]
  93. list = append(list, int(ret[0].(int64)))
  94. }
  95. return list
  96. }
  97. // 获取标签列表
  98. func trans_GetListByLabelId(labelId, pageIndex, pageSize int) (int, []pb.LabelUser) {
  99. defer func() {
  100. if err := recover(); err != nil {
  101. log.Error("transaction err %v", err)
  102. log.Error("%s", debug.Stack())
  103. }
  104. }()
  105. var (
  106. recordCount int
  107. list []pb.LabelUser
  108. )
  109. statement := database.NewStatement()
  110. statement.SetNeedReturnValue(false)
  111. statement.SetOpenRecordSet(true)
  112. statement.SetProcName("Manage_UserLabel_GetListByLabelId")
  113. statement.AddParamter("@LabelID", database.AdParamInput, database.AdInteger, 4, labelId)
  114. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  115. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  116. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  117. sqlString := statement.GenSql()
  118. //log.Debug(sqlString)
  119. retRows := dbengine.ExecuteRs(sqlString)
  120. rowLen := len(retRows)
  121. if rowLen <= 0 {
  122. return 0, nil
  123. }
  124. if rowLen > 1 {
  125. for i := 0; i < rowLen-1; i++ {
  126. ret := retRows[i]
  127. var info pb.LabelUser
  128. info.UserId = int(ret[0].(int64))
  129. info.NickName = ret[1].(string)
  130. info.TypeId = int(ret[2].(int64))
  131. info.UpdateTime = ret[3].(string)
  132. list = append(list, info)
  133. }
  134. }
  135. recordCount = int(retRows[rowLen-1][0].(int64))
  136. return recordCount, list
  137. }