sync staffuserinfo

This commit is contained in:
jiangyong27 2025-03-12 22:01:34 +08:00
parent e1987917ee
commit d9da0951b5
2 changed files with 57 additions and 13 deletions

View File

@ -2,7 +2,6 @@ package controller
import (
"enterprise/common/dao"
"enterprise/common/model"
"enterprise/server/api"
"enterprise/server/service"
"enterprise/server/session"
@ -70,18 +69,7 @@ func (s *Staff) Create(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
var req api.StaffCreateReq
session.CheckParamError(ctx.ShouldBindJSON(&req))
staffUser, err := dao.NewStaffUserDao().GetByUsername(sess.GetAdmin().CorpId, req.Username)
session.CheckDBError(err)
if staffUser != nil {
panic("用户已存在")
}
staffUser = new(model.StaffUser)
staffUser.CorpId = sess.GetAdmin().CorpId
staffUser.Username = req.Username
staffUser.Status = model.StaffUserStatusOnline
_, err = dao.NewStaffUserDao().Create(staffUser)
session.CheckDBError(err)
service.NewStaffUser().Create(sess, &req)
ctx.JSON(http.StatusOK, session.NewRspOk())
}

View File

@ -5,6 +5,7 @@ import (
"enterprise/common/model"
"enterprise/server/api"
"enterprise/server/session"
"git.u8t.cn/open/gosdk/qyweixin"
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
"github.com/smbrave/goutil"
@ -48,12 +49,54 @@ func (s *StaffUser) Login(sess *session.AdminSession, req *api.StaffLoginReq) in
return data
}
func (s *StaffUser) Create(sess *session.AdminSession, req *api.StaffCreateReq) {
staffUser, err := dao.NewStaffUserDao().GetByUsername(sess.GetAdmin().CorpId, req.Username)
session.CheckDBError(err)
if staffUser != nil {
panic("用户已存在")
}
hrAssiant := s.getHrAssiant(sess.GetCorpId())
staffInfo, err := hrAssiant.GetStaffInfo(req.Username)
if err != nil {
log.Warnf("getstaff info username[%s] error :%s", req.Username, err.Error())
}
staffUser = new(model.StaffUser)
if staffInfo != nil {
staffUser.Realname = staffInfo.RealName
staffUser.Phone = staffInfo.Phone
staffUser.Idno = staffInfo.Idno
staffUser.EntryDate = staffInfo.EntryDate
staffUser.OfficialDate = staffInfo.OfficialDate
}
staffUser.CorpId = sess.GetAdmin().CorpId
staffUser.Username = req.Username
staffUser.Status = model.StaffUserStatusOnline
_, err = dao.NewStaffUserDao().Create(staffUser)
session.CheckDBError(err)
}
func (s *StaffUser) Update(sess *session.AdminSession, req *api.StaffUpdateReq) {
staffUser, err := dao.NewStaffUserDao().Get(cast.ToInt64(req.Id))
session.CheckDBError(err)
session.CheckNilError(staffUser, "用户不存在")
hrAssiant := s.getHrAssiant(sess.GetCorpId())
staffInfo, err := hrAssiant.GetStaffInfo(req.Username)
if err != nil {
log.Warnf("getstaff info username[%s] error :%s", req.Username, err.Error())
}
if staffInfo != nil {
staffUser.Realname = goutil.If(staffUser.Realname == "", staffInfo.RealName, staffUser.Realname)
staffUser.Phone = goutil.If(staffUser.Phone == "", staffInfo.Phone, staffUser.Phone)
staffUser.Idno = goutil.If(staffUser.Idno == "", staffInfo.Idno, staffUser.Idno)
}
staffUser.Username = goutil.If(req.Username != "", req.Username, staffUser.Username)
staffUser.Realname = goutil.If(req.Realname != "", req.Realname, staffUser.Realname)
staffUser.Phone = goutil.If(req.Phone != "", req.Phone, staffUser.Phone)
@ -88,3 +131,16 @@ func (s *StaffUser) Update(sess *session.AdminSession, req *api.StaffUpdateReq)
err = dao.NewStaffUserDao().Update(staffUser)
session.CheckDBError(err)
}
func (s *StaffUser) getHrAssiant(corpId int64) *qyweixin.AppHr {
corp, err := dao.NewCorpDao().Get(corpId)
session.CheckDBError(err)
session.CheckNilError(corp, "企业不存在")
corpCfg := corp.GetConfig()
hrAssiant := qyweixin.NewAppHr(&qyweixin.AppConfig{
Corpid: corpCfg.CorpId,
Secret: corpCfg.EnterpriseSecret,
Agent: corpCfg.EnterpriseAgent,
})
return hrAssiant
}