feat: param verification

This commit is contained in:
zchengo
2022-12-10 22:57:58 +08:00
parent 1b14760990
commit b16d31189f
11 changed files with 309 additions and 238 deletions
+3 -31
View File
@@ -5,7 +5,6 @@ import (
"crm/response"
"crm/service"
"log"
"regexp"
"strconv"
"github.com/gin-gonic/gin"
@@ -30,10 +29,6 @@ func (u *UserApi) Register(context *gin.Context) {
log.Printf("[error]UserApi:Register:%s", err)
return
}
if !verifyEmailFormat(param.Email) {
response.Result(response.ErrCodeEmailFormatInvalid, nil, context)
return
}
errCode := u.userService.Register(&param)
response.Result(errCode, nil, context)
}
@@ -45,10 +40,6 @@ func (u *UserApi) Login(context *gin.Context) {
response.Result(response.ErrCodeParamInvalid, nil, context)
return
}
if !verifyEmailFormat(param.Email) {
response.Result(response.ErrCodeEmailFormatInvalid, nil, context)
return
}
userInfo, errCode := u.userService.Login(&param)
if userInfo == nil {
response.Result(errCode, nil, context)
@@ -59,26 +50,18 @@ func (u *UserApi) Login(context *gin.Context) {
// 获取验证码
func (u *UserApi) GetVerifyCode(context *gin.Context) {
email := context.Query("email")
if email == "" {
var param models.UserVerifyCodeParam
if err := context.ShouldBind(&param); err != nil {
response.Result(response.ErrCodeParamInvalid, nil, context)
return
}
if !verifyEmailFormat(email) {
response.Result(response.ErrCodeEmailFormatInvalid, nil, context)
return
}
errCode := u.userService.GetVerifyCode(email)
errCode := u.userService.GetVerifyCode(param.Email)
response.Result(errCode, nil, context)
}
// 忘记密码
func (u *UserApi) ForgotPass(context *gin.Context) {
var param models.UserPassParam
if verifyEmailFormat(param.Email) {
response.Result(response.ErrCodeEmailFormatInvalid, nil, context)
return
}
if err := context.ShouldBind(&param); err != nil {
response.Result(response.ErrCodeParamInvalid, nil, context)
return
@@ -90,10 +73,6 @@ func (u *UserApi) ForgotPass(context *gin.Context) {
// 修改邮箱
func (u *UserApi) UpdateMail(context *gin.Context) {
var param models.UserMailParam
if verifyEmailFormat(param.Email) && verifyEmailFormat(param.NewEmail) {
response.Result(response.ErrCodeEmailFormatInvalid, nil, context)
return
}
if err := context.ShouldBind(&param); err != nil {
response.Result(response.ErrCodeParamInvalid, nil, context)
return
@@ -148,10 +127,3 @@ func (u *UserApi) Buy(context *gin.Context) {
versionInfo, errCode := u.userService.Buy(int64(uid))
response.Result(errCode, versionInfo, context)
}
// 邮箱格式校验
func verifyEmailFormat(email string) bool {
pattern := `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`
reg := regexp.MustCompile(pattern)
return reg.MatchString(email)
}
+41 -41
View File
@@ -21,63 +21,63 @@ type Contract struct {
}
type ContractCreateParam struct {
Name string `json:"name,omitempty"`
Amount float64 `json:"amount,omitempty"`
BeginTime string `json:"beginTime,omitempty"`
OverTime string `json:"overTime,omitempty"`
Remarks string `json:"remarks,omitempty"`
Cid int64 `json:"cid,omitempty"`
Productlist *Productlist `json:"productlist,omitempty"`
Status int `json:"status,omitempty"`
Creator int64 `json:"creator,omitempty"`
Name string `json:"name" binding:"required"`
Amount float64 `json:"amount" binding:"required,gt=0"`
BeginTime string `json:"beginTime" binding:"-"`
OverTime string `json:"overTime" binding:"-"`
Remarks string `json:"remarks" binding:"-"`
Cid int64 `json:"cid" binding:"required,gt=0"`
Productlist *Productlist `json:"productlist"`
Status int `json:"status" binding:"required,oneof=1 2"`
Creator int64 `json:"creator,omitempty" binding:"-"`
}
type ContractUpdateParam struct {
Id int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Amount float64 `json:"amount,omitempty"`
BeginTime string `json:"beginTime,omitempty"`
OverTime string `json:"overTime,omitempty"`
Remarks string `json:"remarks,omitempty"`
Cid int64 `json:"cid,omitempty"`
Productlist *Productlist `json:"productlist,omitempty"`
Status int `json:"status,omitempty"`
Id int64 `json:"id" binding:"required,gt=0"`
Name string `json:"name" binding:"required"`
Amount float64 `json:"amount" binding:"required,gt=0"`
BeginTime string `json:"beginTime" binding:"-"`
OverTime string `json:"overTime" binding:"-"`
Remarks string `json:"remarks" binding:"-"`
Cid int64 `json:"cid" binding:"required,gt=0"`
Productlist *Productlist `json:"productlist"`
Status int `json:"status" binding:"required,oneof=1 2"`
}
type ContractDeleteParam struct {
Ids []int64 `json:"ids,omitempty"`
Ids []int64 `json:"ids" binding:"required"`
}
type ContractQueryParam struct {
Id int64 `form:"id,omitempty"`
Name string `form:"name,omitempty"`
Creator int64 `form:"creator,omitempty"`
Id int64 `form:"id" binding:"omitempty,gt=0"`
Name string `form:"name" binding:"-"`
Creator int64 `form:"creator,omitempty" binding:"-"`
Page Page
}
type ContractList struct {
Id int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Amount float64 `json:"amount,omitempty"`
BeginTime string `json:"beginTime,omitempty"`
OverTime string `json:"overTime,omitempty"`
Remarks string `json:"remarks,omitempty"`
Cname string `json:"cname,omitempty"`
Status int `json:"status,omitempty"`
Created int64 `json:"created,omitempty"`
Updated int64 `json:"updated,omitempty"`
Id int64 `json:"id"`
Name string `json:"name"`
Amount float64 `json:"amount"`
BeginTime string `json:"beginTime"`
OverTime string `json:"overTime"`
Remarks string `json:"remarks"`
Cname string `json:"cname"`
Status int `json:"status"`
Created int64 `json:"created"`
Updated int64 `json:"updated"`
}
type ContractInfo struct {
Id int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Cid int64 `json:"cid,omitempty"`
Amount float64 `json:"amount,omitempty"`
BeginTime string `json:"beginTime,omitempty"`
OverTime string `json:"overTime,omitempty"`
Remarks string `json:"remarks,omitempty"`
Productlist *Productlist `json:"productlist,omitempty"`
Status int `json:"status,omitempty"`
Id int64 `json:"id"`
Name string `json:"name"`
Cid int64 `json:"cid"`
Amount float64 `json:"amount"`
BeginTime string `json:"beginTime"`
OverTime string `json:"overTime"`
Remarks string `json:"remarks"`
Productlist *Productlist `json:"productlist"`
Status int `json:"status"`
}
type Products struct {
+27 -27
View File
@@ -18,42 +18,42 @@ type Customer struct {
}
type CustomerCreateParam struct {
Name string `json:"name,omitempty"`
Source string `json:"source,omitempty"`
Phone string `json:"phone,omitempty"`
Email string `json:"email,omitempty"`
Industry string `json:"industry,omitempty"`
Level string `json:"level,omitempty"`
Remarks string `json:"remarks,omitempty"`
Region string `json:"region,omitempty"`
Address string `json:"address,omitempty"`
Status int `json:"status,omitempty"`
Creator int64 `json:"creator,omitempty"`
Name string `json:"name" binding:"required"`
Source string `json:"source" binding:"-"`
Phone string `json:"phone" binding:"omitempty,len=11"`
Email string `json:"email" binding:"omitempty,email"`
Industry string `json:"industry" binding:"-"`
Level string `json:"level" binding:"-"`
Remarks string `json:"remarks" binding:"-"`
Region string `json:"region" binding:"-"`
Address string `json:"address" binding:"-"`
Status int `json:"status" binding:"-"`
Creator int64 `json:"creator,omitempty" binding:"-"`
}
type CustomerUpdateParam struct {
Id int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Source string `json:"source,omitempty"`
Phone string `json:"phone,omitempty"`
Email string `json:"email,omitempty"`
Industry string `json:"industry,omitempty"`
Level string `json:"level,omitempty"`
Remarks string `json:"remarks,omitempty"`
Region string `json:"region,omitempty"`
Address string `json:"address,omitempty"`
Status int `json:"status,omitempty"`
Id int64 `json:"id" binding:"required"`
Name string `json:"name" binding:"-"`
Source string `json:"source" binding:"-"`
Phone string `json:"phone" binding:"omitempty,len=11"`
Email string `json:"email" binding:"omitempty,email"`
Industry string `json:"industry" binding:"-"`
Level string `json:"level" binding:"-"`
Remarks string `json:"remarks" binding:"-"`
Region string `json:"region" binding:"-"`
Address string `json:"address" binding:"-"`
Status int `json:"status" binding:"-"`
}
type CustomerDeleteParam struct {
Ids []int64 `json:"ids,omitempty"`
Ids []int64 `json:"ids" binding:"required"`
}
type CustomerQueryParam struct {
Id int64 `form:"id,omitempty"`
Name string `form:"name,omitempty"`
Phone string `form:"phone,omitempty"`
Creator int64 `form:"creator"`
Id int64 `form:"id" binding:"omitempty,gt=0"`
Name string `form:"name" binding:"-"`
Phone string `form:"phone" binding:"omitempty,len=11"`
Creator int64 `form:"creator,omitempty" binding:"-"`
Page Page
}
+23 -23
View File
@@ -15,38 +15,38 @@ type Product struct {
}
type ProductCreateParam struct {
Name string `json:"name,omitempty"`
Type int `json:"type,omitempty"`
Unit string `json:"unit,omitempty"`
Code string `json:"code,omitempty"`
Price float64 `json:"price,omitempty"`
Description string `json:"description,omitempty"`
Status int `json:"status,omitempty"`
Creator int64 `json:"creator,omitempty"`
Name string `json:"name" binding:"required"`
Type int `json:"type" binding:"required,len=1"`
Unit string `json:"unit" binding:"-"`
Code string `json:"code" binding:"-"`
Price float64 `json:"price" binding:"required,gt=0"`
Description string `json:"description" binding:"-"`
Status int `json:"status" binding:"required,oneof=1 2"`
Creator int64 `json:"creator,omitempty" binding:"-"`
}
type ProductUpdateParam struct {
Id int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Type int `json:"type,omitempty"`
Unit string `json:"unit,omitempty"`
Code string `json:"code,omitempty"`
Price float64 `json:"price,omitempty"`
Description string `json:"description,omitempty"`
Status int `json:"status,omitempty"`
Creator int64 `json:"creator,omitempty"`
Id int64 `json:"id" binding:"required,gt=0"`
Name string `json:"name" binding:"required"`
Type int `json:"type" binding:"required,len=1"`
Unit string `json:"unit" binding:"-"`
Code string `json:"code" binding:"-"`
Price float64 `json:"price" binding:"required,gt=0"`
Description string `json:"description" binding:"-"`
Status int `json:"status" binding:"required,oneof=1 2"`
Creator int64 `json:"creator,omitempty" binding:"-"`
}
type ProductDeleteParam struct {
Ids []int64 `json:"ids,omitempty"`
Ids []int64 `json:"ids" binding:"required"`
}
type ProductQueryParam struct {
Id int64 `form:"id,omitempty"`
Ids []int64 `form:"ids,omitempty"`
Name string `form:"name,omitempty"`
Status int `form:"status,omitempty"`
Creator int64 `form:"creator,omitempty"`
Id int64 `form:"id" binding:"omitempty,gt=0"`
Ids []int64 `form:"ids" json:"ids" binding:"-"`
Name string `form:"name" binding:"-"`
Status int `form:"status" binding:"omitempty,oneof=1 2"`
Creator int64 `form:"creator,omitempty" binding:"-"`
Page Page
}
+18 -21
View File
@@ -13,39 +13,36 @@ type User struct {
}
type UserCreateParam struct {
Email string `json:"email"`
Code string `json:"code"`
Password string `json:"password"`
}
type UserUpdateParam struct {
Id int64 `json:"id"`
Email string `json:"email"`
Password string `json:"password"`
Status int `json:"status"`
Email string `json:"email" binding:"required,email"`
Code string `json:"code" binding:"required,len=6"`
Password string `json:"password" binding:"required"`
}
type UserDeleteParam struct {
Id int64 `json:"id"`
Email string `json:"email"`
Code string `json:"code"`
Id int64 `json:"id,omitempty" binding:"-"`
Email string `json:"email" binding:"required,email"`
Code string `json:"code" binding:"required,len=6"`
}
type UserLoginParam struct {
Email string `json:"email"`
Password string `json:"password"`
Email string `json:"email" binding:"required,email"`
Password string `json:"password" binding:"required"`
}
type UserVerifyCodeParam struct {
Email string `form:"email" binding:"required,email"`
}
type UserPassParam struct {
Email string `json:"email"`
Code string `json:"code"`
Password string `json:"password"`
Email string `json:"email" binding:"required,email"`
Code string `json:"code" binding:"required,len=6"`
Password string `json:"password" binding:"required"`
}
type UserMailParam struct {
Email string `json:"email"`
Code string `json:"code"`
NewEmail string `json:"newEmail"`
Email string `json:"email" binding:"required,email"`
Code string `json:"code" binding:"required,len=6"`
NewEmail string `json:"newEmail" binding:"required,email"`
}
type UserInfo struct {