entity.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package family
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/domain"
  4. "git.sxidc.com/go-framework/baize/framework/core/domain/entity"
  5. "git.sxidc.com/go-framework/baize/framework/core/tag/check"
  6. "git.sxidc.com/go-tools/utils/strutils"
  7. "github.com/pkg/errors"
  8. )
  9. const (
  10. FieldFather = "Father"
  11. FieldMother = "Mother"
  12. )
  13. var (
  14. ColumnFather = domain.ColumnName(FieldFather)
  15. ColumnMother = domain.ColumnName(FieldMother)
  16. )
  17. var fieldMap = map[string]string{
  18. FieldFather: "父亲姓名",
  19. FieldMother: "母亲姓名",
  20. }
  21. type Entity struct {
  22. entity.Base
  23. Father string `sqlmapping:"column:father" sqlresult:"column:father" check:"required,lte=128"`
  24. Mother string `sqlmapping:"column:mother" sqlresult:"column:mother" check:"required,lte=128"`
  25. StudentID string `sqlmapping:"column:student_id" sqlresult:"column:student_id" check:"required,eq=32"`
  26. entity.TimeFields
  27. }
  28. func (e *Entity) DomainCNName() string {
  29. return "家庭"
  30. }
  31. func (e *Entity) DomainCamelName() string {
  32. return "Family"
  33. }
  34. func (e *Entity) ForCreate() error {
  35. checkResult := check.Struct(e, fieldMap)
  36. err := entity.CheckFieldIDResult(checkResult)
  37. if err != nil {
  38. return err
  39. }
  40. err = domain.CheckField(checkResult, e.DomainCNName(), FieldFather)
  41. if err != nil {
  42. return err
  43. }
  44. err = domain.CheckField(checkResult, e.DomainCNName(), FieldMother)
  45. if err != nil {
  46. return err
  47. }
  48. return nil
  49. }
  50. func (e *Entity) ForDelete() error {
  51. checkResult := check.Struct(e, fieldMap)
  52. err := entity.CheckFieldIDResult(checkResult)
  53. if err != nil {
  54. return err
  55. }
  56. return nil
  57. }
  58. func (e *Entity) ForUpdate() error {
  59. checkResult := check.Struct(e, fieldMap)
  60. err := entity.CheckFieldIDResult(checkResult)
  61. if err != nil {
  62. return err
  63. }
  64. err = e.checkUpdateFields(checkResult)
  65. if err != nil {
  66. return err
  67. }
  68. return nil
  69. }
  70. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  71. if strutils.AllBlank(e.Father, e.Mother) {
  72. return errors.New(e.DomainCNName() + "没有传递需要更新的字段")
  73. }
  74. if strutils.IsStringNotEmpty(e.Father) {
  75. err := domain.CheckField(checkResult, e.DomainCNName(), FieldFather)
  76. if err != nil {
  77. return err
  78. }
  79. }
  80. if strutils.IsStringNotEmpty(e.Mother) {
  81. err := domain.CheckField(checkResult, e.DomainCNName(), FieldMother)
  82. if err != nil {
  83. return err
  84. }
  85. }
  86. return nil
  87. }