transaction.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. package report
  2. import (
  3. "bet24.com/servers/adminserver/ip"
  4. "runtime/debug"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. "bet24.com/servers/adminserver/dao"
  8. )
  9. // 日报表录入
  10. func insertDaily(req *info) {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Error("transaction recover err %v", err)
  14. log.Error("%s", debug.Stack())
  15. }
  16. }()
  17. statement := database.NewStatement()
  18. statement.SetNeedReturnValue(false)
  19. statement.SetOpenRecordSet(true)
  20. statement.SetProcName("Manage_DailyReport_Insert")
  21. statement.AddParamter("@DateFlag", database.AdParamInput, database.AdVarChar, 20, req.DateFlag)
  22. statement.AddParamter("@ItemType", database.AdParamInput, database.AdInteger, 4, req.ItemType)
  23. statement.AddParamter("@ItemName", database.AdParamInput, database.AdNVarChar, 32, req.ItemName)
  24. statement.AddParamter("@ItemValue", database.AdParamInput, database.AdFloat, 20, req.ItemValue)
  25. statement.AddParamter("@ItemTag", database.AdParamInput, database.AdInteger, 4, req.ItemTag)
  26. sqlString := statement.GenSql()
  27. dao.CenterDB.ExecSql(sqlString)
  28. }
  29. // 日报表删除
  30. func delDaily(id int) int {
  31. defer func() {
  32. if err := recover(); err != nil {
  33. log.Error("transaction recover err %v", err)
  34. log.Error("%s", debug.Stack())
  35. }
  36. }()
  37. statement := database.NewStatement()
  38. statement.SetNeedReturnValue(false)
  39. statement.SetOpenRecordSet(true)
  40. statement.SetProcName("Manage_DailyReport_Del")
  41. statement.AddParamter("@Rid", database.AdParamInput, database.AdInteger, 4, id)
  42. sqlString := statement.GenSql()
  43. retRows := dao.CenterDB.ExecSql(sqlString)
  44. if len(retRows) <= 0 {
  45. return 0
  46. }
  47. return int((*retRows[0][0].(*interface{})).(int64))
  48. }
  49. // 日报表列表
  50. func getDailyList(beginTime, endTime string) []*info {
  51. defer func() {
  52. if err := recover(); err != nil {
  53. log.Error("transaction recover err %v", err)
  54. log.Error("%s", debug.Stack())
  55. }
  56. }()
  57. statement := database.NewStatement()
  58. statement.SetNeedReturnValue(false)
  59. statement.SetOpenRecordSet(true)
  60. statement.SetProcName("Manage_DailyReport_GetList")
  61. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  62. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  63. sqlString := statement.GenSql()
  64. retRows := dao.CenterDB.ExecSql(sqlString)
  65. rowLen := len(retRows)
  66. if rowLen <= 0 {
  67. return nil
  68. }
  69. var list []*info
  70. for i := 0; i < rowLen; i++ {
  71. ret := retRows[i]
  72. var out info
  73. out.Rid = int((*ret[0].(*interface{})).(int64))
  74. out.DateFlag = (*ret[1].(*interface{})).(string)
  75. out.ItemType = int((*ret[2].(*interface{})).(int64))
  76. out.ItemName = (*ret[3].(*interface{})).(string)
  77. out.ItemValue = string((*ret[4].(*interface{})).([]byte))
  78. out.ItemTag = int((*ret[5].(*interface{})).(int64))
  79. // out.ItemValue, _ = strconv.ParseFloat(valueStr, 64)
  80. list = append(list, &out)
  81. }
  82. return list
  83. }
  84. // 挑战赛报表
  85. func getSNGMatchList(beginTime, endTime string) []*info {
  86. defer func() {
  87. if err := recover(); err != nil {
  88. log.Error("transaction recover err %v", err)
  89. log.Error("%s", debug.Stack())
  90. }
  91. }()
  92. statement := database.NewStatement()
  93. statement.SetNeedReturnValue(false)
  94. statement.SetOpenRecordSet(true)
  95. statement.SetProcName("Manage_SNGMatchReport_GetList")
  96. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  97. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  98. sqlString := statement.GenSql()
  99. retRows := dao.CenterDB.ExecSql(sqlString)
  100. rowLen := len(retRows)
  101. if rowLen <= 0 {
  102. return nil
  103. }
  104. var list []*info
  105. for i := 0; i < rowLen; i++ {
  106. ret := retRows[i]
  107. var out info
  108. out.Rid = int((*ret[0].(*interface{})).(int64))
  109. out.DateFlag = (*ret[1].(*interface{})).(string)
  110. out.ItemType = int((*ret[2].(*interface{})).(int64))
  111. out.ItemName = (*ret[3].(*interface{})).(string)
  112. out.ItemValue = string((*ret[4].(*interface{})).([]byte))
  113. out.ItemTag = int((*ret[5].(*interface{})).(int64))
  114. list = append(list, &out)
  115. }
  116. return list
  117. }
  118. // 游戏报表
  119. func getGameList(beginTime, endTime string) []*info {
  120. defer func() {
  121. if err := recover(); err != nil {
  122. log.Error("transaction recover err %v", err)
  123. log.Error("%s", debug.Stack())
  124. }
  125. }()
  126. statement := database.NewStatement()
  127. statement.SetNeedReturnValue(false)
  128. statement.SetOpenRecordSet(true)
  129. statement.SetProcName("Manage_GameReport_GetList")
  130. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  131. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  132. sqlString := statement.GenSql()
  133. retRows := dao.CenterDB.ExecSql(sqlString)
  134. rowLen := len(retRows)
  135. if rowLen <= 0 {
  136. return nil
  137. }
  138. var list []*info
  139. for i := 0; i < rowLen; i++ {
  140. ret := retRows[i]
  141. var out info
  142. out.Rid = int((*ret[0].(*interface{})).(int64))
  143. out.DateFlag = (*ret[1].(*interface{})).(string)
  144. out.ItemType = int((*ret[2].(*interface{})).(int64))
  145. out.ItemName = (*ret[3].(*interface{})).(string)
  146. out.ItemValue = string((*ret[4].(*interface{})).([]byte))
  147. out.ItemTag = int((*ret[5].(*interface{})).(int64))
  148. list = append(list, &out)
  149. }
  150. return list
  151. }
  152. // 发行统计列表
  153. func getIssueStatList(beginTime, endTime string) []*info {
  154. defer func() {
  155. if err := recover(); err != nil {
  156. log.Error("transaction recover err %v", err)
  157. log.Error("%s", debug.Stack())
  158. }
  159. }()
  160. statement := database.NewStatement()
  161. statement.SetNeedReturnValue(false)
  162. statement.SetOpenRecordSet(true)
  163. statement.SetProcName("Manage_Issue_GetList")
  164. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  165. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  166. sqlString := statement.GenSql()
  167. retRows := dao.CenterDB.ExecSql(sqlString)
  168. rowLen := len(retRows)
  169. if rowLen <= 0 {
  170. return nil
  171. }
  172. var list []*info
  173. for i := 0; i < rowLen; i++ {
  174. ret := retRows[i]
  175. var out info
  176. out.Rid = int((*ret[0].(*interface{})).(int64))
  177. out.DateFlag = (*ret[1].(*interface{})).(string)
  178. out.ItemType = int((*ret[2].(*interface{})).(int64))
  179. out.ItemName = (*ret[3].(*interface{})).(string)
  180. out.ItemValue = string((*ret[4].(*interface{})).([]byte))
  181. // out.ItemValue, _ = strconv.ParseFloat(valueStr, 64)
  182. list = append(list, &out)
  183. }
  184. return list
  185. }
  186. // 时段统计报表
  187. func timePeriodReport(beginTime, endTime string) []timePeriodInfo {
  188. defer func() {
  189. if err := recover(); err != nil {
  190. log.Error("transaction recover err %v", err)
  191. log.Error("%s", debug.Stack())
  192. }
  193. }()
  194. statement := database.NewStatement()
  195. statement.SetNeedReturnValue(false)
  196. statement.SetOpenRecordSet(true)
  197. statement.SetProcName("Manage_TimePeriod_Report")
  198. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  199. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  200. sqlString := statement.GenSql()
  201. retRows := dao.CenterDB.ExecSql(sqlString)
  202. rowLen := len(retRows)
  203. if rowLen <= 0 {
  204. return nil
  205. }
  206. var list []timePeriodInfo
  207. for i := 0; i < rowLen; i++ {
  208. ret := retRows[i]
  209. var out timePeriodInfo
  210. out.TimePeriod = (*ret[0].(*interface{})).(string)
  211. out.UserCount = int((*ret[1].(*interface{})).(int64))
  212. list = append(list, out)
  213. }
  214. return list
  215. }
  216. // 时段统计
  217. func timePeriodStat(beginTime, endTime string) []timePeriodInfo {
  218. defer func() {
  219. if err := recover(); err != nil {
  220. log.Error("transaction recover err %v", err)
  221. log.Error("%s", debug.Stack())
  222. }
  223. }()
  224. statement := database.NewStatement()
  225. statement.SetNeedReturnValue(false)
  226. statement.SetOpenRecordSet(true)
  227. statement.SetProcName("Manage_TimePeriod_GetStatList")
  228. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  229. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  230. sqlString := statement.GenSql()
  231. retRows := dao.CenterDB.ExecSql(sqlString)
  232. rowLen := len(retRows)
  233. if rowLen <= 0 {
  234. return nil
  235. }
  236. var list []timePeriodInfo
  237. for i := 0; i < rowLen; i++ {
  238. ret := retRows[i]
  239. var out timePeriodInfo
  240. out.DateFlag = (*ret[0].(*interface{})).(string)
  241. out.TimePeriod = (*ret[1].(*interface{})).(string)
  242. out.UserCount = int((*ret[2].(*interface{})).(int64))
  243. list = append(list, out)
  244. }
  245. return list
  246. }
  247. // 时段用户列表
  248. func timePeriodUsers(minSeconds, maxSeconds int, beginTime, endTime string, pageIndex, pageSize int) (int, []timePeriodUser) {
  249. defer func() {
  250. if err := recover(); err != nil {
  251. log.Error("transaction recover err %v", err)
  252. log.Error("%s", debug.Stack())
  253. }
  254. }()
  255. var (
  256. recordCount int
  257. list []timePeriodUser
  258. )
  259. statement := database.NewStatement()
  260. statement.SetNeedReturnValue(false)
  261. statement.SetOpenRecordSet(true)
  262. statement.SetProcName("Manage_TimePeriod_GetUserList")
  263. statement.AddParamter("@MinSeconds", database.AdParamInput, database.AdInteger, 4, minSeconds)
  264. statement.AddParamter("@MaxSeconds", database.AdParamInput, database.AdInteger, 4, maxSeconds)
  265. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  266. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  267. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  268. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  269. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  270. sqlString := statement.GenSql()
  271. retRows := dao.CenterDB.ExecSql(sqlString)
  272. rowLen := len(retRows)
  273. if rowLen <= 0 {
  274. return recordCount, list
  275. }
  276. if rowLen > 1 {
  277. for i := 0; i < rowLen-1; i++ {
  278. ret := retRows[i]
  279. var out timePeriodUser
  280. out.Rid = int((*ret[0].(*interface{})).(int64))
  281. out.UserID = int((*ret[1].(*interface{})).(int64))
  282. out.NickName = (*ret[2].(*interface{})).(string)
  283. out.RegTime = (*ret[3].(*interface{})).(string)
  284. out.LoginTime = (*ret[4].(*interface{})).(string)
  285. out.Seconds = int((*ret[5].(*interface{})).(int64))
  286. out.IpAddress = (*ret[6].(*interface{})).(string)
  287. out.IpAddress = ip.GetCountryAndRegion(out.IpAddress, false)
  288. list = append(list, out)
  289. }
  290. }
  291. recordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  292. return recordCount, list
  293. }