trans_robotLogon.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package transaction
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. )
  7. type trans_robot_login_in struct {
  8. GameID int
  9. ServerName string
  10. MaxBeans int
  11. MinBeans int
  12. IsChip bool
  13. }
  14. type trans_robot_login_out struct {
  15. UserID int //用户ID
  16. Password string //登陆密码(md5密文)
  17. Levels1 int
  18. Levels2 int
  19. Levels3 int
  20. }
  21. type trans_robot_login struct {
  22. database.Trans_base
  23. In trans_robot_login_in
  24. Out trans_robot_login_out
  25. }
  26. func NewTransRobotLogin() *trans_robot_login {
  27. return &trans_robot_login{}
  28. }
  29. func (this *trans_robot_login) DoAction(ch chan<- interface{}) {
  30. defer func() {
  31. if err := recover(); err != nil {
  32. log.Release("transaction recover %v", err)
  33. log.Release("%s", debug.Stack())
  34. }
  35. if ch != nil {
  36. ch <- this
  37. }
  38. }()
  39. statement := database.NewStatement()
  40. statement.SetNeedReturnValue(false)
  41. statement.SetOpenRecordSet(true)
  42. //游客登陆
  43. statement.SetProcName("prGS_MachineUserLogin")
  44. statement.AddParamter("@intGameID", database.AdParamInput, database.AdInteger, 4, this.In.GameID)
  45. statement.AddParamter("@chvServerName", database.AdParamInput, database.AdNVarChar, 128, this.In.ServerName)
  46. statement.AddParamter("@intMaxBeans", database.AdParamInput, database.AdBigint, 8, this.In.MaxBeans)
  47. statement.AddParamter("@intMinBeans", database.AdParamInput, database.AdBigint, 8, this.In.MinBeans)
  48. statement.AddParamter("@intUserID", database.AdParamOutput, database.AdInteger, 4, this.Out.UserID)
  49. statement.AddParamter("@chvPwd", database.AdParamOutput, database.AdVarChar, 32, this.Out.Password)
  50. statement.AddParamter("@intLevels1", database.AdParamOutput, database.AdInteger, 4, this.Out.Levels1)
  51. statement.AddParamter("@intLevels2", database.AdParamOutput, database.AdInteger, 4, this.Out.Levels2)
  52. statement.AddParamter("@intLevels3", database.AdParamOutput, database.AdInteger, 4, this.Out.Levels3)
  53. sqlstring := statement.GenSql()
  54. //log.Debug(sqlstring)
  55. retRows := CenterDB.ExecSql(sqlstring)
  56. if len(retRows) <= 0 {
  57. this.State = false
  58. return
  59. }
  60. this.State = true
  61. ret := retRows[0]
  62. this.Out.UserID = int((ret[0]).(int64))
  63. this.Out.Password = (ret[1]).(string)
  64. this.Out.Levels1 = int((ret[2]).(int64))
  65. this.Out.Levels2 = int((ret[3]).(int64))
  66. this.Out.Levels3 = int((ret[4]).(int64))
  67. }