entity.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package student
  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. FieldName = "Name"
  11. )
  12. var (
  13. ColumnName = domain.ColumnName(FieldName)
  14. )
  15. var fieldMap = map[string]string{
  16. FieldName: "学生姓名",
  17. }
  18. type Entity struct {
  19. entity.Base
  20. Name string `sqlmapping:"column:name" sqlresult:"column:name" check:"required,lte=128"`
  21. FamilyID string `sqlmapping:"column:family_id" sqlresult:"column:family_id" check:"required,len=32"`
  22. ClassID string `sqlmapping:"column:class_id" sqlresult:"column:class_id" check:"required,len=32"`
  23. IdentityIDs []string `sqlmapping:"-" sqlresult:"-"`
  24. HobbyIDs []string `sqlmapping:"-" sqlresult:"-"`
  25. entity.TimeFields
  26. }
  27. func (e *Entity) DomainCNName() string {
  28. return "学生"
  29. }
  30. func (e *Entity) DomainCamelName() string {
  31. return "Student"
  32. }
  33. func (e *Entity) ForCreate() error {
  34. checkResult := check.Struct(e, fieldMap)
  35. err := entity.CheckFieldIDResult(checkResult)
  36. if err != nil {
  37. return err
  38. }
  39. err = domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  40. if err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. func (e *Entity) ForDelete() error {
  46. checkResult := check.Struct(e, fieldMap)
  47. err := entity.CheckFieldIDResult(checkResult)
  48. if err != nil {
  49. return err
  50. }
  51. return nil
  52. }
  53. func (e *Entity) ForUpdate() error {
  54. checkResult := check.Struct(e, fieldMap)
  55. err := entity.CheckFieldIDResult(checkResult)
  56. if err != nil {
  57. return err
  58. }
  59. err = e.checkUpdateFields(checkResult)
  60. if err != nil {
  61. return err
  62. }
  63. return nil
  64. }
  65. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  66. if strutils.AllBlank(e.Name) {
  67. return errors.New(e.DomainCNName() + "没有传递需要更新的字段")
  68. }
  69. if strutils.IsStringNotEmpty(e.Name) {
  70. err := domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  71. if err != nil {
  72. return err
  73. }
  74. }
  75. return nil
  76. }