From e1987917ee7bcd2ba26f561168a485cab7f20545 Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Wed, 12 Mar 2025 21:42:27 +0800 Subject: [PATCH] calculatorName --- common/dao/checkin.go | 1 + server/api/staff.go | 7 +++--- server/controller/staff.go | 39 ++++++------------------------ server/service/staff_user.go | 46 ++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 35 deletions(-) diff --git a/common/dao/checkin.go b/common/dao/checkin.go index f294943..48c073d 100644 --- a/common/dao/checkin.go +++ b/common/dao/checkin.go @@ -123,6 +123,7 @@ func (d *CheckinDao) QueryAdmin(page, size int, corpId int64, username, startDay if username != "" { tx = tx.Where("username = ?", username) } + tx.Order("day DESC") var count int64 tx.Count(&count) diff --git a/server/api/staff.go b/server/api/staff.go index 8edd667..a7df18a 100644 --- a/server/api/staff.go +++ b/server/api/staff.go @@ -23,9 +23,10 @@ type StaffUser struct { Config string `json:"config"` Status string `json:"status"` - SalaryBase string `json:"salary_base"` - SalaryTarget string `json:"salary_target"` - SalaryCalculator string `json:"salary_calculator"` + SalaryBase string `json:"salary_base"` + SalaryTarget string `json:"salary_target"` + SalaryCalculator string `json:"salary_calculator"` + SalaryCalculatorName string `json:"salary_calculator_name"` PayeeBankName string `json:"payee_bank_name"` PayeeBankCard string `json:"payee_bank_card"` diff --git a/server/controller/staff.go b/server/controller/staff.go index c6baf13..1f0f65d 100644 --- a/server/controller/staff.go +++ b/server/controller/staff.go @@ -8,7 +8,6 @@ import ( "enterprise/server/session" "enterprise/worker" "github.com/gin-gonic/gin" - "github.com/smbrave/goutil" "github.com/spf13/cast" "net/http" "strings" @@ -26,7 +25,7 @@ func (s *Staff) Login(ctx *gin.Context) { var req api.StaffLoginReq session.CheckParamError(ctx.ShouldBindJSON(&req)) sess := ctx.Keys[session.ContextSession].(*session.AdminSession) - data := new(service.StaffUser).Login(sess, &req) + data := service.NewStaffUser().Login(sess, &req) ctx.JSON(http.StatusOK, session.NewRsp(data)) } @@ -42,7 +41,6 @@ func (s *Staff) Suggest(ctx *gin.Context) { mp["realnae"] = cast.ToString(st.Realname) items = append(items, mp) } - ctx.JSON(http.StatusOK, session.NewRsp(items)) } @@ -58,6 +56,10 @@ func (s *Staff) List(ctx *gin.Context) { for _, st := range staffs { i := new(api.StaffUser) i.From(st) + calculator, _ := dao.NewSalaryCalculatorDao().Get(cast.ToInt64(i.SalaryCalculator)) + if calculator != nil { + i.SalaryCalculatorName = calculator.Name + } items = append(items, i) } @@ -85,36 +87,9 @@ func (s *Staff) Create(ctx *gin.Context) { func (s *Staff) Update(ctx *gin.Context) { var req api.StaffUpdateReq + sess := ctx.Keys[session.ContextSession].(*session.AdminSession) session.CheckParamError(ctx.ShouldBindJSON(&req)) - - staffUser, err := dao.NewStaffUserDao().Get(cast.ToInt64(req.Id)) - session.CheckDBError(err) - session.CheckNilError(staffUser, "用户不存在") - - staffUser.Username = goutil.If(req.Username != "", req.Username, staffUser.Username) - staffUser.Realname = goutil.If(req.Realname != "", req.Realname, staffUser.Realname) - staffUser.Phone = goutil.If(req.Phone != "", req.Phone, staffUser.Phone) - staffUser.Idno = goutil.If(req.Idno != "", req.Idno, staffUser.Idno) - staffUser.EntryDate = goutil.If(req.EntryDate != "", req.EntryDate, staffUser.EntryDate) - staffUser.OfficialDate = goutil.If(req.OfficialDate != "", req.OfficialDate, staffUser.OfficialDate) - staffUser.LeaveDate = goutil.If(req.LeaveDate != "", req.LeaveDate, staffUser.LeaveDate) - staffUser.Config = goutil.If(req.Config != "", req.Config, staffUser.Config) - staffUser.Status = goutil.If(req.Status != "", cast.ToInt(req.Status), staffUser.Status) - - staffSalary := staffUser.GetSalary() - staffSalary.Base = goutil.If(req.SalaryBase != "", req.SalaryBase, staffSalary.Base) - staffSalary.Target = goutil.If(req.SalaryTarget != "", req.SalaryTarget, staffSalary.Target) - staffSalary.Calculator = goutil.If(req.SalaryCalculator != "", req.SalaryCalculator, staffSalary.Calculator) - staffUser.Salary = goutil.EncodeJSON(staffSalary) - - staffPayee := staffUser.GetPayee() - staffPayee.BankName = goutil.If(req.PayeeBankName != "", req.PayeeBankName, staffPayee.BankName) - staffPayee.BankCard = goutil.If(req.PayeeBankCard != "", req.PayeeBankCard, staffPayee.BankCard) - staffPayee.AlipayUid = goutil.If(req.PayeeAlipayUid != "", req.PayeeAlipayUid, staffPayee.AlipayUid) - staffUser.Payee = goutil.EncodeJSON(staffPayee) - - err = dao.NewStaffUserDao().Update(staffUser) - session.CheckDBError(err) + service.NewStaffUser().Update(sess, &req) ctx.JSON(http.StatusOK, session.NewRspOk()) } diff --git a/server/service/staff_user.go b/server/service/staff_user.go index b7cb733..a71894e 100644 --- a/server/service/staff_user.go +++ b/server/service/staff_user.go @@ -8,12 +8,17 @@ import ( "github.com/google/uuid" log "github.com/sirupsen/logrus" "github.com/smbrave/goutil" + "github.com/spf13/cast" "time" ) type StaffUser struct { } +func NewStaffUser() *StaffUser { + return &StaffUser{} +} + func (s *StaffUser) Login(sess *session.AdminSession, req *api.StaffLoginReq) interface{} { host := sess.GetHeader().Host log.Infof("login host[%s] req[%s]", host, goutil.EncodeJSON(req)) @@ -42,3 +47,44 @@ func (s *StaffUser) Login(sess *session.AdminSession, req *api.StaffLoginReq) in data["realname"] = user.Realname return data } + +func (s *StaffUser) Update(sess *session.AdminSession, req *api.StaffUpdateReq) { + + staffUser, err := dao.NewStaffUserDao().Get(cast.ToInt64(req.Id)) + session.CheckDBError(err) + session.CheckNilError(staffUser, "用户不存在") + + staffUser.Username = goutil.If(req.Username != "", req.Username, staffUser.Username) + staffUser.Realname = goutil.If(req.Realname != "", req.Realname, staffUser.Realname) + staffUser.Phone = goutil.If(req.Phone != "", req.Phone, staffUser.Phone) + staffUser.Idno = goutil.If(req.Idno != "", req.Idno, staffUser.Idno) + staffUser.EntryDate = goutil.If(req.EntryDate != "", req.EntryDate, staffUser.EntryDate) + staffUser.OfficialDate = goutil.If(req.OfficialDate != "", req.OfficialDate, staffUser.OfficialDate) + staffUser.Config = goutil.If(req.Config != "", req.Config, staffUser.Config) + + staffSalary := staffUser.GetSalary() + staffSalary.Base = goutil.If(req.SalaryBase != "", req.SalaryBase, staffSalary.Base) + staffSalary.Target = goutil.If(req.SalaryTarget != "", req.SalaryTarget, staffSalary.Target) + staffSalary.Calculator = goutil.If(req.SalaryCalculator != "", req.SalaryCalculator, staffSalary.Calculator) + staffUser.Salary = goutil.EncodeJSON(staffSalary) + + staffPayee := staffUser.GetPayee() + staffPayee.BankName = goutil.If(req.PayeeBankName != "", req.PayeeBankName, staffPayee.BankName) + staffPayee.BankCard = goutil.If(req.PayeeBankCard != "", req.PayeeBankCard, staffPayee.BankCard) + staffPayee.AlipayUid = goutil.If(req.PayeeAlipayUid != "", req.PayeeAlipayUid, staffPayee.AlipayUid) + staffUser.Payee = goutil.EncodeJSON(staffPayee) + + //状态处理 + if req.Status != "" { + status := cast.ToInt(req.Status) + staffUser.Status = goutil.If(req.Status != "", cast.ToInt(req.Status), staffUser.Status) + if status == model.StaffUserStatusOffline { + staffUser.LeaveDate = goutil.If(req.LeaveDate != "", req.LeaveDate, staffUser.LeaveDate) + } else { + staffUser.LeaveDate = "" + } + } + + err = dao.NewStaffUserDao().Update(staffUser) + session.CheckDBError(err) +}