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 }