entity.go 1.6 KB

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