49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package models
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"golang.org/x/crypto/bcrypt"
							 | 
						||
| 
								 | 
							
									"gorm.io/gorm"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type SysUser struct {
							 | 
						||
| 
								 | 
							
									UserId   int    `gorm:"primaryKey;autoIncrement;comment:编码"  json:"userId"`
							 | 
						||
| 
								 | 
							
									Username string `json:"username" gorm:"type:varchar(64);comment:用户名"`
							 | 
						||
| 
								 | 
							
									Password string `json:"-" gorm:"type:varchar(128);comment:密码"`
							 | 
						||
| 
								 | 
							
									NickName string `json:"nickName" gorm:"type:varchar(128);comment:昵称"`
							 | 
						||
| 
								 | 
							
									Phone    string `json:"phone" gorm:"type:varchar(11);comment:手机号"`
							 | 
						||
| 
								 | 
							
									RoleId   int    `json:"roleId" gorm:"type:bigint;comment:角色ID"`
							 | 
						||
| 
								 | 
							
									Salt     string `json:"-" gorm:"type:varchar(255);comment:加盐"`
							 | 
						||
| 
								 | 
							
									Avatar   string `json:"avatar" gorm:"type:varchar(255);comment:头像"`
							 | 
						||
| 
								 | 
							
									Sex      string `json:"sex" gorm:"type:varchar(255);comment:性别"`
							 | 
						||
| 
								 | 
							
									Email    string `json:"email" gorm:"type:varchar(128);comment:邮箱"`
							 | 
						||
| 
								 | 
							
									DeptId   int    `json:"deptId" gorm:"type:bigint;comment:部门"`
							 | 
						||
| 
								 | 
							
									PostId   int    `json:"postId" gorm:"type:bigint;comment:岗位"`
							 | 
						||
| 
								 | 
							
									Remark   string `json:"remark" gorm:"type:varchar(255);comment:备注"`
							 | 
						||
| 
								 | 
							
									Status   string `json:"status" gorm:"type:varchar(4);comment:状态"`
							 | 
						||
| 
								 | 
							
									ControlBy
							 | 
						||
| 
								 | 
							
									ModelTime
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func (*SysUser) TableName() string {
							 | 
						||
| 
								 | 
							
									return "sys_user"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Encrypt 加密
							 | 
						||
| 
								 | 
							
								func (e *SysUser) Encrypt() (err error) {
							 | 
						||
| 
								 | 
							
									if e.Password == "" {
							 | 
						||
| 
								 | 
							
										return
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var hash []byte
							 | 
						||
| 
								 | 
							
									if hash, err = bcrypt.GenerateFromPassword([]byte(e.Password), bcrypt.DefaultCost); err != nil {
							 | 
						||
| 
								 | 
							
										return
							 | 
						||
| 
								 | 
							
									} else {
							 | 
						||
| 
								 | 
							
										e.Password = string(hash)
							 | 
						||
| 
								 | 
							
										return
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func (e *SysUser) BeforeCreate(_ *gorm.DB) error {
							 | 
						||
| 
								 | 
							
									return e.Encrypt()
							 | 
						||
| 
								 | 
							
								}
							 |