enterprise/common/model/staff_user.go

104 lines
2.4 KiB
Go

package model
import (
"encoding/json"
"github.com/spf13/cast"
"strings"
)
var (
StaffUserStatusOnline = 1 //在职
StaffUserStatusOffline = 2 //离职
StaffUserStatusAttach = 3 //挂靠
StaffUserRoleAdmin = 1 //管理员
StaffUserRoleFinance = 2 //财务
StaffUserRoleHr = 3 //人事
)
type UserSalary struct {
Base string `json:"base"` //基本工资
Target string `json:"target"` //绩效工资
Calculator string `json:"calculator"` //工资计算器
}
type UserPayee struct {
AlipayUid string `json:"alipay_uid"` //支付宝UID
BankName string `json:"bank_name"` //银行名称
BankCard string `json:"bank_card"` //银行账号
}
type UserConfig struct {
SocialDeduct string `json:"social_deduct"` //社保扣除
HouseDeduct string `json:"house_deduct"` //公积金扣除
SalaryCalcutor string `json:"salary_calcutor"` //工资计算器
PerftTarget string `json:"perft_target"` //绩效目标
UserRole string `json:"user_role"` //员工角色
PayChannel string `json:"pay_channel"` //支付渠道
}
type StaffUser struct {
Id int64
CorpId int64
Username string
Realname string
Phone string
Idno string
EntryDate string
OfficialDate string
LeaveDate string
Salary string
Payee string
Config string
CreateTime int64
UpdateTime int64
Status int
}
func (u *StaffUser) GetSalary() *UserSalary {
var salary UserSalary
json.Unmarshal([]byte(u.Salary), &salary)
return &salary
}
func (u *StaffUser) GetConfig() *UserConfig {
var salary UserConfig
json.Unmarshal([]byte(u.Config), &salary)
return &salary
}
func (u *StaffUser) GetPayee() *UserPayee {
var salary UserPayee
json.Unmarshal([]byte(u.Payee), &salary)
return &salary
}
func (u *UserConfig) IsAdmin() bool {
arrs := strings.Split(u.UserRole, ",")
for _, a := range arrs {
if cast.ToInt(a) == StaffUserRoleAdmin {
return true
}
}
return false
}
func (u *UserConfig) IsFinance() bool {
arrs := strings.Split(u.UserRole, ",")
for _, a := range arrs {
if cast.ToInt(a) == StaffUserRoleFinance || cast.ToInt(a) == StaffUserRoleAdmin {
return true
}
}
return false
}
func (u *UserConfig) IsHr() bool {
arrs := strings.Split(u.UserRole, ",")
for _, a := range arrs {
if cast.ToInt(a) == StaffUserRoleHr || cast.ToInt(a) == StaffUserRoleAdmin {
return true
}
}
return false
}