project_account.go 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*
  2. * @description: 视图层 用户
  3. * @Author: CP
  4. * @Date: 2020-09-08 16:27:54
  5. * @FilePath: \construction_management\web\viewmodels\project_account.go
  6. */
  7. package viewmodels
  8. import (
  9. "regexp"
  10. validation "github.com/go-ozzo/ozzo-validation/v3"
  11. )
  12. type ProjectAccount struct {
  13. Id string `form:"id" json:"id"`
  14. ProjectId string `form:"projectId" json:"projectId"`
  15. BidsectionId string `form:"bidsectionId" json:"bidsectionId"`
  16. Account string `form:"account" json:"account"`
  17. Password string `form:"password" json:"password"`
  18. Name string `form:"name" json:"name"`
  19. Company string `form:"company" json:"company"`
  20. Position string `form:"position" json:"position"`
  21. Role string `form:"role" json:"role"`
  22. Mobile string `form:"mobile" json:"mobile"`
  23. Telephone string `form:"telephone" json:"telephone"`
  24. IsAdmin int `form:"isAdmin" json:"isAdmin"`
  25. BoolAdmin bool `form:"boolAdmin" json:"boolAdmin"`
  26. AccountGroup int `form:"accountGroup" json:"accountGroup"`
  27. Enable int `form:"enable" json:"enable"`
  28. ContractPermission string `form:"contractPermission" json:"contractPermission"`
  29. QualityPermission string `form:"qualityPermission" json:"qualityPermission"`
  30. SafePermission string `form:"safePermission" json:"safePermission"`
  31. JlAuth int `form:"jlAuth" json:"jlAuth"`
  32. }
  33. type AccountPassword struct {
  34. Password string `form:"password" json:"password"`
  35. NewPassword string `form:"newPassword" json:"newPassword"`
  36. ConfirmPassword string `form:"confirmPassword" json:"confirmPassword"`
  37. }
  38. func (l ProjectAccount) Validate() error {
  39. return validation.ValidateStruct(&l,
  40. validation.Field(&l.Account, validation.Required.Error("账号不能为空"), validation.Match(regexp.MustCompile("^[A-Za-z0-9]+$")).Error("只支持英文数字组合")),
  41. // validation.Match(regexp.MustCompile("^[a-zA-Z~!@#$%^&*]\\w{5,17}$")).Error("密码支持英文数字及符号,6~18之间")
  42. validation.Field(&l.Password, validation.Required.Error("密码不能为空"), validation.Length(6, 18).Error("密码位数6~18之间")),
  43. validation.Field(&l.AccountGroup, validation.Required.Error("账号组不能为空"), validation.In(1, 2, 3, 4).Error("未找到相关账号组")),
  44. validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
  45. validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
  46. validation.Field(&l.Position, validation.Required.Error("职位不能为空")),
  47. validation.Field(&l.Mobile, validation.Required.Error("手机不能为空"), validation.Match(regexp.MustCompile("^([1][3,4,5,6,7,8,9])\\d{9}$")).Error("手机号码错误")),
  48. validation.Field(&l.AccountGroup, validation.Required.Error("账号组不能为空")),
  49. )
  50. }
  51. func (l ProjectAccount) ValidateAddBs() error {
  52. return validation.ValidateStruct(&l,
  53. validation.Field(&l.ProjectId, validation.Required.Error("项目ID不能为空")),
  54. validation.Field(&l.Account, validation.Required.Error("账号不能为空"), validation.Match(regexp.MustCompile("^[A-Za-z0-9]+$")).Error("只支持英文数字组合")),
  55. validation.Field(&l.Password, validation.Required.Error("密码不能为空"), validation.Length(6, 18).Error("密码位数6~18之间")),
  56. validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
  57. validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
  58. )
  59. }
  60. func (l ProjectAccount) ValidateSaveBs() error {
  61. return validation.ValidateStruct(&l,
  62. validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
  63. validation.Field(&l.ProjectId, validation.Required.Error("项目ID不能为空")),
  64. validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
  65. validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
  66. )
  67. }
  68. func (l ProjectAccount) ValidateEnableBs() error {
  69. return validation.ValidateStruct(&l,
  70. validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
  71. validation.Field(&l.ProjectId, validation.Required.Error("项目ID不能为空")),
  72. validation.Field(&l.Enable, validation.In(0, 1).Error("启用或停用值不正确")),
  73. )
  74. }
  75. func (l ProjectAccount) ValidatePasswordBs() error {
  76. return validation.ValidateStruct(&l,
  77. validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
  78. validation.Field(&l.ProjectId, validation.Required.Error("项目ID不能为空")),
  79. validation.Field(&l.Password, validation.Required.Error("密码不能为空"), validation.Length(6, 18).Error("密码位数6~18之间")),
  80. )
  81. }
  82. func (l ProjectAccount) ValidateUpdate() error {
  83. return validation.ValidateStruct(&l,
  84. validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
  85. validation.Field(&l.AccountGroup, validation.Required.Error("账号组不能为空"), validation.In(1, 2, 3, 4).Error("未找到相关账号组")),
  86. validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
  87. validation.Field(&l.Position, validation.Required.Error("职位不能为空")),
  88. //validation.Field(&l.Mobile, validation.Required.Error("手机不能为空"), validation.Match(regexp.MustCompile("^([1][3,4,5,6,7,8,9])\\d{9}$")).Error("只支持英文数字组合")),
  89. validation.Field(&l.AccountGroup, validation.Required.Error("账号组不能为空")),
  90. )
  91. }
  92. func (l ProjectAccount) ValidatePassword() error {
  93. return validation.ValidateStruct(&l,
  94. validation.Field(&l.Account, validation.Required.Error("账号不能为空"), validation.Match(regexp.MustCompile("^[A-Za-z0-9]+$")).Error("只支持英文数字组合")),
  95. //"^[a-zA-Z0-9]\\w{5,17}$"
  96. // , validation.Match(regexp.MustCompile(`/^(?=.*\d)(?=.*[a-zA-Z])[\da-zA-Z~!@#$%^&*]{6,18}$/`)).Error("密码支持英文数字及符号,6~18之间")
  97. validation.Field(&l.Password, validation.Required.Error("密码不能为空")),
  98. )
  99. }
  100. func (l ProjectAccount) ValidateAccount() error {
  101. return validation.ValidateStruct(&l,
  102. validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
  103. validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
  104. validation.Field(&l.Position, validation.Required.Error("职位不能为空")),
  105. )
  106. }
  107. func (l ProjectAccount) ValidateProjectId() error {
  108. return validation.ValidateStruct(&l,
  109. validation.Field(&l.ProjectId, validation.Required.Error("项目ID不能为空")),
  110. )
  111. }
  112. func (l AccountPassword) ValidateChangePassword() error {
  113. return validation.ValidateStruct(&l,
  114. validation.Field(&l.Password, validation.Required.Error("密码不能为空")),
  115. validation.Field(&l.NewPassword, validation.Required.Error("新密码不能为空")),
  116. validation.Field(&l.ConfirmPassword, validation.Required.Error("确认新密码不能为空")),
  117. )
  118. }
  119. //MoveId string `form:"moveId"`
  120. // LastLogin int `xorm:"comment('最后登录时间') INT(11)"`
  121. // EnterpriseId int `xorm:"comment('企业id') INT(11)"`
  122. // CreateTime int `xorm:"comment('创建时间') INT(11)"`
  123. // AuthMobile string `xorm:"comment('认证手机') VARCHAR(32)"`
  124. // Permission string `xorm:"comment('权限') TEXT"`
  125. // Cooperation int `xorm:"comment('协作') TINYINT(4)"`
  126. // LastNotice time.Time `xorm:"comment('待办事项,通知') DATETIME"`
  127. // SignPath string `xorm:"comment('电子签名图片地址') VARCHAR(512)"`
  128. // SessionToken string `xorm:"comment('token信息验证') VARCHAR(128)"`
  129. // SmsType string `xorm:"comment('短信通知类型') TEXT"`
  130. // WxType string `xorm:"comment('微信通知类型') TEXT"`
  131. // Bind int `xorm:"comment('是否已绑定定制项目') TINYINT(1)"`
  132. // WxOpenid string `xorm:"comment('微信绑定openid') VARCHAR(64)"`
  133. // WxName string `xorm:"comment('微信昵称') VARCHAR(255)"`