2025-03-07 12:05:59 +08:00
|
|
|
package service
|
|
|
|
|
|
|
|
import (
|
|
|
|
"enterprise/common/dao"
|
|
|
|
"enterprise/common/model"
|
|
|
|
"enterprise/server/api"
|
|
|
|
"enterprise/server/session"
|
|
|
|
"github.com/google/uuid"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/smbrave/goutil"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
type StaffUser struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *StaffUser) Login(sess *session.AdminSession, req *api.StaffLoginReq) interface{} {
|
|
|
|
host := sess.GetHeader().Host
|
|
|
|
log.Infof("login host[%s] req[%s]", host, goutil.EncodeJSON(req))
|
|
|
|
|
|
|
|
corp, err := dao.NewCorpDao().GetByHost(host)
|
|
|
|
session.CheckDBError(err)
|
|
|
|
session.CheckNilError(corp, "企业不存在的域名")
|
|
|
|
|
|
|
|
user, err := dao.NewStaffUserDao().GetByUsername(corp.Id, req.Username)
|
|
|
|
session.CheckDBError(err)
|
|
|
|
session.CheckNilError(user, "企业用户不存在")
|
|
|
|
|
2025-03-11 15:01:26 +08:00
|
|
|
if user.Password == "" || user.Password != req.Password {
|
2025-03-07 12:05:59 +08:00
|
|
|
panic("密码错误")
|
|
|
|
}
|
|
|
|
|
|
|
|
token := new(model.StaffToken)
|
|
|
|
token.UserId = user.Id
|
|
|
|
token.ExpireTime = time.Now().Unix() + 86400
|
|
|
|
token.Token = uuid.New().String()
|
|
|
|
_, err = dao.NewStaffTokenDao().Create(token)
|
|
|
|
session.CheckDBError(err)
|
|
|
|
|
2025-03-07 12:27:28 +08:00
|
|
|
data := token.ToLogin()
|
|
|
|
data["username"] = user.Username
|
|
|
|
data["realname"] = user.Realname
|
|
|
|
return data
|
2025-03-07 12:05:59 +08:00
|
|
|
}
|