ziwen 1 年之前
父節點
當前提交
f7348e2939
共有 8 個文件被更改,包括 85 次插入44 次删除
  1. 57 13
      controller/auth.go
  2. 二進制
      hongze_yb_en_api
  3. 8 5
      models/english_report_email/email.go
  4. 4 4
      models/english_yb_session.go
  5. 8 15
      models/user.go
  6. 3 3
      routers/auth.go
  7. 4 3
      services/email.go
  8. 1 1
      services/sms.go

+ 57 - 13
controller/auth.go

@@ -8,6 +8,7 @@ import (
 	"hongze/hongze_yb_en_api/global"
 	"hongze/hongze_yb_en_api/models"
 	"hongze/hongze_yb_en_api/models/english_report_email"
+	"hongze/hongze_yb_en_api/models/msg_code"
 	"hongze/hongze_yb_en_api/services"
 	"hongze/hongze_yb_en_api/utils"
 	"time"
@@ -18,7 +19,7 @@ type AuthController struct {
 
 func (a *AuthController) Login(c *gin.Context) {
 	req := new(models.LoginReq)
-	err := c.BindQuery(&req)
+	err := c.ShouldBind(&req)
 	if err != nil {
 		errs, ok := err.(validator.ValidationErrors)
 		if !ok {
@@ -28,6 +29,10 @@ func (a *AuthController) Login(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 	}
+	if req.Account == "" {
+		resp.Fail("邮箱或手机号错误", c)
+		return
+	}
 	sysUser, err := english_report_email.CheckUser(req.Type, req.Account, req.Password)
 	if err != nil {
 		resp.FailData("登录失败,账号或密码错误", "Err:"+err.Error(), c)
@@ -46,7 +51,7 @@ func (a *AuthController) Login(c *gin.Context) {
 	sysSession := new(models.EnglishYbSession)
 	sysSession.UserId = int(sysUser.AdminId)
 	//现在要求永不过期
-	sysSession.ExpiredTime = time.Now().AddDate(99, 0, 0)
+	sysSession.ExpireTime = time.Now().AddDate(99, 0, 0)
 	sysSession.CreatedTime = time.Now()
 	sysSession.LastUpdatedTime = time.Now()
 	sysSession.AccessToken = token
@@ -57,11 +62,13 @@ func (a *AuthController) Login(c *gin.Context) {
 		return
 	}
 
+	resp.OkData("登陆成功", sysSession, c)
+
 }
 
 func (a *AuthController) Register(c *gin.Context) {
-	req := new(models.LoginReq)
-	err := c.BindQuery(&req)
+	req := new(models.RegisterReq)
+	err := c.ShouldBind(&req)
 	if err != nil {
 		errs, ok := err.(validator.ValidationErrors)
 		if !ok {
@@ -71,6 +78,38 @@ func (a *AuthController) Register(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 	}
+
+	item, err := msg_code.GetMsgCode(req.Email, req.SmsCode)
+	if err != nil {
+		if err == utils.ErrNoRow {
+			resp.Fail("校验验证码失败,Err:"+err.Error(), c)
+			return
+		} else {
+			resp.Fail("校验验证码失败,Err:"+err.Error(), c)
+			return
+		}
+	}
+	if item == nil {
+		resp.Fail("验证码错误,请重新输入", c)
+		return
+	}
+
+	user := english_report_email.Email{
+		Name:        req.Name,
+		CompanyName: req.CompanyName,
+		Email:       req.Email,
+		Password:    req.Password,
+		Enable:      1,
+	}
+	user.Set()
+
+	err = user.Add()
+	if err != nil {
+		resp.FailData("新增用户信息失败", "Err:"+err.Error(), c)
+		return
+	}
+
+	resp.Ok("注册成功", c)
 }
 
 // @Title 修改密码
@@ -99,16 +138,16 @@ func (a *AuthController) ModifyPwd(c *gin.Context) {
 // @Description 获取短信验证码接口
 // @Security ApiKeyAuth
 // @securityDefinitions.basic BasicAuth
-// @Param mobile	query string true "手机号"
-// @Param area_num	query string true "手机国际区号(中国大陆:86)"
+// @Param Mobile	query string true "手机号"
+// @Param AreaNum	query string true "手机国际区号(中国大陆:86)"
 // @Accept  json
 // @Product json
 // @Success 200 {string} string 获取验证码成功
 // @Failure 400 {string} string 手机号不能为空,请输入手机号
-// @Router /get_sms_code [get]
+// @Router /smsCode [get]
 func (a *AuthController) GetSmsCode(c *gin.Context) {
-	mobile := c.DefaultQuery("mobile", "")
-	areaNum := c.DefaultQuery("area_num", "")
+	mobile := c.DefaultQuery("Mobile", "")
+	areaNum := c.DefaultQuery("AreaNum", "")
 	err, errMsg := services.SendSmsCode(mobile, areaNum)
 	if err != nil {
 		if errMsg != "" {
@@ -132,9 +171,14 @@ func (a *AuthController) GetSmsCode(c *gin.Context) {
 // @Product json
 // @Success 200 {string} string 获取验证码成功
 // @Failure 400 {string} string 请输入邮箱地址
-// @Router /get_email_code [get]
+// @Router /emailCode [get]
 func (a *AuthController) GetEmailCode(c *gin.Context) {
-	email := c.DefaultQuery("email", "")
+	name := c.DefaultQuery("Name", "")
+	if name == "" {
+		resp.Fail("请输入客户名称", c)
+		return
+	}
+	email := c.DefaultQuery("Email", "")
 	if email == "" {
 		resp.Fail("请输入邮箱地址", c)
 		return
@@ -144,7 +188,7 @@ func (a *AuthController) GetEmailCode(c *gin.Context) {
 		return
 	}
 
-	err, errMsg := services.SendEmailCode(email)
+	err, errMsg := services.SendEmailCode(name, email)
 	if err != nil {
 		if errMsg != "" {
 			errMsg = "获取验证码失败"
@@ -154,4 +198,4 @@ func (a *AuthController) GetEmailCode(c *gin.Context) {
 	}
 
 	resp.Ok("获取验证码成功", c)
-}
+}

二進制
hongze_yb_en_api


+ 8 - 5
models/english_report_email/email.go

@@ -11,13 +11,16 @@ type Email struct {
 	Id           uint      `gorm:"primaryKey;column:id" json:"id"`
 	CompanyId    uint      `gorm:"column:company_id" json:"company_id"`         //客户ID
 	Name         string    `gorm:"column:name" json:"name"`                     //客户名称
+	CompanyName  string    `gorm:"column:company_name" json:"company_name"`     //公司名称
 	Email        string    `gorm:"column:email" json:"email"`                   //邮箱地址
 	ViewTotal    uint      `gorm:"column:view_total" json:"view_total"`         //累计点击量/阅读量
 	LastViewTime time.Time `gorm:"column:last_view_time" json:"last_view_time"` //最后阅读时间
 	IsDeleted    uint8     `gorm:"column:is_deleted" json:"is_deleted"`         //删除状态:0-正常;1-已删除
 	AdminId      uint      `gorm:"column:admin_id" json:"admin_id"`             //创建人ID
 	AdminName    string    `gorm:"column:admin_name" json:"admin_name"`         //创建人名称
-	Enable       int       `gorm:"column:enable" json:"enable"`
+	Enable       int       `gorm:"column:enabled" json:"enabled"`
+	Status       int       `description:"1:正式,2:临时,3:终止"`
+	Password     string    `gorm:"column:password" json:"password"`
 	base.TimeBase
 }
 
@@ -28,13 +31,13 @@ func (e *Email) TableName() string {
 
 // Add 新增
 func (e *Email) Add() (err error) {
-	err = global.DEFAULT_MYSQL.Create(e).Error
+	err = global.MYSQL["rddp"].Create(e).Error
 	return
 }
 
 // 修改
 func (e *Email) Update(updateCols []string) (err error) {
-	err = global.DEFAULT_MYSQL.Model(e).Select(updateCols).Updates(e).Error
+	err = global.MYSQL["rddp"].Model(e).Select(updateCols).Updates(e).Error
 	return
 }
 
@@ -45,7 +48,7 @@ func (e *Email) GetById(id int) (item *Email, err error) {
 
 func (e *Email) UpdateViewTotalById(Id uint) (err error) {
 	sql := `UPDATE english_report_email SET view_total = view_total+1, last_view_time = NOW() WHERE id = ? `
-	err = global.DEFAULT_MYSQL.Exec(sql, Id).Error
+	err = global.MYSQL["rddp"].Exec(sql, Id).Error
 	return
 }
 
@@ -56,6 +59,6 @@ func CheckUser(loginType int, account, password string) (item *Email, err error)
 	} else {
 		sql = `SELECT * FROM english_report_email WHERE mobile=? AND password=?  `
 	}
-	err = global.DEFAULT_MYSQL.Exec(sql, account, password).Error
+	err = global.MYSQL["rddp"].Exec(sql, account, password).First(&item).Error
 	return
 }

+ 4 - 4
models/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"`
-	ExpiredTime     time.Time
+	ExpireTime     time.Time
 	CreatedTime     time.Time
 	LastUpdatedTime time.Time
 }
@@ -21,19 +21,19 @@ func (e *EnglishYbSession) TableName() string {
 
 // 新增用户登录session信息
 func (e *EnglishYbSession) AddSession() (err error) {
-	err = global.DEFAULT_MYSQL.Create(e).Error
+	err = global.MYSQL["rddp"].Create(e).Error
 	return
 }
 
 func GetSessionByUserId(userId int) (item *EnglishYbSession, err error) {
 	sql := `SELECT * FROM english_yb_session WHERE user_id=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
-	err = global.DEFAULT_MYSQL.Exec(sql, userId).Error
+	err = global.MYSQL["rddp"].Exec(sql, userId).Error
 	return
 }
 
 func GetSessionByToken(token string) (item *EnglishYbSession, err error) {
 	sql := `SELECT * FROM english_yb_session WHERE access_token=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
-	err = global.DEFAULT_MYSQL.Exec(sql, token).Error
+	err = global.MYSQL["rddp"].Exec(sql, token).Error
 	return
 }
 

+ 8 - 15
models/user.go

@@ -1,14 +1,9 @@
 package models
 
-import (
-	"hongze/hongze_yb_en_api/models/base"
-)
-
 type LoginReq struct {
-	Account    string `description:"账号"`
-	Type       int    `description:"类型 1:邮箱 2:手机"`
-	Password   string `description:"密码"`
-	IsRemember bool   `description:"是否属于受信设备"`
+	Account  string `description:"账号"`
+	Type     int    `description:"类型 1:邮箱 2:手机"`
+	Password string `description:"密码"`
 }
 
 type LoginResp struct {
@@ -24,16 +19,14 @@ type LoginResp struct {
 }
 
 type RegisterReq struct {
-	Company     string
-	Mobile      string
 	Password    string
-	CountryCode string
-	Name        string `json:"name"`   //客户名称
-	Email       string `json:"email"` //邮箱地址
-	base.TimeBase
+	Name        string //客户名称
+	CompanyName string //公司名称
+	Email       string //邮箱地址
+	SmsCode     string //验证码
 }
 
 type ModifyPwdReq struct {
 	OldPwd string `description:"旧密码"`
 	NewPwd string `description:"新密码"`
-}
+}

+ 3 - 3
routers/auth.go

@@ -11,7 +11,7 @@ func InitAuth(baseGroup *gin.RouterGroup) {
 	authGroup := baseGroup.Group("auth/")
 	authGroup.POST("login", authController.Login)
 	authGroup.POST("register", authController.Register)
-	authGroup.POST("modifyPwd", authController.Login)
-	authGroup.POST("smsCode", authController.GetSmsCode)
-	authGroup.POST("emailCode", authController.GetEmailCode)
+	authGroup.POST("modifyPwd", authController.ModifyPwd)
+	authGroup.GET("smsCode", authController.GetSmsCode)
+	authGroup.GET("emailCode", authController.GetEmailCode)
 }

+ 4 - 3
services/email.go

@@ -11,7 +11,7 @@ import (
 
 
 // SendEmailCode 发送邮件
-func SendEmailCode(email string) (err error, errMsg string) {
+func SendEmailCode(name,email string) (err error, errMsg string) {
 	if email == "" {
 		err = errors.New("请输入邮箱地址")
 		return
@@ -21,8 +21,9 @@ func SendEmailCode(email string) (err error, errMsg string) {
 		return
 	}
 	msgCode := utils.GetRandDigit(4)
-	content := "尊敬的用户:</br>您好,感谢您使用弘则研究,您正在进行邮箱验证,本次请求的验证码为:" + msgCode + "(为了保障您账号的安全性,请在15分钟内完成验证。)</br>弘则研究团队 </br>" + time.Now().Format(utils.FormatDateCN)
-	title := "弘则研究登陆验证"
+	content := "Hi "+ name +":</br>Please enter this verification code on the registration page so we can make sure it's you:</br><p>" + msgCode + "</p>This code will expire in 15 minutes.</br>" +
+		"If you didn't initiate this request, or need help with your registration, please let us know at: stephanie@hzinsights.com </br>Horizon Research Team"
+	title := "Your Email Verification Code"
 	//发送邮件
 	result, err := SendEmailByHz(title, content, email)
 

+ 1 - 1
services/sms.go

@@ -141,7 +141,7 @@ func sendSmsGj(mobile, code, areaNum string) (rs []byte, err error) {
 	param := url.Values{}
 	//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
 	param.Set("mobile", mobile)           //接受短信的用户手机号码
-	param.Set("tplId", "10054")           //您申请的短信模板ID,根据实际情况修改
+	param.Set("tplId", "12415")           //您申请的短信模板ID,根据实际情况修改
 	param.Set("tplValue", "#code#="+code) //您设置的模板变量,根据实际情况
 	param.Set("key", utils.JhGjAppKey)    //应用APPKEY(应用详细页查询)
 	param.Set("areaNum", areaNum)         //应用APPKEY(应用详细页查询)