entity.go 1.7 KB

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