126 lines
4.9 KiB
Go
126 lines
4.9 KiB
Go
package controllers
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
"git.rosy.net.cn/jx-callback/business/partner"
|
|
|
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/im"
|
|
"github.com/astaxie/beego/server/web"
|
|
)
|
|
|
|
type IMController struct {
|
|
web.Controller
|
|
}
|
|
|
|
// @Title IM获取门店用户聊天列表
|
|
// @Description IM获取门店用户聊天列表
|
|
// @Param token header string true "认证token"
|
|
// @Param payLoad formData string true "平台应用映射关系"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /GetImUserList [get]
|
|
func (c *IMController) GetImUserList() {
|
|
c.callGetImUserList(func(params *tImGetImUserListParams) (retVal interface{}, errCode string, err error) {
|
|
var relInfo []im.RelInfo
|
|
if err = json.Unmarshal([]byte(params.PayLoad), &relInfo); err == nil {
|
|
retVal, err = im.GetImUserList(relInfo)
|
|
}
|
|
return retVal, "", err
|
|
})
|
|
}
|
|
|
|
// @Title IM获取单个用户聊天详情
|
|
// @Description IM获取单个用户聊天详情
|
|
// @Param token header string true "认证token"
|
|
// @Param payLoad formData string true "平台用户应用映射关系"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /GetImChatDetail [get]
|
|
func (c *IMController) GetImChatDetail() {
|
|
c.callGetImChatDetail(func(params *tImGetImChatDetailParams) (retVal interface{}, errCode string, err error) {
|
|
var temp []im.UserRelInfo
|
|
if err = json.Unmarshal([]byte(params.PayLoad), &temp); err == nil {
|
|
retVal, err = im.GetImChatDetail(temp)
|
|
}
|
|
return retVal, "", err
|
|
})
|
|
}
|
|
|
|
// @Title IM设置门店与单个用户已读
|
|
// @Description IM设置门店与单个用户已读
|
|
// @Param token header string true "认证token"
|
|
// @Param appID formData string true "应用id"
|
|
// @Param vendorStoreID formData string true "平台门店id"
|
|
// @Param vendorID formData string true "平台id"
|
|
// @Param userID formData string true "用户id/会话id"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /SetImMsgRead [post]
|
|
func (c *IMController) SetImMsgRead() {
|
|
c.callSetImMsgRead(func(params *tImSetImMsgReadParams) (retVal interface{}, errCode string, err error) {
|
|
err = im.SetJxMsgRead(params.AppID, params.VendorStoreID, params.VendorID, params.UserID)
|
|
return nil, "", err
|
|
})
|
|
}
|
|
|
|
// @Title 向平台商发送信息(https方式)
|
|
// @Description 向平台商发送信息(https方式)
|
|
// @Param token header string true "认证token"
|
|
// @Param vendorOrgCode formData string true "美团appid"
|
|
// @Param sendData formData string true "平台商消息结构体"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /SendToVendorV2 [post]
|
|
func (c *IMController) SendToVendorV2() {
|
|
c.callSendToVendorV2(func(params *tImSendToVendorV2Params) (retVal interface{}, errCode string, err error) {
|
|
var sendData im.SendData
|
|
b := bytes.NewBufferString(params.SendData)
|
|
decoder := json.NewDecoder(b)
|
|
if err = decoder.Decode(&sendData); err == nil {
|
|
fmt.Println(sendData)
|
|
if err = im.SendVendorV2(sendData, params.VendorOrgCode); err != nil {
|
|
return nil, "", err
|
|
}
|
|
}
|
|
return nil, "", nil
|
|
})
|
|
}
|
|
|
|
// @Title 查询美团门店IM单聊开关状态
|
|
// @Description 查询美团门店IM单聊开关状态
|
|
// @Param token header string true "认证token"
|
|
// @Param appPoiCode query string true "美团门店id"
|
|
// @Param vendorOrgCode query string true "美团appid"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /GetPoiIMStatus [get]
|
|
func (c *IMController) GetPoiIMStatus() {
|
|
c.callGetPoiIMStatus(func(params *tImGetPoiIMStatusParams) (interface{}, string, error) {
|
|
//retVal, err := api.MtwmAPI.GetPoiIMStatus(params.AppPoiCode)
|
|
retVal, err := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, params.VendorOrgCode).(*mtwmapi.API).GetPoiIMStatus(params.AppPoiCode)
|
|
return retVal, "", err
|
|
})
|
|
}
|
|
|
|
// @Title 设置美团门店IM线上状态
|
|
// @Description 设置美团门店IM线上状态
|
|
// @Param token header string true "认证token"
|
|
// @Param appPoiCode formData string true "美团门店id"
|
|
// @Param imStatus formData int true "状态 0-关闭 1-开启"
|
|
// @Param vendorOrgCode formData string true "美团appid"
|
|
// @Success 200 {object} controllers.CallResult
|
|
// @Failure 200 {object} controllers.CallResult
|
|
// @router /SetPoiIMStatus [post]
|
|
func (c *IMController) SetPoiIMStatus() {
|
|
c.callSetPoiIMStatus(func(params *tImSetPoiIMStatusParams) (interface{}, string, error) {
|
|
//err := api.MtwmAPI.SetPoiIMStatus(params.AppPoiCode, params.ImStatus)
|
|
err := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, params.VendorOrgCode).(*mtwmapi.API).SetPoiIMStatus(params.AppPoiCode, params.ImStatus)
|
|
return nil, "", err
|
|
})
|
|
}
|