ziwen 1 年之前
父节点
当前提交
53ff88d4d6
共有 4 个文件被更改,包括 48 次插入22 次删除
  1. 28 14
      controller/auth.go
  2. 10 4
      models/english_report_email/email.go
  3. 6 1
      models/session/english_yb_session.go
  4. 4 3
      services/user.go

+ 28 - 14
controller/auth.go

@@ -33,17 +33,17 @@ func (a *AuthController) Login(c *gin.Context) {
 		resp.Fail("邮箱或手机号错误", c)
 		return
 	}
-	sysUser, err := english_report_email.CheckUserPwd(req.Type, req.Account, req.Password)
+	sysUser, err := english_report_email.CheckUserPwd(req.Type, req.CountryCode, req.Account, req.Password)
 	if err != nil {
 		resp.FailData("Login failed. Please check your entries and try again.", "Err:"+err.Error(), c)
 		return
 	}
 	if sysUser == nil {
-		resp.FailData("Login failed. Please check your entries and try again.", "Err:"+err.Error(), c)
+		resp.Fail("Login failed. Please check your entries and try again.", c)
 		return
 	}
 	if sysUser.Enable == 0 {
-		resp.FailData("您的账号已被禁用,如需登录,请联系管理员", "Err:"+err.Error(), c)
+		resp.Fail("您的账号已被禁用,如需登录,请联系管理员", c)
 		return
 	}
 	if sysUser.Status == 3 {
@@ -66,7 +66,13 @@ func (a *AuthController) Login(c *gin.Context) {
 		return
 	}
 
-	resp.OkData("登陆成功", sysSession, c)
+	respItem := session.LoginResp{
+		Mobile:           sysUser.Mobile,
+		Email:            sysUser.Email,
+		EnglishYbSession: sysSession,
+	}
+
+	resp.OkData("登陆成功", respItem, c)
 
 }
 
@@ -99,23 +105,23 @@ func (a *AuthController) Register(c *gin.Context) {
 	}
 
 	emailItem, err := english_report_email.CheckUser(req.Email)
-	if err != nil && err != utils.ErrNoRow{
+	if err != nil && err != utils.ErrNoRow {
 		resp.Fail("验证码错误,请重新输入", c)
 		return
 	}
-	if emailItem != nil{
-		if emailItem.Status == 1{
+	if emailItem != nil {
+		if emailItem.Status == 1 {
 			//已经是正式用户,更新密码即可
 			emailItem.Password = req.Password
 			emailItem.ModifyTime = time.Now()
 
-			err = emailItem.Update([]string{"Password","ModifyTime"})
+			err = emailItem.Update([]string{"Password", "ModifyTime"})
 			if err != nil {
 				resp.FailMsg("修改密码失败", "修改密码失败,Err:"+err.Error(), c)
 				return
 			}
 			resp.Ok("注册成功", c)
-		} else if emailItem.Status == 2{
+		} else if emailItem.Status == 2 {
 			resp.Fail("There is already a user account associated with this email address. Please log in instead.", c)
 			return
 		} else if emailItem.Status == 3 {
@@ -234,11 +240,6 @@ func (a *AuthController) GetSmsCode(c *gin.Context) {
 // @Failure 400 {string} string 请输入邮箱地址
 // @Router /emailCode [get]
 func (a *AuthController) GetEmailCode(c *gin.Context) {
-	name := c.DefaultQuery("Name", "")
-	if name == "" {
-		resp.Fail("请输入客户名称", c)
-		return
-	}
 	email := c.DefaultQuery("Email", "")
 	if email == "" {
 		resp.Fail("请输入邮箱地址", c)
@@ -249,6 +250,19 @@ func (a *AuthController) GetEmailCode(c *gin.Context) {
 		return
 	}
 
+	name := c.DefaultQuery("Name", "")
+	if name == "" {
+		emailItem := new(english_report_email.Email)
+		userEmail, err := emailItem.GetByEmail(email)
+		if err != nil && err != utils.ErrNoRow {
+			resp.FailData("获取客户邮箱信息失败 ", "Err:"+err.Error(), c)
+			return
+		}
+		if emailItem != nil{
+			name = userEmail.Name
+		}
+	}
+
 	err, errMsg := services.SendEmailCode(name, email)
 	if err != nil {
 		if errMsg != "" {

+ 10 - 4
models/english_report_email/email.go

@@ -53,19 +53,25 @@ func (e *Email) UpdateViewTotalById(Id uint) (err error) {
 	return
 }
 
-func CheckUserPwd(loginType int, account, password string) (item *Email, err error) {
+func CheckUserPwd(loginType int, countryCode, account, password string) (item *Email, err error) {
 	sql := ``
 	if loginType == 1 {
 		sql = `SELECT * FROM english_report_email WHERE email=? AND password=?  `
+		err = global.MYSQL["rddp"].Raw(sql, account, password).Scan(&item).Error
 	} else {
-		sql = `SELECT * FROM english_report_email WHERE mobile=? AND password=?  `
+		sql = `SELECT * FROM english_report_email WHERE country_code = ? mobile=? AND password=?  `
+		err = global.MYSQL["rddp"].Raw(sql, countryCode, account, password).Scan(&item).Error
 	}
-	err = global.MYSQL["rddp"].Exec(sql, account, password).First(&item).Error
 	return
 }
 
 func CheckUser(email string) (item *Email, err error) {
 	sql := `SELECT * FROM english_report_email WHERE email=?  `
-	err = global.MYSQL["rddp"].Exec(sql, email).First(&item).Error
+	err = global.MYSQL["rddp"].Raw(sql, email).First(&item).Error
 	return
 }
+
+func (e *Email) GetByEmail(id string) (item *Email, err error) {
+	err = global.MYSQL["rddp"].Model(e).Where("email = ? ", id).First(&item).Error
+	return
+}

+ 6 - 1
models/session/english_yb_session.go

@@ -9,7 +9,7 @@ type EnglishYbSession struct {
 	SessionId       int    `gorm:"primaryKey;column:session_id" json:"session_id"`
 	UserId          int    `gorm:"column:user_id" json:"user_id"`
 	AccessToken     string `gorm:"column:access_token" json:"access_token"`
-	ExpireTime     time.Time
+	ExpireTime      time.Time
 	CreatedTime     time.Time
 	LastUpdatedTime time.Time
 }
@@ -37,3 +37,8 @@ func GetSessionByToken(token string) (item *EnglishYbSession, err error) {
 	return
 }
 
+type LoginResp struct {
+	Mobile          string
+	Email           string
+	*EnglishYbSession
+}

+ 4 - 3
services/user.go

@@ -6,9 +6,10 @@ import (
 )
 
 type LoginReq struct {
-	Account  string `description:"账号"`
-	Type     int    `description:"类型 1:邮箱 2:手机"`
-	Password string `description:"密码"`
+	Account     string `description:"账号"`
+	CountryCode string `description:"区号"`
+	Type        int    `description:"类型 1:邮箱 2:手机"`
+	Password    string `description:"密码"`
 }
 
 type LoginResp struct {