package business import ( "time" "github.com/jinzhu/gorm" "github.com/spf13/viper" "shopperthree_manage_v2/app/models" "shopperthree_manage_v2/pkg/ierr" "shopperthree_manage_v2/pkg/jwt" "shopperthree_manage_v2/pkg/util" ) func Login(req *models.LoginRequest) (*models.LoginReply, error) { if req.Phone == "" || req.Password == "" { return nil, ierr.NewIError(ierr.ParamErr, "missing key param") } tAdmin := new(models.TAdmin) tAdmin.Phone = req.Phone admin, err := tAdmin.ShowByPhone() if err != nil { if gorm.IsRecordNotFoundError(err) { return nil, ierr.NewIError(ierr.PhoneNotExists, "phone not exists") } return nil, ierr.NewIError(ierr.QueryDataFail, err.Error()) } if admin.Password != util.Sha256(req.Password) { return nil, ierr.NewIError(ierr.PasswordErr, "password error") } //密码正确生成token token, err := jwt.GenerateToken(&jwt.Playload{ UserId: admin.UserId, Phone: admin.Phone, Expire: time.Now().Unix() + 86400*10, Role: admin.Role, }, viper.GetString("token_secret")) if err != nil { return nil, ierr.NewIError(ierr.GenerateTokenFailed, err.Error()) } return &models.LoginReply{ UserId: admin.UserId, Phone: admin.Phone, Token: token, Role: admin.Role, }, nil }