123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- 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)
- }
|