BaseTemplateFunc.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package util
  2. import (
  3. "strings"
  4. "text/template"
  5. )
  6. var FuncMap = template.FuncMap{
  7. "toGoType": ToGoType,
  8. "formatJsonName": FormatJsonName,
  9. "formatSqlToVueType": formatSqlToVueType,
  10. "smallHump": SmallHump,
  11. "bigHump": BigHump,
  12. }
  13. // ToGoType sql类型转go类型
  14. func ToGoType(sqlType string) string {
  15. switch sqlType {
  16. case "varchar":
  17. return "string"
  18. case "char":
  19. return "string"
  20. case "int":
  21. return "int64"
  22. case "decimal":
  23. return "float64"
  24. case "datetime":
  25. return "time.Time"
  26. case "longblob":
  27. return "string"
  28. default:
  29. println("未找到类型", sqlType)
  30. return "string"
  31. }
  32. }
  33. func FormatJsonName(sqlName string) string {
  34. split := strings.Split(sqlName, "_")
  35. var str = split[0]
  36. for i := 1; i < len(split); i++ {
  37. str += strings.Title(split[i])
  38. }
  39. return str
  40. }
  41. func formatSqlToVueType(str string) string {
  42. str = strings.ToLower(str)
  43. switch str {
  44. case "varchar":
  45. return "string"
  46. case "char":
  47. return "string"
  48. case "int":
  49. return "number"
  50. case "decimal":
  51. return "number"
  52. case "datetime":
  53. return "string"
  54. case "longblob":
  55. return "string"
  56. default:
  57. panic("未定义的类型:" + str)
  58. }
  59. }
  60. func BigHump(str string) string {
  61. split := strings.Split(str, "_")
  62. res := strings.Title(split[0])
  63. for i := 1; i < len(split); i++ {
  64. res += split[i]
  65. }
  66. return res
  67. }
  68. func SmallHump(str string) string {
  69. split := strings.Split(str, "_")
  70. res := strings.ToLower(split[0][0:1]) + strings.ToLower(split[0][1:])
  71. for i := 1; i < len(split); i++ {
  72. res += split[i]
  73. }
  74. return res
  75. }