package userLy import ( "context" "duoduo/conf" "duoduo/models/mysqlLy" "duoduo/models/userLy" "duoduo/tools/app" "fmt" "github.com/gin-gonic/gin" "github.com/qiniu/go-sdk/v7/auth/qbox" "github.com/qiniu/go-sdk/v7/storage" "time" ) func UserInfoUpdate(c *gin.Context) { var inData userLy.UserInfoUpdateRequest var sql mysqlLy.User err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } confIni, err := conf.ConnIni() if err != nil { app.Error(c, 400, err, err.Error()) return } if inData.Pictures != "" { //图片上传 timeUnixNano := time.Now().UnixNano() //单位纳秒 fileName := fmt.Sprintf("%d.jpg", timeUnixNano) //七牛云上传图片 bucket := "imgxx" key := "lingyang-head/" + inData.OpenId + "/" + fileName putPolicy := storage.PutPolicy{ Scope: bucket, } mac := qbox.NewMac(confIni.MustValue("ly-qn", "access_key"), confIni.MustValue("ly-qn", "secret_key")) upToken := putPolicy.UploadToken(mac) cfg := storage.Config{} // 空间对应的机房 cfg.Zone = &storage.ZoneHuanan // 是否使用https域名 cfg.UseHTTPS = false // 上传是否使用CDN上传加速 cfg.UseCdnDomains = false // 构建表单上传的对象 baseUploader := storage.NewBase64Uploader(&cfg) ret := storage.PutRet{} err = baseUploader.Put(context.Background(), &ret, upToken, key, []byte(inData.Pictures), nil) if err != nil { app.Error(c, 500, err, "上传图片失败") return } inData.AvatarUrl = "http://lingyang.shisanmiao.com/" + key } sql.OpenID = inData.OpenId sql.WxCode = inData.WxCode sql.Phone = inData.Phone sql.NickName = inData.NickName sql.AvatarUrl = inData.AvatarUrl _, err = sql.Update() if err != nil { app.Error(c, 500, err, err.Error()) return } app.OK(c, nil, app.Success) }