seven.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package gmdata
  2. import (
  3. "encoding/json"
  4. "github.com/sirupsen/logrus"
  5. "os"
  6. )
  7. // NoviceTaskItem 任务详情
  8. type NoviceTaskItem struct {
  9. ID int64 `json:"ID"`
  10. DayValue int64 `json:"dayValue"`
  11. TaskType int64 `json:"taskType"`
  12. TaskNum int64 `json:"taskNum"`
  13. ActiveAward int64 `json:"activeAward"`
  14. AwardGroup [][]int64 `json:"awardGroup"`
  15. Describe string `json:"describe"`
  16. }
  17. // NoviceTaskAwardItem 活跃度奖励
  18. type NoviceTaskAwardItem struct {
  19. ID int64 `json:"ID"`
  20. ActiveValue int64 `json:"activeValue"`
  21. ShowType int64 `json:"showType"`
  22. AwardGroup [][]int64 `json:"awardGroup"`
  23. Describe string `json:"describe"`
  24. }
  25. // json配置列表
  26. var (
  27. NoviceTaskList []*NoviceTaskItem
  28. NoviceActivityAward []*NoviceTaskAwardItem
  29. )
  30. // loadNoviceTask 加载配置信息
  31. func loadNoviceTask(confPath string) {
  32. // 任务列表
  33. loadNoviceTaskFile(confPath+"/"+"SevenDaysActivityTaskList.json", &NoviceTaskList)
  34. // 活跃度奖励
  35. loadNoviceTaskFile(confPath+"/"+"SevenDaysActivityReward.json", &NoviceActivityAward)
  36. }
  37. func loadNoviceTaskFile(filePath string, val interface{}) {
  38. ptrFile, err := os.Open(filePath)
  39. if err != nil {
  40. logrus.Fatalln("读取json文件失败", err)
  41. }
  42. defer ptrFile.Close()
  43. decoder := json.NewDecoder(ptrFile)
  44. if err = decoder.Decode(&val); err != nil {
  45. logrus.Fatalln("loadNoviceTaskFile Decoder failed ", filePath, err.Error())
  46. }
  47. }
  48. // GetNoviceTask 获取单个任务
  49. func GetNoviceTask(id int64) *NoviceTaskItem {
  50. for _, v := range NoviceTaskList {
  51. if v.ID == id {
  52. return v
  53. }
  54. }
  55. return nil
  56. }
  57. // GetNoviceAward 获取单个奖励
  58. func GetNoviceAward(id int64) *NoviceTaskAwardItem {
  59. for _, v := range NoviceActivityAward {
  60. if v.ID == id {
  61. return v
  62. }
  63. }
  64. return nil
  65. }