This commit is contained in:
jiangyong27 2025-03-14 14:52:12 +08:00
parent cb1a1c6f42
commit f05158e5bd
3 changed files with 33 additions and 31 deletions

View File

@ -66,7 +66,7 @@ type StaffUpdateReq struct {
PayeeBankCard string `json:"payee_bank_card"`
PayeeAlipayUid string `json:"payee_alipay_uid"`
Config map[string]interface{} `json:"config"`
Config map[string]string `json:"config"`
}
func (s *StaffUser) From(m *model.StaffUser) {

View File

@ -1,8 +1,6 @@
package controller
import (
"encoding/json"
"enterprise/common/config"
"enterprise/common/dao"
"enterprise/server/api"
"enterprise/server/service"
@ -50,34 +48,7 @@ func (s *Staff) List(ctx *gin.Context) {
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)
corpStaffConfig := cast.ToSlice(config.GetCorpConfig(sess.GetCorpId(), "staff_config", nil))
for _, st := range staffs {
i := new(api.StaffUser)
i.From(st)
calculator, _ := dao.NewSalaryCalculatorDao().Get(cast.ToInt64(i.SalaryCalculator))
if calculator != nil {
i.SalaryCalculatorName = calculator.Name
}
// config
var staffConfig map[string]interface{}
json.Unmarshal([]byte(st.Config), &staffConfig)
config := make([]map[string]interface{}, 0)
for _, kv := range corpStaffConfig {
obj := cast.ToStringMap(kv)
obj["value"] = staffConfig[cast.ToString(obj["key"])]
config = append(config, obj)
}
i.Config = config
items = append(items, i)
}
total, items := service.NewStaffUser().List(sess, &req)
ctx.JSON(http.StatusOK, session.NewListRsp(total, items))
}

View File

@ -2,6 +2,7 @@ package service
import (
"encoding/json"
"enterprise/common/config"
"enterprise/common/dao"
"enterprise/common/model"
"enterprise/server/api"
@ -50,6 +51,36 @@ func (s *StaffUser) Login(sess *session.AdminSession, req *api.StaffLoginReq) in
return data
}
func (s *StaffUser) List(sess *session.AdminSession, req *api.StaffListReq) (int64, interface{}) {
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)
corpStaffConfig := cast.ToSlice(config.GetCorpConfig(sess.GetCorpId(), "staff_config", nil))
for _, st := range staffs {
i := new(api.StaffUser)
i.From(st)
calculator, _ := dao.NewSalaryCalculatorDao().Get(cast.ToInt64(i.SalaryCalculator))
if calculator != nil {
i.SalaryCalculatorName = calculator.Name
}
// config
var staffConfig map[string]interface{}
json.Unmarshal([]byte(st.Config), &staffConfig)
config := make([]map[string]interface{}, 0)
for _, kv := range corpStaffConfig {
obj := cast.ToStringMap(kv)
obj["value"] = cast.ToString(staffConfig[cast.ToString(obj["key"])])
config = append(config, obj)
}
i.Config = config
items = append(items, i)
}
return total, items
}
func (s *StaffUser) Create(sess *session.AdminSession, req *api.StaffCreateReq) {
staffUser, err := dao.NewStaffUserDao().GetByUsername(sess.GetAdmin().CorpId, req.Username)