field.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package entity
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/tag/check"
  4. "git.sxidc.com/go-tools/utils/strutils"
  5. "github.com/pkg/errors"
  6. "time"
  7. )
  8. const (
  9. FieldID = "ID"
  10. FieldTenantID = "TenantID"
  11. FieldCreateUserID = "CreateUserID"
  12. FieldLastUpdateUserID = "LastUpdateUserID"
  13. FieldCreatedTime = "CreatedTime"
  14. FieldLastUpdatedTime = "LastUpdatedTime"
  15. )
  16. const (
  17. ColumnID = "id"
  18. ColumnTenantID = "tenant_id"
  19. ColumnCreateUserID = "create_user_id"
  20. ColumnLastUpdateUserID = "last_update_user_id"
  21. ColumnCreatedTime = "created_time"
  22. ColumnLastUpdatedTime = "last_updated_time"
  23. )
  24. type TenantIDField struct {
  25. TenantID string `sqlmapping:"column:tenant_id;" sqlresult:"column:tenant_id;" check:"required,len=32"`
  26. }
  27. type UserIDFields struct {
  28. CreateUserID string `sqlmapping:"column:create_user_id;" sqlresult:"column:create_user_id;" check:"required,len=32"`
  29. LastUpdateUserID string `sqlmapping:"column:last_update_user_id;" sqlresult:"column:last_update_user_id;" check:"required,len=32"`
  30. }
  31. type TimeFields struct {
  32. CreatedTime time.Time `sqlmapping:"column:created_time;" sqlresult:"column:created_time;"`
  33. LastUpdatedTime time.Time `sqlmapping:"column:last_updated_time;" sqlresult:"column:last_updated_time;"`
  34. }
  35. func CheckFieldID(entity Entity) error {
  36. return checkIDTypeField(entity, FieldID, "ID")
  37. }
  38. func CheckFieldTenantID(entity Entity) error {
  39. return checkIDTypeField(entity, FieldTenantID, "租户ID")
  40. }
  41. func CheckFieldCreateUserID(entity Entity) error {
  42. return checkIDTypeField(entity, FieldCreateUserID, "创建用户ID")
  43. }
  44. func CheckFieldLastUpdateUserID(entity Entity) error {
  45. return checkIDTypeField(entity, FieldLastUpdateUserID, "最近更新用户ID")
  46. }
  47. func CheckFieldIDResult(checkResult check.Result) error {
  48. return checkIDTypeResult(checkResult, FieldID, FieldID)
  49. }
  50. func CheckFieldTenantIDResult(checkResult check.Result) error {
  51. return checkIDTypeResult(checkResult, FieldTenantID, FieldTenantID)
  52. }
  53. func CheckFieldCreateUserIDResult(checkResult check.Result) error {
  54. return checkIDTypeResult(checkResult, FieldCreateUserID, FieldCreateUserID)
  55. }
  56. func CheckFieldLastUpdateUserIDResult(checkResult check.Result) error {
  57. return checkIDTypeResult(checkResult, FieldLastUpdateUserID, FieldLastUpdateUserID)
  58. }
  59. func checkIDTypeField(entity Entity, fieldName string, fieldCNName string) error {
  60. checkResult := check.Struct(entity, map[string]string{
  61. fieldName: entity.DomainCNName() + fieldCNName,
  62. })
  63. err := checkResult.CheckFields(fieldName)
  64. if err != nil {
  65. return errors.New(entity.DomainCNName() + ": " + err.Error())
  66. }
  67. return nil
  68. }
  69. func checkIDTypeResult(checkResult check.Result, domainCNName string, fieldName string) error {
  70. err := checkResult.CheckFields(fieldName)
  71. if err != nil {
  72. return errors.New(domainCNName + ": " + err.Error())
  73. }
  74. return nil
  75. }
  76. const (
  77. idLen = 32
  78. )
  79. func CheckIDTypeValue(domainCNName string, fieldCNName string, id string) error {
  80. if strutils.IsStringEmpty(id) {
  81. return errors.New(domainCNName + fieldCNName + "为空")
  82. }
  83. if len(id) != idLen {
  84. return errors.New(domainCNName + fieldCNName + "长度不正确")
  85. }
  86. return nil
  87. }