123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- package wechatimg
-
- import (
- "fmt"
- "io"
- "os"
- "strconv"
- "time"
- "wechat-conf/controllers"
- "wechat-conf/models/model"
- "wechat-conf/service/sysuser"
- "wechat-conf/service/wechatimg"
- "wechat-conf/utils"
-
- "github.com/astaxie/beego"
- )
-
- // WechatImgController 信息
- type WechatImgController struct {
- dao *wechatimg.WechatImgServ
- sdao *sysuser.SysuserServ
- controllers.BaseController
- }
-
- // Constructor 初始化 Controller
- // @Title Constructor
- // @Description 初始化 Controller, 系统自动调用
- func (c *WechatImgController) Constructor() {
- c.dao = wechatimg.NewWechatImgServ(c.Context)
- c.sdao = sysuser.NewSysuserServ(c.Context)
- }
-
- func (c *WechatImgController) GetWechatImgCount() {
- user := c.Context.Get("user").(*model.SysUser)
- appid, err := c.sdao.GetAppIdByOrgId(user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- // appid := c.GetString(":appid")
- wxclient, err := utils.Component.GetWxClient(appid)
- if err != nil {
- utils.LogError("获取微信信息失败: " + err.Error())
- c.ResponseError(err)
- }
-
- count, err := wxclient.GetMaterialCount()
- if err != nil {
- utils.LogError("获取微信详情失败: " + err.Error())
- c.ResponseError(err)
- }
- matype := c.GetString(":type")
- c.ResponseJSON(count[matype+"_count"])
- }
-
- func (c *WechatImgController) GetWechatImgList() {
- user := c.Context.Get("user").(*model.SysUser)
- appid, err := c.sdao.GetAppIdByOrgId(user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- // appid := c.GetString(":appid")
- wxclient, err := utils.Component.GetWxClient(appid)
- if err != nil {
- utils.LogError("获取微信信息失败: " + err.Error())
- c.ResponseError(err)
- }
- var data = map[string]string{}
- data["offset"] = "0"
- data["type"] = c.GetString(":type")
- data["count"] = "10"
-
- wechatImgs, err := wxclient.GetMaterialList(data)
- if err != nil {
- utils.LogError("获取微信详情失败: " + err.Error())
- c.ResponseError(err)
- }
- c.ResponseJSON(wechatImgs)
- }
-
- func (c *WechatImgController) SyncWechatImg() {
- user := c.Context.Get("user").(*model.SysUser)
- appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- // appId := c.GetString(":appid")
- client, err := utils.Component.GetWxClient(appId)
- if err != nil {
- c.ResponseError(err)
- }
-
- count, err := client.GetMaterialCount()
- if err != nil {
- c.ResponseError(err)
- }
-
- imgcount := count["image_count"].(float64)
- page := int(imgcount)/20 + 1
- for i := 0; i < page; i++ {
- var data = map[string]string{}
- offset := i * 20
- data["offset"] = strconv.Itoa(offset)
- data["type"] = "image"
- data["count"] = strconv.Itoa(20)
- wechatImg, err := client.GetMaterialList(data)
- if err != nil {
- c.ResponseError(err)
- }
- if wechatImg == nil {
- break
- }
- err = c.dao.SyncWechatImg(wechatImg, user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- }
- c.ResponseJSON("同步成功")
- }
-
- func (c *WechatImgController) AddNewImg() {
- file, head, err := c.Ctx.Request.FormFile("media")
- if err != nil {
- beego.Error(err)
- c.ResponseError(err)
- }
- defer file.Close()
-
- imgurl := "./upload/" + head.Filename
- //创建文件
- fW, err := os.Create(imgurl)
- if err != nil {
- fmt.Println("文件创建失败")
- return
- }
- defer fW.Close()
- _, err = io.Copy(fW, file)
- if err != nil {
- fmt.Println("文件保存失败")
- return
- }
-
- user := c.Context.Get("user").(*model.SysUser)
-
- appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- client, err := utils.Component.GetWxClient(appId)
- if err != nil {
- c.ResponseError(err)
- }
-
- id, err := UploaImage(client.GetToken(), imgurl)
- var img = model.TaWechatImg{
- MediaId: id,
- Url: beego.AppConfig.String("host") + head.Filename,
- Name: head.Filename,
- UpdateTime: time.Now(),
- OrgId: user.OrgId,
- }
- err = c.dao.AddWechatImg(img)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("上传成功")
-
- }
- func (c *WechatImgController) DeleteImg() {
- user := c.Context.Get("user").(*model.SysUser)
- appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- // appId := c.GetString(":appid")
- client, err := utils.Component.GetWxClient(appId)
- if err != nil {
- c.ResponseError(err)
- }
-
- mediaId := c.GetString(":mediaId")
- err = c.dao.DeleteImg(mediaId)
- if err != nil {
- c.ResponseError(err)
- }
- _, err = client.DelMaterial(mediaId)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("删除成功")
- }
|