transaction.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package handler
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. "bet24.com/servers/common"
  6. dbengine "bet24.com/servers/micros/dbengine/proto"
  7. pb "bet24.com/servers/micros/task/proto"
  8. "encoding/json"
  9. "runtime/debug"
  10. )
  11. // 系统任务数值列表
  12. func getSysTaskList() map[int]*pb.Task {
  13. defer func() {
  14. if err := recover(); err != nil {
  15. log.Error("task.getSysTaskList transaction recover err %v", err)
  16. log.Error("%s", debug.Stack())
  17. }
  18. }()
  19. statement := database.NewStatement()
  20. statement.SetNeedReturnValue(false)
  21. statement.SetOpenRecordSet(true)
  22. statement.SetProcName("WS_Task_GetList")
  23. sqlstring := statement.GenSql()
  24. //log.Debug(sqlstring)
  25. retRows := dbengine.ExecuteRs(sqlstring)
  26. rowLen := len(retRows)
  27. tasks := make(map[int]*pb.Task)
  28. for i := 0; i < rowLen; i++ {
  29. ret := retRows[i]
  30. var out pb.Task
  31. out.Id = int((ret[0]).(int64))
  32. out.Title = (ret[1]).(string)
  33. out.Desc = (ret[2]).(string)
  34. out.Action = int((ret[3]).(int64))
  35. out.Target = int((ret[4]).(int64))
  36. if repeatable := int((ret[5]).(int64)); repeatable == 1 {
  37. out.Repeatable = true
  38. }
  39. out.Duration = int((ret[6]).(int64))
  40. out.PreTask = int((ret[7]).(int64))
  41. out.Start = int((ret[8]).(int64))
  42. out.Duration = int((ret[9]).(int64))
  43. awards := (ret[10]).(string)
  44. if awards != "" {
  45. if err := json.Unmarshal([]byte(awards), &out.Awards); err != nil {
  46. log.Error("task.getSysTaskList unmarshal err %v", err)
  47. return nil
  48. }
  49. }
  50. out.Scene = int((ret[11]).(int64))
  51. scope := (ret[12]).(string)
  52. var ts pb.TaskScope
  53. if scope != "" {
  54. if err := json.Unmarshal([]byte(scope), &ts); err != nil {
  55. log.Error("task.getSysTaskList unmarshal err %v", err)
  56. return nil
  57. }
  58. }
  59. out.TaskScope = ts
  60. tasks[out.Id] = &out
  61. }
  62. return tasks
  63. }
  64. // 用户任务列表
  65. func getUserTaskList(userId int) map[int]*pb.UserTask {
  66. defer func() {
  67. if err := recover(); err != nil {
  68. log.Error("task.getSysTaskList transaction recover err %v", err)
  69. log.Error("%s", debug.Stack())
  70. }
  71. }()
  72. statement := database.NewStatement()
  73. statement.SetNeedReturnValue(false)
  74. statement.SetOpenRecordSet(true)
  75. statement.SetProcName("WS_UserTask_GetList")
  76. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  77. sqlstring := statement.GenSql()
  78. //log.Debug(sqlstring)
  79. retRows := dbengine.ExecuteRs(sqlstring)
  80. rowLen := len(retRows)
  81. userTasks := make(map[int]*pb.UserTask)
  82. for i := 0; i < rowLen; i++ {
  83. ret := retRows[i]
  84. var out pb.UserTask
  85. out.TaskId = int((ret[0]).(int64))
  86. out.Scheduled = int((ret[1]).(int64))
  87. out.Status = int((ret[2]).(int64))
  88. startStr := (ret[3]).(string)
  89. startTime := common.ParseTime(startStr)
  90. out.Task_Period.Start = common.GetStamp(startTime)
  91. out.Task_Period.Duration = int((ret[4]).(int64))
  92. userTasks[out.TaskId] = &out
  93. }
  94. return userTasks
  95. }
  96. // 更新用户任务
  97. func updateUserTask(userId int, userTask *pb.UserTask) {
  98. statement := database.NewStatement()
  99. statement.SetNeedReturnValue(false)
  100. statement.SetOpenRecordSet(true)
  101. statement.SetProcName("WS_UserTask_Update")
  102. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  103. statement.AddParamter("@TaskID", database.AdParamInput, database.AdInteger, 4, userTask.TaskId)
  104. statement.AddParamter("@Scheduled", database.AdParamInput, database.AdInteger, 4, userTask.Scheduled)
  105. statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, userTask.Status)
  106. statement.AddParamter("@Start", database.AdParamInput, database.AdInteger, 4, userTask.Task_Period.Start)
  107. statement.AddParamter("@Duration", database.AdParamInput, database.AdInteger, 4, userTask.Task_Period.Duration)
  108. sqlstring := statement.GenSql()
  109. // log.Debug(sqlstring)
  110. dbengine.Execute(sqlstring)
  111. return
  112. }
  113. // 删除任务
  114. func removeUserTask(userId int, taskId int) {
  115. statement := database.NewStatement()
  116. statement.SetNeedReturnValue(false)
  117. statement.SetOpenRecordSet(false)
  118. statement.SetProcName("WS_UserTask_Remove")
  119. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  120. statement.AddParamter("@TaskID", database.AdParamInput, database.AdInteger, 4, taskId)
  121. sqlstring := statement.GenSql()
  122. // log.Debug(sqlstring)
  123. dbengine.Execute(sqlstring)
  124. return
  125. }