| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- 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
 
- 	pets.OpenId = inData.OpenId
 
- 	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)
 
- }
 
 
  |