ETCD后台服务
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.

67 lines
2.2 KiB

3 years ago
  1. package models
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. )
  6. // EtcdServersModel etcd 服务列表
  7. type EtcdServersModel struct {
  8. ID int32 `json:"id" gorm:"column:id;primary_key"`
  9. Version string `json:"version" gorm:"column:version"`
  10. Name string `json:"name" gorm:"column:name"`
  11. Address string `json:"address" gorm:"column:address"`
  12. TlsEnable string `json:"tls_enable" gorm:"column:tls_enable"`
  13. CertFile string `json:"cert_file" gorm:"column:cert_file"`
  14. KeyFile string `json:"key_file" gorm:"column:key_file"`
  15. CaFile string `json:"ca_file" gorm:"column:ca_file"`
  16. Username string `json:"username" gorm:"column:username"`
  17. Password string `json:"password" gorm:"column:password"`
  18. Desc string `json:"desc" gorm:"column:desc"`
  19. CreatedAt JSONTime `gorm:"column:created_at" json:"created_at"` // 添加时间
  20. UpdatedAt JSONTime `gorm:"column:updated_at" json:"updated_at"` // 更新时间
  21. }
  22. // TableName 表名
  23. func (EtcdServersModel) TableName() string {
  24. return "etcd_servers"
  25. }
  26. // All 获取全部
  27. func (m *EtcdServersModel) All(name string, roleId int32) (list []*EtcdServersModel, err error) {
  28. re := new(RoleEtcdServersModel).TableName()
  29. err = client.Table(m.TableName()+" as e").Select("DISTINCT e.id, e.*").
  30. Joins("LEFT JOIN "+re+" as re on re.etcd_server_id = e.id").
  31. Where("e.name like ? and re.role_id = ?", fmt.Sprintf("%%%s%%", name), roleId).
  32. Scan(&list).Error
  33. return
  34. }
  35. // FirstById 根据id查询一个etcd服务
  36. func (m *EtcdServersModel) FirstById(id int32) (one *EtcdServersModel, err error) {
  37. one = new(EtcdServersModel)
  38. err = client.Model(m).Where("id = ?", id).First(one).Error
  39. return
  40. }
  41. // Insert 添加
  42. func (m *EtcdServersModel) Insert() (err error) {
  43. err = client.Create(m).Error
  44. return
  45. }
  46. // Update 修改
  47. func (m *EtcdServersModel) Update() (err error) {
  48. edit := make(map[string]interface{}, 0)
  49. js, _ := json.Marshal(m)
  50. json.Unmarshal(js, &edit)
  51. err = client.Model(new(EtcdServersModel)).Where("id = ?", m.ID).Updates(edit).Error
  52. return
  53. }
  54. // Del 删除
  55. func (m *EtcdServersModel) Del(id int32) (err error) {
  56. err = client.Table(m.TableName()).Where("id = ?", id).Delete(m).Error
  57. new(RoleEtcdServersModel).DelByEtcdId(id)
  58. return
  59. }