transaction.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. package agent
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/servers/coreservice/dbengine"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. )
  9. // 申请
  10. func apply(userId int, memo string) int {
  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("WS_UserAgent_Apply")
  21. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  22. statement.AddParamter("@Memo", database.AdParamInput, database.AdNVarChar, 4000, memo)
  23. sqlString := statement.GenSql()
  24. retRows := dbengine.CenterDB.ExecSql(sqlString)
  25. if len(retRows) <= 0 {
  26. return 0
  27. }
  28. return int((retRows[0][0]).(int64))
  29. }
  30. // 绑码
  31. func bind(userId, higherUserID int) int {
  32. defer func() {
  33. if err := recover(); err != nil {
  34. log.Error("transaction recover err %v", err)
  35. log.Error("%s", debug.Stack())
  36. }
  37. }()
  38. statement := database.NewStatement()
  39. statement.SetNeedReturnValue(false)
  40. statement.SetOpenRecordSet(true)
  41. statement.SetProcName("WS_UserAgent_Bind")
  42. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  43. statement.AddParamter("@HigherUserID", database.AdParamInput, database.AdInteger, 4, higherUserID)
  44. sqlString := statement.GenSql()
  45. retRows := dbengine.CenterDB.ExecSql(sqlString)
  46. if len(retRows) <= 0 {
  47. return 0
  48. }
  49. return int((retRows[0][0]).(int64))
  50. }
  51. // 代理信息
  52. func info(userId int) *info_out {
  53. defer func() {
  54. if err := recover(); err != nil {
  55. log.Error("transaction recover err %v", err)
  56. log.Error("%s", debug.Stack())
  57. }
  58. }()
  59. statement := database.NewStatement()
  60. statement.SetNeedReturnValue(false)
  61. statement.SetOpenRecordSet(true)
  62. statement.SetProcName("WS_UserAgent_GetInfo")
  63. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  64. sqlString := statement.GenSql()
  65. retRows := dbengine.CenterDB.ExecSql(sqlString)
  66. if len(retRows) <= 0 {
  67. return nil
  68. }
  69. return &info_out{
  70. Members: int((retRows[0][0]).(int64)),
  71. Commission: int((retRows[0][1]).(int64)),
  72. Profit: int((retRows[0][2]).(int64)),
  73. Enabled: int((retRows[0][3]).(int64)),
  74. Crdate: (retRows[0][4]).(string),
  75. ValidMembers: int((retRows[0][5]).(int64)),
  76. }
  77. }
  78. // 会员列表
  79. func members(userId, pageIndex, pageSize int) *memberList {
  80. defer func() {
  81. if err := recover(); err != nil {
  82. log.Error("transaction recover err %v", err)
  83. log.Error("%s", debug.Stack())
  84. }
  85. }()
  86. var out memberList
  87. statement := database.NewStatement()
  88. statement.SetNeedReturnValue(false)
  89. statement.SetOpenRecordSet(true)
  90. statement.SetProcName("WS_UserAgent_GetMembers")
  91. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  92. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  93. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  94. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  95. statement.AddParamter("@OnlineCount", database.AdParamOutput, database.AdInteger, 4, out.OnlineCount)
  96. sqlString := statement.GenSql()
  97. // log.Debug(sqlString)
  98. retRows := dbengine.CenterDB.ExecSql(sqlString)
  99. rowLen := len(retRows)
  100. if rowLen <= 0 {
  101. return &out
  102. }
  103. if rowLen > 1 {
  104. for i := 0; i < rowLen-1; i++ {
  105. ret := retRows[i]
  106. var info memberInfo
  107. info.UserID = int((ret[0]).(int64))
  108. info.BindTime = (ret[1]).(string)
  109. info.IsOnline = int((ret[2]).(int64))
  110. out.List = append(out.List, info)
  111. }
  112. }
  113. out.RecordCount = int((retRows[rowLen-1][0]).(int64))
  114. out.OnlineCount = int((retRows[rowLen-1][1]).(int64))
  115. return &out
  116. }
  117. // 代理统计
  118. func commissionStat(userId, pageIndex, pageSize int) *stat_out {
  119. defer func() {
  120. if err := recover(); err != nil {
  121. log.Error("transaction recover err %v", err)
  122. log.Error("%s", debug.Stack())
  123. }
  124. }()
  125. var out stat_out
  126. statement := database.NewStatement()
  127. statement.SetNeedReturnValue(false)
  128. statement.SetOpenRecordSet(true)
  129. statement.SetProcName("WS_UserAgent_CommissionStat")
  130. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  131. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  132. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  133. statement.AddParamter("@Commission", database.AdParamOutput, database.AdInteger, 4, out.Commission)
  134. statement.AddParamter("@Profit", database.AdParamOutput, database.AdInteger, 4, out.Profit)
  135. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  136. sqlString := statement.GenSql()
  137. retRows := dbengine.CenterDB.ExecSql(sqlString)
  138. rowLen := len(retRows)
  139. if rowLen <= 0 {
  140. return &out
  141. }
  142. if rowLen > 1 {
  143. for i := 0; i < rowLen-1; i++ {
  144. ret := retRows[i]
  145. var info statModel
  146. info.DateFlag = (ret[0]).(string)
  147. info.Commission = int((ret[1]).(int64))
  148. info.Direct = int((ret[2]).(int64))
  149. out.List = append(out.List, info)
  150. }
  151. }
  152. out.Commission = int((retRows[rowLen-1][0]).(int64))
  153. out.Profit = int((retRows[rowLen-1][1]).(int64))
  154. out.RecordCount = int((retRows[rowLen-1][2]).(int64))
  155. return &out
  156. }
  157. // 收益记录
  158. func commissionLog(userId, fromUserId int, pageIndex, pageSize int) *commission_out {
  159. defer func() {
  160. if err := recover(); err != nil {
  161. log.Error("transaction recover err %v", err)
  162. log.Error("%s", debug.Stack())
  163. }
  164. }()
  165. out := &commission_out{}
  166. statement := database.NewStatement()
  167. statement.SetNeedReturnValue(false)
  168. statement.SetOpenRecordSet(true)
  169. statement.SetProcName("WS_UserAgent_CommissionLog")
  170. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  171. statement.AddParamter("@FromUserID", database.AdParamInput, database.AdInteger, 4, fromUserId)
  172. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  173. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  174. statement.AddParamter("@Commission", database.AdParamOutput, database.AdInteger, 4, out.Commission)
  175. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  176. sqlString := statement.GenSql()
  177. retRows := dbengine.CenterDB.ExecSql(sqlString)
  178. rowLen := len(retRows)
  179. if rowLen <= 0 {
  180. return out
  181. }
  182. if rowLen > 1 {
  183. out.List = make([]commissionInfo, rowLen-1)
  184. for i := 0; i < rowLen-1; i++ {
  185. ret := retRows[i]
  186. info := &out.List[i]
  187. info.ChineseName = (ret[0]).(string)
  188. info.FromUserID = int((ret[1]).(int64))
  189. info.WantCommission = int((ret[2]).(int64))
  190. info.Crdate = (ret[3]).(string)
  191. }
  192. }
  193. out.Commission = int((retRows[rowLen-1][0]).(int64))
  194. out.RecordCount = int((retRows[rowLen-1][1]).(int64))
  195. return out
  196. }
  197. // 代理配置
  198. func getConfigInfo() *configInfo {
  199. defer func() {
  200. if err := recover(); err != nil {
  201. log.Error("transaction recover err %v", err)
  202. log.Error("%s", debug.Stack())
  203. }
  204. }()
  205. statement := database.NewStatement()
  206. statement.SetNeedReturnValue(false)
  207. statement.SetOpenRecordSet(true)
  208. statement.SetProcName("WS_UserAgent_ConfigInfo")
  209. sqlString := statement.GenSql()
  210. retRows := dbengine.CenterDB.ExecSql(sqlString)
  211. if len(retRows) <= 0 {
  212. return nil
  213. }
  214. ret := retRows[0]
  215. return &configInfo{
  216. IsOpen: int((ret[0]).(int64)),
  217. BindSend: int((ret[1]).(int64)),
  218. BetOneDirect: int((ret[2]).(int64)),
  219. BetTwoDirect: int((ret[3]).(int64)),
  220. TaxOneDirect: int((ret[4]).(int64)),
  221. TaxTwoDirect: int((ret[5]).(int64)),
  222. PayOneDirect: int((ret[6]).(int64)),
  223. PayTwoDirect: int((ret[7]).(int64)),
  224. }
  225. }
  226. // 提取收益
  227. func commissionToAmount(userId int, ipAddress string) (int, int) {
  228. defer func() {
  229. if err := recover(); err != nil {
  230. log.Error("transaction recover err %v", err)
  231. log.Error("%s", debug.Stack())
  232. }
  233. }()
  234. statement := database.NewStatement()
  235. statement.SetNeedReturnValue(false)
  236. statement.SetOpenRecordSet(true)
  237. statement.SetProcName("WS_UserAgent_CommissionToAmount")
  238. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  239. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, ipAddress)
  240. sqlString := statement.GenSql()
  241. retRows := dbengine.CenterDB.ExecSql(sqlString)
  242. if len(retRows) <= 0 {
  243. return 0, 0
  244. }
  245. ret := retRows[0]
  246. retCode := int((ret[0]).(int64))
  247. commission := int((ret[1]).(int64))
  248. return retCode, commission
  249. }
  250. // 获取组信息
  251. func getGroup(userId int) []*linkInfo {
  252. defer func() {
  253. if err := recover(); err != nil {
  254. log.Error("transaction recover err %v", err)
  255. log.Error("%s", debug.Stack())
  256. }
  257. }()
  258. var list []*linkInfo
  259. statement := database.NewStatement()
  260. statement.SetNeedReturnValue(false)
  261. statement.SetOpenRecordSet(true)
  262. statement.SetProcName("WS_UserAgent_GetGroup")
  263. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  264. sqlString := statement.GenSql()
  265. retRows := dbengine.CenterDB.ExecSql(sqlString)
  266. if len(retRows) <= 0 {
  267. return list
  268. }
  269. info := (retRows[0][0]).(string)
  270. if info == "" {
  271. return list
  272. }
  273. if err := json.Unmarshal([]byte(info), &list); err != nil {
  274. log.Error("agent.transaction.getGroup info=%s err=%v", info, err)
  275. }
  276. return list
  277. }
  278. // 修改数组信息
  279. func updateGroup(userId int, info string) {
  280. defer func() {
  281. if err := recover(); err != nil {
  282. log.Error("transaction recover err %v", err)
  283. log.Error("%s", debug.Stack())
  284. }
  285. }()
  286. statement := database.NewStatement()
  287. statement.SetNeedReturnValue(false)
  288. statement.SetOpenRecordSet(true)
  289. statement.SetProcName("WS_UserAgent_UpdateGroup")
  290. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  291. statement.AddParamter("@Info", database.AdParamInput, database.AdNVarChar, 4000, info)
  292. sqlString := statement.GenSql()
  293. log.Debug(sqlString)
  294. dbengine.CenterDB.ExecSql(sqlString)
  295. }
  296. // 有效会员奖励
  297. func getBindAwards() []*bindAward {
  298. defer func() {
  299. if err := recover(); err != nil {
  300. log.Error("transaction recover err %v", err)
  301. log.Error("%s", debug.Stack())
  302. }
  303. }()
  304. var list []*bindAward
  305. statement := database.NewStatement()
  306. statement.SetNeedReturnValue(false)
  307. statement.SetOpenRecordSet(true)
  308. statement.SetProcName("WS_UserAgent_BindAwards")
  309. sqlString := statement.GenSql()
  310. retRows := dbengine.CenterDB.ExecSql(sqlString)
  311. rowLen := len(retRows)
  312. if rowLen <= 0 {
  313. return list
  314. }
  315. for i := 0; i < rowLen; i++ {
  316. ret := retRows[i]
  317. var out bindAward
  318. out.Members = int((ret[0]).(int64))
  319. out.Profit = int((ret[1]).(int64))
  320. list = append(list, &out)
  321. }
  322. return list
  323. }