enterprise/server/service/staff_user.go

42 lines
1.0 KiB
Go

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, "企业用户不存在")
if user.Password != req.Password {
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)
return token.ToLogin()
}