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) data := token.ToLogin() data["username"] = user.Username data["realname"] = user.Realname return data }