v1.0.0
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"sun-panel/api/api_v1/common/apiData/systemApiStructs"
|
||||
"sun-panel/api/api_v1/common/apiReturn"
|
||||
"sun-panel/api/api_v1/common/base"
|
||||
"sun-panel/global"
|
||||
"sun-panel/lib/cmn"
|
||||
"sun-panel/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
)
|
||||
|
||||
type UserApi struct{}
|
||||
|
||||
func (a *UserApi) GetInfo(c *gin.Context) {
|
||||
userInfo, _ := base.GetCurrentUserInfo(c)
|
||||
apiReturn.SuccessData(c, gin.H{
|
||||
"userId": userInfo.ID,
|
||||
"id": userInfo.ID,
|
||||
"headImage": userInfo.HeadImage,
|
||||
"name": userInfo.Name,
|
||||
"role": userInfo.Role,
|
||||
// "token": userInfo.Token,
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
// 修改资料
|
||||
func (a *UserApi) UpdateInfo(c *gin.Context) {
|
||||
userInfo, _ := base.GetCurrentUserInfo(c)
|
||||
type UpdateUserInfoStruct struct {
|
||||
HeadImage string `json:"headImage"`
|
||||
Name string `json:"name" validate:"max=15,min=3,required"`
|
||||
}
|
||||
params := UpdateUserInfoStruct{}
|
||||
|
||||
err := c.ShouldBindBodyWith(¶ms, binding.JSON)
|
||||
if err != nil {
|
||||
apiReturn.ErrorParamFomat(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if errMsg, err := base.ValidateInputStruct(¶ms); err != nil {
|
||||
apiReturn.ErrorParamFomat(c, errMsg)
|
||||
return
|
||||
}
|
||||
|
||||
mUser := models.User{}
|
||||
err = mUser.UpdateUserInfoByUserId(userInfo.ID, map[string]interface{}{
|
||||
"head_image": params.HeadImage,
|
||||
"name": params.Name,
|
||||
})
|
||||
// 删除缓存
|
||||
global.UserToken.Delete(userInfo.Token)
|
||||
if err != nil {
|
||||
apiReturn.ErrorDatabase(c, err.Error())
|
||||
}
|
||||
apiReturn.Success(c)
|
||||
}
|
||||
|
||||
// 修改密码
|
||||
func (a *UserApi) UpdatePasssword(c *gin.Context) {
|
||||
type UpdatePasssStruct struct {
|
||||
OldPassword string `json:"oldPassword"`
|
||||
NewPassword string `json:"newPassword"`
|
||||
}
|
||||
|
||||
params := UpdatePasssStruct{}
|
||||
|
||||
err := c.ShouldBindBodyWith(¶ms, binding.JSON)
|
||||
if err != nil {
|
||||
apiReturn.ErrorParamFomat(c, err.Error())
|
||||
return
|
||||
}
|
||||
userInfo, _ := base.GetCurrentUserInfo(c)
|
||||
mUser := models.User{}
|
||||
if v, err := mUser.GetUserInfoByUid(userInfo.ID); err != nil {
|
||||
apiReturn.ErrorParamFomat(c, err.Error())
|
||||
return
|
||||
} else {
|
||||
if v.Password != cmn.PasswordEncryption(params.OldPassword) {
|
||||
// 旧密码不正确
|
||||
apiReturn.Error(c, global.Lang.Get("user.api_old_pass_error"))
|
||||
return
|
||||
}
|
||||
}
|
||||
res := global.Db.Model(&models.User{}).Where("id", userInfo.ID).Updates(map[string]interface{}{
|
||||
"password": cmn.PasswordEncryption(params.NewPassword),
|
||||
"token": "",
|
||||
})
|
||||
if res.Error != nil {
|
||||
apiReturn.ErrorDatabase(c, res.Error.Error())
|
||||
return
|
||||
}
|
||||
// 删除token
|
||||
global.UserToken.Delete(userInfo.Token)
|
||||
apiReturn.Success(c)
|
||||
}
|
||||
|
||||
// 获取推荐码
|
||||
func (a *UserApi) GetReferralCode(c *gin.Context) {
|
||||
currentUserInfo, _ := base.GetCurrentUserInfo(c)
|
||||
mUser := models.User{}
|
||||
userInfo, err := mUser.GetUserInfoByUid(currentUserInfo.ID)
|
||||
if err != nil {
|
||||
apiReturn.ErrorDatabase(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// 为空生成一个
|
||||
if userInfo.ReferralCode == "" {
|
||||
for {
|
||||
referralCode := cmn.BuildRandCode(8, cmn.RAND_CODE_MODE2)
|
||||
global.Logger.Debug("referralCode:", referralCode)
|
||||
|
||||
// 查询是否有重复的
|
||||
if row := global.Db.Find(&userInfo, "referral_code=?", referralCode).RowsAffected; row != 0 {
|
||||
apiReturn.ErrorDatabase(c, err.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
// 创建新的邀请码
|
||||
if err := global.Db.Model(&models.User{}).Where("id=?", userInfo.ID).Update("referral_code", referralCode).Error; err != nil {
|
||||
apiReturn.ErrorDatabase(c, err.Error())
|
||||
return
|
||||
} else {
|
||||
userInfo.ReferralCode = referralCode
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
apiReturn.SuccessData(c, systemApiStructs.GetReferralCodeResp{ReferralCode: userInfo.ReferralCode})
|
||||
}
|
||||
Reference in New Issue
Block a user