entity.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package family
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/domain/entity"
  4. "git.sxidc.com/go-tools/utils/strutils"
  5. "git.sxidc.com/service-supports/fserr"
  6. )
  7. const (
  8. ColumnFather = "father"
  9. ColumnMother = "mother"
  10. )
  11. const (
  12. fieldFatherMaxLen = 128
  13. fieldMotherMaxLen = 128
  14. )
  15. type Entity struct {
  16. entity.Base
  17. Father string `sqlmapping:"column:father" sqlresult:"column:father"`
  18. Mother string `sqlmapping:"column:mother" sqlresult:"column:mother"`
  19. StudentID string `sqlmapping:"column:student_id" sqlresult:"column:student_id"`
  20. entity.TimeFields
  21. }
  22. func (e *Entity) DomainCNName() string {
  23. return "家庭"
  24. }
  25. func (e *Entity) DomainCamelName() string {
  26. return "Family"
  27. }
  28. func (e *Entity) CheckFieldID() error {
  29. return e.Base.CheckFieldID(e.DomainCNName())
  30. }
  31. func (e *Entity) ForCreate() error {
  32. err := e.CheckFieldID()
  33. if err != nil {
  34. return err
  35. }
  36. err = e.checkFieldFather()
  37. if err != nil {
  38. return err
  39. }
  40. return nil
  41. }
  42. func (e *Entity) ForDelete() error {
  43. return e.CheckFieldID()
  44. }
  45. func (e *Entity) ForUpdate() error {
  46. err := e.CheckFieldID()
  47. if err != nil {
  48. return err
  49. }
  50. err = e.checkUpdateFields()
  51. if err != nil {
  52. return err
  53. }
  54. return nil
  55. }
  56. func (e *Entity) checkFieldFather() error {
  57. if strutils.IsStringEmpty(e.Father) {
  58. return fserr.New(e.DomainCNName() + "父亲姓名为空")
  59. }
  60. if len(e.Father) > fieldFatherMaxLen {
  61. return fserr.New(e.DomainCNName() + "父亲姓名超出限定长度")
  62. }
  63. return nil
  64. }
  65. func (e *Entity) checkFieldMother() error {
  66. if strutils.IsStringEmpty(e.Mother) {
  67. return fserr.New(e.DomainCNName() + "母亲姓名为空")
  68. }
  69. if len(e.Mother) > fieldMotherMaxLen {
  70. return fserr.New(e.DomainCNName() + "母亲姓名超出限定长度")
  71. }
  72. return nil
  73. }
  74. func (e *Entity) checkUpdateFields() error {
  75. if strutils.AllBlank(e.Father, e.Mother) {
  76. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  77. }
  78. if strutils.IsStringNotEmpty(e.Father) && len(e.Father) > fieldFatherMaxLen {
  79. return fserr.New(e.DomainCNName() + "父亲姓名超出限定长度")
  80. }
  81. if strutils.IsStringNotEmpty(e.Mother) && len(e.Mother) > fieldMotherMaxLen {
  82. return fserr.New(e.DomainCNName() + "母亲姓名超出限定长度")
  83. }
  84. return nil
  85. }