entity.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package identity
  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. )
  12. var (
  13. ColumnName = domain.ColumnName(FieldName)
  14. )
  15. var fieldMap = map[string]string{
  16. FieldName: "身份名称",
  17. }
  18. type Entity struct {
  19. entity.Base
  20. Name string `sqlmapping:"column:name" sqlresult:"column:name" check:"required,lte=128"`
  21. StudentIDs []string `sqlmapping:"-" sqlresult:"-"`
  22. entity.TimeFields
  23. }
  24. func (e *Entity) DomainCNName() string {
  25. return "身份"
  26. }
  27. func (e *Entity) DomainCamelName() string {
  28. return "Identity"
  29. }
  30. func (e *Entity) ForCreate() error {
  31. checkResult := check.Struct(e, fieldMap)
  32. err := entity.CheckFieldIDResult(checkResult)
  33. if err != nil {
  34. return err
  35. }
  36. err = domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  37. if err != nil {
  38. return err
  39. }
  40. return nil
  41. }
  42. func (e *Entity) ForDelete() error {
  43. checkResult := check.Struct(e, fieldMap)
  44. err := entity.CheckFieldIDResult(checkResult)
  45. if err != nil {
  46. return err
  47. }
  48. return nil
  49. }
  50. func (e *Entity) ForUpdate() error {
  51. checkResult := check.Struct(e, fieldMap)
  52. err := entity.CheckFieldIDResult(checkResult)
  53. if err != nil {
  54. return err
  55. }
  56. err = e.checkUpdateFields(checkResult)
  57. if err != nil {
  58. return err
  59. }
  60. return nil
  61. }
  62. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  63. if strutils.AllBlank(e.Name) {
  64. return fserr.New(e.DomainCNName() + "没有传递需要更新的字段")
  65. }
  66. if strutils.IsStringNotEmpty(e.Name) {
  67. err := domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  68. if err != nil {
  69. return err
  70. }
  71. }
  72. return nil
  73. }