dictionaries.go 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package datas
  2. import (
  3. "gin-vue-admin/global"
  4. "github.com/gookit/color"
  5. "time"
  6. "gin-vue-admin/model"
  7. "gorm.io/gorm"
  8. )
  9. type SysDictionaryToPostgresql struct {
  10. global.GVA_MODEL
  11. Name string `json:"name" form:"name" gorm:"column:name;comment:字典名(中)"`
  12. Type string `json:"type" form:"type" gorm:"column:type;comment:字典名(英)"`
  13. Status *bool `json:"status" form:"status" gorm:"column:status;comment:状态"`
  14. Description string `json:"description" form:"description" gorm:"column:description;comment:'描述'"`
  15. SysDictionaryDetails []model.SysDictionaryDetail `json:"sysDictionaryDetails" form:"sysDictionaryDetails"`
  16. }
  17. func InitSysDictionary(db *gorm.DB) (err error) {
  18. var status = new(bool)
  19. *status = true
  20. Dictionaries := []model.SysDictionary{
  21. {GVA_MODEL: global.GVA_MODEL{ID: 1, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "性别", Type: "sex", Status: status, Desc: "性别字典"},
  22. {GVA_MODEL: global.GVA_MODEL{ID: 2, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库int类型", Type: "int", Status: status, Desc: "int类型对应的数据库类型"},
  23. {GVA_MODEL: global.GVA_MODEL{ID: 3, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库时间日期类型", Type: "time.Time", Status: status, Desc: "数据库时间日期类型"},
  24. {GVA_MODEL: global.GVA_MODEL{ID: 4, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库浮点型", Type: "float64", Status: status, Desc: "数据库浮点型"},
  25. {GVA_MODEL: global.GVA_MODEL{ID: 5, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库字符串", Type: "string", Status: status, Desc: "数据库字符串"},
  26. {GVA_MODEL: global.GVA_MODEL{ID: 6, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库bool类型", Type: "bool", Status: status, Desc: "数据库bool类型"},
  27. }
  28. return db.Transaction(func(tx *gorm.DB) error {
  29. if tx.Where("id IN ?", []int{1, 6}).Find(&[]model.SysDictionary{}).RowsAffected == 2 {
  30. color.Danger.Println("sys_dictionaries表的初始数据已存在!")
  31. return nil
  32. }
  33. if tx.Create(&Dictionaries).Error != nil { // 遇到错误时回滚事务
  34. return err
  35. }
  36. return nil
  37. })
  38. }
  39. func InitSysDictionaryToPostgresql(db *gorm.DB) (err error) {
  40. status := new(bool)
  41. *status = true
  42. Dictionaries := []SysDictionaryToPostgresql{
  43. {GVA_MODEL: global.GVA_MODEL{ID: 1, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "性别", Type: "sex", Status: status, Description: "性别字典"},
  44. {GVA_MODEL: global.GVA_MODEL{ID: 2, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库int类型", Type: "int", Status: status, Description: "int类型对应的数据库类型"},
  45. {GVA_MODEL: global.GVA_MODEL{ID: 3, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库时间日期类型", Type: "time.Time", Status: status, Description: "数据库时间日期类型"},
  46. {GVA_MODEL: global.GVA_MODEL{ID: 4, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库浮点型", Type: "float64", Status: status, Description: "数据库浮点型"},
  47. {GVA_MODEL: global.GVA_MODEL{ID: 5, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库字符串", Type: "string", Status: status, Description: "数据库字符串"},
  48. {GVA_MODEL: global.GVA_MODEL{ID: 6, CreatedAt: time.Now(), UpdatedAt: time.Now()}, Name: "数据库bool类型", Type: "bool", Status: status, Description: "数据库bool类型"},
  49. }
  50. return db.Transaction(func(tx *gorm.DB) error {
  51. if tx.Where("id IN ?", []int{1, 6}).Find(&[]model.SysDictionary{}).RowsAffected == 2 {
  52. color.Danger.Println("sys_dictionaries表的初始数据已存在!")
  53. return nil
  54. }
  55. if tx.Create(&Dictionaries).Error != nil { // 遇到错误时回滚事务
  56. return err
  57. }
  58. return nil
  59. })
  60. }