transaction.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. package teacher
  2. import (
  3. "encoding/json"
  4. "runtime/debug"
  5. "bet24.com/servers/coreservice/dbengine"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. )
  9. // 绑码奖励
  10. func sysBindAward() []*bindAward {
  11. defer func() {
  12. if err := recover(); err != nil {
  13. log.Error("transaction recover err %v", err)
  14. log.Error("%s", debug.Stack())
  15. }
  16. }()
  17. var list []*bindAward
  18. statement := database.NewStatement()
  19. statement.SetNeedReturnValue(false)
  20. statement.SetOpenRecordSet(true)
  21. statement.SetProcName("WS_UserTeacher_SysBindAward")
  22. sqlString := statement.GenSql()
  23. retRows := dbengine.CenterDB.ExecSql(sqlString)
  24. rowLen := len(retRows)
  25. if rowLen <= 0 {
  26. return list
  27. }
  28. for i := 0; i < rowLen; i++ {
  29. ret := retRows[i]
  30. var out bindAward
  31. out.AwardID = int((ret[0]).(int64))
  32. out.Students = int((ret[1]).(int64))
  33. out.Profit = int((ret[2]).(int64))
  34. list = append(list, &out)
  35. }
  36. return list
  37. }
  38. // 注册
  39. func register(userId int) int {
  40. defer func() {
  41. if err := recover(); err != nil {
  42. log.Error("transaction recover err %v", err)
  43. log.Error("%s", debug.Stack())
  44. }
  45. }()
  46. statement := database.NewStatement()
  47. statement.SetNeedReturnValue(false)
  48. statement.SetOpenRecordSet(true)
  49. statement.SetProcName("WS_UserTeacher_Register")
  50. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  51. sqlString := statement.GenSql()
  52. retRow := dbengine.CenterDB.ExecSql(sqlString)
  53. if len(retRow) <= 0 {
  54. return 0
  55. }
  56. return int((retRow[0][0]).(int64))
  57. }
  58. // 师父信息
  59. func info(teacherId int) *teacher {
  60. var list []*teacher
  61. statement := database.NewStatement()
  62. statement.SetNeedReturnValue(false)
  63. statement.SetOpenRecordSet(true)
  64. statement.SetProcName("WS_UserTeacher_GetInfo")
  65. statement.AddParamter("@TeacherID", database.AdParamInput, database.AdInteger, 4, teacherId)
  66. sqlString := statement.GenSql()
  67. jsonData := dbengine.CenterDB.ExecSqlJson(sqlString)
  68. if err := json.Unmarshal([]byte(jsonData), &list); err != nil {
  69. log.Error("teacher.info.transaction json unmarshal err %v", err)
  70. }
  71. if len(list) <= 0 {
  72. return nil
  73. }
  74. return list[0]
  75. }
  76. // 绑定
  77. func bind(studentId, teacherId int) (int, int) {
  78. defer func() {
  79. if err := recover(); err != nil {
  80. log.Error("transaction recover err %v", err)
  81. log.Error("%s", debug.Stack())
  82. }
  83. }()
  84. statement := database.NewStatement()
  85. statement.SetNeedReturnValue(false)
  86. statement.SetOpenRecordSet(true)
  87. statement.SetProcName("WS_UserTeacher_Bind")
  88. statement.AddParamter("@StudentID", database.AdParamInput, database.AdInteger, 4, studentId)
  89. statement.AddParamter("@TeacherID", database.AdParamInput, database.AdInteger, 4, teacherId)
  90. sqlString := statement.GenSql()
  91. retRows := dbengine.CenterDB.ExecSql(sqlString)
  92. if len(retRows) <= 0 {
  93. return 0, 0
  94. }
  95. retCode := int((retRows[0][0]).(int64))
  96. amount := int((retRows[0][1]).(int64))
  97. return retCode, amount
  98. }
  99. // 徒弟列表
  100. func students(teacherId int) []*student {
  101. defer func() {
  102. if err := recover(); err != nil {
  103. log.Error("transaction recover err %v", err)
  104. log.Error("%s", debug.Stack())
  105. }
  106. }()
  107. var list []*student
  108. statement := database.NewStatement()
  109. statement.SetNeedReturnValue(false)
  110. statement.SetOpenRecordSet(true)
  111. statement.SetProcName("WS_UserTeacher_GetStudentList")
  112. statement.AddParamter("@TeacherID", database.AdParamInput, database.AdInteger, 4, teacherId)
  113. sqlstring := statement.GenSql()
  114. retRows := dbengine.CenterDB.ExecSql(sqlstring)
  115. rowLen := len(retRows)
  116. if rowLen <= 0 {
  117. return list
  118. }
  119. for i := 0; i < rowLen; i++ {
  120. ret := retRows[i]
  121. var out student
  122. out.StudentID = int((ret[0]).(int64))
  123. out.Profit = int((ret[1]).(int64))
  124. out.Crdate = (ret[2]).(string)
  125. list = append(list, &out)
  126. }
  127. return list
  128. }
  129. // 收益列表
  130. func profitList(teacherId, days, pageIndex, pageSize int) (int, []*profit) {
  131. defer func() {
  132. if err := recover(); err != nil {
  133. log.Error("transaction recover err %v", err)
  134. log.Error("%s", debug.Stack())
  135. }
  136. }()
  137. var recordCount int
  138. var list []*profit
  139. statement := database.NewStatement()
  140. statement.SetNeedReturnValue(false)
  141. statement.SetOpenRecordSet(true)
  142. statement.SetProcName("WS_UserTeacher_GetProfitList")
  143. statement.AddParamter("@TeacherID", database.AdParamInput, database.AdInteger, 4, teacherId)
  144. statement.AddParamter("@Days", database.AdParamInput, database.AdInteger, 4, days)
  145. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, pageIndex)
  146. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, pageSize)
  147. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, recordCount)
  148. sqlString := statement.GenSql()
  149. retRows := dbengine.CenterDB.ExecSql(sqlString)
  150. rowLen := len(retRows)
  151. if rowLen <= 0 {
  152. return recordCount, list
  153. }
  154. if rowLen > 1 {
  155. for i := 0; i < rowLen-1; i++ {
  156. ret := retRows[i]
  157. var out profit
  158. out.Rid = int((ret[0]).(int64))
  159. out.StudentID = int((ret[1]).(int64))
  160. out.Profit = int((ret[2]).(int64))
  161. out.Price = int((ret[3]).(int64))
  162. list = append(list, &out)
  163. }
  164. }
  165. recordCount = int((retRows[rowLen-1][0]).(int64))
  166. return recordCount, list
  167. }
  168. // 扣减收益
  169. func reduceProfit(userId, profit, profitType int) int {
  170. defer func() {
  171. if err := recover(); err != nil {
  172. log.Error("transaction recover err %v", err)
  173. log.Error("%s", debug.Stack())
  174. }
  175. }()
  176. statement := database.NewStatement()
  177. statement.SetNeedReturnValue(false)
  178. statement.SetOpenRecordSet(true)
  179. statement.SetProcName("WS_UserTeacher_ReduceProfit")
  180. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  181. statement.AddParamter("@Profit", database.AdParamInput, database.AdInteger, 4, profit)
  182. statement.AddParamter("@ProfitType", database.AdParamInput, database.AdInteger, 4, profitType)
  183. sqlString := statement.GenSql()
  184. retRows := dbengine.CenterDB.ExecSql(sqlString)
  185. if len(retRows) <= 0 {
  186. return 0
  187. }
  188. return int((retRows[0][0]).(int64))
  189. }