dao.go.tmpl 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package manage
  2. import (
  3. "demo/configs"
  4. "demo/data/domain"
  5. "demo/data/domain/vo"
  6. )
  7. {{range .gens}}
  8. func Get{{.table.name}}ById(id int64) (domain.{{.table.name}}, error) {
  9. var {{.table.routerName}} domain.{{.table.name}}
  10. _, err := configs.Engine.Table("{{.table.tableName}}").Where("id = ?", id).Get(&{{.table.routerName}})
  11. if err != nil {
  12. return {{.table.routerName}}, err
  13. }
  14. return {{.table.routerName}}, nil
  15. }
  16. func Get{{.table.name}}ListInId(ids []int64) ([]domain.{{.table.name}}, error) {
  17. rows, err := configs.Engine.Table("{{.table.tableName}}").In("id", ids).Rows(&domain.{{.table.name}}{})
  18. if err != nil {
  19. return make([]domain.{{.table.name}}, 0), err
  20. }
  21. defer rows.Close()
  22. var list []domain.{{.table.name}}
  23. for rows.Next() {
  24. var u domain.{{.table.name}}
  25. rows.Scan(&u)
  26. list = append(list, u)
  27. }
  28. return list, nil
  29. }
  30. func Get{{.table.name}}List({{.table.routerName}} domain.{{.table.name}}, pageNum, pageSize int) (vo.BaseListVo, error) {
  31. var arr []domain.{{.table.name}}
  32. Count, err := configs.Engine.Table("{{.table.tableName}}").Limit(pageSize, (pageNum-1)*pageSize).FindAndCount(&arr, &{{.table.routerName}})
  33. var vo vo.BaseListVo
  34. if err != nil {
  35. return vo, err
  36. }
  37. if err != nil {
  38. return vo, err
  39. }
  40. vo.PageNum = pageNum
  41. vo.PageSize = pageSize
  42. vo.List = make([]any, len(arr))
  43. for i, v := range arr {
  44. vo.List[i] = v
  45. }
  46. vo.Total = int(Count)
  47. return vo, nil
  48. }
  49. func Get2{{.table.name}}List(query domain.{{.table.name}}Query, pageNum, pageSize int) (vo.BaseListVo, error) {
  50. var arr []domain.{{.table.name}}
  51. session := configs.Engine.Table("{{.table.tableName}}").Limit(pageSize, (pageNum-1)*pageSize){{$defData := "0"}}{{range .tableColumns}}{{if eq .goType "int"}}{{$defData = "0"}}{{else if eq .goType "int64"}}{{$defData = "0"}}{{else if eq .goType "float64"}}{{$defData = "0"}}{{else if eq .goType "string"}}{{$defData = "\"\""}}{{else if eq .goType "time.Time"}}{{$defData = "\"\""}}{{else}}{{$defData = "\"\""}}{{end}}
  52. {{if eq .queryType "BETWEEN"}}
  53. if query.{{.goField}}Start != {{$defData}} || query.{{.goField}}End != {{$defData}}{
  54. session.Where("{{.columnName}} between ? and ?", query.{{.goField}}Start, query.{{.goField}}End)
  55. }{{else if or (eq .queryType "LIKE") (eq .queryType "like")}}
  56. if query.{{.goField}} != {{$defData}}{
  57. session.Where("{{.columnName}} like ?", "%"+query.{{.goField}}+"%")
  58. }{{else}}{{$v := ""}}{{if eq .queryType ""}} {{$v = "= ?"}}{{else if eq .queryType "EQ"}} {{$v = "= ?"}}{{else if eq .queryType "NEQ"}}{{$v = "!= ?"}}{{else if eq .queryType "GT"}}{{$v = "> ?"}}{{else if eq .queryType "LT"}}{{$v = "< ?"}}{{else if eq .queryType "GTEQ"}}{{$v = ">= ?"}}{{else if eq .queryType "LTEQ"}}{{$v = "<= ?"}}{{else}}{{$v = "= ?"}}{{end}}
  59. if query.{{.goField}} != {{$defData}}{
  60. session.Where("{{.columnName}} {{$v}}", query.{{.goField}})
  61. }{{end}}{{end}}
  62. Count, err := session.FindAndCount(&arr, &query)
  63. var vo vo.BaseListVo
  64. if err != nil {
  65. return vo, err
  66. }
  67. if err != nil {
  68. return vo, err
  69. }
  70. vo.PageNum = pageNum
  71. vo.PageSize = pageSize
  72. vo.List = make([]any, len(arr))
  73. for i, v := range arr {
  74. vo.List[i] = v
  75. }
  76. vo.Total = int(Count)
  77. return vo, nil
  78. }
  79. func Save{{.table.name}}({{.table.routerName}} *domain.{{.table.name}}) (domain.{{.table.name}}, error) {
  80. _, err := configs.Engine.Table("{{.table.tableName}}").Insert(&{{.table.routerName}})
  81. if err != nil {
  82. return *{{.table.routerName}}, err
  83. }
  84. return *{{.table.routerName}}, nil
  85. }
  86. func Set{{.table.name}}({{.table.routerName}}Map map[string]interface{}, id int64) (domain.{{.table.name}}, bool, error) {
  87. var {{.table.routerName}} domain.{{.table.name}}
  88. _, err := configs.Engine.Table("{{.table.tableName}}").Where("id = ?", id).Update({{.table.routerName}}Map)
  89. if err != nil {
  90. return {{.table.routerName}}, false, err
  91. }
  92. return {{.table.routerName}}, true, nil
  93. }
  94. func Delete{{.table.name}}(id int64) bool {
  95. var {{.table.routerName}} domain.{{.table.name}}
  96. i, err := configs.Engine.Table("{{.table.tableName}}").Where("id = ?", id).Delete(&{{.table.routerName}})
  97. if err != nil {
  98. return false
  99. }
  100. return i > 0
  101. }
  102. {{end}}