staff list

This commit is contained in:
jiangyong27 2025-03-11 17:06:52 +08:00
parent 7a204908ab
commit 9a84b0172f
5 changed files with 91 additions and 16 deletions

View File

@ -82,21 +82,35 @@ func (d *StaffUserDao) GetByPhone(corpId int64, phone string) (*model.StaffUser,
return &u, nil return &u, nil
} }
func (d *StaffUserDao) Query(corpId int64, status int) ([]*model.StaffUser, error) { func (d *StaffUserDao) Query(page, size int, corpId int64, status int, username, realname, phone, idno string) ([]*model.StaffUser, int64, error) {
var u []*model.StaffUser var u []*model.StaffUser
tx := GetDB().Table(d.TableName()) tx := GetDB().Table(d.TableName())
tx.Where("corp_id = ?", corpId) tx.Where("corp_id = ?", corpId)
if status != 0 { if status != 0 {
tx = tx.Where("status = ?", status) tx = tx.Where("status = ?", status)
} }
if username != "" {
tx.Where("username = ?", username)
}
if realname != "" {
tx.Where("realname = ?", realname)
}
if phone != "" {
tx.Where("phone = ?", phone)
}
if idno != "" {
tx.Where("idno = ?", idno)
}
var count int64
tx.Count(&count)
tx.Offset((page - 1) * size).Limit(size)
res := tx.Find(&u) res := tx.Find(&u)
if res.Error == gorm.ErrRecordNotFound { if res.Error == gorm.ErrRecordNotFound {
return nil, nil return nil, 0, nil
} }
if res.Error != nil { if res.Error != nil {
return nil, res.Error return nil, 0, res.Error
} }
return u, nil return u, count, nil
} }

View File

@ -11,6 +11,7 @@ var (
type UserSalary struct { type UserSalary struct {
Base string `json:"base"` //基本工资 Base string `json:"base"` //基本工资
Target string `json:"target"` //绩效工资 Target string `json:"target"` //绩效工资
Calculator string `json:"calculator"` //工资计算器
} }
type UserPayee struct { type UserPayee struct {

View File

@ -1,12 +1,40 @@
package api package api
import (
"enterprise/common/model"
"github.com/smbrave/goutil"
"github.com/spf13/cast"
)
type StaffLoginReq struct { type StaffLoginReq struct {
Username string `json:"username"` Username string `json:"username"`
Password string `json:"password"` Password string `json:"password"`
} }
type StaffUser struct {
Id string `json:"id"`
Phone string `json:"phone"`
Idno string `json:"idno"`
Username string `json:"username"`
Realname string `json:"realname"`
EntryDate string `json:"entry_date"`
OfficialDate string `json:"official_date"`
LeaveDate string `json:"leave_date"`
Config string `json:"config"`
Status string `json:"status"`
SalaryBase string `json:"salary_base"`
SalaryTarget string `json:"salary_target"`
SalaryCalculator string `json:"salary_calculator"`
PayeeBankName string `json:"payee_bank_name"`
PayeeBankCard string `json:"payee_bank_card"`
PayeeApliayUid string `json:"payee_apliay_uid"`
}
type StaffListReq struct { type StaffListReq struct {
BaseRequest BaseRequest
Status string `form:"status"`
Phone string `form:"phone"` Phone string `form:"phone"`
Idno string `form:"idno"` Idno string `form:"idno"`
Username string `form:"username"` Username string `form:"username"`
@ -26,6 +54,8 @@ type StaffUpdateReq struct {
EntryDate string `json:"entry_date"` EntryDate string `json:"entry_date"`
OfficialDate string `json:"official_date"` OfficialDate string `json:"official_date"`
LeaveDate string `json:"leave_date"` LeaveDate string `json:"leave_date"`
Config string `json:"config"`
Status string `json:"status"`
SalaryBase string `json:"salary_base"` SalaryBase string `json:"salary_base"`
SalaryTarget string `json:"salary_target"` SalaryTarget string `json:"salary_target"`
@ -33,7 +63,19 @@ type StaffUpdateReq struct {
PayeeBankName string `json:"payee_bank_name"` PayeeBankName string `json:"payee_bank_name"`
PayeeBankCard string `json:"payee_bank_card"` PayeeBankCard string `json:"payee_bank_card"`
PayeeApliayUid string `json:"payee_apliay_uid"` PayeeAlipayUid string `json:"payee_alipay_uid"`
}
Config string `json:"config"`
func (s *StaffUser) From(m *model.StaffUser) {
goutil.CopyStruct(s, m)
s.Id = cast.ToString(m.Id)
s.Status = cast.ToString(m.Status)
salary := m.GetSalary()
payee := m.GetPayee()
s.SalaryBase = salary.Base
s.SalaryTarget = salary.Target
s.SalaryCalculator = salary.Calculator
s.PayeeBankName = payee.BankName
s.PayeeBankCard = payee.BankCard
s.PayeeApliayUid = payee.AlipayUid
} }

View File

@ -31,7 +31,21 @@ func (s *Staff) Login(ctx *gin.Context) {
} }
func (s *Staff) List(ctx *gin.Context) { func (s *Staff) List(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
var req api.StaffListReq
session.CheckParamError(ctx.ShouldBind(&req))
req.Default()
staffs, total, err := dao.NewStaffUserDao().Query(req.Page, req.Size, sess.GetCorpId(), cast.ToInt(req.Status), req.Username, req.Realname, req.Phone, req.Idno)
session.CheckDBError(err)
items := make([]*api.StaffUser, 0)
for _, st := range staffs {
i := new(api.StaffUser)
i.From(st)
items = append(items, i)
}
ctx.JSON(http.StatusOK, session.NewListRsp(total, items))
} }
func (s *Staff) Create(ctx *gin.Context) { func (s *Staff) Create(ctx *gin.Context) {
@ -67,16 +81,20 @@ func (s *Staff) Update(ctx *gin.Context) {
staffUser.EntryDate = goutil.If(req.EntryDate != "", req.EntryDate, staffUser.EntryDate) staffUser.EntryDate = goutil.If(req.EntryDate != "", req.EntryDate, staffUser.EntryDate)
staffUser.OfficialDate = goutil.If(req.OfficialDate != "", req.OfficialDate, staffUser.OfficialDate) staffUser.OfficialDate = goutil.If(req.OfficialDate != "", req.OfficialDate, staffUser.OfficialDate)
staffUser.LeaveDate = goutil.If(req.LeaveDate != "", req.LeaveDate, staffUser.LeaveDate) 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 := staffUser.GetSalary()
staffPayee := staffUser.GetPayee()
staffSalary.Base = goutil.If(req.SalaryBase != "", req.SalaryBase, staffSalary.Base) staffSalary.Base = goutil.If(req.SalaryBase != "", req.SalaryBase, staffSalary.Base)
staffSalary.Target = goutil.If(req.SalaryTarget != "", req.SalaryTarget, staffSalary.Target) 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.BankName = goutil.If(req.PayeeBankName != "", req.PayeeBankName, staffPayee.BankName)
staffPayee.BankCard = goutil.If(req.PayeeBankCard != "", req.PayeeBankCard, staffPayee.BankCard) staffPayee.BankCard = goutil.If(req.PayeeBankCard != "", req.PayeeBankCard, staffPayee.BankCard)
staffPayee.AlipayUid = goutil.If(req.PayeeApliayUid != "", req.PayeeApliayUid, staffPayee.AlipayUid) staffPayee.AlipayUid = goutil.If(req.PayeeAlipayUid != "", req.PayeeAlipayUid, staffPayee.AlipayUid)
staffUser.Payee = goutil.EncodeJSON(staffPayee)
staffUser.Config = goutil.If(req.Config != "", req.Config, staffUser.Config)
err = dao.NewStaffUserDao().Update(staffUser) err = dao.NewStaffUserDao().Update(staffUser)
session.CheckDBError(err) session.CheckDBError(err)

View File

@ -20,7 +20,7 @@ func NewStaff() *Staff {
return &Staff{} return &Staff{}
} }
func (s *Staff) MontorWorkAge(corpId int64) { func (s *Staff) MontorWorkAge(corpId int64) {
staffs, err := dao.NewStaffUserDao().Query(corpId, model.StaffUserStatusOnline) staffs, _, err := dao.NewStaffUserDao().Query(1, -1, corpId, model.StaffUserStatusOnline, "", "", "", "")
if err != nil { if err != nil {
log.Errorf("db error :%s", err.Error()) log.Errorf("db error :%s", err.Error())
return return
@ -118,7 +118,7 @@ func (s *Staff) SyncStaffSalary(corpId int64, month string) {
} }
month = strings.ReplaceAll(month, "-", "") month = strings.ReplaceAll(month, "-", "")
staffs, err := dao.NewStaffUserDao().Query(corpId, 0) staffs, _, err := dao.NewStaffUserDao().Query(1, -1, corpId, 0, "", "", "", "")
if err != nil { if err != nil {
log.Errorf("query staff db error :%s", err.Error()) log.Errorf("query staff db error :%s", err.Error())
return return