staff list
This commit is contained in:
parent
7a204908ab
commit
9a84b0172f
|
@ -82,21 +82,35 @@ func (d *StaffUserDao) GetByPhone(corpId int64, phone string) (*model.StaffUser,
|
|||
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
|
||||
tx := GetDB().Table(d.TableName())
|
||||
tx.Where("corp_id = ?", corpId)
|
||||
if status != 0 {
|
||||
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)
|
||||
if res.Error == gorm.ErrRecordNotFound {
|
||||
return nil, nil
|
||||
return nil, 0, nil
|
||||
}
|
||||
|
||||
if res.Error != nil {
|
||||
return nil, res.Error
|
||||
return nil, 0, res.Error
|
||||
}
|
||||
return u, nil
|
||||
return u, count, nil
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ var (
|
|||
type UserSalary struct {
|
||||
Base string `json:"base"` //基本工资
|
||||
Target string `json:"target"` //绩效工资
|
||||
Calculator string `json:"calculator"` //工资计算器
|
||||
}
|
||||
|
||||
type UserPayee struct {
|
||||
|
|
|
@ -1,12 +1,40 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"enterprise/common/model"
|
||||
"github.com/smbrave/goutil"
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
type StaffLoginReq struct {
|
||||
Username string `json:"username"`
|
||||
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 {
|
||||
BaseRequest
|
||||
Status string `form:"status"`
|
||||
Phone string `form:"phone"`
|
||||
Idno string `form:"idno"`
|
||||
Username string `form:"username"`
|
||||
|
@ -26,6 +54,8 @@ type StaffUpdateReq struct {
|
|||
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"`
|
||||
|
@ -33,7 +63,19 @@ type StaffUpdateReq struct {
|
|||
|
||||
PayeeBankName string `json:"payee_bank_name"`
|
||||
PayeeBankCard string `json:"payee_bank_card"`
|
||||
PayeeApliayUid string `json:"payee_apliay_uid"`
|
||||
|
||||
Config string `json:"config"`
|
||||
PayeeAlipayUid string `json:"payee_alipay_uid"`
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
|
|
@ -31,7 +31,21 @@ func (s *Staff) Login(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) {
|
||||
|
@ -67,16 +81,20 @@ func (s *Staff) Update(ctx *gin.Context) {
|
|||
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()
|
||||
staffPayee := staffUser.GetPayee()
|
||||
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.PayeeApliayUid != "", req.PayeeApliayUid, staffPayee.AlipayUid)
|
||||
|
||||
staffUser.Config = goutil.If(req.Config != "", req.Config, staffUser.Config)
|
||||
staffPayee.AlipayUid = goutil.If(req.PayeeAlipayUid != "", req.PayeeAlipayUid, staffPayee.AlipayUid)
|
||||
staffUser.Payee = goutil.EncodeJSON(staffPayee)
|
||||
|
||||
err = dao.NewStaffUserDao().Update(staffUser)
|
||||
session.CheckDBError(err)
|
||||
|
|
|
@ -20,7 +20,7 @@ func NewStaff() *Staff {
|
|||
return &Staff{}
|
||||
}
|
||||
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 {
|
||||
log.Errorf("db error :%s", err.Error())
|
||||
return
|
||||
|
@ -118,7 +118,7 @@ func (s *Staff) SyncStaffSalary(corpId int64, month string) {
|
|||
}
|
||||
month = strings.ReplaceAll(month, "-", "")
|
||||
|
||||
staffs, err := dao.NewStaffUserDao().Query(corpId, 0)
|
||||
staffs, _, err := dao.NewStaffUserDao().Query(1, -1, corpId, 0, "", "", "", "")
|
||||
if err != nil {
|
||||
log.Errorf("query staff db error :%s", err.Error())
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue