浏览代码

edit poster haibao function

abiao 5 年之前
父节点
当前提交
9a8b6497d5

+ 87 - 28
go/gopath/src/fohow.com/apps/controllers/poster_controller/poster_controller.go

@@ -61,42 +61,101 @@ func (self *PosterController) GetPosterXcxQrcode() {
 	wxUser := self.GetCurrentWxUser(true)
 	if wxUser != nil {
 		wxHead = GetCdnFullImgUrl(wxUser.Head)
-	}
+	} else {
+		if posterQrcodeRecord == nil {
+			homeUrl := fmt.Sprintf("pages/start/start")
+			width, _ := self.GetInt("width", 430)
+			scene := fmt.Sprintf("%s$%d$%d", _type, id, wxUid)
+			qrcodeData := wx_mp.GenerateQrcode(wx_mp.QR_SCENE, homeUrl, scene, width)
+			//if len(qrcodeData) < 400 {
+			//self.ReturnError(403, apps.Error, "", nil)
+			//}
+			filename := fmt.Sprintf("p_%d.jpg", time.Now().Unix())
+			localPath := fmt.Sprintf("%s/%s", beego.AppConfig.String("QrcodePath"), filename)
+			err := ioutil.WriteFile(localPath, qrcodeData, 0644)
+
+			if err != nil {
+				beego.BeeLogger.Error(err.Error())
+			}
+
+			uploadPath := fmt.Sprintf("qrcode_path/poster/%s", filename)
+			//上传到阿里云原目录下面
+			err = ali_oss.PutObjectFromFile(beego.AppConfig.String("AliOssEndPoint"),
+				beego.AppConfig.String("AliOssAccessId"),
+				beego.AppConfig.String("AliOssAccessSecret"),
+				beego.AppConfig.String("AliOssBucket"), "", uploadPath, localPath)
+
+			if err != nil {
+				beego.BeeLogger.Error("Upload Pngs err: %s", err)
+			} else {
+				qrcodeUrl = GetCdnFullImgUrl(uploadPath)
+			}
+
+			new(poster_model.PosterQrcodeRecord).Create(wxUid, id, id, _type, uploadPath)
 
-	if posterQrcodeRecord == nil {
-		homeUrl := fmt.Sprintf("pages/start/start")
-		width, _ := self.GetInt("width", 430)
-		scene := fmt.Sprintf("%s$%d$%d", _type, id, wxUid)
-		qrcodeData := wx_mp.GenerateQrcode(wx_mp.QR_SCENE, homeUrl, scene, width)
-		//if len(qrcodeData) < 400 {
-		//self.ReturnError(403, apps.Error, "", nil)
-		//}
-		filename := fmt.Sprintf("p_%d.jpg", time.Now().Unix())
-		localPath := fmt.Sprintf("%s/%s", beego.AppConfig.String("QrcodePath"), filename)
-		err := ioutil.WriteFile(localPath, qrcodeData, 0644)
-
-		if err != nil {
-			beego.BeeLogger.Error(err.Error())
+		} else {
+			qrcodeUrl = GetCdnFullImgUrl(posterQrcodeRecord.QrcodeUrl)
 		}
+	}
 
-		uploadPath := fmt.Sprintf("qrcode_path/poster/%s", filename)
-		//上传到阿里云原目录下面
-		err = ali_oss.PutObjectFromFile(beego.AppConfig.String("AliOssEndPoint"),
-			beego.AppConfig.String("AliOssAccessId"),
-			beego.AppConfig.String("AliOssAccessSecret"),
-			beego.AppConfig.String("AliOssBucket"), "", uploadPath, localPath)
+	type Ret struct {
+		QrcodeUrl string `json:"qrcode_url"`
+		WxHead    string `json:"wx_head"`
+	}
 
-		if err != nil {
-			beego.BeeLogger.Error("Upload Pngs err: %s", err)
-		} else {
-			qrcodeUrl = GetCdnFullImgUrl(uploadPath)
-		}
+	self.Data["json"] = &Ret{QrcodeUrl: qrcodeUrl, WxHead: wxHead}
+	self.ServeJSON()
+}
+
+func (self *PosterController) UpdatePosterXcxQrcode() {
+
+	_type := self.GetString("type", "poster")
 
-		new(poster_model.PosterQrcodeRecord).Create(wxUid, id, id, _type, uploadPath)
+	_id := self.Ctx.Input.Param(":tid")
+	id, _ := strconv.ParseInt(_id, 10, 64)
+	useCache, _ := self.GetBool("cache", true)
 
+	wxUid := self.GetCurrentWxUserId()
+
+	posterQrcodeRecord := poster_model.GetPosterQrcodeRecordByWIdAndTypeAndRId(wxUid, id, _type, useCache)
+
+	var qrcodeUrl string
+	var wxHead string
+
+	wxUser := self.GetCurrentWxUser(true)
+	if wxUser == nil {
+		return
+	}
+
+	homeUrl := fmt.Sprintf("pages/start/start")
+	width, _ := self.GetInt("width", 430)
+	scene := fmt.Sprintf("%s$%d$%d", _type, id, wxUid)
+	qrcodeData := wx_mp.GenerateQrcode(wx_mp.QR_SCENE, homeUrl, scene, width)
+	//if len(qrcodeData) < 400 {
+	//self.ReturnError(403, apps.Error, "", nil)
+	//}
+	filename := fmt.Sprintf("p_%d.jpg", time.Now().Unix())
+	localPath := fmt.Sprintf("%s/%s", beego.AppConfig.String("QrcodePath"), filename)
+	err := ioutil.WriteFile(localPath, qrcodeData, 0644)
+
+	if err != nil {
+		beego.BeeLogger.Error(err.Error())
+	}
+
+	uploadPath := fmt.Sprintf("qrcode_path/poster/%s", filename)
+	//上传到阿里云原目录下面
+	err = ali_oss.PutObjectFromFile(beego.AppConfig.String("AliOssEndPoint"),
+		beego.AppConfig.String("AliOssAccessId"),
+		beego.AppConfig.String("AliOssAccessSecret"),
+		beego.AppConfig.String("AliOssBucket"), "", uploadPath, localPath)
+
+	if err != nil {
+		beego.BeeLogger.Error("Upload Pngs err: %s", err)
 	} else {
-		qrcodeUrl = GetCdnFullImgUrl(posterQrcodeRecord.QrcodeUrl)
+		qrcodeUrl = GetCdnFullImgUrl(uploadPath)
 	}
+	posterQrcodeRecord.QrcodeUrl = qrcodeUrl
+	posterQrcodeRecord.Save()
 
 	type Ret struct {
 		QrcodeUrl string `json:"qrcode_url"`

+ 1 - 0
go/gopath/src/fohow.com/routers/routes.go

@@ -234,6 +234,7 @@ func init() {
 	beego.Router("/v1/poster/:tid([0-9]+)", &poster_controller.PosterController{}, "get:GetPosterXcxQrcode")
 	beego.Router("/v1/poster/scan", &poster_controller.PosterController{}, "get:ScanPosterXcxQrcode")
 	beego.Router("/v1/poster/test", &poster_controller.PosterController{}, "get:TestGeneratePoster")
+	beego.Router("/v1/update/poster/:tid([0-9]+)", &poster_controller.PosterController{}, "put:UpdatePosterXcxQrcode")
 
 	//测试接口
 	beego.Router("/v1/test/wxpay/eppay", &railsadmin_controller.RailsadminController{}, "get:TestEpPay")