180 lines
8.2 KiB
Go
180 lines
8.2 KiB
Go
package controllers
|
||
|
||
import (
|
||
"net/http"
|
||
"time"
|
||
|
||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"github.com/astaxie/beego/server/web"
|
||
)
|
||
|
||
type MsgController struct {
|
||
web.Controller
|
||
}
|
||
|
||
// @Title 发送微信消息
|
||
// @Description 发送微信消息
|
||
// @Param token header string true "认证token"
|
||
// @Param storeIDs formData string true "门店 ID列表"
|
||
// @Param title formData string true "消息标题"
|
||
// @Param content formData string true "消息内容"
|
||
// @Param messageType formData int true "消息类型,1为普通给商家发的消息,3为活动内容通知, 4为知识库"
|
||
// @Param actInfo formData string false "如果是活动内容通知需传"
|
||
// @Param imgs formData string false "图片s"
|
||
// @Param isAsync formData bool false "是否异步操作,缺省否"
|
||
// @Param isContinueWhenError formData bool false "单个失败是否继续,缺省false"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /SendStoreMessage [post]
|
||
func (c *MsgController) SendStoreMessage() {
|
||
c.callSendStoreMessage(func(params *tMsgSendStoreMessageParams) (retVal interface{}, errCode string, err error) {
|
||
var storeIDs []int
|
||
var imgs []string
|
||
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Imgs, &imgs); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
retVal, err = weixinmsg.SendStoreMessage(params.Ctx, params.Title, params.Content, storeIDs, imgs, params.ActInfo, params.MessageType, params.IsAsync, params.IsContinueWhenError)
|
||
return retVal, "", err
|
||
})
|
||
}
|
||
|
||
// @Title 发送微信消息(知识库
|
||
// @Description 发送微信消息(知识库
|
||
// @Param token header string true "认证token"
|
||
// @Param storeIDs formData string true "门店 ID列表"
|
||
// @Param title formData string true "消息标题"
|
||
// @Param knowIDs formData string true "消息类型,1为普通给商家发的消息,3为活动内容通知"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /SendStoreMessageKnowledge [post]
|
||
func (c *MsgController) SendStoreMessageKnowledge() {
|
||
c.callSendStoreMessageKnowledge(func(params *tMsgSendStoreMessageKnowledgeParams) (retVal interface{}, errCode string, err error) {
|
||
var knowIDs, storeIDs []int
|
||
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.KnowIDs, &knowIDs); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
retVal, err = weixinmsg.SendStoreMessageKnowledge(params.Ctx, params.Title, knowIDs, storeIDs)
|
||
return retVal, "", err
|
||
})
|
||
}
|
||
|
||
// @Title 发送用户微信消息
|
||
// @Description 发送用户微信消息
|
||
// @Param token header string true "认证token"
|
||
// @Param userIDs formData string true "用户 ID列表"
|
||
// @Param title formData string true "消息标题"
|
||
// @Param content formData string true "消息内容"
|
||
// @Param isAsync formData bool false "是否异步操作,缺省否"
|
||
// @Param isContinueWhenError formData bool false "单个失败是否继续,缺省false"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /SendUserMessage [post]
|
||
func (c *MsgController) SendUserMessage() {
|
||
c.callSendUserMessage(func(params *tMsgSendUserMessageParams) (retVal interface{}, errCode string, err error) {
|
||
var userIDs []string
|
||
if err = jxutils.Strings2Objs(params.UserIDs, &userIDs); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
retVal, err = weixinmsg.SendUserMessage(params.Ctx, params.Title, params.Content, userIDs, params.IsAsync, params.IsContinueWhenError)
|
||
return retVal, "", err
|
||
})
|
||
}
|
||
|
||
// @Title 门店读微信消息
|
||
// @Description 门店读微信消息(此API是自动调用的)
|
||
// @Param token header string true "认证token"
|
||
// @Param msgID formData int true "消息ID"
|
||
// @Param msgStatusID formData int true "消息状态ID"
|
||
// @Param redirectURL formData string false "重定向URL"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /ReadStoreMessage [put]
|
||
func (c *MsgController) ReadStoreMessage() {
|
||
redirectURL := ""
|
||
c.callReadStoreMessage(func(params *tMsgReadStoreMessageParams) (retVal interface{}, errCode string, err error) {
|
||
retVal, err = cms.ReadStoreMessage(params.Ctx, params.MsgID, params.MsgStatusID)
|
||
retRedirectURL := retVal.(string)
|
||
if retRedirectURL != "" {
|
||
redirectURL = retRedirectURL
|
||
} else {
|
||
redirectURL = params.RedirectURL
|
||
}
|
||
if redirectURL != "" {
|
||
errCode = model.ErrorCodeIgnore
|
||
}
|
||
return retVal, errCode, err
|
||
})
|
||
if redirectURL != "" {
|
||
c.Redirect(redirectURL, http.StatusTemporaryRedirect)
|
||
}
|
||
}
|
||
|
||
// @Title 得到发送的微信消息列表
|
||
// @Description 得到发送的微信消息列表
|
||
// @Param token header string true "认证token"
|
||
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
||
// @Param msgIDs query string false "msg IDs列表"
|
||
// @Param storeIDs query string false "门店 ID列表"
|
||
// @Param types query string false "类型列表,当前只有一个类型,写死[1]"
|
||
// @Param fromTime query string false "创建起始时间"
|
||
// @Param toTime query string false "创建结束时间"
|
||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||
// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /GetStoreMessages [get]
|
||
func (c *MsgController) GetStoreMessages() {
|
||
c.callGetStoreMessages(func(params *tMsgGetStoreMessagesParams) (retVal interface{}, errCode string, err error) {
|
||
var msgIDs, storeIDs, types []int
|
||
var timeList []time.Time
|
||
if err = jxutils.Strings2Objs(params.MsgIDs, &msgIDs, params.StoreIDs, &storeIDs, params.Types, &types); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
retVal, err = cms.GetStoreMessages(params.Ctx, msgIDs, storeIDs, types, timeList[0], timeList[1], params.Keyword, params.Offset, params.PageSize)
|
||
return retVal, "", err
|
||
})
|
||
}
|
||
|
||
// @Title 得到发送的微信消息状态列表
|
||
// @Description 得到发送的微信消息状态列表
|
||
// @Param token header string true "认证token"
|
||
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
||
// @Param msgIDs query string false "msg IDs列表"
|
||
// @Param storeIDs query string false "门店 ID列表"
|
||
// @Param fromTime query string false "创建起始时间"
|
||
// @Param toTime query string false "创建结束时间"
|
||
// @Param confirmStatuss query string false "确认状态,0表示没点,1表示确认,-1表示拒绝"
|
||
// @Param fromReadCount query int false "已读次数开始"
|
||
// @Param toReadCount query int false "已读次数结束"
|
||
// @Param offset query int false "消息状态列表起始序号(以0开始,缺省为0)"
|
||
// @Param pageSize query int false "消息状态列表页大小(缺省为50,-1表示全部)"
|
||
// @Success 200 {object} controllers.CallResult
|
||
// @Failure 200 {object} controllers.CallResult
|
||
// @router /GetStoreMessageStatuses [get]
|
||
func (c *MsgController) GetStoreMessageStatuses() {
|
||
c.callGetStoreMessageStatuses(func(params *tMsgGetStoreMessageStatusesParams) (retVal interface{}, errCode string, err error) {
|
||
var msgIDs, storeIDs, confirmStatuss []int
|
||
var timeList []time.Time
|
||
if err = jxutils.Strings2Objs(params.MsgIDs, &msgIDs, params.StoreIDs, &storeIDs, params.ConfirmStatuss, &confirmStatuss); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil {
|
||
return retVal, "", err
|
||
}
|
||
if _, ok := params.MapData["fromReadCount"]; !ok {
|
||
params.FromReadCount = -1
|
||
}
|
||
if _, ok := params.MapData["toReadCount"]; !ok {
|
||
params.ToReadCount = -1
|
||
}
|
||
retVal, err = cms.GetStoreMessageStatuses(params.Ctx, msgIDs, storeIDs, confirmStatuss, params.FromReadCount, params.ToReadCount, timeList[0], timeList[1], params.Keyword, params.Offset, params.PageSize)
|
||
return retVal, "", err
|
||
})
|
||
}
|