package controllers import ( "bytes" "encoding/json" "fmt" "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 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); err != nil { return nil, "", err } } return nil, "", nil }) }