user.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662
  1. package dao
  2. import (
  3. "bet24.com/servers/adminserver/ip"
  4. waterpool "bet24.com/servers/micros/waterpool/proto"
  5. "runtime/debug"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. )
  9. // 管理员登陆
  10. type (
  11. userLogin_in struct {
  12. AdminUserID int //管理员ID
  13. AdminUserName string //管理员名称
  14. LoginPassword string //登陆密码
  15. IpAddress string //IP地址
  16. }
  17. userLoginModel struct {
  18. RoleID int //角色ID
  19. }
  20. userLogin_out struct {
  21. CurrAdminUserID int //当前用户ID
  22. CurrAdminUserName string //当前用户名
  23. RetCode int //操作结果
  24. ErrorMsg string //操作描述
  25. }
  26. userLogin struct {
  27. database.Trans_base
  28. In userLogin_in
  29. Out userLogin_out
  30. }
  31. )
  32. func NewUserLogin() *userLogin {
  33. return &userLogin{}
  34. }
  35. func (this *userLogin) DoAction(ch chan<- interface{}) {
  36. defer func() {
  37. if err := recover(); err != nil {
  38. log.Release("transaction recover fail %v", err)
  39. log.Release("%s", debug.Stack())
  40. }
  41. if ch != nil {
  42. ch <- this
  43. }
  44. }()
  45. statement := database.NewStatement()
  46. statement.SetNeedReturnValue(false)
  47. statement.SetOpenRecordSet(true)
  48. statement.SetProcName("Manage_AdminUser_Login")
  49. statement.AddParamter("@AdminUserID", database.AdParamInput, database.AdInteger, 4, this.In.AdminUserID)
  50. statement.AddParamter("@AdminUserName", database.AdParamInput, database.AdVarChar, 32, this.In.AdminUserName)
  51. statement.AddParamter("@LoginPassword", database.AdParamInput, database.AdVarChar, 32, this.In.LoginPassword)
  52. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  53. statement.AddParamter("@CurrAdminUserID", database.AdParamOutput, database.AdInteger, 4, this.Out.CurrAdminUserID)
  54. statement.AddParamter("@CurrAdminUserName", database.AdParamOutput, database.AdVarChar, 32, this.Out.CurrAdminUserName)
  55. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  56. sqlstring := statement.GenSql()
  57. retRows := CenterDB.ExecSql(sqlstring)
  58. rowLen := len(retRows)
  59. if rowLen <= 0 {
  60. this.State = false
  61. return
  62. }
  63. this.State = true
  64. this.Out.CurrAdminUserID = int((*retRows[0][0].(*interface{})).(int64))
  65. this.Out.CurrAdminUserName = (*retRows[0][1].(*interface{})).(string)
  66. this.Out.RetCode = int((*retRows[0][2].(*interface{})).(int64))
  67. }
  68. // 获取页面列表
  69. type (
  70. pageList_in struct {
  71. AdminUserID int //管理员ID
  72. }
  73. pageInfo struct {
  74. PageID int //页ID
  75. PageName string //页名称
  76. PageUrl string //页路径
  77. IsMenu int //是否菜单
  78. }
  79. pageList_out struct {
  80. RetCode int //操作结果
  81. ErrorMsg string //操作描述
  82. List []pageInfo
  83. }
  84. pageList struct {
  85. database.Trans_base
  86. In pageList_in
  87. Out pageList_out
  88. }
  89. )
  90. func NewPageList() *pageList {
  91. return &pageList{}
  92. }
  93. func (this *pageList) DoAction(ch chan<- interface{}) {
  94. defer func() {
  95. if err := recover(); err != nil {
  96. log.Release("transaction recover fail %v", err)
  97. log.Release("%s", debug.Stack())
  98. }
  99. if ch != nil {
  100. ch <- this
  101. }
  102. }()
  103. statement := database.NewStatement()
  104. statement.SetNeedReturnValue(false)
  105. statement.SetOpenRecordSet(true)
  106. statement.SetProcName("Manage_AdminUser_GetPageList")
  107. statement.AddParamter("@AdminUserID", database.AdParamInput, database.AdInteger, 4, this.In.AdminUserID)
  108. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  109. sqlstring := statement.GenSql()
  110. retRows := CenterDB.ExecSql(sqlstring)
  111. rowLen := len(retRows)
  112. if rowLen <= 0 {
  113. this.State = false
  114. return
  115. }
  116. this.State = true
  117. if rowLen > 1 {
  118. this.Out.List = make([]pageInfo, rowLen-1)
  119. for i := 0; i < rowLen-1; i++ {
  120. ret := retRows[i]
  121. out := &this.Out.List[i]
  122. out.PageID = int((*ret[0].(*interface{})).(int64))
  123. out.PageName = (*ret[1].(*interface{})).(string)
  124. out.PageUrl = (*ret[2].(*interface{})).(string)
  125. out.IsMenu = int((*ret[3].(*interface{})).(int64))
  126. }
  127. }
  128. this.Out.RetCode = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  129. }
  130. // 获取管理用户信息
  131. type (
  132. getInfo_in struct {
  133. AdminUserID int //管理员ID
  134. }
  135. getInfo_out struct {
  136. AdminUserID int //管理员ID
  137. IPAddress string //IP地址
  138. FailureTimes int //失败次数
  139. UpdateTime string //更新时间
  140. Crdate string //创建时间
  141. RoleNames string //角色名称
  142. Memo string //管理员备注
  143. }
  144. getInfo struct {
  145. database.Trans_base
  146. In getInfo_in
  147. Out getInfo_out
  148. }
  149. )
  150. func NewGetInfo() *getInfo {
  151. return &getInfo{}
  152. }
  153. func (this *getInfo) DoAction(ch chan<- interface{}) {
  154. defer func() {
  155. if err := recover(); err != nil {
  156. log.Release("transaction recover fail %v", err)
  157. log.Release("%s", debug.Stack())
  158. }
  159. if ch != nil {
  160. ch <- this
  161. }
  162. }()
  163. statement := database.NewStatement()
  164. statement.SetNeedReturnValue(false)
  165. statement.SetOpenRecordSet(true)
  166. statement.SetProcName("Manage_AdminUser_GetInfo")
  167. statement.AddParamter("@AdminUserID", database.AdParamInput, database.AdInteger, 4, this.In.AdminUserID)
  168. sqlstring := statement.GenSql()
  169. retRows := CenterDB.ExecSql(sqlstring)
  170. rowLen := len(retRows)
  171. if rowLen <= 0 {
  172. this.State = false
  173. return
  174. }
  175. this.State = true
  176. ret := retRows[0]
  177. this.Out.AdminUserID = int((*ret[0].(*interface{})).(int64))
  178. this.Out.IPAddress = (*ret[1].(*interface{})).(string)
  179. this.Out.IPAddress = ip.GetCountryAndRegion(this.Out.IPAddress, false)
  180. this.Out.FailureTimes = int((*ret[2].(*interface{})).(int64))
  181. this.Out.UpdateTime = (*ret[3].(*interface{})).(string)
  182. this.Out.Crdate = (*ret[4].(*interface{})).(string)
  183. this.Out.RoleNames = (*ret[5].(*interface{})).(string)
  184. this.Out.Memo = (*ret[6].(*interface{})).(string)
  185. }
  186. // 修改密码
  187. type (
  188. updatePassword_in struct {
  189. AdminUserID int //管理用户ID
  190. OldPassword string //旧密码(MD5加密)
  191. NewPassword string //新密码(MD5加密)
  192. NewPassword2 string //新密码(MD5加密)
  193. IpAddress string //IP地址
  194. }
  195. updatePassword_out struct {
  196. RetCode int //操作结果
  197. ErrorMsg string //操作描述
  198. }
  199. updatePassword struct {
  200. database.Trans_base
  201. In updatePassword_in
  202. Out updatePassword_out
  203. }
  204. )
  205. func NewUpdatePassword() *updatePassword {
  206. return &updatePassword{}
  207. }
  208. func (this *updatePassword) DoAction(ch chan<- interface{}) {
  209. defer func() {
  210. if err := recover(); err != nil {
  211. log.Release("transaction recover fail %v", err)
  212. log.Release("%s", debug.Stack())
  213. }
  214. if ch != nil {
  215. ch <- this
  216. }
  217. }()
  218. statement := database.NewStatement()
  219. statement.SetNeedReturnValue(false)
  220. statement.SetOpenRecordSet(true)
  221. statement.SetProcName("Manage_AdminUser_UpdatePassword")
  222. statement.AddParamter("@AdminUserID", database.AdParamInput, database.AdInteger, 4, this.In.AdminUserID)
  223. statement.AddParamter("@OldPassword", database.AdParamInput, database.AdVarChar, 32, this.In.OldPassword)
  224. statement.AddParamter("@NewPassword", database.AdParamInput, database.AdVarChar, 32, this.In.NewPassword)
  225. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  226. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  227. sqlstring := statement.GenSql()
  228. retRows := CenterDB.ExecSql(sqlstring)
  229. rowLen := len(retRows)
  230. if rowLen <= 0 {
  231. this.State = false
  232. return
  233. }
  234. this.State = true
  235. ret := retRows[0]
  236. this.Out.RetCode = int((*ret[0].(*interface{})).(int64))
  237. }
  238. // 校验页面
  239. type (
  240. verifyPage_in struct {
  241. AdminUserID int //管理用户ID
  242. AdminPageID int //管理页面ID
  243. }
  244. verifyPage_out struct {
  245. RetCode int //操作结果
  246. ErrorMsg string //操作描述
  247. }
  248. verifyPage struct {
  249. database.Trans_base
  250. In verifyPage_in
  251. Out verifyPage_out
  252. }
  253. )
  254. func NewVerifyPage() *verifyPage {
  255. return &verifyPage{}
  256. }
  257. func (this *verifyPage) DoAction(ch chan<- interface{}) {
  258. defer func() {
  259. if err := recover(); err != nil {
  260. log.Release("transaction recover fail %v", err)
  261. log.Release("%s", debug.Stack())
  262. }
  263. if ch != nil {
  264. ch <- this
  265. }
  266. }()
  267. statement := database.NewStatement()
  268. statement.SetNeedReturnValue(false)
  269. statement.SetOpenRecordSet(true)
  270. statement.SetProcName("Manage_AdminUser_VerifyPage")
  271. statement.AddParamter("@AdminUserID", database.AdParamInput, database.AdInteger, 4, this.In.AdminUserID)
  272. statement.AddParamter("@AdminPageID", database.AdParamInput, database.AdInteger, 4, this.In.AdminPageID)
  273. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  274. sqlstring := statement.GenSql()
  275. retRows := CenterDB.ExecSql(sqlstring)
  276. rowLen := len(retRows)
  277. if rowLen <= 0 {
  278. this.State = false
  279. return
  280. }
  281. this.State = true
  282. ret := retRows[0]
  283. this.Out.RetCode = int((*ret[0].(*interface{})).(int64))
  284. }
  285. // 管理用户列表
  286. type (
  287. userInfo struct {
  288. AdminUserID int //管理员ID
  289. AdminUserName string //管理员名称
  290. IPAddress string //IP地址
  291. FailureTimes int //失败次数
  292. UpdateTime string //更新时间
  293. Memo string //备注
  294. Crdate string //创建时间
  295. }
  296. userList_out struct {
  297. RecordCount int
  298. List []userInfo
  299. }
  300. userList struct {
  301. database.Trans_base
  302. Out userList_out
  303. }
  304. )
  305. func NewUserList() *userList {
  306. return &userList{}
  307. }
  308. func (this *userList) DoAction(ch chan<- interface{}) {
  309. defer func() {
  310. if err := recover(); err != nil {
  311. log.Release("transaction recover fail %v", err)
  312. log.Release("%s", debug.Stack())
  313. }
  314. if ch != nil {
  315. ch <- this
  316. }
  317. }()
  318. statement := database.NewStatement()
  319. statement.SetNeedReturnValue(false)
  320. statement.SetOpenRecordSet(true)
  321. statement.SetProcName("Manage_AdminUser_GetList")
  322. sqlstring := statement.GenSql()
  323. retRows := CenterDB.ExecSql(sqlstring)
  324. rowLen := len(retRows)
  325. if rowLen <= 0 {
  326. this.State = false
  327. return
  328. }
  329. this.State = true
  330. this.Out.List = make([]userInfo, rowLen)
  331. for i := 0; i < rowLen; i++ {
  332. ret := retRows[i]
  333. out := &this.Out.List[i]
  334. out.AdminUserID = int((*ret[0].(*interface{})).(int64))
  335. out.AdminUserName = (*ret[1].(*interface{})).(string)
  336. out.IPAddress = (*ret[2].(*interface{})).(string)
  337. out.IPAddress = ip.GetCountryAndRegion(out.IPAddress, false)
  338. out.FailureTimes = int((*ret[3].(*interface{})).(int64))
  339. out.UpdateTime = (*ret[4].(*interface{})).(string)
  340. out.Memo = (*ret[5].(*interface{})).(string)
  341. out.Crdate = (*ret[6].(*interface{})).(string)
  342. }
  343. }
  344. // 删除后台管理用户
  345. type (
  346. userDel_in struct {
  347. OpUserID int //操作员ID
  348. OpUserName string //操作员名称
  349. AdminUserName string //管理员名称
  350. IpAddress string //IP地址
  351. }
  352. userDel_out struct {
  353. RetCode int //操作结果
  354. ErrorMsg string //操作描述
  355. }
  356. userDel struct {
  357. database.Trans_base
  358. In userDel_in
  359. Out userDel_out
  360. }
  361. )
  362. func NewUserDel() *userDel {
  363. return &userDel{}
  364. }
  365. func (this *userDel) DoAction(ch chan<- interface{}) {
  366. defer func() {
  367. if err := recover(); err != nil {
  368. log.Release("transaction recover fail %v", err)
  369. log.Release("%s", debug.Stack())
  370. }
  371. if ch != nil {
  372. ch <- this
  373. }
  374. }()
  375. statement := database.NewStatement()
  376. statement.SetNeedReturnValue(false)
  377. statement.SetOpenRecordSet(true)
  378. statement.SetProcName("Manage_AdminUser_Del")
  379. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  380. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  381. statement.AddParamter("@AdminUserName", database.AdParamInput, database.AdVarChar, 32, this.In.AdminUserName)
  382. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  383. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 16, this.Out.RetCode)
  384. sqlstring := statement.GenSql()
  385. retRows := CenterDB.ExecSql(sqlstring)
  386. rowLen := len(retRows)
  387. if rowLen <= 0 {
  388. this.State = false
  389. return
  390. }
  391. this.State = true
  392. ret := retRows[0]
  393. this.Out.RetCode = int((*ret[0].(*interface{})).(int64))
  394. }
  395. // 添加备注
  396. type (
  397. updateMemo_in struct {
  398. OpUserID int //操作员ID
  399. OpUserName string //操作员名称
  400. AdminUserName string //管理员名称
  401. Memo string //备注
  402. IpAddress string //IP地址
  403. }
  404. updateMemo_out struct {
  405. RetCode int //操作结果
  406. ErrorMsg string //操作描述
  407. }
  408. updateMemo struct {
  409. database.Trans_base
  410. In updateMemo_in
  411. Out updateMemo_out
  412. }
  413. )
  414. func NewUpdateMemo() *updateMemo {
  415. return &updateMemo{}
  416. }
  417. func (this *updateMemo) DoAction(ch chan<- interface{}) {
  418. defer func() {
  419. if err := recover(); err != nil {
  420. log.Release("transaction recover fail %v", err)
  421. log.Release("%s", debug.Stack())
  422. }
  423. if ch != nil {
  424. ch <- this
  425. }
  426. }()
  427. statement := database.NewStatement()
  428. statement.SetNeedReturnValue(false)
  429. statement.SetOpenRecordSet(true)
  430. statement.SetProcName("Manage_AdminUser_UpdateMemo")
  431. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  432. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  433. statement.AddParamter("@AdminUserName", database.AdParamInput, database.AdVarChar, 32, this.In.AdminUserName)
  434. statement.AddParamter("@Memo", database.AdParamInput, database.AdNVarChar, 128, this.In.Memo)
  435. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  436. sqlstring := statement.GenSql()
  437. retRows := CenterDB.ExecSql(sqlstring)
  438. rowLen := len(retRows)
  439. if rowLen <= 0 {
  440. this.State = false
  441. return
  442. }
  443. this.State = true
  444. }
  445. // 添加管理用户
  446. type (
  447. userAdd_in struct {
  448. OpUserID int //操作员ID
  449. OpUserName string //操作员名称
  450. AdminUserName string //管理员名称
  451. LoginPassword string //登陆密码
  452. IpAddress string //IP地址
  453. }
  454. userAdd_out struct {
  455. RetCode int //操作结果
  456. ErrorMsg string //操作描述
  457. }
  458. userAdd struct {
  459. database.Trans_base
  460. In userAdd_in
  461. Out userAdd_out
  462. }
  463. )
  464. func NewUserAdd() *userAdd {
  465. return &userAdd{}
  466. }
  467. func (this *userAdd) DoAction(ch chan<- interface{}) {
  468. defer func() {
  469. if err := recover(); err != nil {
  470. log.Release("transaction recover fail %v", err)
  471. log.Release("%s", debug.Stack())
  472. }
  473. if ch != nil {
  474. ch <- this
  475. }
  476. }()
  477. statement := database.NewStatement()
  478. statement.SetNeedReturnValue(false)
  479. statement.SetOpenRecordSet(true)
  480. statement.SetProcName("Manage_AdminUser_Add")
  481. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  482. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  483. statement.AddParamter("@AdminUserName", database.AdParamInput, database.AdVarChar, 32, this.In.AdminUserName)
  484. statement.AddParamter("@LoginPassword", database.AdParamInput, database.AdVarChar, 128, this.In.LoginPassword)
  485. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  486. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 16, this.Out.RetCode)
  487. sqlstring := statement.GenSql()
  488. retRows := CenterDB.ExecSql(sqlstring)
  489. rowLen := len(retRows)
  490. if rowLen <= 0 {
  491. this.State = false
  492. return
  493. }
  494. this.State = true
  495. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  496. }
  497. // 获取后台登录密码
  498. type (
  499. getPassword_in struct {
  500. AdminUserName string //账号名称
  501. IpAddress string //IP地址
  502. }
  503. getPassword_out struct {
  504. AdminUserID int //后台账号ID
  505. LoginPassword string //登录密码(MD5加密)
  506. }
  507. getPassword struct {
  508. database.Trans_base
  509. In getPassword_in
  510. Out getPassword_out
  511. }
  512. )
  513. func NewGetPassword() *getPassword {
  514. return &getPassword{}
  515. }
  516. func (this *getPassword) DoAction() {
  517. defer func() {
  518. if err := recover(); err != nil {
  519. log.Error("transaction recover err %v", err)
  520. log.Error("%s", debug.Stack())
  521. }
  522. }()
  523. statement := database.NewStatement()
  524. statement.SetNeedReturnValue(false)
  525. statement.SetOpenRecordSet(true)
  526. statement.SetProcName("Manage_AdminUser_GetPassword")
  527. statement.AddParamter("@AdminUserName", database.AdParamInput, database.AdVarChar, 32, this.In.AdminUserName)
  528. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  529. statement.AddParamter("@AdminUserID", database.AdParamOutput, database.AdInteger, 4, this.Out.AdminUserID)
  530. statement.AddParamter("@LoginPassword", database.AdParamOutput, database.AdVarChar, 32, this.Out.LoginPassword)
  531. sqlstring := statement.GenSql()
  532. retRows := CenterDB.ExecSql(sqlstring)
  533. if len(retRows) <= 0 {
  534. return
  535. }
  536. ret := retRows[0]
  537. this.Out.AdminUserID = int((*ret[0].(*interface{})).(int64))
  538. this.Out.LoginPassword = (*ret[1].(*interface{})).(string)
  539. }
  540. // 获取奖池日志列表
  541. type (
  542. getPrizePoolList_in struct {
  543. UserId int // 用户id
  544. BeginTime int // 开始时间
  545. EndTime int // 结束时间
  546. PageIndex int // 第几页
  547. PageSize int // 请求的个数
  548. }
  549. getPrizePoolList_out struct {
  550. Data waterpool.GrantRecords
  551. }
  552. getPrizePoolList struct {
  553. database.Trans_base
  554. In getPrizePoolList_in
  555. Out getPrizePoolList_out
  556. }
  557. )
  558. func NewGetPrizePoolList() *getPrizePoolList {
  559. return &getPrizePoolList{}
  560. }
  561. // 发放个人奖池
  562. type (
  563. sendPrizePool_in struct {
  564. UserId int // 用户id
  565. Value int // 奖池数值
  566. GenType string // 操作原因
  567. }
  568. sendPrizePool_out struct {
  569. Data string // 返回的数据
  570. }
  571. sendPrizePool struct {
  572. database.Trans_base
  573. In sendPrizePool_in
  574. Out sendPrizePool_out
  575. }
  576. )
  577. func NewSendPrizePool() *sendPrizePool {
  578. return &sendPrizePool{}
  579. }