sync staffuserinfo
This commit is contained in:
parent
e1987917ee
commit
d9da0951b5
|
@ -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())
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue