188 lines
3.9 KiB
Go
188 lines
3.9 KiB
Go
|
package qr
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"fmt"
|
||
|
"github.com/fonchain_enterprise/fonchain-common-client/cmd/config"
|
||
|
"github.com/fonchain_enterprise/fonchain-common-client/pkg/common/utils"
|
||
|
"github.com/fonchain_enterprise/fonchain-common-client/pkg/service"
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"github.com/gin-gonic/gin/binding"
|
||
|
"github.com/skip2/go-qrcode"
|
||
|
"net/url"
|
||
|
)
|
||
|
|
||
|
//CreateQr 直接生成二维码
|
||
|
func Upload(c *gin.Context) {
|
||
|
|
||
|
realUrl := c.Query("url")
|
||
|
logo := c.Query("logo")
|
||
|
if realUrl == "" {
|
||
|
service.Error(c, errors.New("not real url"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
realUrl, err := url.QueryUnescape(realUrl)
|
||
|
if err != nil {
|
||
|
service.Error(c, errors.New("url解码错误"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
logo, err = url.QueryUnescape(logo)
|
||
|
if err != nil {
|
||
|
service.Error(c, errors.New("logo解码错误"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
fmt.Println("url真实连接是-------", realUrl)
|
||
|
s, err := utils.CreateQr(realUrl, logo, qrcode.Medium, 120)
|
||
|
if err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.Writer.Header().Set("content-type", "image/apng")
|
||
|
if _, err = c.Writer.WriteString(s); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//CreateQr 直接生成二维码
|
||
|
func CreateQr(c *gin.Context) {
|
||
|
|
||
|
type AuctionBuyListTemp struct {
|
||
|
Url string `form:"url"`
|
||
|
Logo string `form:"logo"`
|
||
|
Size int `form:"size" default:"120"`
|
||
|
Level int `form:"level" default:"1"`
|
||
|
}
|
||
|
|
||
|
var tempReq AuctionBuyListTemp
|
||
|
|
||
|
if err := c.ShouldBindWith(&tempReq, binding.Query); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
fmt.Println(tempReq)
|
||
|
realUrl := tempReq.Url
|
||
|
logo := tempReq.Logo
|
||
|
if realUrl == "" {
|
||
|
service.Error(c, errors.New("not real url"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if tempReq.Level > int(qrcode.Highest) {
|
||
|
tempReq.Level = int(qrcode.Highest)
|
||
|
}
|
||
|
|
||
|
if tempReq.Level > int(qrcode.Low) {
|
||
|
tempReq.Level = int(qrcode.Low)
|
||
|
}
|
||
|
|
||
|
realUrl, err := url.QueryUnescape(realUrl)
|
||
|
if err != nil {
|
||
|
service.Error(c, errors.New("url解码错误"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
logo, err = url.QueryUnescape(logo)
|
||
|
if err != nil {
|
||
|
service.Error(c, errors.New("logo解码错误"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
fmt.Println("url真实连接是-------", realUrl)
|
||
|
s, err := utils.CreateQr(realUrl, logo, qrcode.RecoveryLevel(tempReq.Level), tempReq.Size)
|
||
|
if err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.Writer.Header().Set("content-type", "image/apng")
|
||
|
if _, err = c.Writer.WriteString(s); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//CreateRedirectQr 生成重定向二维码
|
||
|
func CreateRedirectQr(c *gin.Context) {
|
||
|
|
||
|
realUrl := c.Query("url")
|
||
|
logo := c.Query("logo")
|
||
|
if realUrl == "" {
|
||
|
service.Error(c, errors.New("not real url"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
s, err := utils.CreateQr(config.AppConfig.System.Host+config.AppConfig.System.RedirectUri+"?base_redirect_url="+url.QueryEscape(realUrl), logo, qrcode.Low, 120)
|
||
|
if err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.Writer.Header().Set("content-type", "image/apng")
|
||
|
if _, err = c.Writer.WriteString(s); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//CreateQrBase64 直接生成二维码
|
||
|
func CreateQrBase64(c *gin.Context) {
|
||
|
|
||
|
realUrl := c.Query("url")
|
||
|
logo := c.Query("logo")
|
||
|
if realUrl == "" {
|
||
|
service.Error(c, errors.New("not real url"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
s, err := utils.CreateQrBase64(realUrl, logo)
|
||
|
if err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.Writer.Header().Set("content-type", "image/apng")
|
||
|
if _, err = c.Writer.WriteString(s); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//CreateRedirectQrBase64 生成重定向二维码
|
||
|
func CreateRedirectQrBase64(c *gin.Context) {
|
||
|
|
||
|
realUrl := c.Query("url")
|
||
|
logo := c.Query("logo")
|
||
|
if realUrl == "" {
|
||
|
service.Error(c, errors.New("not real url"))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
s, err := utils.CreateQrBase64(config.AppConfig.System.Host+config.AppConfig.System.RedirectUri+"?base_redirect_url="+url.QueryEscape(realUrl), logo)
|
||
|
if err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.Writer.Header().Set("content-type", "image/apng")
|
||
|
if _, err = c.Writer.WriteString(s); err != nil {
|
||
|
service.Error(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|