entity.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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) ForUpdate() error {
  41. err := e.CheckFieldID()
  42. if err != nil {
  43. return err
  44. }
  45. err = e.checkUpdateFields()
  46. if err != nil {
  47. return err
  48. }
  49. return nil
  50. }
  51. func (e *Entity) checkFieldName() error {
  52. if strutils.IsStringEmpty(e.Name) {
  53. return fserr.New(domainCNName + "名称为空")
  54. }
  55. if len(e.Name) > fieldNameMaxLen {
  56. return fserr.New(domainCNName + "名称超出限定长度")
  57. }
  58. return nil
  59. }
  60. func (e *Entity) checkUpdateFields() error {
  61. if strutils.AllBlank(e.Name) {
  62. return fserr.New(domainCNName + "没有传递需要更新的字段")
  63. }
  64. if strutils.IsStringNotEmpty(e.Name) && len(e.Name) > fieldNameMaxLen {
  65. return fserr.New(domainCNName + "名称超出限定长度")
  66. }
  67. return nil
  68. }