inventory_transaction.go 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package handler
  2. import (
  3. "bet24.com/database"
  4. "bet24.com/log"
  5. dbengine "bet24.com/servers/micros/dbengine/proto"
  6. item "bet24.com/servers/micros/item_inventory/proto"
  7. "encoding/json"
  8. )
  9. // 获取用户道具列表
  10. func getUserItemList(userId int) map[int]*item.UserItem {
  11. statement := database.NewStatement()
  12. statement.SetNeedReturnValue(false)
  13. statement.SetOpenRecordSet(true)
  14. statement.SetProcName("WS_UserItem_GetList")
  15. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  16. sqlstring := statement.GenSql()
  17. //log.Debug(sqlstring)
  18. userItems := make(map[int]*item.UserItem)
  19. var itemList []item.UserItem
  20. jsonData := dbengine.Execute(sqlstring)
  21. if err := json.Unmarshal([]byte(jsonData), &itemList); err != nil {
  22. log.Release("inventory.getUserItemList load json unmarshal err %v", err)
  23. return userItems
  24. }
  25. for i := 0; i < len(itemList); i++ {
  26. userItems[itemList[i].ItemId] = &itemList[i]
  27. }
  28. return userItems
  29. }
  30. // 用户道具更新
  31. func updateUserItem(userId int, userItem *item.UserItem) {
  32. statement := database.NewStatement()
  33. statement.SetNeedReturnValue(false)
  34. statement.SetOpenRecordSet(true)
  35. statement.SetProcName("WS_UserItem_Update")
  36. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  37. statement.AddParamter("@ItemID", database.AdParamInput, database.AdInteger, 4, userItem.ItemId)
  38. statement.AddParamter("@ItemCount", database.AdParamInput, database.AdInteger, 4, userItem.Count)
  39. statement.AddParamter("@Start", database.AdParamInput, database.AdInteger, 4, userItem.Start)
  40. statement.AddParamter("@Duration", database.AdParamInput, database.AdInteger, 4, userItem.Duration)
  41. statement.AddParamter("@EnegyPoint", database.AdParamInput, database.AdInteger, 4, 0)
  42. sqlstring := statement.GenSql()
  43. dbengine.Execute(sqlstring)
  44. return
  45. }
  46. // 用户道具删除
  47. func delUserItem(userId int, userItem *item.UserItem) {
  48. statement := database.NewStatement()
  49. statement.SetNeedReturnValue(false)
  50. statement.SetOpenRecordSet(true)
  51. statement.SetProcName("WS_UserItem_Del")
  52. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  53. statement.AddParamter("@ItemID", database.AdParamInput, database.AdInteger, 4, userItem.ItemId)
  54. sqlstring := statement.GenSql()
  55. // log.Debug(sqlstring)
  56. dbengine.Execute(sqlstring)
  57. return
  58. }
  59. // 添加道具日志
  60. func addLog(userId, itemId, currCount, wantCount, stillCount int, remark, ipAddress string) {
  61. statement := database.NewStatement()
  62. statement.SetNeedReturnValue(false)
  63. statement.SetOpenRecordSet(true)
  64. statement.SetProcName("WS_UserItem_AddLog")
  65. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
  66. statement.AddParamter("@ItemID", database.AdParamInput, database.AdInteger, 4, itemId)
  67. statement.AddParamter("@CurrCount", database.AdParamInput, database.AdInteger, 4, currCount)
  68. statement.AddParamter("@WantCount", database.AdParamInput, database.AdInteger, 4, wantCount)
  69. statement.AddParamter("@StillCount", database.AdParamInput, database.AdInteger, 4, stillCount)
  70. statement.AddParamter("@Remark", database.AdParamInput, database.AdNVarChar, 128, remark)
  71. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, ipAddress)
  72. sqlstring := statement.GenSql()
  73. dbengine.Execute(sqlstring)
  74. }