gen.go 895 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package sqlmodel
  2. import (
  3. "go/format"
  4. "zero/core/logx"
  5. )
  6. type (
  7. Column struct {
  8. DataType string `json:"dataType"`
  9. Name string `json:"name"`
  10. Comment string `json:"comment"`
  11. }
  12. Table struct {
  13. Name string `json:"table"`
  14. PrimaryKey string `json:"primaryKey"`
  15. Columns []*Column `json:"columns"`
  16. }
  17. )
  18. func GenMysqlGoModel(req *Table, conditions []string) (string, error) {
  19. resp, err := generateTypeModel(req.Name, req.Columns)
  20. if err != nil {
  21. return "", err
  22. }
  23. resp.PrimaryKey = req.PrimaryKey
  24. s, err := NewStructExp(*resp)
  25. if len(conditions) == 0 {
  26. s.conditions = []string{resp.PrimaryKey}
  27. } else {
  28. s.conditions = conditions
  29. }
  30. if err != nil {
  31. return "", err
  32. }
  33. result, err := s.genMysqlCRUD()
  34. // code format
  35. bts, err := format.Source([]byte(result))
  36. if err != nil {
  37. logx.Errorf("%+v", err)
  38. return "", err
  39. }
  40. return string(bts), err
  41. }