entity.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package user
  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. "github.com/pkg/errors"
  8. "time"
  9. )
  10. const (
  11. FieldUserName = "UserName"
  12. FieldPassword = "Password"
  13. FieldLastLoginTime = "LastLoginTime"
  14. )
  15. var (
  16. ColumnUserName = domain.ColumnName(FieldUserName)
  17. ColumnPassword = domain.ColumnName(FieldPassword)
  18. ColumnLastLoginTime = domain.ColumnName(FieldLastLoginTime)
  19. )
  20. var fieldMap = map[string]string{
  21. FieldUserName: "用户名",
  22. FieldPassword: "密码",
  23. FieldLastLoginTime: "最近登录时间",
  24. }
  25. type Entity struct {
  26. entity.Base
  27. UserName string `sqlmapping:"column:user_name;notUpdate" sqlresult:"column:user_name" check:"required,lte=256"`
  28. Password string `sqlmapping:"column:password;aes:'@MKU^AAOP%H*K¥VJ<%G&j*o#$XZSWQ@L'" sqlresult:"column:password;aes:'@MKU^AAOP%H*K¥VJ<%G&j*o#$XZSWQ@L'" check:"required,lte=256"`
  29. LastLoginTime time.Time `sqlmapping:"column:last_login_time;notUpdate" sqlresult:"column:last_login_time" check:"required,timezero"`
  30. RoleIDs []string
  31. entity.TimeFields
  32. }
  33. func (e *Entity) DomainCNName() string {
  34. return "用户"
  35. }
  36. func (e *Entity) DomainCamelName() string {
  37. return "User"
  38. }
  39. func (e *Entity) ForCreate() error {
  40. checkResult := check.Struct(e, fieldMap)
  41. err := entity.CheckFieldIDResult(checkResult)
  42. if err != nil {
  43. return err
  44. }
  45. err = domain.CheckField(checkResult, e.DomainCNName(), FieldUserName)
  46. if err != nil {
  47. return err
  48. }
  49. err = domain.CheckField(checkResult, e.DomainCNName(), FieldPassword)
  50. if err != nil {
  51. return err
  52. }
  53. err = domain.CheckField(checkResult, e.DomainCNName(), FieldLastLoginTime)
  54. if err != nil {
  55. return err
  56. }
  57. return nil
  58. }
  59. func (e *Entity) ForDelete() error {
  60. checkResult := check.Struct(e, fieldMap)
  61. err := entity.CheckFieldIDResult(checkResult)
  62. if err != nil {
  63. return err
  64. }
  65. return nil
  66. }
  67. func (e *Entity) ForUpdate() error {
  68. checkResult := check.Struct(e, fieldMap)
  69. err := entity.CheckFieldIDResult(checkResult)
  70. if err != nil {
  71. return err
  72. }
  73. return nil
  74. }
  75. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  76. if strutils.AllBlank(e.Password) && e.LastLoginTime.IsZero() {
  77. return errors.New(e.DomainCNName() + "没有传递需要更新的字段")
  78. }
  79. if strutils.IsStringNotEmpty(e.Password) {
  80. err := domain.CheckField(checkResult, e.DomainCNName(), FieldPassword)
  81. if err != nil {
  82. return err
  83. }
  84. }
  85. return nil
  86. }