entity.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package family
  2. import (
  3. "git.sxidc.com/go-framework/baize/framwork/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) ForCreate() error {
  29. err := e.CheckFieldID(e.DomainCNName())
  30. if err != nil {
  31. return err
  32. }
  33. err = e.checkFieldFather()
  34. if err != nil {
  35. return err
  36. }
  37. return nil
  38. }
  39. func (e *Entity) ForUpdate() error {
  40. err := e.CheckFieldID(e.DomainCNName())
  41. if err != nil {
  42. return err
  43. }
  44. err = e.checkUpdateFields()
  45. if err != nil {
  46. return err
  47. }
  48. return nil
  49. }
  50. func (e *Entity) checkFieldFather() error {
  51. if strutils.IsStringEmpty(e.Father) {
  52. return fserr.New(e.DomainCNName() + "父亲姓名为空")
  53. }
  54. if len(e.Father) > fieldFatherMaxLen {
  55. return fserr.New(e.DomainCNName() + "父亲姓名超出限定长度")
  56. }
  57. return nil
  58. }
  59. func (e *Entity) checkFieldMother() error {
  60. if strutils.IsStringEmpty(e.Mother) {
  61. return fserr.New(e.DomainCNName() + "母亲姓名为空")
  62. }
  63. if len(e.Mother) > fieldMotherMaxLen {
  64. return fserr.New(e.DomainCNName() + "母亲姓名超出限定长度")
  65. }
  66. return nil
  67. }
  68. func (e *Entity) checkUpdateFields() error {
  69. if strutils.AllBlank(e.Father, e.Mother) {
  70. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  71. }
  72. if strutils.IsStringNotEmpty(e.Father) && len(e.Father) > fieldFatherMaxLen {
  73. return fserr.New(e.DomainCNName() + "父亲姓名超出限定长度")
  74. }
  75. if strutils.IsStringNotEmpty(e.Mother) && len(e.Mother) > fieldMotherMaxLen {
  76. return fserr.New(e.DomainCNName() + "母亲姓名超出限定长度")
  77. }
  78. return nil
  79. }