|
|
package ImRelateDao
|
|
|
|
|
|
import (
|
|
|
"dsSzxy/Utils/CommonUtil"
|
|
|
"dsSzxy/Utils/ConfigUtil"
|
|
|
"dsSzxy/Utils/EsUtil"
|
|
|
ssdb "dsSzxy/Utils/SsdbUtil"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
/**
|
|
|
功能:获取头像
|
|
|
作者:吴缤
|
|
|
日期:2021-08-12
|
|
|
*/
|
|
|
func GetPersonAvatar(personId string, identityId string, w string, h string) string {
|
|
|
avatarUrl := "/dsideal_yy/html/thumb/Material/%s/%s@" + w + "w_" + h + "h_100Q_1x.png"
|
|
|
//默认头像
|
|
|
avatarId := "EA0BC5FB-52D9-E232-D3E3-E6C2960B5739.png"
|
|
|
avatar := fmt.Sprintf(avatarUrl, avatarId[0:2], avatarId)
|
|
|
ssdbClient, ssdbClientErr := ssdb.Connect(ConfigUtil.SSDBIp, ConfigUtil.SSDBPort)
|
|
|
if ssdbClientErr != nil {
|
|
|
return avatar
|
|
|
}
|
|
|
res, resErr := ssdbClient.Get("space_ajson_personbaseinfo_" + personId + "_" + identityId)
|
|
|
if resErr != nil {
|
|
|
return avatar
|
|
|
}
|
|
|
jsonObj, jsonObjErr := CommonUtil.JsonStringToMap(fmt.Sprintf("%v", res))
|
|
|
if jsonObjErr != nil {
|
|
|
return avatar
|
|
|
}
|
|
|
avatarId = fmt.Sprintf("%v", jsonObj["space_avatar_fileid"])
|
|
|
avatar = fmt.Sprintf(avatarUrl, avatarId[0:2], avatarId)
|
|
|
|
|
|
return avatar
|
|
|
}
|
|
|
|
|
|
func GetPersonName(personId string, identityId string) string {
|
|
|
return ""
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
功能:发送融云消息
|
|
|
作者:吴缤
|
|
|
日期:2021-08-16
|
|
|
*/
|
|
|
func SendRongYunMsg(sendType string, fromId string, toId string, objectName string, content string) error {
|
|
|
sendTypeStr := ""
|
|
|
toTypeStr := ""
|
|
|
if sendType == "p" {
|
|
|
sendTypeStr = "private"
|
|
|
toTypeStr = "toUserId"
|
|
|
} else {
|
|
|
sendTypeStr = "group"
|
|
|
toTypeStr = "toGroupId"
|
|
|
}
|
|
|
url := fmt.Sprintf("https://api-cn.ronghub.com/message/%s/publish.json", sendTypeStr)
|
|
|
method := "POST"
|
|
|
|
|
|
parameter := fmt.Sprintf("fromUserId=%s&%s=%s&objectName=%s&content=%s", fromId, toTypeStr, toId, objectName, content)
|
|
|
|
|
|
payload := strings.NewReader(parameter)
|
|
|
|
|
|
client := &http.Client{
|
|
|
}
|
|
|
req, err := http.NewRequest(method, url, payload)
|
|
|
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
configMap, configErr := CommonUtil.GetRongYunConfig()
|
|
|
if configErr != nil {
|
|
|
return configErr
|
|
|
}
|
|
|
ak := configMap["rong_key"]
|
|
|
r := CommonUtil.GetSixRandom()
|
|
|
ts := CommonUtil.GetTimeStamp()
|
|
|
sk := configMap["rong_secret"]
|
|
|
|
|
|
st := CommonUtil.SHA1(sk + r + ts)
|
|
|
|
|
|
req.Header.Add("RC-App-Key", ak)
|
|
|
req.Header.Add("RC-Nonce", r)
|
|
|
req.Header.Add("RC-Timestamp", ts)
|
|
|
req.Header.Add("RC-Signature", st)
|
|
|
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
|
res, err := client.Do(req)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
defer res.Body.Close()
|
|
|
|
|
|
body, err := ioutil.ReadAll(res.Body)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
jsonObj, err := CommonUtil.JsonStringToMap(string(body))
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
if jsonObj["code"] != float64(200) {
|
|
|
return errors.New("发送消息失败!")
|
|
|
}
|
|
|
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
功能:保存聊天记录到ES
|
|
|
作者:吴缤
|
|
|
日期:2021-08-17
|
|
|
*/
|
|
|
func SaveChatRecord(indexName string, bodyString string) error {
|
|
|
esClient := EsUtil.EsClient
|
|
|
CTX := EsUtil.CTX
|
|
|
|
|
|
_, err := esClient.Index().
|
|
|
Index(indexName).
|
|
|
Id(CommonUtil.GetUUID()).
|
|
|
BodyString(bodyString).
|
|
|
Do(CTX)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
return nil
|
|
|
}
|