package api import ( "enterprise/common/model" "github.com/smbrave/goutil" "github.com/spf13/cast" ) type Salary struct { Id string `json:"id,omitempty"` Month string `json:"month,omitempty"` Username string `json:"username,omitempty"` Realname string `json:"realname,omitempty"` SalaryBase string `json:"salary_base,omitempty"` SalaryTarget string `json:"salary_target,omitempty"` AttendSalary string `json:"attend_salary,omitempty"` TargetSalary string `json:"target_salary,omitempty"` AwardSalary string `json:"award_salary,omitempty"` OtherSalary string `json:"other_salary,omitempty"` ShouldDay string `json:"should_day,omitempty"` AttendDay string `json:"attend_day,omitempty"` HolidayDay string `json:"holiday_day,omitempty"` SocialDeduct string `json:"social_deduct,omitempty"` HouseDeduct string `json:"house_deduct,omitempty"` PersonalDeduct string `json:"personal_deduct,omitempty"` OtherDeduct string `json:"other_deduct,omitempty"` CreateTime string `json:"create_time,omitempty"` UpdateTime string `json:"update_time,omitempty"` } type CreateSalaryReq struct { Month string `json:"month"` Username string `json:"username"` } type UpdateSalaryReq struct { Id string `json:"month"` OtherSalary string `json:"other_salary"` OtherDeduct string `json:"other_deduct"` } type ListSalaryReq struct { BaseRequest StartMonth string `form:"start_month"` EndMonth string `form:"end_month"` Username string `form:"username"` } func (s *Salary) From(m *model.StaffSalary) { s.Id = cast.ToString(m.Id) s.Username = m.Username s.Month = m.Month s.AttendSalary = goutil.FormatFloat(m.AttendSalary) s.TargetSalary = goutil.FormatFloat(m.TargetSalary) s.AwardSalary = goutil.FormatFloat(m.AwardSalary) s.OtherSalary = goutil.FormatFloat(m.OtherSalary) s.ShouldDay = cast.ToString(m.ShouldDay) s.AttendDay = goutil.FormatFloat(m.AttendDay) s.HolidayDay = goutil.FormatFloat(m.HolidayDay) s.SocialDeduct = goutil.FormatFloat(m.SocialDeduct) s.HouseDeduct = goutil.FormatFloat(m.HouseDeduct) s.PersonalDeduct = goutil.FormatFloat(m.PersonalDeduct) s.OtherDeduct = goutil.FormatFloat(m.OtherDeduct) s.CreateTime = goutil.TimeToDateTime(m.CreateTime) s.UpdateTime = goutil.TimeToDateTime(m.UpdateTime) } func (s *Salary) Add(o *Salary) { s.SalaryTarget = goutil.FormatFloat(cast.ToFloat64(s.SalaryTarget) + cast.ToFloat64(o.SalaryTarget)) s.SalaryBase = goutil.FormatFloat(cast.ToFloat64(s.SalaryBase) + cast.ToFloat64(o.SalaryBase)) s.AttendSalary = goutil.FormatFloat(cast.ToFloat64(s.AttendSalary) + cast.ToFloat64(o.AttendSalary)) s.TargetSalary = goutil.FormatFloat(cast.ToFloat64(s.TargetSalary) + cast.ToFloat64(o.TargetSalary)) s.AwardSalary = goutil.FormatFloat(cast.ToFloat64(s.AwardSalary) + cast.ToFloat64(o.AwardSalary)) s.OtherSalary = goutil.FormatFloat(cast.ToFloat64(s.OtherSalary) + cast.ToFloat64(o.OtherSalary)) s.ShouldDay = cast.ToString(cast.ToInt(s.ShouldDay) + cast.ToInt(o.ShouldDay)) s.AttendDay = goutil.FormatFloat(cast.ToFloat64(s.AttendDay) + cast.ToFloat64(o.AttendDay)) s.HolidayDay = goutil.FormatFloat(cast.ToFloat64(s.HolidayDay) + cast.ToFloat64(o.HolidayDay)) s.SocialDeduct = goutil.FormatFloat(cast.ToFloat64(s.SocialDeduct) + cast.ToFloat64(o.SocialDeduct)) s.HouseDeduct = goutil.FormatFloat(cast.ToFloat64(s.HouseDeduct) + cast.ToFloat64(o.HouseDeduct)) s.PersonalDeduct = goutil.FormatFloat(cast.ToFloat64(s.PersonalDeduct) + cast.ToFloat64(o.PersonalDeduct)) s.OtherDeduct = goutil.FormatFloat(cast.ToFloat64(s.OtherDeduct) + cast.ToFloat64(o.OtherDeduct)) }