item.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package controller
  2. import (
  3. "bet24.com/servers/adminserver/item"
  4. item_inventory "bet24.com/servers/micros/item_inventory/proto"
  5. "net/http"
  6. "sort"
  7. "bet24.com/log"
  8. "bet24.com/servers/adminserver/dao"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func ItemLog(c *gin.Context) {
  12. obj := dao.NewUserItemLog()
  13. if err := c.ShouldBind(&obj.In); err != nil {
  14. log.Debug("%s shouldBind err %v", "itemLog", err)
  15. return
  16. }
  17. obj.DoAction(nil)
  18. c.JSON(http.StatusOK, obj.Out)
  19. return
  20. }
  21. func GetItems(c *gin.Context) {
  22. type tool struct {
  23. Id int //道具ID
  24. Type int //道具类型
  25. Name string //道具名称
  26. Desc string //道具描述
  27. }
  28. items := item.GetSysItems()
  29. var tools []tool
  30. for _, v := range items {
  31. tools = append(tools, tool{
  32. Id: v.Id,
  33. Type: v.Type,
  34. Name: v.Name,
  35. Desc: v.Desc,
  36. })
  37. }
  38. //道具ID排序
  39. sort.SliceStable(tools, func(i, j int) bool {
  40. return tools[i].Id < tools[j].Id
  41. })
  42. //道具类型排序
  43. sort.SliceStable(tools, func(i, j int) bool {
  44. return tools[i].Type < tools[j].Type
  45. })
  46. c.JSON(http.StatusOK, struct {
  47. RecordCount int
  48. List []tool
  49. }{
  50. RecordCount: len(tools),
  51. List: tools,
  52. })
  53. return
  54. }
  55. func GetUserItemList(c *gin.Context) {
  56. obj := dao.NewUserItemList()
  57. if err := c.ShouldBind(&obj.In); err != nil {
  58. log.Debug("%s shouldBind err %v", "getUserItemList", err)
  59. return
  60. }
  61. obj.DoAction(nil)
  62. if len(obj.Out.List) > 0 {
  63. items := item.GetSysItems()
  64. for i, v := range obj.Out.List {
  65. value, ok := items[v.ItemID]
  66. if !ok {
  67. continue
  68. }
  69. obj.Out.List[i].ItemName = value.Name
  70. }
  71. }
  72. c.JSON(http.StatusOK, obj.Out)
  73. return
  74. }
  75. func ReduceUserItem(c *gin.Context) {
  76. var req struct {
  77. UserId int
  78. ItemId int
  79. Count int
  80. OpUserID int
  81. OpUserName string
  82. }
  83. if err := c.ShouldBind(&req); err != nil {
  84. log.Debug("%s shouldBind err %v", "reduceUserItem", err)
  85. return
  86. }
  87. _, errorMsg := item_inventory.ReduceItemByAdmin(req.OpUserID, req.OpUserName, req.UserId, req.ItemId, req.Count)
  88. c.String(http.StatusOK, errorMsg)
  89. return
  90. }