field.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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,len32"`
  26. }
  27. type UserIDFields struct {
  28. CreateUserID string `sqlmapping:"column:create_user_id;" sqlresult:"column:create_user_id;" check:"required,len32"`
  29. LastUpdateUserID string `sqlmapping:"column:last_update_user_id;" sqlresult:"column:last_update_user_id;" check:"required,len32"`
  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 checkIDTypeField(entity Entity, fieldName string, fieldCNName string) error {
  48. checkResult := check.Struct(entity, map[string]string{
  49. fieldName: entity.DomainCNName() + fieldCNName,
  50. })
  51. err := checkResult.CheckFields(fieldName)
  52. if err != nil {
  53. return errors.New(entity.DomainCNName() + ": " + err.Error())
  54. }
  55. return nil
  56. }
  57. const (
  58. idLen = 32
  59. )
  60. func CheckIDTypeValue(domainCNName string, fieldCNName string, id string) error {
  61. if strutils.IsStringEmpty(id) {
  62. return errors.New(domainCNName + fieldCNName + "为空")
  63. }
  64. if len(id) != idLen {
  65. return errors.New(domainCNName + fieldCNName + "长度不正确")
  66. }
  67. return nil
  68. }