trans_serviceMsg_GetList.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package transaction
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. )
  7. type trans_serviceMsg_in struct {
  8. UserID int `binding:"required"`
  9. MessageID int `binding:"required"`
  10. }
  11. type serviceMsg struct {
  12. MessageID int
  13. UserID int
  14. ToUserID int
  15. Msg string
  16. Crdate int
  17. }
  18. type serviceMsgList struct {
  19. MessageID int
  20. ServiceMsgs []serviceMsg
  21. }
  22. type trans_getServiceMsgList struct {
  23. database.Trans_base
  24. IN trans_serviceMsg_in
  25. OUT serviceMsgList
  26. }
  27. func NewTransServiceMsgList() *trans_getServiceMsgList {
  28. return &trans_getServiceMsgList{}
  29. }
  30. func (this *trans_getServiceMsgList) DoAction(ch chan<- interface{}) {
  31. defer func() {
  32. if err := recover(); err != nil {
  33. log.Release("transaction recover %v", err)
  34. log.Release("%s", debug.Stack())
  35. }
  36. if ch != nil {
  37. ch <- this
  38. }
  39. }()
  40. statement := database.NewStatement()
  41. statement.SetNeedReturnValue(false)
  42. statement.SetOpenRecordSet(true)
  43. statement.SetProcName("WS_ServiceMessage_GetList")
  44. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.IN.UserID)
  45. statement.AddParamter("@MessageID", database.AdParamInput, database.AdInteger, 4, this.IN.MessageID)
  46. sqlstring := statement.GenSql()
  47. //log.Debug(sqlstring)
  48. retRows := CenterDB.ExecSql(sqlstring)
  49. rowsLen := len(retRows)
  50. this.State = true
  51. if rowsLen <= 0 {
  52. return
  53. }
  54. this.OUT.ServiceMsgs = make([]serviceMsg, rowsLen)
  55. for i := 0; i < rowsLen; i++ {
  56. ret := retRows[i]
  57. out := &this.OUT.ServiceMsgs[i]
  58. out.MessageID = int((ret[0]).(int64))
  59. out.UserID = int((ret[1]).(int64))
  60. out.ToUserID = int((ret[2]).(int64))
  61. out.Msg = (ret[3]).(string)
  62. out.Crdate = int((ret[4]).(int64))
  63. // 把最大值赋给上层读取
  64. if out.MessageID > this.OUT.MessageID {
  65. this.OUT.MessageID = out.MessageID
  66. }
  67. }
  68. }