transaction.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. package agent
  2. import (
  3. "runtime/debug"
  4. "strings"
  5. "bet24.com/database"
  6. "bet24.com/log"
  7. "bet24.com/servers/adminserver/dao"
  8. )
  9. // 代理配置
  10. func getConfig() *configInfo {
  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_AgentConfig_GetInfo")
  21. sqlString := statement.GenSql()
  22. retRows := dao.CenterDB.ExecSql(sqlString)
  23. if len(retRows) <= 0 {
  24. return nil
  25. }
  26. ret := retRows[0]
  27. return &configInfo{
  28. IsOpen: int((*ret[0].(*interface{})).(int64)),
  29. BindSend: int((*ret[1].(*interface{})).(int64)),
  30. BetOneDirect: int((*ret[2].(*interface{})).(int64)),
  31. BetTwoDirect: int((*ret[3].(*interface{})).(int64)),
  32. TaxOneDirect: int((*ret[4].(*interface{})).(int64)),
  33. TaxTwoDirect: int((*ret[5].(*interface{})).(int64)),
  34. PayOneDirect: int((*ret[6].(*interface{})).(int64)),
  35. PayTwoDirect: int((*ret[7].(*interface{})).(int64)),
  36. AuditEnabled: int((*ret[8].(*interface{})).(int64)),
  37. }
  38. }
  39. // 修改代理配置
  40. func updateConfig(req *configUp_in) {
  41. defer func() {
  42. if err := recover(); err != nil {
  43. log.Error("transaction recover err %v", err)
  44. log.Error("%s", debug.Stack())
  45. }
  46. }()
  47. var out agentList_out
  48. statement := database.NewStatement()
  49. statement.SetNeedReturnValue(false)
  50. statement.SetOpenRecordSet(true)
  51. statement.SetProcName("Manage_AgentConfig_Update")
  52. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, req.OpUserID)
  53. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, req.OpUserName)
  54. statement.AddParamter("@IsOpen", database.AdParamInput, database.AdInteger, 4, req.IsOpen)
  55. statement.AddParamter("@BindSend", database.AdParamInput, database.AdInteger, 4, req.BindSend)
  56. statement.AddParamter("@OneDirect", database.AdParamInput, database.AdInteger, 4, req.BetOneDirect)
  57. statement.AddParamter("@TwoDirect", database.AdParamInput, database.AdInteger, 4, req.BetTwoDirect)
  58. statement.AddParamter("@TaxOneDirect", database.AdParamInput, database.AdInteger, 4, req.TaxOneDirect)
  59. statement.AddParamter("@TaxTwoDirect", database.AdParamInput, database.AdInteger, 4, req.TaxTwoDirect)
  60. statement.AddParamter("@PayOneDirect", database.AdParamInput, database.AdInteger, 4, req.PayOneDirect)
  61. statement.AddParamter("@PayTwoDirect", database.AdParamInput, database.AdInteger, 4, req.PayTwoDirect)
  62. statement.AddParamter("@AuditEnabled", database.AdParamInput, database.AdInteger, 4, req.AuditEnabled)
  63. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, req.IpAddress)
  64. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  65. sqlString := statement.GenSql()
  66. dao.CenterDB.ExecSql(sqlString)
  67. }
  68. // 代理列表
  69. func getAgentList(req *request_base) *agentList_out {
  70. defer func() {
  71. if err := recover(); err != nil {
  72. log.Error("transaction recover err %v", err)
  73. log.Error("%s", debug.Stack())
  74. }
  75. }()
  76. var out agentList_out
  77. statement := database.NewStatement()
  78. statement.SetNeedReturnValue(false)
  79. statement.SetOpenRecordSet(true)
  80. statement.SetProcName("Manage_UserAgent_GetInfo")
  81. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, req.UserID)
  82. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, req.BeginTime)
  83. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, req.EndTime)
  84. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, req.PageIndex)
  85. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, req.PageSize)
  86. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  87. sqlString := statement.GenSql()
  88. retRows := dao.CenterDB.ExecSql(sqlString)
  89. rowLen := len(retRows)
  90. if rowLen <= 0 {
  91. return nil
  92. }
  93. if rowLen > 1 {
  94. for i := 0; i < rowLen-1; i++ {
  95. ret := retRows[i]
  96. var info agentInfo
  97. info.UserID = int((*ret[0].(*interface{})).(int64))
  98. info.NickName = (*ret[1].(*interface{})).(string)
  99. info.Commission = int((*ret[2].(*interface{})).(int64))
  100. info.Profit = int((*ret[3].(*interface{})).(int64))
  101. info.Members = int((*ret[4].(*interface{})).(int64))
  102. info.Enabled = int((*ret[5].(*interface{})).(int64))
  103. info.Crdate = (*ret[6].(*interface{})).(string)
  104. out.List = append(out.List, &info)
  105. }
  106. }
  107. out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  108. return &out
  109. }
  110. // 申请列表
  111. func getAgentApplyList(req *request_base) *applyList_out {
  112. defer func() {
  113. if err := recover(); err != nil {
  114. log.Error("transaction recover err %v", err)
  115. log.Error("%s", debug.Stack())
  116. }
  117. }()
  118. var out applyList_out
  119. statement := database.NewStatement()
  120. statement.SetNeedReturnValue(false)
  121. statement.SetOpenRecordSet(true)
  122. statement.SetProcName("Manage_UserAgent_GetApplyList")
  123. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, req.UserID)
  124. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, req.BeginTime)
  125. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, req.EndTime)
  126. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, req.PageIndex)
  127. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, req.PageSize)
  128. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  129. sqlString := statement.GenSql()
  130. retRows := dao.CenterDB.ExecSql(sqlString)
  131. rowLen := len(retRows)
  132. if rowLen <= 0 {
  133. return nil
  134. }
  135. if rowLen > 1 {
  136. for i := 0; i < rowLen-1; i++ {
  137. ret := retRows[i]
  138. var info applyInfo
  139. info.ApplyID = int((*ret[0].(*interface{})).(int64))
  140. info.UserID = int((*ret[1].(*interface{})).(int64))
  141. info.NickName = (*ret[2].(*interface{})).(string)
  142. info.HigherUserID = int((*ret[3].(*interface{})).(int64))
  143. info.HigherNickName = (*ret[4].(*interface{})).(string)
  144. info.ApplyStatus = int((*ret[5].(*interface{})).(int64))
  145. memo := (*ret[6].(*interface{})).(string)
  146. mList := strings.Split(memo, ",操作员:")
  147. info.Memo = mList[0]
  148. if len(mList) == 2 {
  149. info.OpUser = mList[1]
  150. }
  151. info.DealTime = (*ret[7].(*interface{})).(string)
  152. info.Crdate = (*ret[8].(*interface{})).(string)
  153. out.List = append(out.List, &info)
  154. }
  155. }
  156. out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  157. return &out
  158. }
  159. // 处理申请
  160. func dealApply(req *dealApply_req) int {
  161. defer func() {
  162. if err := recover(); err != nil {
  163. log.Error("transaction recover err %v", err)
  164. log.Error("%s", debug.Stack())
  165. }
  166. }()
  167. retCode := 0
  168. statement := database.NewStatement()
  169. statement.SetNeedReturnValue(false)
  170. statement.SetOpenRecordSet(true)
  171. statement.SetProcName("Manage_UserAgent_DealApply")
  172. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, req.OpUserID)
  173. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, req.OpUserName)
  174. statement.AddParamter("@ApplyID", database.AdParamInput, database.AdInteger, 4, req.ApplyID)
  175. statement.AddParamter("@ApplyStatus", database.AdParamInput, database.AdInteger, 4, req.ApplyStatus)
  176. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, req.IpAddress)
  177. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  178. sqlString := statement.GenSql()
  179. retRows := dao.CenterDB.ExecSql(sqlString)
  180. if len(retRows) <= 0 {
  181. return retCode
  182. }
  183. retCode = int((*retRows[0][0].(*interface{})).(int64))
  184. return retCode
  185. }
  186. // 会员列表
  187. func getMemberList(req *request_base) *memberInfo_out {
  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. out := new(memberInfo_out)
  195. statement := database.NewStatement()
  196. statement.SetNeedReturnValue(false)
  197. statement.SetOpenRecordSet(true)
  198. statement.SetProcName("Manage_UserAgent_GetMemberList")
  199. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, req.UserID)
  200. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, req.BeginTime)
  201. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, req.EndTime)
  202. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, req.PageIndex)
  203. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, req.PageSize)
  204. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  205. sqlstring := statement.GenSql()
  206. retRows := dao.CenterDB.ExecSql(sqlstring)
  207. rowLen := len(retRows)
  208. if rowLen <= 0 {
  209. return out
  210. }
  211. if rowLen > 1 {
  212. for i := 0; i < rowLen-1; i++ {
  213. ret := retRows[i]
  214. var info memberInfo
  215. info.UserID = int((*ret[0].(*interface{})).(int64))
  216. info.NickName = (*ret[1].(*interface{})).(string)
  217. info.Commission = int((*ret[2].(*interface{})).(int64))
  218. info.NewCommission = int((*ret[3].(*interface{})).(int64))
  219. info.BindTime = (*ret[4].(*interface{})).(string)
  220. info.LoginTime = (*ret[5].(*interface{})).(string)
  221. info.HigherUserID = int((*ret[6].(*interface{})).(int64))
  222. info.HigherNickName = (*ret[7].(*interface{})).(string)
  223. out.List = append(out.List, &info)
  224. }
  225. }
  226. out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  227. return out
  228. }
  229. // 佣金日志
  230. func getCommissionLog(req *request_base) *commissionInfo_out {
  231. defer func() {
  232. if err := recover(); err != nil {
  233. log.Error("transaction recover err %v", err)
  234. log.Error("%s", debug.Stack())
  235. }
  236. }()
  237. out := new(commissionInfo_out)
  238. statement := database.NewStatement()
  239. statement.SetNeedReturnValue(false)
  240. statement.SetOpenRecordSet(true)
  241. statement.SetProcName("Manage_UserAgent_GetCommissionLog")
  242. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, req.UserID)
  243. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, req.BeginTime)
  244. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, req.EndTime)
  245. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, req.PageIndex)
  246. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, req.PageSize)
  247. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, out.RecordCount)
  248. statement.AddParamter("@TotalCommission", database.AdParamOutput, database.AdInteger, 8, out.TotalCommission)
  249. sqlstring := statement.GenSql()
  250. retRows := dao.CenterDB.ExecSql(sqlstring)
  251. rowLen := len(retRows)
  252. if rowLen <= 0 {
  253. return out
  254. }
  255. if rowLen > 1 {
  256. for i := 0; i < rowLen-1; i++ {
  257. ret := retRows[i]
  258. var info commissionInfo
  259. info.Rid = int((*ret[0].(*interface{})).(int64))
  260. info.UserID = int((*ret[1].(*interface{})).(int64))
  261. info.NickName = (*ret[2].(*interface{})).(string)
  262. info.FromUserID = int((*ret[3].(*interface{})).(int64))
  263. info.FromNickName = (*ret[4].(*interface{})).(string)
  264. info.Tax = int((*ret[5].(*interface{})).(int64))
  265. info.WantCommission = int((*ret[6].(*interface{})).(int64))
  266. info.StillCommission = int((*ret[7].(*interface{})).(int64))
  267. info.Direct = int((*ret[8].(*interface{})).(int64))
  268. info.Memo = (*ret[9].(*interface{})).(string)
  269. info.Crdate = (*ret[10].(*interface{})).(string)
  270. info.ChineseName = (*ret[11].(*interface{})).(string)
  271. out.List = append(out.List, &info)
  272. }
  273. }
  274. out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  275. out.TotalCommission = int((*retRows[rowLen-1][1].(*interface{})).(int64))
  276. return out
  277. }
  278. // 佣金排行榜
  279. func getCommissionRankList(userId int, beginTime, endTime string) []*commissionRankInfo {
  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("Manage_CommissionStat_RankList")
  290. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  291. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, beginTime)
  292. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, endTime)
  293. sqlstring := statement.GenSql()
  294. retRows := dao.CenterDB.ExecSql(sqlstring)
  295. rowLen := len(retRows)
  296. if rowLen <= 0 {
  297. return nil
  298. }
  299. var out []*commissionRankInfo
  300. for i := 0; i < rowLen; i++ {
  301. ret := retRows[i]
  302. var info commissionRankInfo
  303. info.Rid = int((*ret[0].(*interface{})).(int64))
  304. info.UserID = int((*ret[1].(*interface{})).(int64))
  305. info.NickName = (*ret[2].(*interface{})).(string)
  306. info.BetAmount = int((*ret[3].(*interface{})).(int64))
  307. info.Commission = int((*ret[4].(*interface{})).(int64))
  308. info.Grade = int((*ret[5].(*interface{})).(int64))
  309. out = append(out, &info)
  310. }
  311. return out
  312. }
  313. // 创建代理
  314. func createAgent(opUserID int, opUserName string, userId, grade int, ipAddress string) int {
  315. defer func() {
  316. if err := recover(); err != nil {
  317. log.Error("transaction recover err %v", err)
  318. log.Error("%s", debug.Stack())
  319. }
  320. }()
  321. retCode := 0
  322. statement := database.NewStatement()
  323. statement.SetNeedReturnValue(false)
  324. statement.SetOpenRecordSet(true)
  325. statement.SetProcName("Manage_Agent_Create")
  326. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, opUserID)
  327. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, opUserName)
  328. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  329. statement.AddParamter("@Grade", database.AdParamInput, database.AdInteger, 4, grade)
  330. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, ipAddress)
  331. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
  332. sqlstring := statement.GenSql()
  333. retRows := dao.CenterDB.ExecSql(sqlstring)
  334. if len(retRows) <= 0 {
  335. return retCode
  336. }
  337. retCode = int((*retRows[0][0].(*interface{})).(int64))
  338. return retCode
  339. }
  340. // 设置代理状态
  341. func setStatus(opUserID int, opUserName string, userId, enabled int) {
  342. defer func() {
  343. if err := recover(); err != nil {
  344. log.Error("transaction recover err %v", err)
  345. log.Error("%s", debug.Stack())
  346. }
  347. }()
  348. statement := database.NewStatement()
  349. statement.SetNeedReturnValue(false)
  350. statement.SetOpenRecordSet(true)
  351. statement.SetProcName("Manage_UserAgent_SetStatus")
  352. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, opUserID)
  353. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, opUserName)
  354. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  355. statement.AddParamter("@Enabled", database.AdParamInput, database.AdInteger, 4, enabled)
  356. sqlString := statement.GenSql()
  357. dao.CenterDB.ExecSql(sqlString)
  358. }