| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | package petsLyimport (	"context"	"duoduo/conf"	"duoduo/models/mysqlLy"	"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"	"github.com/shopspring/decimal"	"os"	"strconv"	"time")func CreateUpload(c *gin.Context) {	confIni, err := conf.ConnIni()	if err != nil {		app.Error(c, 400, err, err.Error())		return	}	form, err := c.MultipartForm()	if err != nil {		app.Error(c, 400, err, err.Error())		return	}	files := form.File["files"]	openId := c.PostForm("open_id")	name := c.PostForm("name")	pet := c.PostForm("pet")	age := c.PostForm("age")	sex := c.PostForm("sex")	petDes := c.PostForm("pet_des")	if openId == "" || name == "" || pet == "" || age == "" || sex == "" || petDes == "" {		app.Error(c, 400, err, "必填字段为空值")		return	}	petStatus := c.PostForm("pet_status")	petStatusN, _ := strconv.Atoi(petStatus)	isSterilization := c.PostForm("is_sterilization")	isSterilizationN, _ := strconv.Atoi(isSterilization)	isExpellingParasite := c.PostForm("is_expelling_parasite")	isExpellingParasiteN, _ := strconv.Atoi(isExpellingParasite)	isImmune := c.PostForm("is_immune")	isImmuneN, _ := strconv.Atoi(isImmune)	isFee := c.PostForm("is_fee")	isFeeN, _ := strconv.Atoi(isFee)	if petStatusN == 0 || isSterilizationN == 0 || isExpellingParasiteN == 0 || isImmuneN == 0 || isFeeN == 0 {		app.Error(c, 400, err, "必填状态为空值")		return	}	deposit := c.PostForm("deposit")	depositDate := c.PostForm("deposit_date")	amount := c.PostForm("amount")	if isFeeN == 2 && (deposit == "" || depositDate == "") {		app.Error(c, 400, err, "押金信息未填写")		return	}	if isFeeN == 3 && amount == "" {		app.Error(c, 400, err, "金额信息未填写")		return	}	province := c.PostForm("province")	city := c.PostForm("city")	area := c.PostForm("area")	petInfo := c.PostForm("pet_info")	adoptInfo := c.PostForm("adopt_info")	if province == "" || city == "" || area == "" || petInfo == "" || adoptInfo == "" {		app.Error(c, 400, err, "必填状态为空值!")		return	}	user := mysqlLy.User{}	user.OpenID = openId	userInfo, err := user.Get()	if err != nil {		app.Error(c, 500, err, "用户信息错误")		return	}	var pictures []string	for _, file := range files {		timeUnixNano := time.Now().UnixNano() 		fileName := fmt.Sprintf("%d-%s.jpg", timeUnixNano, openId)		err := c.SaveUploadedFile(file, "./"+fileName)		if err != nil {			app.Error(c, 500, err, "保存图片失败")			return		}						bucket := "imgxx"		key := "lingyang/" + 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				cfg.UseHTTPS = false				cfg.UseCdnDomains = false				formUploader := storage.NewFormUploader(&cfg)		ret := storage.PutRet{}														err = formUploader.PutFile(context.Background(), &ret, upToken, key, "./"+fileName, nil)		if err != nil {			app.Error(c, 500, err, "上传图片失败")			return		}		fmt.Println(ret.Key, ret.Hash)		err = os.Remove("./" + fileName)		if err != nil {			app.Error(c, 500, err, "删除图片失败")			return		}		pictures = append(pictures, "http://lingyang.shisanmiao.com/"+key)	}	sqlData := mysqlLy.Pets{}	sqlData.Province = province	picture, err := json.Marshal(pictures)	if err != nil {		app.Error(c, 500, err, err.Error())		return	}	sqlData.Pictures = string(picture)	sqlData.PetStatus = petStatusN	sqlData.PetInfo = petInfo	sqlData.PetDes = petDes	sqlData.IsSterilization = isSterilizationN	sqlData.IsImmune = isImmuneN	sqlData.IsFee = isFeeN	sqlData.IsExpellingParasite = isExpellingParasiteN	sqlData.DepositDate, _ = time.Parse("2006-01-02", depositDate)	sqlData.Deposit, _ = decimal.NewFromString(deposit)	sqlData.City = city	sqlData.Area = area	sqlData.Age = age	sqlData.AdoptInfo = adoptInfo	sqlData.Amount, _ = decimal.NewFromString(amount)	sqlData.UserID = userInfo.ID	sqlData.Status = 1 	sqlData.Sex = sex	sqlData.Name = name	sqlData.CreateTime = time.Now().Local()	sqlData.UpdateTime = time.Now().Local()	_, err = sqlData.Create()	if err != nil {		app.Error(c, 500, err, "插入数据失败")		return	}	app.OK(c, nil, "成功")																				}
 |