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 }