You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.8 KiB

  1. package service
  2. import (
  3. "gin-vue-admin/global"
  4. "gin-vue-admin/model"
  5. "gin-vue-admin/model/request"
  6. )
  7. // @title Create{{.StructName}}
  8. // @description create a {{.StructName}}
  9. // @param {{.Abbreviation}} model.{{.StructName}}
  10. // @auth (2020/04/05 20:22)
  11. // @return err error
  12. func Create{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error) {
  13. err = global.GVA_DB.Create(&{{.Abbreviation}}).Error
  14. return err
  15. }
  16. // @title Delete{{.StructName}}
  17. // @description delete a {{.StructName}}
  18. // @auth (2020/04/05 20:22)
  19. // @param {{.Abbreviation}} model.{{.StructName}}
  20. // @return error
  21. func Delete{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error) {
  22. err = global.GVA_DB.Delete({{.Abbreviation}}).Error
  23. return err
  24. }
  25. // @title Update{{.StructName}}
  26. // @description update a {{.StructName}}
  27. // @param {{.Abbreviation}} *model.{{.StructName}}
  28. // @auth (2020/04/05 20:22)
  29. // @return error
  30. func Update{{.StructName}}({{.Abbreviation}} *model.{{.StructName}}) (err error) {
  31. err = global.GVA_DB.Save({{.Abbreviation}}).Error
  32. return err
  33. }
  34. // @title Get{{.StructName}}
  35. // @description get the info of a {{.StructName}}
  36. // @auth (2020/04/05 20:22)
  37. // @param id uint
  38. // @return error
  39. // @return {{.StructName}} {{.StructName}}
  40. func Get{{.StructName}}(id uint) (err error, {{.Abbreviation}} model.{{.StructName}}) {
  41. err = global.GVA_DB.Where("id = ?", id).First(&{{.Abbreviation}}).Error
  42. return
  43. }
  44. // @title Get{{.StructName}}InfoList
  45. // @description get {{.StructName}} list by pagination, 分页获取用户列表
  46. // @auth (2020/04/05 20:22)
  47. // @param info PageInfo
  48. // @return error
  49. func Get{{.StructName}}InfoList(info request.{{.StructName}}Search) (err error, list interface{}, total int) {
  50. limit := info.PageSize
  51. offset := info.PageSize * (info.Page - 1)
  52. // 创建db
  53. db := global.GVA_DB
  54. var {{.Abbreviation}}s []model.{{.StructName}}
  55. // 如果有条件搜索 下方会自动创建搜索语句
  56. {{- range .Fields}}
  57. {{- if .FieldSearchType}}
  58. {{- if eq .FieldType "string" }}
  59. if info.{{.FieldName}} != "" {
  60. db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+ {{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
  61. }
  62. {{- else if eq .FieldType "bool" }}
  63. if info.{{.FieldName}} != 0 {
  64. db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
  65. }
  66. {{- else if eq .FieldType "int" }}
  67. if info.{{.FieldName}} != 0 {
  68. db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
  69. }
  70. {{- else if eq .FieldType "float64" }}
  71. if info.{{.FieldName}} != 0 {
  72. db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
  73. }
  74. {{- else if eq .FieldType "time.Time" }}
  75. if !info.{{.FieldName}}.IsZero() {
  76. db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
  77. }
  78. {{- end }}
  79. {{- end }}
  80. {{- end }}
  81. err = db.Find(&{{.Abbreviation}}s).Count(&total).Error
  82. err = db.Limit(limit).Offset(offset).Find(&{{.Abbreviation}}s).Error
  83. return err, {{.Abbreviation}}s, total
  84. }