json.go.sheet.tpl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // this file is auto create by program, don't edit manually
  2. package data
  3. import (
  4. mhayaError "github.com/mhaya/error"
  5. mhayaLogger "github.com/mhaya/logger"
  6. )
  7. type {{.Name}} struct {
  8. maps map[int]*{{.Name}}Row
  9. }
  10. type {{.Name}}Row struct {
  11. {{- $maxNameLen := (SheetHeaderNameMaxLen .)}}
  12. {{- $nameFmt := (printf "%%-%ds" $maxNameLen)}}
  13. {{- $maxTypeLen := (SheetHeaderTypeNameMaxLen .)}}
  14. {{- $typeFmt := (printf "%%-%ds" $maxTypeLen)}}
  15. {{- range .Headers}}
  16. {{.Name | printf $nameFmt}} {{GetTypeName .DataType | printf $typeFmt}} // {{.Comment}}
  17. {{- end}}
  18. }
  19. func (p *{{.Name}}) Name() string {
  20. return "{{.Name}}"
  21. }
  22. func (p *{{.Name}}) Init() {
  23. p.maps = make(map[int]*{{.Name}}Row)
  24. }
  25. func (p *{{.Name}}) OnLoad(maps interface{}, _ bool) (int, error) {
  26. list, ok := maps.([]interface{})
  27. if !ok {
  28. return 0, mhayaError.Error("maps convert to []interface{} error.")
  29. }
  30. loadMaps := make(map[int]*{{.Name}}Row)
  31. for index, data := range list {
  32. loadConfig := &{{.Name}}Row{}
  33. err := DecodeData(data, loadConfig)
  34. if err != nil {
  35. mhayaLogger.Warnf("decode error. [row = %d, %v], err = %s", index+1, loadConfig, err)
  36. continue
  37. }
  38. loadMaps[loadConfig.ID] = loadConfig
  39. }
  40. p.maps = loadMaps
  41. return len(list), nil
  42. }
  43. func (p *{{.Name}}) OnAfterLoad(_ bool) {
  44. }
  45. func (p *{{.Name}}) Get(pk int) (*{{.Name}}Row, bool) {
  46. i, found := p.maps[pk]
  47. return i, found
  48. }
  49. func (p *{{.Name}}) Contain(pk int) bool {
  50. _, found := p.Get(pk)
  51. return found
  52. }