transaction.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. package register
  2. import (
  3. "fmt"
  4. "runtime/debug"
  5. "strconv"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. "bet24.com/servers/adminserver/dao"
  9. )
  10. // 注册统计
  11. func regStatList(partnerId int, beginTime, endTime string) []*regStatInfo {
  12. defer func() {
  13. if err := recover(); err != nil {
  14. log.Release("transaction recover fail %v", err)
  15. log.Release("%s", debug.Stack())
  16. }
  17. }()
  18. var (
  19. totalRegCount int
  20. list []*regStatInfo
  21. )
  22. statement := database.NewStatement()
  23. statement.SetNeedReturnValue(false)
  24. statement.SetOpenRecordSet(true)
  25. statement.SetProcName("Manage_RegStat_GetSubsistList")
  26. statement.AddParamter("@PartnerID", database.AdParamInput, database.AdInteger, 4, partnerId)
  27. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  28. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  29. statement.AddParamter("@TotalRegCount", database.AdParamOutput, database.AdInteger, 4, totalRegCount)
  30. sqlstring := statement.GenSql()
  31. retRows := dao.CenterDB.ExecSql(sqlstring)
  32. rowLen := len(retRows)
  33. if rowLen <= 0 {
  34. return list
  35. }
  36. if rowLen > 1 {
  37. for i := 0; i < rowLen-1; i++ {
  38. ret := retRows[i]
  39. var out regStatInfo
  40. out.DateFlag = (*ret[0].(*interface{})).(string)
  41. out.RegUserCount = int((*ret[1].(*interface{})).(int64))
  42. payMoney := string((*ret[2].(*interface{})).([]byte))
  43. payMoneyStr, _ := strconv.ParseFloat(payMoney, 64)
  44. out.PayMoney = fmt.Sprintf("%.2f", payMoneyStr)
  45. out.PartnerName = (*ret[3].(*interface{})).(string)
  46. out.TotalUserCount = int((*ret[4].(*interface{})).(int64))
  47. list = append(list, &out)
  48. }
  49. }
  50. totalRegCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  51. return list
  52. }
  53. // 注册统计(小时)
  54. func regStatListByHour(beginTime, endTime string) []*regStatByHourInfo {
  55. defer func() {
  56. if err := recover(); err != nil {
  57. log.Error("transaction recover err %v", err)
  58. log.Error("%s", debug.Stack())
  59. }
  60. }()
  61. var list []*regStatByHourInfo
  62. statement := database.NewStatement()
  63. statement.SetNeedReturnValue(false)
  64. statement.SetOpenRecordSet(true)
  65. statement.SetProcName("Manage_RegStat_GetListByHour")
  66. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  67. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  68. statement.AddParamter("@UserType", database.AdParamInput, database.AdInteger, 4, 0)
  69. sqlstring := statement.GenSql()
  70. retRows := dao.CenterDB.ExecSql(sqlstring)
  71. rowLen := len(retRows)
  72. if rowLen <= 0 {
  73. return list
  74. }
  75. for i := 0; i < rowLen; i++ {
  76. ret := retRows[i]
  77. var out regStatByHourInfo
  78. out.DateFlag = (*ret[0].(*interface{})).(string)
  79. out.UserCount = int((*ret[1].(*interface{})).(int64))
  80. out.Hour_0 = int((*ret[2].(*interface{})).(int64))
  81. out.Hour_1 = int((*ret[3].(*interface{})).(int64))
  82. out.Hour_2 = int((*ret[4].(*interface{})).(int64))
  83. out.Hour_3 = int((*ret[5].(*interface{})).(int64))
  84. out.Hour_4 = int((*ret[6].(*interface{})).(int64))
  85. out.Hour_5 = int((*ret[7].(*interface{})).(int64))
  86. out.Hour_6 = int((*ret[8].(*interface{})).(int64))
  87. out.Hour_7 = int((*ret[9].(*interface{})).(int64))
  88. out.Hour_8 = int((*ret[10].(*interface{})).(int64))
  89. out.Hour_9 = int((*ret[11].(*interface{})).(int64))
  90. out.Hour_10 = int((*ret[12].(*interface{})).(int64))
  91. out.Hour_11 = int((*ret[13].(*interface{})).(int64))
  92. out.Hour_12 = int((*ret[14].(*interface{})).(int64))
  93. out.Hour_13 = int((*ret[15].(*interface{})).(int64))
  94. out.Hour_14 = int((*ret[16].(*interface{})).(int64))
  95. out.Hour_15 = int((*ret[17].(*interface{})).(int64))
  96. out.Hour_16 = int((*ret[18].(*interface{})).(int64))
  97. out.Hour_17 = int((*ret[19].(*interface{})).(int64))
  98. out.Hour_18 = int((*ret[20].(*interface{})).(int64))
  99. out.Hour_19 = int((*ret[21].(*interface{})).(int64))
  100. out.Hour_20 = int((*ret[22].(*interface{})).(int64))
  101. out.Hour_21 = int((*ret[23].(*interface{})).(int64))
  102. out.Hour_22 = int((*ret[24].(*interface{})).(int64))
  103. out.Hour_23 = int((*ret[25].(*interface{})).(int64))
  104. list = append(list, &out)
  105. }
  106. return list
  107. }
  108. // 注册来源统计
  109. func regStatSourceList(beginTime, endTime string) []*regStatSourceInfo {
  110. defer func() {
  111. if err := recover(); err != nil {
  112. log.Error("transaction recover err %v", err)
  113. log.Error("%s", debug.Stack())
  114. }
  115. }()
  116. var list []*regStatSourceInfo
  117. statement := database.NewStatement()
  118. statement.SetNeedReturnValue(false)
  119. statement.SetOpenRecordSet(true)
  120. statement.SetProcName("Manage_RegStat_GetSourceList")
  121. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  122. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  123. sqlstring := statement.GenSql()
  124. retRows := dao.CenterDB.ExecSql(sqlstring)
  125. rowLen := len(retRows)
  126. if rowLen <= 0 {
  127. return list
  128. }
  129. for i := 0; i < rowLen; i++ {
  130. ret := retRows[i]
  131. var out regStatSourceInfo
  132. out.DateFlag = (*ret[0].(*interface{})).(string)
  133. out.ServerName = (*ret[1].(*interface{})).(string)
  134. out.UserCount = int((*ret[2].(*interface{})).(int64))
  135. list = append(list, &out)
  136. }
  137. return list
  138. }
  139. func getNewUserStat(req *newUserStatInf_req) *newUserStatInfo_resp {
  140. defer func() {
  141. if err := recover(); err != nil {
  142. log.Error("transaction recover err %v", err)
  143. log.Error("%s", debug.Stack())
  144. }
  145. }()
  146. resp := new(newUserStatInfo_resp)
  147. statement := database.NewStatement()
  148. statement.SetNeedReturnValue(false)
  149. statement.SetOpenRecordSet(true)
  150. statement.SetProcName("Manage_AllUser_GetNewUserStat")
  151. statement.AddParamter("@Source", database.AdParamInput, database.AdNVarChar, 128, req.Source)
  152. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, req.BeginTime)
  153. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, req.EndTime)
  154. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, req.PageIndex)
  155. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, req.PageSize)
  156. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, resp.RecordCount)
  157. sqlString := statement.GenSql()
  158. retRows := dao.CenterDB.ExecSql(sqlString)
  159. rowLen := len(retRows)
  160. if rowLen <= 0 {
  161. return nil
  162. }
  163. if rowLen > 1 {
  164. for i := 0; i < rowLen-1; i++ {
  165. ret := retRows[i]
  166. var out newUserStatInfo
  167. out.DateFlag = (*ret[0].(*interface{})).(string)
  168. out.Source = (*ret[1].(*interface{})).(string)
  169. out.RegCount = int((*ret[2].(*interface{})).(int64))
  170. out.LiveUsers_2 = int((*ret[3].(*interface{})).(int64))
  171. out.PayUsers_1 = int((*ret[4].(*interface{})).(int64))
  172. payMoney_1 := string((*ret[5].(*interface{})).([]byte))
  173. out.PayMoney_1, _ = strconv.ParseFloat(payMoney_1, 64)
  174. payMoney_2 := string((*ret[6].(*interface{})).([]byte))
  175. out.PayMoney_2, _ = strconv.ParseFloat(payMoney_2, 64)
  176. payMoney_3 := string((*ret[7].(*interface{})).([]byte))
  177. out.PayMoney_3, _ = strconv.ParseFloat(payMoney_3, 64)
  178. payMoney_7 := string((*ret[8].(*interface{})).([]byte))
  179. out.PayMoney_7, _ = strconv.ParseFloat(payMoney_7, 64)
  180. payMoney_14 := string((*ret[9].(*interface{})).([]byte))
  181. out.PayMoney_14, _ = strconv.ParseFloat(payMoney_14, 64)
  182. payMoney_30 := string((*ret[10].(*interface{})).([]byte))
  183. out.PayMoney_30, _ = strconv.ParseFloat(payMoney_30, 64)
  184. resp.List = append(resp.List, &out)
  185. }
  186. }
  187. resp.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  188. return resp
  189. }