|
@@ -16,6 +16,7 @@ import (
|
|
|
"jy/src/jfw/config"
|
|
|
"log"
|
|
|
"net/http"
|
|
|
+ "net/url"
|
|
|
"sync"
|
|
|
"time"
|
|
|
)
|
|
@@ -71,13 +72,32 @@ func (m *Material) LinkTransfer(mid, personChannel string) error {
|
|
|
addLog(sess, m.Request, mlid, types, personChannel, realUrl)
|
|
|
|
|
|
if types == 1 && imgWebpage != "" {
|
|
|
+ if hasParameters(imgWebpage) { //链接带参
|
|
|
+ imgWebpage = fmt.Sprintf("%s&material_id=%d&pcode=%s&types=%d&tp=material", imgWebpage, mlid, personChannel, types)
|
|
|
+ } else {
|
|
|
+ imgWebpage = fmt.Sprintf("%s?material_id=%d&pcode=%s&types=%d&tp=material", imgWebpage, mlid, personChannel, types)
|
|
|
+ }
|
|
|
return m.Redirect(imgWebpage)
|
|
|
} else if types == 0 && realUrl != "" {
|
|
|
+ if hasParameters(realUrl) { //链接带参
|
|
|
+ realUrl = fmt.Sprintf("%s&material_id=%d&pcode=%s&types=%d&tp=material", realUrl, mlid, personChannel, types)
|
|
|
+ } else {
|
|
|
+ realUrl = fmt.Sprintf("%s?material_id=%d&pcode=%s&types=%d&tp=material", realUrl, mlid, personChannel, types)
|
|
|
+ }
|
|
|
return m.Redirect(realUrl)
|
|
|
}
|
|
|
return m.Redirect(util.InterfaceToStr(config.Sysconfig["webdomain"]))
|
|
|
}
|
|
|
|
|
|
+func hasParameters(rawURL string) bool {
|
|
|
+ u, err := url.Parse(rawURL)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Printf("解析错误: %v\n", err)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return u.RawQuery != "" // 关键判断
|
|
|
+}
|
|
|
+
|
|
|
func ImageToBase64(img image.Image, format string) (string, error) {
|
|
|
var buf bytes.Buffer
|
|
|
switch format {
|