package model import ( "encoding/json" butil "enterprise/base/util" "github.com/spf13/cast" "strings" ) var ( StaffSalaryStatusNormal = 1 StaffSalaryStatusDisable = 2 ) type StaffSalary struct { Id int64 Username string Master string Month string BaseSalary float64 PerfSalary float64 AttendSalary float64 RealSalary float64 AwardSalary float64 SocialInsurence float64 HouseFund float64 PersonalTax float64 TotalDay float64 RealDay float64 Holiday float64 CreateTime int64 UpdateTime int64 Extra string } func (s *StaffSalary) GetRealSalary() float64 { if s.Master == "" { return butil.FloatCut(s.AttendSalary + s.PerfSalary + s.AwardSalary - s.SocialInsurence - s.PersonalTax - s.HouseFund) } return butil.FloatCut(s.BaseSalary) } func (s *StaffSalary) GetShouldSalary() float64 { if s.Master == "" { return butil.FloatCut(s.AttendSalary + s.PerfSalary + s.AwardSalary) } return butil.FloatCut(s.BaseSalary) } type StaffSalarySort []*StaffSalary func (s StaffSalarySort) Len() int { return len(s) } func (s StaffSalarySort) Less(i, j int) bool { var iExtra map[string]string var jExtra map[string]string json.Unmarshal([]byte(s[i].Extra), &iExtra) json.Unmarshal([]byte(s[j].Extra), &jExtra) return cast.ToInt64(strings.ReplaceAll(iExtra["entryDate"], "-", "")) < cast.ToInt64(strings.ReplaceAll(jExtra["entryDate"], "-", "")) } func (s StaffSalarySort) Swap(i, j int) { s[i], s[j] = s[j], s[i] }