package petsLy import ( "context" "duoduo/conf" "duoduo/models/mysqlLy" "duoduo/models/petsLy" "duoduo/tools" "duoduo/tools/app" "encoding/json" "fmt" "github.com/gin-gonic/gin" "github.com/qiniu/go-sdk/v7/auth/qbox" "github.com/qiniu/go-sdk/v7/storage" "time" ) func PetsCreate(c *gin.Context) { var inData petsLy.PetsCreateRequest var pets mysqlLy.Pets var user 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 } fmt.Println("%+v", inData) //校验 user.OpenID = inData.OpenId userInfo, err := user.Get() if err != nil { app.Error(c, 500, err, "用户信息错误") return } var pictures []string for i := 0; i < len(inData.Pictures); i++ { //fmt.Println(inData.Pictures[i]) //上传图片 timeUnixNano := time.Now().UnixNano() //单位纳秒 fileName := fmt.Sprintf("%d.jpg", timeUnixNano) //七牛云上传图片 bucket := "imgxx" key := "lingyang/" + 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{} //data, err := base64.RawStdEncoding.DecodeString(inData.Pictures[i]) //if err != nil { // app.Error(c, 500, err, "上传图片失败") // return //} err = baseUploader.Put(context.Background(), &ret, upToken, key, []byte(inData.Pictures[i]), nil) if err != nil { app.Error(c, 500, err, "上传图片失败") return } pictures = append(pictures, "http://lingyang.shisanmiao.com/"+key) } pets.UpdateTime = time.Now().Local() pets.CreateTime = time.Now().Local() pets.Name = inData.Name pets.Sex = inData.Sex pets.Status = 1 //待领养 pets.UserID = userInfo.ID pets.Amount = inData.Amount pets.AdoptInfo = inData.AdoptInfo pets.Age = inData.Age pets.Area = inData.Area pets.City = inData.City pets.Deposit = inData.Deposit if inData.IsFee == 2 { pets.DepositDate, err = tools.GetStringToTime(inData.DepositDate) if err != nil { app.Error(c, 500, err, "") return } } pets.IsExpellingParasite = inData.IsExpellingParasite pets.IsFee = inData.IsFee pets.IsImmune = inData.IsImmune pets.IsSterilization = inData.IsSterilization pets.Pet = inData.Pet pets.PetDes = inData.PetDes pets.PetInfo = inData.PetInfo pets.PetStatus = inData.PetStatus jsonData, err := json.Marshal(pictures) if err != nil { app.Error(c, 500, err, "") return } pets.Pictures = string(jsonData) pets.Province = inData.Province _, err = pets.Create() if err != nil { app.Error(c, 500, err, "插入数据失败") return } app.OK(c, nil, app.Success) }