transaction.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package handler
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. "bet24.com/servers/common"
  6. pb "bet24.com/servers/micros/badge/proto"
  7. dbengine "bet24.com/servers/micros/dbengine/proto"
  8. "encoding/json"
  9. "fmt"
  10. "time"
  11. )
  12. // 获取用户徽章列表
  13. func transGetUserBadgeList(userId int) []*pb.UserBadge {
  14. statement := database.NewStatement()
  15. statement.SetNeedReturnValue(false)
  16. statement.SetOpenRecordSet(true)
  17. statement.SetProcName("WS_UserBadge_GetBadgeList")
  18. statement.AddParamter("@UserId", database.AdParamInput, database.AdInteger, 4, userId)
  19. sqlString := statement.GenSql()
  20. jsonData := dbengine.Execute(sqlString)
  21. var out []*pb.UserBadge
  22. if err := json.Unmarshal([]byte(jsonData), &out); err != nil {
  23. log.Error("transaction.transGetUserBadgeList json unmarshal UserID=%d err %v", userId, err)
  24. return out
  25. }
  26. for k, v := range out {
  27. t, err := time.Parse(time.RFC3339Nano, v.Crdate)
  28. if err != nil {
  29. fmt.Println("WS_UserBadge_GetBadgeList 解析时间错误:", err)
  30. continue
  31. }
  32. out[k].Crdate = t.Format(common.Layout)
  33. }
  34. return out
  35. }
  36. // 保存用户徽章
  37. func transSaveUserBadge(userId int, u *pb.UserBadge) {
  38. statement := database.NewStatement()
  39. statement.SetNeedReturnValue(false)
  40. statement.SetOpenRecordSet(true)
  41. statement.SetProcName("WS_UserBadge_SaveBadge")
  42. statement.AddParamter("@UserId", database.AdParamInput, database.AdInteger, 4, userId)
  43. statement.AddParamter("@BadgeId", database.AdParamInput, database.AdInteger, 4, u.BadgeId)
  44. statement.AddParamter("@Level", database.AdParamInput, database.AdSmallInt, 4, u.Level)
  45. statement.AddParamter("@Exps", database.AdParamInput, database.AdInteger, 4, u.Exps)
  46. statement.AddParamter("@Points", database.AdParamInput, database.AdTinyInt, 4, u.Points)
  47. statement.AddParamter("@Times", database.AdParamInput, database.AdInteger, 4, u.Times)
  48. statement.AddParamter("@Position", database.AdParamInput, database.AdSmallInt, 1, u.Position)
  49. statement.AddParamter("@ExpiresTime", database.AdParamInput, database.AdInteger, 16, u.ExpiresTime)
  50. statement.AddParamter("@ObtainDate", database.AdParamInput, database.AdVarChar, 128, u.ObtainDate)
  51. statement.AddParamter("@Crdate", database.AdParamInput, database.AdVarChar, 20, u.Crdate)
  52. sqlString := statement.GenSql()
  53. dbengine.Execute(sqlString)
  54. return
  55. }
  56. // 更新榜单数据
  57. func transRefreshRankData() {
  58. statement := database.NewStatement()
  59. statement.SetNeedReturnValue(false)
  60. statement.SetOpenRecordSet(true)
  61. statement.SetProcName("WS_Rank_ReloadBadgeRanking")
  62. sqlString := statement.GenSql()
  63. dbengine.Execute(sqlString)
  64. return
  65. }