package user import ( "SciencesServer/app/api/admin/model" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" "time" ) type Person struct{ *session.Admin } type PersonHandle func(session *session.Admin) *Person // EditPassword 修改密码 func (c *Person) EditPassword(oldPassword, password, repeatPwd string) error { if password != repeatPwd { return errors.New("两次密码不一致") } mSysUser := model.NewSysUser() isExist, err := model2.FirstWhere(mSysUser.SysUser, model2.NewWhere("uuid", c.UID)) if err != nil { return err } else if !isExist { return errors.New("用户信息不存在或已被删除") } if !mSysUser.ValidatePassword(oldPassword) { return errors.New("旧密码错误") } mSysUser.Password = password mSysUser.Pass() if err = model2.Updates(mSysUser.SysUser, map[string]interface{}{ "password": mSysUser.Password, "salt": mSysUser.Salt, "updated_at": time.Now(), }); err != nil { return err } return nil } func NewPerson() PersonHandle { return func(session *session.Admin) *Person { return &Person{Admin: session} } }