entity.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package student
  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. ColumnName = "name"
  9. )
  10. const (
  11. fieldNameMaxLen = 128
  12. )
  13. type Entity struct {
  14. entity.Base
  15. Name string `sqlmapping:"column:name" sqlresult:"column:name"`
  16. FamilyID string `sqlmapping:"column:family_id" sqlresult:"column:family_id"`
  17. entity.TimeFields
  18. }
  19. func (e *Entity) DomainCNName() string {
  20. return "学生"
  21. }
  22. func (e *Entity) DomainCamelName() string {
  23. return "Student"
  24. }
  25. func (e *Entity) ForCreate() error {
  26. err := e.CheckFieldID(e.DomainCNName())
  27. if err != nil {
  28. return err
  29. }
  30. err = e.checkFieldName()
  31. if err != nil {
  32. return err
  33. }
  34. return nil
  35. }
  36. func (e *Entity) ForUpdate() error {
  37. err := e.CheckFieldID(e.DomainCNName())
  38. if err != nil {
  39. return err
  40. }
  41. err = e.checkUpdateFields()
  42. if err != nil {
  43. return err
  44. }
  45. return nil
  46. }
  47. func (e *Entity) checkFieldName() error {
  48. if strutils.IsStringEmpty(e.Name) {
  49. return fserr.New(e.DomainCNName() + "名称为空")
  50. }
  51. if len(e.Name) > fieldNameMaxLen {
  52. return fserr.New(e.DomainCNName() + "名称超出限定长度")
  53. }
  54. return nil
  55. }
  56. func (e *Entity) checkUpdateFields() error {
  57. if strutils.AllBlank(e.Name) {
  58. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  59. }
  60. if strutils.IsStringNotEmpty(e.Name) && len(e.Name) > fieldNameMaxLen {
  61. return fserr.New(e.DomainCNName() + "名称超出限定长度")
  62. }
  63. return nil
  64. }