From 6b22c2472ff680b4482359998eba79464074bb0a Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Tue, 8 Apr 2025 15:10:52 +0800 Subject: [PATCH] pay_channel --- common/dao/staff_salary.go | 18 ++++++++++++------ server/api/salary.go | 1 + server/service/staff_salary.go | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/common/dao/staff_salary.go b/common/dao/staff_salary.go index 7accec4..24cb59f 100644 --- a/common/dao/staff_salary.go +++ b/common/dao/staff_salary.go @@ -2,6 +2,7 @@ package dao import ( "enterprise/common/model" + "fmt" "github.com/spf13/cast" "gorm.io/gorm" "time" @@ -116,21 +117,26 @@ func (d *StaffSalaryDao) QueryAll(corpId int64, month string, status int) ([]*mo return u, nil } -func (d *StaffSalaryDao) QueryAdmin(page, size int, corpId int64, staffId string, startMonth, endMonth, status string) ([]*model.StaffSalary, int64, error) { +func (d *StaffSalaryDao) QueryAdmin(page, size int, corpId int64, staffId string, startMonth, endMonth, status, payChannel string) ([]*model.StaffSalary, int64, error) { var u []*model.StaffSalary + staffTable := new(StaffUserDao).TableName() tx := GetDB().Table(d.TableName()) - tx.Where("corp_id = ?", corpId) + tx.Where(d.TableName()+".corp_id = ?", corpId) if startMonth != "" { - tx.Where("month >= ?", startMonth) + tx.Where(d.TableName()+".month >= ?", startMonth) } if endMonth != "" { - tx.Where("month <= ?", endMonth) + tx.Where(d.TableName()+".month <= ?", endMonth) } if staffId != "" { - tx.Where("user_id = ?", cast.ToInt64(staffId)) + tx.Where(d.TableName()+".user_id = ?", cast.ToInt64(staffId)) } if status != "" { - tx.Where("status = ?", cast.ToInt(status)) + tx.Where(d.TableName()+".status = ?", cast.ToInt(status)) + } + if payChannel != "" { + tx.Where(staffTable+".config ->> '$.pay_channel' = ?", payChannel) + tx.Joins(fmt.Sprintf("JOIN %s ON %s.user_id = %s.id", staffTable, d.TableName(), staffTable)) } var count int64 diff --git a/server/api/salary.go b/server/api/salary.go index 264ebe7..a86021f 100644 --- a/server/api/salary.go +++ b/server/api/salary.go @@ -55,6 +55,7 @@ type ListSalaryReq struct { StartMonth string `form:"start_month"` EndMonth string `form:"end_month"` StaffId string `form:"staff_id"` + PayChannel string `form:"pay_channel"` Status string `form:"status"` } diff --git a/server/service/staff_salary.go b/server/service/staff_salary.go index bb67ca3..bffc9b2 100644 --- a/server/service/staff_salary.go +++ b/server/service/staff_salary.go @@ -38,7 +38,7 @@ func (s *StaffSalary) List(sess *session.AdminSession, req *api.ListSalaryReq) ( return 0, nil, nil } - salarys, total, err := dao.NewStaffSalaryDao().QueryAdmin(1, -1, sess.GetCorpId(), req.StaffId, req.StartMonth, req.EndMonth, req.Status) + salarys, total, err := dao.NewStaffSalaryDao().QueryAdmin(1, -1, sess.GetCorpId(), req.StaffId, req.StartMonth, req.EndMonth, req.Status, req.PayChannel) session.CheckDBError(err) start := (req.Page - 1) * req.Size end := start + req.Size