12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package model
- import (
- "errors"
- "fmt"
- model2 "gas-cylinder-api/common/model"
- "github.com/google/uuid"
- coreModel "gogs.baozhida.cn/zoie/OAuth-core/model"
- "golang.org/x/crypto/bcrypt"
- "gorm.io/gorm"
- )
- type PROVUser struct {
- UserId string `json:"userId" gorm:"size:48;"` // 用户ID
- Name string `json:"name" gorm:"size:128;"` // 用户姓名
- IdCard string `json:"idCard" gorm:"size:32;"` // 身份证号
- No string `json:"no" gorm:"size:32;"` // 用户工号
- Phone string `json:"phone" gorm:"size:32;"` // 联系电话
- UserType int `json:"userType" gorm:"size:4;"` // 用户类型
- Description string `json:"description" gorm:"size:255;"` // 描述
- HireStatus string `json:"hireStatus" gorm:"size:64;"` // 聘用状态
- HireTime string `json:"hireTime" gorm:"size:10;"` // 聘用日期
- Education string `json:"education" gorm:"size:64;"` // 教育程度
- JobCategory string `json:"jobCategory" gorm:"size:64;"` // 岗位类别
- PersonQual string `json:"personQual" gorm:"size:128;"` // 资质
- Isorders int `json:"isorders" gorm:"size:4;"` // 用户类型
- CmpCode string `json:"cmpCode" gorm:"size:48;"` // 所属机构登记编
- }
- type SysUser struct {
- model2.Model
- coreModel.User
- Dept SysDept `json:"dept" gorm:"-"` // 部门
- Role SysRole `json:"role" gorm:"-"` // 角色
- ProvUser PROVUser `json:"prov_user" gorm:"-"` // 省平台用户信息
- model2.ControlBy
- model2.ModelTime
- }
- func (SysUser) TableName() string {
- return "sys_user"
- }
- func (e *SysUser) Generate() model2.ActiveRecord {
- o := *e
- return &o
- }
- func (e *SysUser) GetId() interface{} {
- return e.Id
- }
- // 加密
- 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 {
- e.Uuid = uuid.NewString()
- return e.Encrypt()
- }
- func (e *SysUser) BeforeUpdate(_ *gorm.DB) error {
- if e.Username == "admin" {
- return errors.New("禁止修改系统用户")
- }
- var err error
- if e.Password != "" {
- err = e.Encrypt()
- }
- return err
- }
- func (e *SysUser) BeforeDelete(_ *gorm.DB) error {
- if e.Username == "admin" {
- return errors.New("禁止删除系统用户")
- }
- return nil
- }
- func GetUserCacheKey(id int) string {
- return fmt.Sprintf("oauth:user:%d", id)
- }
|