diff --git a/server/controller/salary.go b/server/controller/salary.go index ee6a96c..e1e4487 100644 --- a/server/controller/salary.go +++ b/server/controller/salary.go @@ -12,6 +12,8 @@ import ( "github.com/smbrave/goutil" "github.com/spf13/cast" "net/http" + "strings" + "time" ) type Salary struct { @@ -60,6 +62,29 @@ func (s *Salary) Upload(ctx *gin.Context) { ctx.JSON(http.StatusOK, session.NewRsp(rsp)) } +func (s *Salary) Download(ctx *gin.Context) { + sess := ctx.Keys[session.ContextSession].(*session.AdminSession) + + tp := ctx.Query("type") + + corp, err := dao.NewCorpDao().Get(sess.GetCorpId()) + session.CheckDBError(err) + session.CheckNilError(corp, "企业不存在") + month := time.Now().AddDate(0, -1, 0).Format("200601") + + month = strings.ReplaceAll(month, "-", "") + if tp == "" { + tp = service.StaffSalaryTypeBank + } + serv := new(service.StaffSalary) + + if tp == service.StaffSalaryTypeAgent { + serv.Agent(corp.Id, month, "xls", ctx) + } else if tp == service.StaffSalaryTypeBank { + serv.Bank(corp.Id, month, "xls", ctx) + } +} + func (s *Salary) Pay(ctx *gin.Context) { sess := ctx.Keys[session.ContextSession].(*session.AdminSession) if !sess.GetAdmin().GetConfig().IsAdmin() { diff --git a/server/controller/staff.go b/server/controller/staff.go index dc0dbc6..ef6f15b 100644 --- a/server/controller/staff.go +++ b/server/controller/staff.go @@ -111,6 +111,7 @@ func (s *Staff) Salary(ctx *gin.Context) { sess := ctx.Keys[session.ContextSession].(*session.AdminSession) month := ctx.Query("month") tp := ctx.Query("type") + xls := ctx.Query("xls") corp, err := dao.NewCorpDao().GetByHost(sess.GetHeader().Host) session.CheckDBError(err) @@ -126,9 +127,9 @@ func (s *Staff) Salary(ctx *gin.Context) { serv := new(service.StaffSalary) if tp == service.StaffSalaryTypeAgent { - serv.Agent(corp.Id, month, ctx) + serv.Agent(corp.Id, month, xls, ctx) } else if tp == service.StaffSalaryTypeBank { - serv.Bank(corp.Id, month, ctx) + serv.Bank(corp.Id, month, xls, ctx) } else { serv.Summary(corp.Id, month, ctx) } diff --git a/server/server.go b/server/server.go index f7686b3..f17651e 100644 --- a/server/server.go +++ b/server/server.go @@ -38,6 +38,7 @@ func initRoutge(engine *gin.Engine) { apiGroup.POST("/salary/pay", controller.NewSalary().Pay) apiGroup.PUT("/staff/salary", controller.NewSalary().Update) apiGroup.POST("/staff/salary/upload", controller.NewSalary().Upload) + apiGroup.GET("/staff/salary/download", controller.NewSalary().Download) apiGroup.DELETE("/staff/salary", controller.NewSalary().Delete) noTokenGroup.GET("/staff/salary/bill", controller.NewSalary().Bill) diff --git a/server/service/staff_salary.go b/server/service/staff_salary.go index 87768a4..fe8ddda 100644 --- a/server/service/staff_salary.go +++ b/server/service/staff_salary.go @@ -199,8 +199,7 @@ func (s *StaffSalary) Pay(sess *session.AdminSession, req *api.PaySalaryReq) { } } -func (s *StaffSalary) Agent(cid int64, month string, ctx *gin.Context) { - xls := ctx.Query("xls") +func (s *StaffSalary) Agent(cid int64, month, xls string, ctx *gin.Context) { staffSalarys, err := dao.NewStaffSalaryDao().QueryAll(cid, month, model.StaffSalaryStatusWait) if err != nil { panic(config.ErrDb.New().Append(err)) @@ -265,8 +264,8 @@ func (s *StaffSalary) Agent(cid int64, month string, ctx *gin.Context) { } } -func (s *StaffSalary) Bank(cid int64, month string, ctx *gin.Context) { - xls := ctx.Query("xls") +func (s *StaffSalary) Bank(cid int64, month, xls string, ctx *gin.Context) { + staffSalarys, err := dao.NewStaffSalaryDao().QueryAll(cid, month, model.StaffSalaryStatusWait) if err != nil { panic(config.ErrDb.New().Append(err))