entity.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package class
  2. import (
  3. "git.sxidc.com/go-framework/baize/domain"
  4. "git.sxidc.com/go-tools/utils/strutils"
  5. "git.sxidc.com/service-supports/fserr"
  6. )
  7. const (
  8. TableName = "test.classes"
  9. )
  10. const (
  11. ColumnName = "name"
  12. ColumnStudentNum = "student_num"
  13. )
  14. const (
  15. fieldNameMaxLen = 128
  16. )
  17. type Entity struct {
  18. domain.BaseEntity
  19. Name string `sqlmapping:"column:name" sqlresult:"column:name"`
  20. StudentNum int `sqlmapping:"column:student_num;updateClear;" sqlresult:"column:student_num"`
  21. domain.TimeFields
  22. }
  23. func (e *Entity) DomainCNName() string {
  24. return "班级"
  25. }
  26. func (e *Entity) ForCreate() error {
  27. err := e.CheckFieldID()
  28. if err != nil {
  29. return err
  30. }
  31. err = e.checkFieldName()
  32. if err != nil {
  33. return err
  34. }
  35. return nil
  36. }
  37. func (e *Entity) ForUpdate() error {
  38. err := e.CheckFieldID()
  39. if err != nil {
  40. return err
  41. }
  42. err = e.checkUpdateFields()
  43. if err != nil {
  44. return err
  45. }
  46. return nil
  47. }
  48. func (e *Entity) checkFieldName() error {
  49. if strutils.IsStringEmpty(e.Name) {
  50. return fserr.New(e.DomainCNName() + "名称为空")
  51. }
  52. if len(e.Name) > fieldNameMaxLen {
  53. return fserr.New(e.DomainCNName() + "名称超出限定长度")
  54. }
  55. return nil
  56. }
  57. func (e *Entity) checkUpdateFields() error {
  58. if strutils.AllBlank(e.Name) {
  59. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  60. }
  61. if strutils.IsStringNotEmpty(e.Name) && len(e.Name) > fieldNameMaxLen {
  62. return fserr.New(e.DomainCNName() + "名称超出限定长度")
  63. }
  64. return nil
  65. }