entity.go 2.4 KB

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