|
@@ -1,15 +1,18 @@
|
1
|
1
|
package wechatimg
|
2
|
2
|
|
3
|
3
|
import (
|
4
|
|
- "mime/multipart"
|
|
4
|
+ "fmt"
|
|
5
|
+ "io"
|
|
6
|
+ "os"
|
5
|
7
|
"strconv"
|
6
|
8
|
"time"
|
7
|
|
- "unsafe"
|
8
|
9
|
"wechat-conf/controllers"
|
9
|
10
|
"wechat-conf/models/model"
|
10
|
11
|
"wechat-conf/service/sysuser"
|
11
|
12
|
"wechat-conf/service/wechatimg"
|
12
|
13
|
"wechat-conf/utils"
|
|
14
|
+
|
|
15
|
+ "github.com/astaxie/beego"
|
13
|
16
|
)
|
14
|
17
|
|
15
|
18
|
// WechatImgController 信息
|
|
@@ -27,41 +30,74 @@ func (c *WechatImgController) Constructor() {
|
27
|
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
|
55
|
func (c *WechatImgController) GetWechatImgList() {
|
31
|
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
|
58
|
if err != nil {
|
34
|
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
|
63
|
if err != nil {
|
|
64
|
+ utils.LogError("获取微信信息失败: " + err.Error())
|
38
|
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
|
73
|
if err != nil {
|
|
74
|
+ utils.LogError("获取微信详情失败: " + err.Error())
|
49
|
75
|
c.ResponseError(err)
|
50
|
76
|
}
|
51
|
|
- c.ResponseJSON(wechatImg)
|
|
77
|
+ c.ResponseJSON(wechatImgs)
|
52
|
78
|
}
|
|
79
|
+
|
53
|
80
|
func (c *WechatImgController) SyncWechatImg() {
|
54
|
81
|
user := c.Context.Get("user").(*model.SysUser)
|
55
|
82
|
appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
|
56
|
83
|
if err != nil {
|
57
|
84
|
c.ResponseError(err)
|
58
|
85
|
}
|
|
86
|
+ // appId := c.GetString(":appid")
|
59
|
87
|
client, err := utils.Component.GetWxClient(appId)
|
60
|
88
|
if err != nil {
|
61
|
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
|
101
|
offset := i * 20
|
66
|
102
|
data["offset"] = strconv.Itoa(offset)
|
67
|
103
|
data["type"] = "image"
|
|
@@ -74,18 +110,37 @@ func (c *WechatImgController) SyncWechatImg() {
|
74
|
110
|
break
|
75
|
111
|
}
|
76
|
112
|
err = c.dao.SyncWechatImg(wechatImg, user.OrgId)
|
77
|
|
-
|
78
|
113
|
if err != nil {
|
79
|
114
|
c.ResponseError(err)
|
80
|
115
|
}
|
81
|
116
|
}
|
82
|
117
|
c.ResponseJSON("同步成功")
|
83
|
118
|
}
|
|
119
|
+
|
84
|
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
|
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
|
144
|
appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
|
90
|
145
|
if err != nil {
|
91
|
146
|
c.ResponseError(err)
|
|
@@ -94,22 +149,15 @@ func (c *WechatImgController) AddNewImg() {
|
94
|
149
|
if err != nil {
|
95
|
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
|
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
|
159
|
UpdateTime: time.Now(),
|
|
160
|
+ OrgId: user.OrgId,
|
113
|
161
|
}
|
114
|
162
|
err = c.dao.AddWechatImg(img)
|
115
|
163
|
if err != nil {
|
|
@@ -119,8 +167,23 @@ func (c *WechatImgController) AddNewImg() {
|
119
|
167
|
|
120
|
168
|
}
|
121
|
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
|
187
|
if err != nil {
|
125
|
188
|
c.ResponseError(err)
|
126
|
189
|
}
|