entity.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package class
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/domain"
  4. "git.sxidc.com/go-framework/baize/framework/core/domain/entity"
  5. "git.sxidc.com/go-framework/baize/framework/core/tag/check"
  6. "git.sxidc.com/go-tools/utils/strutils"
  7. "git.sxidc.com/service-supports/fserr"
  8. )
  9. const (
  10. FieldName = "Name"
  11. FieldStudentNum = "StudentNum"
  12. )
  13. var (
  14. ColumnName = domain.ColumnName(FieldName)
  15. ColumnStudentNum = domain.ColumnName(FieldStudentNum)
  16. )
  17. var fieldMap = map[string]string{
  18. FieldName: "班名",
  19. FieldStudentNum: "学生数量",
  20. }
  21. type Entity struct {
  22. entity.Base
  23. Name string `sqlmapping:"column:name" sqlresult:"column:name" check:"required,lte=128"`
  24. StudentNum int `sqlmapping:"column:student_num;updateClear;" sqlresult:"column:student_num"`
  25. StudentIDs []string `sqlmapping:"-" sqlresult:"-"`
  26. entity.TimeFields
  27. }
  28. func (e *Entity) DomainCNName() string {
  29. return "班级"
  30. }
  31. func (e *Entity) DomainCamelName() string {
  32. return "Class"
  33. }
  34. func (e *Entity) ForCreate() error {
  35. checkResult := check.Struct(e, fieldMap)
  36. err := entity.CheckFieldIDResult(checkResult)
  37. if err != nil {
  38. return err
  39. }
  40. err = domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  41. if err != nil {
  42. return err
  43. }
  44. return nil
  45. }
  46. func (e *Entity) ForDelete() error {
  47. checkResult := check.Struct(e, fieldMap)
  48. err := entity.CheckFieldIDResult(checkResult)
  49. if err != nil {
  50. return err
  51. }
  52. return nil
  53. }
  54. func (e *Entity) ForUpdate() error {
  55. checkResult := check.Struct(e, fieldMap)
  56. err := entity.CheckFieldIDResult(checkResult)
  57. if err != nil {
  58. return err
  59. }
  60. err = e.checkUpdateFields(checkResult)
  61. if err != nil {
  62. return err
  63. }
  64. return nil
  65. }
  66. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  67. if strutils.AllBlank(e.Name) {
  68. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  69. }
  70. if strutils.IsStringNotEmpty(e.Name) {
  71. err := domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  72. if err != nil {
  73. return err
  74. }
  75. }
  76. return nil
  77. }