- normal store weixin msg.

This commit is contained in:
gazebo
2018-12-25 21:50:18 +08:00
parent e90d36e827
commit e8ce327fc0
11 changed files with 396 additions and 15 deletions

131
controllers/cms_msg.go Normal file
View File

@@ -0,0 +1,131 @@
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/model"
"github.com/astaxie/beego"
)
type MsgController struct {
beego.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 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
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err != nil {
return retVal, "", err
}
retVal, err = cms.SendStoreMessage(params.Ctx, params.Title, params.Content, storeIDs, 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 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 []int
var timeList []time.Time
if err = jxutils.Strings2Objs(params.MsgIDs, &msgIDs, params.StoreIDs, &storeIDs); 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, params.FromReadCount, params.ToReadCount, timeList[0], timeList[1], params.Keyword, params.Offset, params.PageSize)
return retVal, "", err
})
}