alluser.go 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101
  1. package dao
  2. import (
  3. "fmt"
  4. "runtime/debug"
  5. "strconv"
  6. "bet24.com/servers/adminserver/ip"
  7. "bet24.com/database"
  8. "bet24.com/log"
  9. )
  10. // 查询用户信息
  11. type (
  12. allUserList_in struct {
  13. Data string //数据
  14. PartnerID int //渠道ID
  15. UserID int //用户ID
  16. NickName string //昵称
  17. PageIndex int //页索引
  18. PageSize int //页大小
  19. }
  20. allUserInfo struct {
  21. PartnerName string //渠道名称
  22. UserID int //用户ID
  23. NickName string //昵称
  24. Amount int //现金
  25. VipLevel int //Vip等级
  26. LoginTime string //登陆时间
  27. PayMoney string // 充值累计
  28. RegTime string // 注册时间
  29. RegIP string // 注册ip
  30. }
  31. allUserList_out struct {
  32. RecordCount int //记录数
  33. List []allUserInfo
  34. }
  35. allUserLit struct {
  36. database.Trans_base
  37. In allUserList_in
  38. Out allUserList_out
  39. }
  40. )
  41. func NewAllUserList() *allUserLit {
  42. return &allUserLit{}
  43. }
  44. func (this *allUserLit) DoAction(ch chan<- interface{}) {
  45. defer func() {
  46. if err := recover(); err != nil {
  47. log.Release("transaction recover fail %v", err)
  48. log.Release("%s", debug.Stack())
  49. }
  50. if ch != nil {
  51. ch <- this
  52. }
  53. }()
  54. statement := database.NewStatement()
  55. statement.SetNeedReturnValue(false)
  56. statement.SetOpenRecordSet(true)
  57. statement.SetProcName("Manage_AllUser_GetList")
  58. statement.AddParamter("@PartnerID", database.AdParamInput, database.AdInteger, 4, this.In.PartnerID)
  59. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  60. statement.AddParamter("@NickName", database.AdParamInput, database.AdNVarChar, 32, this.In.NickName)
  61. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  62. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  63. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  64. sqlstring := statement.GenSql()
  65. retRows := CenterDB.ExecSql(sqlstring)
  66. rowLen := len(retRows)
  67. if rowLen <= 0 {
  68. this.State = false
  69. return
  70. }
  71. this.State = true
  72. if rowLen > 1 {
  73. this.Out.List = make([]allUserInfo, rowLen-1)
  74. for i := 0; i < rowLen-1; i++ {
  75. ret := retRows[i]
  76. out := &this.Out.List[i]
  77. out.PartnerName = (*ret[0].(*interface{})).(string)
  78. out.UserID = int((*ret[1].(*interface{})).(int64))
  79. out.NickName = (*ret[2].(*interface{})).(string)
  80. if info := tagMgr.getInfo(out.UserID); info != nil {
  81. out.NickName = info.NickName
  82. }
  83. out.Amount = int((*ret[3].(*interface{})).(int64))
  84. out.VipLevel = int((*ret[4].(*interface{})).(int64))
  85. out.LoginTime = (*ret[5].(*interface{})).(string)
  86. payMoney := string((*ret[6].(*interface{})).([]byte))
  87. fPayMoney, _ := strconv.ParseFloat(payMoney, 64)
  88. out.PayMoney = fmt.Sprintf("%.2f", fPayMoney)
  89. out.RegTime = (*ret[7].(*interface{})).(string)
  90. out.RegIP = (*ret[8].(*interface{})).(string)
  91. out.RegIP = ip.GetCountryAndRegion(out.RegIP, false)
  92. }
  93. }
  94. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  95. }
  96. // 查询用户详情信息
  97. type (
  98. userDetail_in struct {
  99. UserID int
  100. }
  101. userDetail_out struct {
  102. NickName string // 昵称
  103. PartnerName string // 渠道名称
  104. Amount int // 金币
  105. VipLevel int // VIP等级
  106. PayMoney float64 // 累计充值
  107. RegTime string // 注册时间
  108. RegIP string // 注册IP
  109. IMei string // IMei
  110. LoginTime string // 登录时间
  111. LoginIP string // 登录IP
  112. FaceURL string // 头像URL
  113. IsMonthCard string // 月卡
  114. UserWords string // 个性签名
  115. Tel string // 手机号
  116. Deviceid string // 设备号
  117. ChipAmount int // 筹码数额
  118. ChipBank int // 筹码保险柜
  119. Lv int // 等级
  120. Exp int // 经验值
  121. TotalSeconds int // 总在线时长
  122. TodaySeconds int // 今天在线时长
  123. HigherUserID int // 代理ID
  124. HigherNickName string // 代理昵称
  125. Source string // 广告系列来源。用来标识搜索引擎、简报名称或其他来源。示例: utm_source=google
  126. Medium string // 广告系列媒介。用来标识媒介,比如电子邮件或每次点击费用。示例:utm_medium=cpc
  127. Labels interface{} // 用户标签
  128. DeviceName string // 设备型号
  129. }
  130. userDetail struct {
  131. database.Trans_base
  132. In userDetail_in
  133. Out userDetail_out
  134. }
  135. )
  136. func NewUserDetail() *userDetail {
  137. return &userDetail{}
  138. }
  139. func (this *userDetail) DoAction(ch chan<- interface{}) {
  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. if ch != nil {
  146. ch <- this
  147. }
  148. }()
  149. statement := database.NewStatement()
  150. statement.SetNeedReturnValue(false)
  151. statement.SetOpenRecordSet(true)
  152. statement.SetProcName("Manage_AllUser_GetInfo")
  153. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  154. sqlstring := statement.GenSql()
  155. retRows := CenterDB.ExecSql(sqlstring)
  156. if len(retRows) <= 0 {
  157. this.State = false
  158. return
  159. }
  160. this.State = true
  161. ret := retRows[0]
  162. this.Out.NickName = (*ret[0].(*interface{})).(string)
  163. this.Out.PartnerName = (*ret[1].(*interface{})).(string)
  164. this.Out.Amount = int((*ret[2].(*interface{})).(int64))
  165. this.Out.VipLevel = int((*ret[3].(*interface{})).(int64))
  166. payMoney := string((*ret[4].(*interface{})).([]byte))
  167. this.Out.PayMoney, _ = strconv.ParseFloat(payMoney, 64)
  168. this.Out.RegTime = (*ret[5].(*interface{})).(string)
  169. this.Out.RegIP = (*ret[6].(*interface{})).(string)
  170. this.Out.RegIP = ip.GetCountryAndRegion(this.Out.RegIP, false)
  171. this.Out.IMei = (*ret[7].(*interface{})).(string)
  172. this.Out.LoginTime = (*ret[8].(*interface{})).(string)
  173. this.Out.LoginIP = (*ret[9].(*interface{})).(string)
  174. this.Out.LoginIP = ip.GetCountryAndRegion(this.Out.LoginIP, false)
  175. this.Out.FaceURL = (*ret[10].(*interface{})).(string)
  176. this.Out.IsMonthCard = (*ret[11].(*interface{})).(string)
  177. if this.Out.IsMonthCard == "2021-01-01" {
  178. this.Out.IsMonthCard = "无"
  179. }
  180. this.Out.UserWords = (*ret[12].(*interface{})).(string)
  181. this.Out.Tel = (*ret[13].(*interface{})).(string)
  182. this.Out.Deviceid = (*ret[14].(*interface{})).(string)
  183. this.Out.ChipAmount = int((*ret[15].(*interface{})).(int64))
  184. this.Out.ChipBank = int((*ret[16].(*interface{})).(int64))
  185. this.Out.Lv = int((*ret[17].(*interface{})).(int64))
  186. this.Out.Exp = int((*ret[18].(*interface{})).(int64))
  187. this.Out.TotalSeconds = int((*ret[19].(*interface{})).(int64))
  188. this.Out.TodaySeconds = int((*ret[20].(*interface{})).(int64))
  189. this.Out.HigherUserID = int((*ret[21].(*interface{})).(int64))
  190. this.Out.HigherNickName = (*ret[22].(*interface{})).(string)
  191. this.Out.Source = (*ret[23].(*interface{})).(string)
  192. this.Out.Medium = (*ret[24].(*interface{})).(string)
  193. this.Out.DeviceName = (*ret[25].(*interface{})).(string)
  194. return
  195. }
  196. // 查询被封用户列表
  197. type (
  198. forbidUserList_in struct {
  199. UserID int //用户ID
  200. PageIndex int //页索引
  201. PageSize int //页大小
  202. }
  203. forbidUserInfo struct {
  204. Rid int //标识
  205. UserID int //用户ID
  206. NickName string //昵称
  207. Memo string //备注
  208. BeginTime string //开始时间
  209. EndTime string //结束时间
  210. GameIDs string //游戏ID集
  211. }
  212. forbidUserList_out struct {
  213. RecordCount int //记录数
  214. List []forbidUserInfo
  215. }
  216. forbidUserList struct {
  217. database.Trans_base
  218. In forbidUserList_in
  219. Out forbidUserList_out
  220. }
  221. )
  222. func NewForbidUserList() *forbidUserList {
  223. return &forbidUserList{}
  224. }
  225. func (this *forbidUserList) DoAction(ch chan<- interface{}) {
  226. defer func() {
  227. if err := recover(); err != nil {
  228. log.Release("transaction recover fail %v", err)
  229. log.Release("%s", debug.Stack())
  230. }
  231. if ch != nil {
  232. ch <- this
  233. }
  234. }()
  235. statement := database.NewStatement()
  236. statement.SetNeedReturnValue(false)
  237. statement.SetOpenRecordSet(true)
  238. statement.SetProcName("Manage_ForbidUser_GetList")
  239. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  240. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  241. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  242. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  243. sqlstring := statement.GenSql()
  244. retRows := CenterDB.ExecSql(sqlstring)
  245. rowLen := len(retRows)
  246. if rowLen <= 0 {
  247. this.State = false
  248. return
  249. }
  250. this.State = true
  251. if rowLen > 1 {
  252. this.Out.List = make([]forbidUserInfo, rowLen-1)
  253. for i := 0; i < rowLen-1; i++ {
  254. ret := retRows[i]
  255. out := &this.Out.List[i]
  256. out.Rid = int((*ret[0].(*interface{})).(int64))
  257. out.UserID = int((*ret[1].(*interface{})).(int64))
  258. out.NickName = (*ret[2].(*interface{})).(string)
  259. if info := tagMgr.getInfo(out.UserID); info != nil {
  260. out.NickName = info.NickName
  261. }
  262. out.Memo = (*ret[3].(*interface{})).(string)
  263. out.BeginTime = (*ret[4].(*interface{})).(string)
  264. out.EndTime = (*ret[5].(*interface{})).(string)
  265. out.GameIDs = (*ret[6].(*interface{})).(string)
  266. }
  267. }
  268. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  269. }
  270. // 封杀玩家
  271. type (
  272. forbidUserAdd_in struct {
  273. OpUserID int //操作员ID
  274. OpUserName string //操作员名称
  275. UserID int //用户ID
  276. Memo string //备注
  277. Days int //封杀天数
  278. IpAddress string //IP地址
  279. GameIDs string //游戏ID集(以逗号分隔)
  280. }
  281. forbidUserAdd_out struct {
  282. RetCode int //操作结果1成功 2已经封杀
  283. ErrorMsg string //操作描述
  284. }
  285. forbidUserAdd struct {
  286. database.Trans_base
  287. In forbidUserAdd_in
  288. Out forbidUserAdd_out
  289. }
  290. )
  291. func NewForbidUserAdd() *forbidUserAdd {
  292. return &forbidUserAdd{}
  293. }
  294. func (this *forbidUserAdd) DoAction(ch chan<- interface{}) {
  295. defer func() {
  296. if err := recover(); err != nil {
  297. log.Release("transaction recover fail %v", err)
  298. log.Release("%s", debug.Stack())
  299. }
  300. if ch != nil {
  301. ch <- this
  302. }
  303. }()
  304. statement := database.NewStatement()
  305. statement.SetNeedReturnValue(false)
  306. statement.SetOpenRecordSet(true)
  307. statement.SetProcName("Manage_ForbidUser_Add")
  308. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  309. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  310. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 20, this.In.UserID)
  311. statement.AddParamter("@Memo", database.AdParamInput, database.AdNVarChar, 256, this.In.Memo)
  312. statement.AddParamter("@Days", database.AdParamInput, database.AdInteger, 4, this.In.Days)
  313. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  314. statement.AddParamter("@GameIDs", database.AdParamInput, database.AdVarChar, 128, this.In.GameIDs)
  315. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 16, this.Out.RetCode)
  316. sqlstring := statement.GenSql()
  317. retRows := CenterDB.ExecSql(sqlstring)
  318. rowLen := len(retRows)
  319. if rowLen <= 0 {
  320. this.State = false
  321. return
  322. }
  323. this.State = true
  324. ret := retRows[0]
  325. this.Out.RetCode = int((*ret[0].(*interface{})).(int64))
  326. }
  327. // 解除封杀
  328. type (
  329. forbidUserDel_in struct {
  330. OpUserID int //操作员ID
  331. OpUserName string //操作员名称
  332. UserID int //用户ID
  333. Memo string //备注
  334. IpAddress string //IP地址
  335. }
  336. forbidUserDel_out struct {
  337. GameIDs string //游戏ID集(以逗号分隔)
  338. }
  339. forbidUserDel struct {
  340. database.Trans_base
  341. In forbidUserDel_in
  342. Out forbidUserDel_out
  343. }
  344. )
  345. func NewForbidUserDel() *forbidUserDel {
  346. return &forbidUserDel{}
  347. }
  348. func (this *forbidUserDel) DoAction(ch chan<- interface{}) {
  349. defer func() {
  350. if err := recover(); err != nil {
  351. log.Release("transaction recover fail %v", err)
  352. log.Release("%s", debug.Stack())
  353. }
  354. if ch != nil {
  355. ch <- this
  356. }
  357. }()
  358. statement := database.NewStatement()
  359. statement.SetNeedReturnValue(false)
  360. statement.SetOpenRecordSet(true)
  361. statement.SetProcName("Manage_ForbidUser_Del")
  362. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  363. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  364. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 20, this.In.UserID)
  365. statement.AddParamter("@Memo", database.AdParamInput, database.AdVarChar, 256, this.In.Memo)
  366. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  367. statement.AddParamter("@GameIDs", database.AdParamOutput, database.AdVarChar, 128, this.Out.GameIDs)
  368. sqlstring := statement.GenSql()
  369. retRows := CenterDB.ExecSql(sqlstring)
  370. rowLen := len(retRows)
  371. if rowLen <= 0 {
  372. this.State = false
  373. return
  374. }
  375. this.State = true
  376. this.Out.GameIDs = (*retRows[0][0].(*interface{})).(string)
  377. }
  378. // 绑码日志
  379. type (
  380. userSimpleInfo_in struct {
  381. UserID int //用户ID
  382. NickName string //昵称
  383. }
  384. userSimpleInfo_out struct {
  385. UserID int //用户ID
  386. NickName string //昵称
  387. Amount int //金额
  388. Bank int //保险柜
  389. ChipAmount int // 筹码金额
  390. ChipBank int // 筹码保险柜
  391. }
  392. userSimpleInfo struct {
  393. database.Trans_base
  394. In userSimpleInfo_in
  395. Out userSimpleInfo_out
  396. }
  397. )
  398. func NewUserSimpleInfo() *userSimpleInfo {
  399. return &userSimpleInfo{}
  400. }
  401. func (this *userSimpleInfo) DoAction(ch chan<- interface{}) {
  402. defer func() {
  403. if err := recover(); err != nil {
  404. log.Release("transaction recover fail %v", err)
  405. log.Release("%s", debug.Stack())
  406. }
  407. if ch != nil {
  408. ch <- this
  409. }
  410. }()
  411. statement := database.NewStatement()
  412. statement.SetNeedReturnValue(false)
  413. statement.SetOpenRecordSet(true)
  414. statement.SetProcName("Manage_AllUser_GetSimpleInfo")
  415. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  416. statement.AddParamter("@NickName", database.AdParamInput, database.AdNVarChar, 32, this.In.NickName)
  417. sqlstring := statement.GenSql()
  418. retRows := CenterDB.ExecSql(sqlstring)
  419. rowLen := len(retRows)
  420. if rowLen <= 0 {
  421. this.State = false
  422. return
  423. }
  424. this.State = true
  425. ret := retRows[0]
  426. this.Out.UserID = int((*ret[0].(*interface{})).(int64))
  427. this.Out.NickName = (*ret[1].(*interface{})).(string)
  428. if info := tagMgr.getInfo(this.Out.UserID); info != nil {
  429. this.Out.NickName = info.NickName
  430. }
  431. this.Out.Amount = int((*ret[2].(*interface{})).(int64))
  432. this.Out.Bank = int((*ret[3].(*interface{})).(int64))
  433. this.Out.ChipAmount = int((*ret[4].(*interface{})).(int64))
  434. this.Out.ChipBank = int((*ret[5].(*interface{})).(int64))
  435. }
  436. // 实时在线
  437. type (
  438. casinoOnlineList_in struct {
  439. UserID int // 用户ID
  440. GameID int // 游戏ID
  441. PartnerID int // 渠道ID
  442. PageIndex int // 页索引
  443. PageSize int // 页大小
  444. IsChip int // 是否元宝(-1=所有 0=休闲 1=元宝)
  445. }
  446. casinoOnlineInfo struct {
  447. UserID int // 用户ID
  448. NickName string // 昵称
  449. ChineseName string // 游戏名称
  450. LoginTime string // 登陆时间
  451. ServerName string // 服务器名称
  452. IPAddress string // IP地址
  453. PartnerName string // 渠道名称
  454. GameType string // 游戏类型
  455. IsChip int // 是否元宝
  456. }
  457. casinoOnlineList_out struct {
  458. RecordCount int // 记录数
  459. List []casinoOnlineInfo
  460. }
  461. casinoOnlineList struct {
  462. database.Trans_base
  463. In casinoOnlineList_in
  464. Out casinoOnlineList_out
  465. }
  466. )
  467. func NewCasinoOnlineList() *casinoOnlineList {
  468. return &casinoOnlineList{}
  469. }
  470. func (this *casinoOnlineList) DoAction(ch chan<- interface{}) {
  471. defer func() {
  472. if err := recover(); err != nil {
  473. log.Release("transaction recover fail %v", err)
  474. log.Release("%s", debug.Stack())
  475. }
  476. if ch != nil {
  477. ch <- this
  478. }
  479. }()
  480. statement := database.NewStatement()
  481. statement.SetNeedReturnValue(false)
  482. statement.SetOpenRecordSet(true)
  483. statement.SetProcName("Manage_CasinoOnline_GetList")
  484. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  485. statement.AddParamter("@GameID", database.AdParamInput, database.AdInteger, 4, this.In.GameID)
  486. statement.AddParamter("@PartnerID", database.AdParamInput, database.AdInteger, 4, this.In.PartnerID)
  487. statement.AddParamter("@IsChip", database.AdParamInput, database.AdInteger, 4, this.In.IsChip)
  488. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  489. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  490. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  491. sqlstring := statement.GenSql()
  492. retRows := CenterDB.ExecSql(sqlstring)
  493. rowLen := len(retRows)
  494. if rowLen <= 0 {
  495. this.State = false
  496. return
  497. }
  498. this.State = true
  499. if rowLen > 1 {
  500. this.Out.List = make([]casinoOnlineInfo, rowLen-1)
  501. for i := 0; i < rowLen-1; i++ {
  502. ret := retRows[i]
  503. out := &this.Out.List[i]
  504. out.UserID = int((*ret[0].(*interface{})).(int64))
  505. out.NickName = (*ret[1].(*interface{})).(string)
  506. if info := tagMgr.getInfo(out.UserID); info != nil {
  507. out.NickName = info.NickName
  508. }
  509. out.LoginTime = (*ret[2].(*interface{})).(string)
  510. out.ServerName = (*ret[3].(*interface{})).(string)
  511. out.IPAddress = (*ret[4].(*interface{})).(string)
  512. out.IPAddress = ip.GetCountryAndRegion(out.IPAddress, false)
  513. out.PartnerName = (*ret[5].(*interface{})).(string)
  514. out.GameType = (*ret[6].(*interface{})).(string)
  515. out.ChineseName = (*ret[7].(*interface{})).(string)
  516. out.IsChip = int((*ret[8].(*interface{})).(int64))
  517. }
  518. }
  519. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  520. }
  521. // 获取用户ID(根据昵称、手机号)
  522. type (
  523. getUserID_in struct {
  524. UserID int //用户ID
  525. NickName string //昵称
  526. }
  527. getUserID_out struct {
  528. NewUserID int //用户ID
  529. }
  530. getUserID struct {
  531. database.Trans_base
  532. In getUserID_in
  533. Out getUserID_out
  534. }
  535. )
  536. func NewGetUserID() *getUserID {
  537. return &getUserID{}
  538. }
  539. func (this *getUserID) DoAction(ch chan<- interface{}) {
  540. defer func() {
  541. if err := recover(); err != nil {
  542. log.Release("transaction recover error %v", err)
  543. log.Release("%s", debug.Stack())
  544. }
  545. if ch != nil {
  546. ch <- this
  547. }
  548. }()
  549. statement := database.NewStatement()
  550. statement.SetNeedReturnValue(false)
  551. statement.SetOpenRecordSet(true)
  552. statement.SetProcName("Manage_AllUser_GetUserID")
  553. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  554. statement.AddParamter("@NickName", database.AdParamInput, database.AdNVarChar, 32, this.In.NickName)
  555. statement.AddParamter("@NewUserID", database.AdParamOutput, database.AdInteger, 4, this.Out.NewUserID)
  556. sqlstring := statement.GenSql()
  557. retRows := CenterDB.ExecSql(sqlstring)
  558. if len(retRows) <= 0 {
  559. this.State = false
  560. return
  561. }
  562. this.State = true
  563. this.Out.NewUserID = int((*retRows[0][0].(*interface{})).(int64))
  564. }
  565. // 删除账号(后台)
  566. type (
  567. delUser_in struct {
  568. OpUserID int //操作员ID
  569. OpUserName string //操作员名称
  570. UserID int //用户ID
  571. IpAddress string //IP地址
  572. }
  573. delUser_out struct {
  574. RetCode int //操作结果
  575. ErrorMsg string //操作描述
  576. }
  577. delUser struct {
  578. database.Trans_base
  579. In delUser_in
  580. Out delUser_out
  581. }
  582. )
  583. func NewDelUser() *delUser {
  584. return &delUser{}
  585. }
  586. func (this *delUser) DoAction(ch chan<- interface{}) {
  587. defer func() {
  588. if err := recover(); err != nil {
  589. log.Release("transaction recover err %v", err)
  590. log.Release("%s", debug.Stack())
  591. }
  592. if ch != nil {
  593. ch <- this
  594. }
  595. }()
  596. statement := database.NewStatement()
  597. statement.SetNeedReturnValue(false)
  598. statement.SetOpenRecordSet(true)
  599. statement.SetProcName("Manage_AllUser_Del")
  600. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  601. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  602. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  603. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 32, this.In.IpAddress)
  604. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  605. sqlstring := statement.GenSql()
  606. retRows := CenterDB.ExecSql(sqlstring)
  607. if len(retRows) <= 0 {
  608. this.State = false
  609. return
  610. }
  611. this.State = true
  612. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  613. return
  614. }
  615. // 绑定facebook
  616. type (
  617. bindFacebook_in struct {
  618. OpUserID int // 操作员ID
  619. OpUserName string // 操作员名称
  620. UserID_1 int // 用户ID_1
  621. UserID_2 int // 用户ID_2
  622. IpAddress string // IP地址
  623. }
  624. bindFacebook_out struct {
  625. RetCode int
  626. }
  627. bindFacebook struct {
  628. database.Trans_base
  629. In bindFacebook_in
  630. Out bindFacebook_out
  631. }
  632. )
  633. func NewBindFacebook() *bindFacebook {
  634. return &bindFacebook{}
  635. }
  636. func (this *bindFacebook) DoAction() {
  637. defer func() {
  638. if err := recover(); err != nil {
  639. log.Error("transaction recover err %v", err)
  640. log.Error("%s", debug.Stack())
  641. }
  642. }()
  643. statement := database.NewStatement()
  644. statement.SetNeedReturnValue(false)
  645. statement.SetOpenRecordSet(true)
  646. statement.SetProcName("Manage_AllUser_BindFacebook")
  647. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  648. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  649. statement.AddParamter("@UserID_1", database.AdParamInput, database.AdInteger, 4, this.In.UserID_1)
  650. statement.AddParamter("@UserID_2", database.AdParamInput, database.AdInteger, 4, this.In.UserID_2)
  651. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  652. statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, this.Out.RetCode)
  653. sqlstring := statement.GenSql()
  654. retRows := CenterDB.ExecSql(sqlstring)
  655. if len(retRows) <= 0 {
  656. return
  657. }
  658. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  659. return
  660. }
  661. // 个性签名列表
  662. type (
  663. userWordsList_in struct {
  664. UserID int // 用户ID
  665. BeginTime string // 开始时间
  666. EndTime string // 截止时间
  667. PageIndex int // 页索引
  668. PageSize int // 页大小
  669. }
  670. userWordsModel struct {
  671. ApplyID int // 申请ID
  672. UserID int // 用户ID
  673. NickName string // 昵称
  674. UserWords string // 个性签名
  675. TransMsg string // 译文
  676. Status int // 状态 1=同意 2=拒绝
  677. OpUserID int // 操作员ID
  678. OpUserName string // 操作员名称
  679. DealTime string // 处理时间
  680. ApplyTime string // 申请时间
  681. OpUser string // 操作员
  682. }
  683. userWordsList_out struct {
  684. RecordCount int // 记录数
  685. List []userWordsModel
  686. }
  687. userWordsList struct {
  688. database.Trans_base
  689. In userWordsList_in
  690. Out userWordsList_out
  691. }
  692. )
  693. func NewUserWordsList() *userWordsList {
  694. return &userWordsList{}
  695. }
  696. func (this *userWordsList) DoAction() {
  697. defer func() {
  698. if err := recover(); err != nil {
  699. log.Error("transaction recover err %v", err)
  700. log.Error("%s", debug.Stack())
  701. }
  702. }()
  703. statement := database.NewStatement()
  704. statement.SetNeedReturnValue(false)
  705. statement.SetOpenRecordSet(true)
  706. statement.SetProcName("Manage_UserWords_GetList")
  707. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  708. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  709. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  710. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  711. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  712. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  713. sqlstring := statement.GenSql()
  714. retRows := CenterDB.ExecSql(sqlstring)
  715. rowLen := len(retRows)
  716. if rowLen <= 0 {
  717. return
  718. }
  719. if rowLen > 1 {
  720. this.Out.List = make([]userWordsModel, rowLen-1)
  721. for i := 0; i < rowLen-1; i++ {
  722. ret := retRows[i]
  723. out := &this.Out.List[i]
  724. out.ApplyID = int((*ret[0].(*interface{})).(int64))
  725. out.UserID = int((*ret[1].(*interface{})).(int64))
  726. out.NickName = (*ret[2].(*interface{})).(string)
  727. if info := tagMgr.getInfo(out.UserID); info != nil {
  728. out.NickName = info.NickName
  729. }
  730. out.UserWords = (*ret[3].(*interface{})).(string)
  731. out.TransMsg = (*ret[4].(*interface{})).(string)
  732. out.Status = int((*ret[5].(*interface{})).(int64))
  733. out.OpUserID = int((*ret[6].(*interface{})).(int64))
  734. out.OpUserName = (*ret[7].(*interface{})).(string)
  735. out.DealTime = (*ret[8].(*interface{})).(string)
  736. out.ApplyTime = (*ret[9].(*interface{})).(string)
  737. if out.OpUserID > 0 {
  738. out.OpUser = fmt.Sprintf("%s(id:%d)", out.OpUserName, out.OpUserID)
  739. }
  740. }
  741. }
  742. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  743. return
  744. }
  745. // 个性签名审批
  746. type (
  747. userWordsSet_in struct {
  748. OpUserID int // 操作员ID
  749. OpUserName string // 操作员名称
  750. ApplyID int // 申请ID
  751. Status int // 状态 1=同意 其他拒绝
  752. }
  753. userWordsSet_out struct {
  754. RetCode int // 操作结果
  755. }
  756. userWordsSet struct {
  757. database.Trans_base
  758. In userWordsSet_in
  759. Out userWordsSet_out
  760. }
  761. )
  762. func NewUserWordsSet() *userWordsSet {
  763. return &userWordsSet{}
  764. }
  765. func (this *userWordsSet) DoAction() {
  766. defer func() {
  767. if err := recover(); err != nil {
  768. log.Error("transaction recover err %v", err)
  769. log.Error("%s", debug.Stack())
  770. }
  771. }()
  772. statement := database.NewStatement()
  773. statement.SetNeedReturnValue(false)
  774. statement.SetOpenRecordSet(true)
  775. statement.SetProcName("Manage_UserWords_SetStatus")
  776. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  777. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  778. statement.AddParamter("@ApplyID", database.AdParamInput, database.AdInteger, 4, this.In.ApplyID)
  779. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, this.In.Status)
  780. sqlstring := statement.GenSql()
  781. retRows := CenterDB.ExecSql(sqlstring)
  782. if len(retRows) <= 0 {
  783. return
  784. }
  785. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  786. return
  787. }
  788. // 个性签名翻译
  789. type (
  790. userWordsTranslate_in struct {
  791. ApplyID int // 申请ID
  792. TransMsg string // 译文
  793. }
  794. userWordsTranslate struct {
  795. database.Trans_base
  796. In userWordsTranslate_in
  797. }
  798. )
  799. func NewUserWordsTranslate() *userWordsTranslate {
  800. return &userWordsTranslate{}
  801. }
  802. func (this *userWordsTranslate) DoAction() {
  803. defer func() {
  804. if err := recover(); err != nil {
  805. log.Error("transaction recover err %v", err)
  806. log.Error("%s", debug.Stack())
  807. }
  808. }()
  809. statement := database.NewStatement()
  810. statement.SetNeedReturnValue(false)
  811. statement.SetOpenRecordSet(true)
  812. statement.SetProcName("Manage_UserWords_Translate")
  813. statement.AddParamter("@ApplyID", database.AdParamInput, database.AdInteger, 4, this.In.ApplyID)
  814. statement.AddParamter("@TransMsg", database.AdParamInput, database.AdNVarChar, 256, this.In.TransMsg)
  815. sqlstring := statement.GenSql()
  816. CenterDB.ExecSql(sqlstring)
  817. return
  818. }
  819. type (
  820. bankInfo_in struct {
  821. UserID int
  822. }
  823. bankInfoItem struct {
  824. RealName string
  825. BankName string
  826. BankCode string
  827. BankCard string
  828. Mobile string
  829. Crdate string
  830. }
  831. bankInfo_out struct {
  832. RecordCount int
  833. List []bankInfoItem
  834. }
  835. bankInfo struct {
  836. database.Trans_base
  837. In bankInfo_in
  838. Out bankInfo_out
  839. }
  840. )
  841. func NewBankInfo() *bankInfo {
  842. return &bankInfo{}
  843. }
  844. func (this *bankInfo) DoAction() {
  845. defer func() {
  846. if err := recover(); err != nil {
  847. log.Error("transaction recover err %v", err)
  848. log.Error("%s", debug.Stack())
  849. }
  850. }()
  851. statement := database.NewStatement()
  852. statement.SetNeedReturnValue(false)
  853. statement.SetOpenRecordSet(true)
  854. statement.SetProcName("Manage_AllUser_GetBankInfo")
  855. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  856. sqlstring := statement.GenSql()
  857. retRows := CenterDB.ExecSql(sqlstring)
  858. rowLen := len(retRows)
  859. if rowLen <= 0 {
  860. return
  861. }
  862. this.Out.List = make([]bankInfoItem, rowLen)
  863. for i := 0; i < rowLen; i++ {
  864. ret := retRows[i]
  865. out := &this.Out.List[i]
  866. out.RealName = (*ret[0].(*interface{})).(string)
  867. out.BankName = (*ret[1].(*interface{})).(string)
  868. out.BankCode = (*ret[2].(*interface{})).(string)
  869. out.BankCard = (*ret[3].(*interface{})).(string)
  870. out.Mobile = (*ret[4].(*interface{})).(string)
  871. out.Crdate = (*ret[5].(*interface{})).(string)
  872. }
  873. }
  874. type (
  875. changeNickName_in struct {
  876. OpUserID int // 操作员ID
  877. OpUserName string // 操作员名称
  878. UserID int // 用户ID
  879. NickName string // 昵称
  880. IpAddress string // IP地址
  881. }
  882. changeNickName_out struct {
  883. RetCode int
  884. }
  885. changeNickName struct {
  886. database.Trans_base
  887. In changeNickName_in
  888. Out changeNickName_out
  889. }
  890. )
  891. func NewChangeNickName() *changeNickName {
  892. return &changeNickName{}
  893. }
  894. func (this *changeNickName) DoAction() {
  895. defer func() {
  896. if err := recover(); err != nil {
  897. log.Error("transaction recover err %v", err)
  898. log.Error("%s", debug.Stack())
  899. }
  900. }()
  901. statement := database.NewStatement()
  902. statement.SetNeedReturnValue(false)
  903. statement.SetOpenRecordSet(true)
  904. statement.SetProcName("Manage_AllUser_ChangeNickName")
  905. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  906. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  907. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  908. statement.AddParamter("@NickName", database.AdParamInput, database.AdNVarChar, 32, this.In.NickName)
  909. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  910. sqlString := statement.GenSql()
  911. retRows := CenterDB.ExecSql(sqlString)
  912. rowLen := len(retRows)
  913. if rowLen <= 0 {
  914. return
  915. }
  916. this.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  917. }
  918. type (
  919. changeLevel_in struct {
  920. OpUserID int // 操作员ID
  921. OpUserName string // 操作员名称
  922. UserID int // 用户ID
  923. Lv int // 等级
  924. IpAddress string // IP地址
  925. }
  926. changeLevel_out struct {
  927. RetCode int
  928. OldLv int
  929. }
  930. changeLevel struct {
  931. database.Trans_base
  932. In changeLevel_in
  933. Out changeLevel_out
  934. }
  935. )
  936. func NewChangeLevel() *changeLevel {
  937. return &changeLevel{}
  938. }
  939. func (lv *changeLevel) DoAction() {
  940. defer func() {
  941. if err := recover(); err != nil {
  942. log.Error("transaction recover err %v", err)
  943. log.Error("%s", debug.Stack())
  944. }
  945. }()
  946. statement := database.NewStatement()
  947. statement.SetNeedReturnValue(false)
  948. statement.SetOpenRecordSet(true)
  949. statement.SetProcName("Manage_AllUser_ChangeLevel")
  950. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, lv.In.OpUserID)
  951. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, lv.In.OpUserName)
  952. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, lv.In.UserID)
  953. statement.AddParamter("@Lv", database.AdParamInput, database.AdInteger, 4, lv.In.Lv)
  954. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, lv.In.IpAddress)
  955. sqlString := statement.GenSql()
  956. retRows := CenterDB.ExecSql(sqlString)
  957. rowLen := len(retRows)
  958. if rowLen <= 0 {
  959. return
  960. }
  961. lv.Out.RetCode = int((*retRows[0][0].(*interface{})).(int64))
  962. lv.Out.OldLv = int((*retRows[0][1].(*interface{})).(int64))
  963. }