You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}