wangfei 6 years ago
parent
commit
37de165c07

+ 31
- 39
controllers/component.go View File

1
 package controllers
1
 package controllers
2
 
2
 
3
 import (
3
 import (
4
+	"bytes"
4
 	"encoding/base64"
5
 	"encoding/base64"
5
 	"encoding/json"
6
 	"encoding/json"
6
-	"encoding/xml"
7
 	"io/ioutil"
7
 	"io/ioutil"
8
 	"net/http"
8
 	"net/http"
9
-	"strconv"
10
 	"wechat-conf/models"
9
 	"wechat-conf/models"
11
 	"wechat-conf/models/model"
10
 	"wechat-conf/models/model"
12
 	"wechat-conf/service/autoreply"
11
 	"wechat-conf/service/autoreply"
17
 
16
 
18
 	"github.com/kinisky564477/wechat/component"
17
 	"github.com/kinisky564477/wechat/component"
19
 
18
 
20
-	"github.com/zjxpcyc/wechat/core"
19
+	"github.com/kinisky564477/wechat/core"
21
 )
20
 )
22
 
21
 
23
 // WechatController 用户
22
 // WechatController 用户
224
 		replay, err = c.serv.GetAutoReplayByAppID(appid, content)
223
 		replay, err = c.serv.GetAutoReplayByAppID(appid, content)
225
 		break
224
 		break
226
 	case "event":
225
 	case "event":
227
-		if val["Event"] == "subscribe" {
226
+		beego.Error(val)
227
+		switch val["Event"] {
228
+		case "subscribe":
228
 			replay, err = c.serv.GetSubscribeByAppID(appid)
229
 			replay, err = c.serv.GetSubscribeByAppID(appid)
230
+			break
231
+		case "LICK":
232
+			// 点击事件
233
+
229
 		}
234
 		}
235
+
230
 		break
236
 		break
231
 	}
237
 	}
232
 	if err != nil {
238
 	if err != nil {
237
 		c.ResponseRaw([]byte(""))
243
 		c.ResponseRaw([]byte(""))
238
 	}
244
 	}
239
 	openID := val["FromUserName"]
245
 	openID := val["FromUserName"]
240
-	signature := c.GetString("msg_signature")
241
-	nonce := c.GetString("nonce")
242
-	timestamp, _ := strconv.Atoi(c.GetString("timestamp"))
243
-	beego.Error("signature:", signature, ",nonce:", nonce, ",timestamp:", timestamp)
244
-	message, err := c.getReplayMessage(replay, openID, AESKey, wechat)
246
+	message, err := c.getReplayMessage(replay, openID, wechat)
245
 	if err != nil {
247
 	if err != nil {
246
 		utils.LogError("转换回复信息失败: " + err.Error())
248
 		utils.LogError("转换回复信息失败: " + err.Error())
247
 		c.ResponseRaw([]byte(""))
249
 		c.ResponseRaw([]byte(""))
248
 	}
250
 	}
249
-	// message, err = utils.AesEncrypt(message, AESKey)
250
-	// if err != nil {
251
-	// 	utils.LogError("加密失败:", err)
252
-	// 	c.ResponseRaw([]byte(""))
253
-	// }
254
-	// beego.Error(string(message))
255
-	// data := PassiveMessage{
256
-	// 	Encrypt:      component.CDATA{string(message)},
257
-	// 	MsgSignature: component.CDATA{signature},
258
-	// 	TimeStamp:    int64(timestamp),
259
-	// 	Nonce:        component.CDATA{nonce},
260
-	// }
261
-	// beego.Error(data)
262
-	// res, err := xml.Marshal(data)
263
-	// beego.Error(err)
264
-	// beego.Error(string(res))
265
-	c.ResponseRaw(message)
266
-	c.DestroyContext()
267
-	c.StopRun()
268
-}
269
 
251
 
270
-// PassiveMessage 加密后的返回信息
271
-type PassiveMessage struct {
272
-	XMLName      xml.Name        `xml:"xml"`
273
-	Encrypt      component.CDATA `xml:"Encrypt"`
274
-	MsgSignature component.CDATA `xml:"MsgSignature"`
275
-	TimeStamp    int64           `xml:"TimeStamp"`
276
-	Nonce        component.CDATA `xml:"Nonce"`
252
+	cipher, err := core.NewCipher(utils.Component.GetToken(), EncodingAESKey, appid)
253
+	if err != nil {
254
+		utils.LogError("获取解密失败: " + err.Error())
255
+		c.ResponseRaw([]byte(""))
256
+	}
257
+
258
+	dt := bytes.NewBuffer([]byte{})
259
+	cipher.Encrypt(dt, []byte(message))
260
+	beego.Error("=========>", dt)
261
+
262
+	c.ResponseRaw(dt.Bytes())
263
+	// c.ResponseRaw([]byte("success"))
277
 }
264
 }
278
 
265
 
279
-func (c *WechatController) getReplayMessage(replay *model.TaAutoReply, openid string, Aeskey []byte, wx *component.WxClient) ([]byte, error) {
266
+func (c *WechatController) getReplayMessage(replay *model.TaAutoReply, openid string, wx *component.WxClient) ([]byte, error) {
280
 	switch replay.MessageType {
267
 	switch replay.MessageType {
281
 	case models.MESSAGE_TYPE_PARAGRAPH:
268
 	case models.MESSAGE_TYPE_PARAGRAPH:
282
 		msg, err := wx.ResponseMessageText(openid, replay.MessageParagraph)
269
 		msg, err := wx.ResponseMessageText(openid, replay.MessageParagraph)
322
 }
309
 }
323
 
310
 
324
 // GetWechatMenuByAppID 获取菜单
311
 // GetWechatMenuByAppID 获取菜单
325
-func (c *WechatController) GetWechatMenuByAppID() {
312
+func (c *WechatController) GetMaterialByAppID() {
326
 	appid := c.GetString(":appid")
313
 	appid := c.GetString(":appid")
327
 	wxclient, err := utils.Component.GetWxClient(appid)
314
 	wxclient, err := utils.Component.GetWxClient(appid)
328
 	if err != nil {
315
 	if err != nil {
329
 		utils.LogError("获取微信信息失败: " + err.Error())
316
 		utils.LogError("获取微信信息失败: " + err.Error())
330
 		c.ResponseError(err)
317
 		c.ResponseError(err)
331
 	}
318
 	}
332
-	menus, err := wxclient.GetMenu()
319
+	var data = map[string]string{}
320
+	data["offset"] = "0"
321
+	data["type"] = "image"
322
+	data["count"] = "10"
323
+
324
+	menus, err := wxclient.GetMaterialList(data)
333
 	if err != nil {
325
 	if err != nil {
334
 		utils.LogError("获取微信详情失败: " + err.Error())
326
 		utils.LogError("获取微信详情失败: " + err.Error())
335
 		c.ResponseError(err)
327
 		c.ResponseError(err)

+ 98
- 0
controllers/wechatimg/uploadImg.go View File

1
+package wechatimg
2
+
3
+import (
4
+	"bytes"
5
+	"encoding/json"
6
+	"errors"
7
+	"io"
8
+	"io/ioutil"
9
+	"mime/multipart"
10
+	"net/http"
11
+	"os"
12
+	"path/filepath"
13
+	"time"
14
+	"wechat-conf/utils"
15
+
16
+	"github.com/astaxie/beego"
17
+)
18
+
19
+const (
20
+	WechatUploadMediaAPI = "https://api.weixin.qq.com/cgi-bin/material/add_material"
21
+)
22
+
23
+var (
24
+	HttpRequstTimeOut time.Duration
25
+)
26
+
27
+type MediaUpload struct {
28
+	ErrCode   int    `json:"errcode"`
29
+	ErrMgs    string `json:"errmsg"`
30
+	Type      string `json:"type"`
31
+	MediaID   string `json:"media_id"`
32
+	CreatedAt string `json:"created_at"`
33
+}
34
+
35
+func init() {
36
+	HttpRequstTimeOut, _ = time.ParseDuration("5s")
37
+}
38
+
39
+func UploaImage(token, imagePath string) (mediaid string, err error) {
40
+	file, err := os.Open(imagePath)
41
+	if err != nil {
42
+		beego.Error(err)
43
+		utils.LogError("上传图片失败:", err)
44
+		return
45
+	}
46
+	defer file.Close()
47
+	body := &bytes.Buffer{}
48
+	writer := multipart.NewWriter(body)
49
+	part, err := writer.CreateFormFile("media", filepath.Base(imagePath))
50
+	if err != nil {
51
+		beego.Error(err)
52
+		utils.LogError("上传图片失败:", err)
53
+		return
54
+	}
55
+	_, err = io.Copy(part, file)
56
+	err = writer.Close()
57
+	if err != nil {
58
+		beego.Error(err)
59
+		utils.LogError("上传图片失败:", err)
60
+		return
61
+	}
62
+
63
+	req, err := http.NewRequest("POST", WechatUploadMediaAPI, body)
64
+	req.Header.Add("Content-Type", writer.FormDataContentType())
65
+	urlQuery := req.URL.Query()
66
+	if err != nil {
67
+		beego.Error(err)
68
+		utils.LogError("上传图片失败:", err)
69
+		return
70
+	}
71
+	urlQuery.Add("access_token", token)
72
+	urlQuery.Add("type", "image")
73
+
74
+	req.URL.RawQuery = urlQuery.Encode()
75
+	client := http.Client{}
76
+	res, err := client.Do(req)
77
+	if err != nil {
78
+		beego.Error(err)
79
+		utils.LogError("上传图片失败:", err)
80
+		return
81
+	}
82
+	defer res.Body.Close()
83
+	jsonbody, _ := ioutil.ReadAll(res.Body)
84
+	media := MediaUpload{}
85
+	err = json.Unmarshal(jsonbody, &media)
86
+	if err != nil {
87
+		beego.Error(media.ErrMgs)
88
+		utils.LogError("上传图片失败:", media.ErrMgs)
89
+		return
90
+	}
91
+	if media.MediaID == "" {
92
+		beego.Error(media.ErrMgs)
93
+		err = errors.New(media.ErrMgs)
94
+		utils.LogError("上传图片失败:", media.ErrMgs)
95
+	}
96
+	mediaid = media.MediaID
97
+	return
98
+}

+ 98
- 35
controllers/wechatimg/wechatimt.go View File

1
 package wechatimg
1
 package wechatimg
2
 
2
 
3
 import (
3
 import (
4
-	"mime/multipart"
4
+	"fmt"
5
+	"io"
6
+	"os"
5
 	"strconv"
7
 	"strconv"
6
 	"time"
8
 	"time"
7
-	"unsafe"
8
 	"wechat-conf/controllers"
9
 	"wechat-conf/controllers"
9
 	"wechat-conf/models/model"
10
 	"wechat-conf/models/model"
10
 	"wechat-conf/service/sysuser"
11
 	"wechat-conf/service/sysuser"
11
 	"wechat-conf/service/wechatimg"
12
 	"wechat-conf/service/wechatimg"
12
 	"wechat-conf/utils"
13
 	"wechat-conf/utils"
14
+
15
+	"github.com/astaxie/beego"
13
 )
16
 )
14
 
17
 
15
 // WechatImgController 信息
18
 // WechatImgController 信息
27
 	c.sdao = sysuser.NewSysuserServ(c.Context)
30
 	c.sdao = sysuser.NewSysuserServ(c.Context)
28
 }
31
 }
29
 
32
 
33
+func (c *WechatImgController) GetWechatImgCount() {
34
+	user := c.Context.Get("user").(*model.SysUser)
35
+	appid, err := c.sdao.GetAppIdByOrgId(user.OrgId)
36
+	if err != nil {
37
+		c.ResponseError(err)
38
+	}
39
+	// appid := c.GetString(":appid")
40
+	wxclient, err := utils.Component.GetWxClient(appid)
41
+	if err != nil {
42
+		utils.LogError("获取微信信息失败: " + err.Error())
43
+		c.ResponseError(err)
44
+	}
45
+
46
+	count, err := wxclient.GetMaterialCount()
47
+	if err != nil {
48
+		utils.LogError("获取微信详情失败: " + err.Error())
49
+		c.ResponseError(err)
50
+	}
51
+	matype := c.GetString(":type")
52
+	c.ResponseJSON(count[matype+"_count"])
53
+}
54
+
30
 func (c *WechatImgController) GetWechatImgList() {
55
 func (c *WechatImgController) GetWechatImgList() {
31
 	user := c.Context.Get("user").(*model.SysUser)
56
 	user := c.Context.Get("user").(*model.SysUser)
32
-	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
57
+	appid, err := c.sdao.GetAppIdByOrgId(user.OrgId)
33
 	if err != nil {
58
 	if err != nil {
34
 		c.ResponseError(err)
59
 		c.ResponseError(err)
35
 	}
60
 	}
36
-	client, err := utils.Component.GetWxClient(appId)
61
+	// appid := c.GetString(":appid")
62
+	wxclient, err := utils.Component.GetWxClient(appid)
37
 	if err != nil {
63
 	if err != nil {
64
+		utils.LogError("获取微信信息失败: " + err.Error())
38
 		c.ResponseError(err)
65
 		c.ResponseError(err)
39
 	}
66
 	}
40
-	page, _ := c.GetInt("page")
41
-	pageSize, _ := c.GetInt("pagesize")
42
-	offset := page * (pageSize - 1)
43
-	var data map[string]string
44
-	data["offset"] = strconv.Itoa(offset)
45
-	data["type"] = "image"
46
-	data["count"] = strconv.Itoa(pageSize)
47
-	wechatImg, err := client.GetMaterialList(data)
67
+	var data = map[string]string{}
68
+	data["offset"] = "0"
69
+	data["type"] = c.GetString(":type")
70
+	data["count"] = "10"
71
+
72
+	wechatImgs, err := wxclient.GetMaterialList(data)
48
 	if err != nil {
73
 	if err != nil {
74
+		utils.LogError("获取微信详情失败: " + err.Error())
49
 		c.ResponseError(err)
75
 		c.ResponseError(err)
50
 	}
76
 	}
51
-	c.ResponseJSON(wechatImg)
77
+	c.ResponseJSON(wechatImgs)
52
 }
78
 }
79
+
53
 func (c *WechatImgController) SyncWechatImg() {
80
 func (c *WechatImgController) SyncWechatImg() {
54
 	user := c.Context.Get("user").(*model.SysUser)
81
 	user := c.Context.Get("user").(*model.SysUser)
55
 	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
82
 	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
56
 	if err != nil {
83
 	if err != nil {
57
 		c.ResponseError(err)
84
 		c.ResponseError(err)
58
 	}
85
 	}
86
+	// appId := c.GetString(":appid")
59
 	client, err := utils.Component.GetWxClient(appId)
87
 	client, err := utils.Component.GetWxClient(appId)
60
 	if err != nil {
88
 	if err != nil {
61
 		c.ResponseError(err)
89
 		c.ResponseError(err)
62
 	}
90
 	}
63
-	for i := 0; i < 200; i++ {
64
-		var data map[string]string
91
+
92
+	count, err := client.GetMaterialCount()
93
+	if err != nil {
94
+		c.ResponseError(err)
95
+	}
96
+
97
+	imgcount := count["image_count"].(float64)
98
+	page := int(imgcount)/20 + 1
99
+	for i := 0; i < page; i++ {
100
+		var data = map[string]string{}
65
 		offset := i * 20
101
 		offset := i * 20
66
 		data["offset"] = strconv.Itoa(offset)
102
 		data["offset"] = strconv.Itoa(offset)
67
 		data["type"] = "image"
103
 		data["type"] = "image"
74
 			break
110
 			break
75
 		}
111
 		}
76
 		err = c.dao.SyncWechatImg(wechatImg, user.OrgId)
112
 		err = c.dao.SyncWechatImg(wechatImg, user.OrgId)
77
-
78
 		if err != nil {
113
 		if err != nil {
79
 			c.ResponseError(err)
114
 			c.ResponseError(err)
80
 		}
115
 		}
81
 	}
116
 	}
82
 	c.ResponseJSON("同步成功")
117
 	c.ResponseJSON("同步成功")
83
 }
118
 }
119
+
84
 func (c *WechatImgController) AddNewImg() {
120
 func (c *WechatImgController) AddNewImg() {
121
+	file, head, err := c.Ctx.Request.FormFile("media")
122
+	if err != nil {
123
+		beego.Error(err)
124
+		c.ResponseError(err)
125
+	}
126
+	defer file.Close()
127
+
128
+	imgurl := "./upload/" + head.Filename
129
+	//创建文件
130
+	fW, err := os.Create(imgurl)
131
+	if err != nil {
132
+		fmt.Println("文件创建失败")
133
+		return
134
+	}
135
+	defer fW.Close()
136
+	_, err = io.Copy(fW, file)
137
+	if err != nil {
138
+		fmt.Println("文件保存失败")
139
+		return
140
+	}
141
+
85
 	user := c.Context.Get("user").(*model.SysUser)
142
 	user := c.Context.Get("user").(*model.SysUser)
86
-	fromFront := c.GetString("fromFront")
87
-	req := c.Ctx.Request
88
-	file, fh, err := req.FormFile(fromFront)
143
+
89
 	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
144
 	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
90
 	if err != nil {
145
 	if err != nil {
91
 		c.ResponseError(err)
146
 		c.ResponseError(err)
94
 	if err != nil {
149
 	if err != nil {
95
 		c.ResponseError(err)
150
 		c.ResponseError(err)
96
 	}
151
 	}
97
-	token := utils.Component.GetToken()
98
-	type wechatMatrial struct {
99
-		access_token string
100
-		media        multipart.File
101
-	}
102
-	var media = wechatMatrial{
103
-		access_token: token,
104
-		media:        file,
105
-	}
106
-	byteDate := *(*[]byte)(unsafe.Pointer(&media))
107
-	data, err := client.AddMaterial(byteDate, "image")
152
+
153
+	id, err := UploaImage(client.GetToken(), imgurl)
154
+
108
 	var img = model.TaWechatImg{
155
 	var img = model.TaWechatImg{
109
-		MediaId:    data["media_id"].(string),
110
-		Url:        data["url"].(string),
111
-		Name:       fh.Filename,
156
+		MediaId:    id,
157
+		Url:        imgurl,
158
+		Name:       head.Filename,
112
 		UpdateTime: time.Now(),
159
 		UpdateTime: time.Now(),
160
+		OrgId:      user.OrgId,
113
 	}
161
 	}
114
 	err = c.dao.AddWechatImg(img)
162
 	err = c.dao.AddWechatImg(img)
115
 	if err != nil {
163
 	if err != nil {
119
 
167
 
120
 }
168
 }
121
 func (c *WechatImgController) DeleteImg() {
169
 func (c *WechatImgController) DeleteImg() {
122
-	mediaId := c.GetString("mediaId")
123
-	err := c.dao.DeleteImg(mediaId)
170
+	user := c.Context.Get("user").(*model.SysUser)
171
+	appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
172
+	if err != nil {
173
+		c.ResponseError(err)
174
+	}
175
+	// appId := c.GetString(":appid")
176
+	client, err := utils.Component.GetWxClient(appId)
177
+	if err != nil {
178
+		c.ResponseError(err)
179
+	}
180
+
181
+	mediaId := c.GetString(":mediaId")
182
+	err = c.dao.DeleteImg(mediaId)
183
+	if err != nil {
184
+		c.ResponseError(err)
185
+	}
186
+	_, err = client.DelMaterial(mediaId)
124
 	if err != nil {
187
 	if err != nil {
125
 		c.ResponseError(err)
188
 		c.ResponseError(err)
126
 	}
189
 	}

+ 1
- 4
controllers/wechatmenu/wechatmenu.go View File

7
 	"wechat-conf/service/sysuser"
7
 	"wechat-conf/service/sysuser"
8
 	"wechat-conf/service/wechatmenu"
8
 	"wechat-conf/service/wechatmenu"
9
 	"wechat-conf/utils"
9
 	"wechat-conf/utils"
10
-
11
-	"github.com/astaxie/beego"
12
 )
10
 )
13
 
11
 
14
 // MenuController 信息
12
 // MenuController 信息
32
 	if err != nil {
30
 	if err != nil {
33
 		c.ResponseError(err)
31
 		c.ResponseError(err)
34
 	}
32
 	}
35
-	beego.Error(appId)
36
 	client, err := utils.Component.GetWxClient(appId)
33
 	client, err := utils.Component.GetWxClient(appId)
37
 	if err != nil {
34
 	if err != nil {
38
 		c.ResponseError(err)
35
 		c.ResponseError(err)
39
 	}
36
 	}
40
 	menu, err := client.GetMenu()
37
 	menu, err := client.GetMenu()
41
-	var code string = err.Error()
42
 	if err != nil {
38
 	if err != nil {
39
+		var code string = err.Error()
43
 		if strings.Contains(code, "46003") {
40
 		if strings.Contains(code, "46003") {
44
 			c.ResponseJSON(menu)
41
 			c.ResponseJSON(menu)
45
 		} else {
42
 		} else {

+ 1
- 1
models/model/ta_wechat_img.go View File

6
 
6
 
7
 type TaWechatImg struct {
7
 type TaWechatImg struct {
8
 	MediaId    string    `xorm:"not null pk VARCHAR(64)"`
8
 	MediaId    string    `xorm:"not null pk VARCHAR(64)"`
9
-	Name       string    `xorm:"VARCHAR(32)"`
9
+	Name       string    `xorm:"VARCHAR(100)"`
10
 	UpdateTime time.Time `xorm:"DATETIME"`
10
 	UpdateTime time.Time `xorm:"DATETIME"`
11
 	Url        string    `xorm:"TEXT"`
11
 	Url        string    `xorm:"TEXT"`
12
 	OrgId      string    `xorm:"VARCHAR(64)"`
12
 	OrgId      string    `xorm:"VARCHAR(64)"`

+ 6
- 0
models/wechatimg/wechatimg.go View File

54
 	_, err := m.db.Insert(img)
54
 	_, err := m.db.Insert(img)
55
 	return err
55
 	return err
56
 }
56
 }
57
+
58
+func (m *WechatImgDAO) AddWechatImgs(imgs []model.TaWechatImg) error {
59
+	_, err := m.db.Insert(imgs)
60
+	return err
61
+}
62
+
57
 func (m *WechatImgDAO) DeleteWechatImg(mediaId string) error {
63
 func (m *WechatImgDAO) DeleteWechatImg(mediaId string) error {
58
 	_, err := m.db.Delete(&model.TaWechatImg{MediaId: mediaId})
64
 	_, err := m.db.Delete(&model.TaWechatImg{MediaId: mediaId})
59
 	return err
65
 	return err

+ 11
- 6
routers/router.go View File

40
 			beego.NSRouter("/autoreply/:autoreplyId", &autoreply.AutoreplyController{}, "delete:DeleteAutoReply"),
40
 			beego.NSRouter("/autoreply/:autoreplyId", &autoreply.AutoreplyController{}, "delete:DeleteAutoReply"),
41
 			beego.NSRouter("/autoreply/isUse/:autoType/:isUse", &autoreply.AutoreplyController{}, "put:ChangeIsUse"),
41
 			beego.NSRouter("/autoreply/isUse/:autoType/:isUse", &autoreply.AutoreplyController{}, "put:ChangeIsUse"),
42
 			// 图片资源
42
 			// 图片资源
43
-			beego.NSRouter("/wechatimg", &wechatimg.WechatImgController{}, "get:GetWechatImgList"),
44
-			beego.NSRouter("/wechatimg/sync", &wechatimg.WechatImgController{}, "put:SyncWechatImg"),
45
-			beego.NSRouter("/wechatimg", &wechatimg.WechatImgController{}, "post:AddNewImg"),
46
-			beego.NSRouter("/wechatimg/:mediaId", &wechatimg.WechatImgController{}, "delete:DeleteImg"),
43
+			// beego.NSRouter("/wechatimg", &wechatimg.WechatImgController{}, "get:GetWechatImgList"),
44
+			// beego.NSRouter("/wechatimg/sync", &wechatimg.WechatImgController{}, "put:SyncWechatImg"),
45
+			// beego.NSRouter("/wechatimg", &wechatimg.WechatImgController{}, "post:AddNewImg"),
46
+			// beego.NSRouter("/wechatimg/:mediaId", &wechatimg.WechatImgController{}, "delete:DeleteImg"),
47
+
48
+			beego.NSRouter("/material/:type/count", &wechatimg.WechatImgController{}, "get:GetWechatImgCount"),
49
+			beego.NSRouter("/material/:type", &wechatimg.WechatImgController{}, "get:GetWechatImgList"),
50
+			beego.NSRouter("/material/:type/sync", &wechatimg.WechatImgController{}, "post:SyncWechatImg"),
51
+			beego.NSRouter("/material/image/save", &wechatimg.WechatImgController{}, "post:AddNewImg"),
52
+			beego.NSRouter("/material/:mediaId", &wechatimg.WechatImgController{}, "delete:DeleteImg"),
53
+
47
 			// 用户管理
54
 			// 用户管理
48
 			beego.NSRouter("/sysuser", &sysuser.SysuserController{}, "get:GetUserList"),
55
 			beego.NSRouter("/sysuser", &sysuser.SysuserController{}, "get:GetUserList"),
49
 			beego.NSRouter("/sysuser/:userId", &sysuser.SysuserController{}, "get:GetUserById"),
56
 			beego.NSRouter("/sysuser/:userId", &sysuser.SysuserController{}, "get:GetUserById"),
79
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "get:ComponentPush"),
86
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "get:ComponentPush"),
80
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "get:WxReceive"),
87
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "get:WxReceive"),
81
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "post:WxReceive"),
88
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "post:WxReceive"),
82
-		// beego.NSRouter("/wechatinfo/:appid", &controllers.WechatController{}, "get:GetWechatInfoByAppID"),
83
-		beego.NSRouter("/menu/:appid", &controllers.WechatController{}, "get:GetWechatMenuByAppID"),
84
 	)
89
 	)
85
 
90
 
86
 	beego.AddNamespace(ns)
91
 	beego.AddNamespace(ns)

+ 21
- 19
service/wechatimg/wechatimg.go View File

3
 import (
3
 import (
4
 	"errors"
4
 	"errors"
5
 	"time"
5
 	"time"
6
+	"wechat-conf/models"
6
 	"wechat-conf/models/model"
7
 	"wechat-conf/models/model"
7
 	"wechat-conf/models/wechatimg"
8
 	"wechat-conf/models/wechatimg"
8
 	"wechat-conf/utils"
9
 	"wechat-conf/utils"
39
 		utils.LogError("同步图片失败: " + err.Error())
40
 		utils.LogError("同步图片失败: " + err.Error())
40
 		return errors.New("同步图片失败")
41
 		return errors.New("同步图片失败")
41
 	}
42
 	}
42
-	type wechatimg struct {
43
-		media_id    string
44
-		name        string
45
-		update_time time.Time
46
-		url         string
47
-	}
48
-	img := data.([]wechatimg)
49
-	for _, val := range img {
50
-		beego.Error(val)
51
-		var wechat model.TaWechatImg
52
-		wechat.MediaId = val.media_id
53
-		wechat.Name = val.name
43
+
44
+	imgs := data.([]interface{})
45
+	var wechatimgs []model.TaWechatImg
46
+	for _, img := range imgs {
47
+		beego.Error(img)
48
+		val := img.(map[string]interface{})
49
+		var wechat = model.TaWechatImg{}
50
+		wechat.MediaId = val["media_id"].(string)
51
+		wechat.Name = val["name"].(string)
54
 		wechat.OrgId = orgId
52
 		wechat.OrgId = orgId
55
-		wechat.Url = val.url
56
-		wechat.UpdateTime = val.update_time
57
-		err := s.dao.AddWechatImg(wechat)
58
-		if err != nil {
59
-			utils.LogError("同步图片失败: " + err.Error())
60
-			return errors.New("同步图片失败")
61
-		}
53
+		wechat.Url = val["url"].(string)
54
+		// wechat.UpdateTime = val["update_time"]
55
+		wechat.Status = models.STATUS_NORMAL
56
+		wechat.CreateDate = time.Now()
57
+		wechatimgs = append(wechatimgs, wechat)
58
+	}
59
+
60
+	err = s.dao.AddWechatImgs(wechatimgs)
61
+	if err != nil {
62
+		utils.LogError("同步图片失败: " + err.Error())
63
+		return errors.New("同步图片失败")
62
 	}
64
 	}
63
 	return nil
65
 	return nil
64
 }
66
 }

BIN
upload/FADC039C-0F97-40c7-9A9C-F15A9E6143DC.png View File


BIN
upload/timg.jpg View File