item.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /*
  2. * @Descripttion:
  3. * @version:
  4. * @Author: Neo,Huang
  5. * @Date: 2023-11-18 22:52:59
  6. * @LastEditors: Neo,Huang
  7. * @LastEditTime: 2023-11-21 23:39:58
  8. */
  9. package models
  10. import (
  11. "encoding/json"
  12. "github.com/astaxie/beego"
  13. "box-gm/utils"
  14. )
  15. type ItemConfig struct {
  16. Id int `json:"id"` // 道具ID
  17. Name string `json:"name"` // 道具名称
  18. Type int `json:"ty"` // 道具类型
  19. Price int `json:"price"` // 道具价格
  20. }
  21. type ItemConfigs []*ItemConfig
  22. type RES_CONF_ITEMS struct {
  23. Code int `json:"code"` // 道具ID
  24. Items ItemConfigs `json:"items"` // 道具配置列表
  25. }
  26. var itemConfigMap map[int]*ItemConfig
  27. var itemConfigs ItemConfigs
  28. func init() {
  29. itemConfigMap = make(map[int]*ItemConfig)
  30. itemConfigMap[101] = &ItemConfig{
  31. Id: 101,
  32. Name: "金币",
  33. Type: 1,
  34. }
  35. itemConfigMap[102] = &ItemConfig{
  36. Id: 102,
  37. Name: "绑金",
  38. Type: 1,
  39. }
  40. itemConfigMap[103] = &ItemConfig{
  41. Id: 103,
  42. Name: "N1",
  43. Type: 1,
  44. }
  45. itemConfigs = append(itemConfigs, itemConfigMap[101])
  46. itemConfigs = append(itemConfigs, itemConfigMap[102])
  47. itemConfigs = append(itemConfigs, itemConfigMap[103])
  48. }
  49. func UpdateItemConfig() (int, int) {
  50. params := make(map[string]interface{})
  51. params["name"] = "gm_get_conf_items"
  52. body, _ := json.Marshal(params)
  53. host := utils.GetKeyConf("gameservers", "web")
  54. sign := utils.Strtomd5(string(body) + utils.GetKeyConf("app", "gameKey"))
  55. url := "http://" + host + "/json?sign=" + sign
  56. buff, err := utils.SendAndRecvHTTP("POST", url, string(body))
  57. // log.Printf("UpdateItemConfig url[%s] body[%s] buff[%s] err[%v]", url, string(body), string(buff), err)
  58. if err != nil {
  59. return 0, 0
  60. }
  61. var res RES_CONF_ITEMS
  62. err = json.Unmarshal(buff, &res)
  63. if err != nil {
  64. return 0, 0
  65. }
  66. if res.Code != 200 {
  67. return 0, 0
  68. }
  69. oldCount := len(itemConfigs)
  70. itemConfigMap = make(map[int]*ItemConfig)
  71. itemConfigs = ItemConfigs{}
  72. for _, v := range res.Items {
  73. itemConfigMap[v.Id] = v
  74. itemConfigs = append(itemConfigs, v)
  75. }
  76. beego.Info("load item config, oldCount: ", oldCount, "newCount", len(itemConfigs))
  77. return oldCount, len(itemConfigs)
  78. }
  79. func GetItemName(id int) string {
  80. item, ok := itemConfigMap[id]
  81. if !ok {
  82. return ""
  83. }
  84. return item.Name
  85. }
  86. // 获取物品列表
  87. func GetItemInfoList() ItemConfigs {
  88. // InitItemConfig()
  89. return itemConfigs
  90. }