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
|
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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue