master
kgdxpr 4 years ago
parent 36c27842de
commit 80d7f5c706

@ -5,7 +5,7 @@
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Business/ImRelate/ImRelateController/ImRelateController.go" beforeDir="false" afterPath="$PROJECT_DIR$/Business/ImRelate/ImRelateController/ImRelateController.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Business/ImRelate/ImRelateDao/ImRelateDao.go" beforeDir="false" afterPath="$PROJECT_DIR$/Business/ImRelate/ImRelateDao/ImRelateDao.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Utils/RedisUtil/RedisUtil.go" beforeDir="false" afterPath="$PROJECT_DIR$/Utils/RedisUtil/RedisUtil.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Config/Config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/Config/Config.ini" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -43,7 +43,7 @@
<property name="go.import.settings.migrated" value="true" />
<property name="go.sdk.automatically.set" value="true" />
<property name="go.tried.to.enable.integration.vgo.integrator" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../dsBaseWeb" />
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
</component>
<component name="RecentsManager">
@ -52,7 +52,7 @@
<recent name="E:\Work\dsMin\dsSzxy\Utils\SsdbUtil" />
</key>
</component>
<component name="RunManager" selected="Go Build.go build dsSzxy">
<component name="RunManager" selected="Go Build.go build main.go">
<configuration name="go build dsSzxy" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
<module name="dsSzxy" />
<working_directory value="$PROJECT_DIR$" />
@ -73,8 +73,8 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="Go Build.go build dsSzxy" />
<item itemvalue="Go Build.go build main.go" />
<item itemvalue="Go Build.go build dsSzxy" />
</list>
</recent_temporary>
</component>

@ -12,267 +12,122 @@ import (
//模块的路由配置
func Routers(r *gin.RouterGroup) {
rr := r.Group("/imRelate")
rr.POST("/sendTxtMsg", sendTxtMsg)
rr.POST("/sendImgMsg", sendImgMsg)
rr.POST("/sendFileMsg", sendFileMsg)
rr.POST("/sendSightMsg", sendSightMsg)
rr.POST("/saveChatRecord", saveChatRecord)
}
/**
2021-08-16
2021-08-23
*/
func sendTxtMsg(c *gin.Context) {
func saveChatRecord(c *gin.Context) {
//发送方Id。
fromId := c.PostForm("fromId")
//接收方Id。
toId := c.PostForm("toId")
//发送类型 p单聊 g群聊
sendType := c.PostForm("sendType")
//内容。
content := c.PostForm("content")
m := map[string]string{"content": content}
contentJsonObj, _ := json.Marshal(m)
contentJsonStr := string(contentJsonObj)
sendErr := ImRelateDao.SendRongYunMsg(sendType, fromId, toId, "RC:TxtMsg", contentJsonStr)
if sendErr != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "发送消息失败!"})
//获取姓名和头像
fromName, fromAvatar, toName, toAvatar := ImRelateDao.GetPersonNameAvatar(fromId, toId, sendType)
var crs ImRelateDao.ChatRecordStruct
objectName := c.PostForm("objectName")
if objectName == "RC:TxtMsg" {
//内容。
content := c.PostForm("content")
crs = ImRelateDao.ChatRecordStruct{
SenderUserId: fromId,
SenderUserName: fromName,
SenderUserAvatar: fromAvatar,
ReceiverUserId: toId,
ReceiverUserName: toName,
ReceiverUserAvatar: toAvatar,
SendTime: CommonUtil.GetCurrentTime(),
Content: content,
MessageType: objectName,
ChatType: sendType,
}
} else if objectName == "RC:ImgMsg" {
//图片base64。
imgBase64 := c.PostForm("imgBase64")
//imgUrl
imgUrl := c.PostForm("imgUrl")
//文件名
fileName := c.PostForm("fileName")
crs = ImRelateDao.ChatRecordStruct{
SenderUserId: fromId,
SenderUserName: fromName,
SenderUserAvatar: fromAvatar,
ReceiverUserId: toId,
ReceiverUserName: toName,
ReceiverUserAvatar: toAvatar,
SendTime: CommonUtil.GetCurrentTime(),
Content: fileName,
Base64: imgBase64,
Url: imgUrl,
MessageType: objectName,
ChatType: sendType,
}
} else if objectName == "RC:FileMsg" {
//文件名
fileName := c.PostForm("fileName")
//文件大小
fileSize := c.PostForm("fileSize")
//文件类型
fileType := c.PostForm("fileType")
//文件URL
fileUrl := c.PostForm("fileUrl")
crs = ImRelateDao.ChatRecordStruct{
SenderUserId: fromId,
SenderUserName: fromName,
SenderUserAvatar: fromAvatar,
ReceiverUserId: toId,
ReceiverUserName: toName,
ReceiverUserAvatar: toAvatar,
SendTime: CommonUtil.GetCurrentTime(),
Content: fileName,
Size: fileSize,
FileType: fileType,
Url: fileUrl,
MessageType: objectName,
ChatType: sendType,
}
} else if objectName == "RC:SightMsg" {
//视频URL
videoUrl := c.PostForm("videoUrl")
//视频缩略图base64编码
thumbBase64 := ConfigUtil.VideoThumb
//视频大小
videoSize := c.PostForm("videoSize")
//视频名称
videoName := c.PostForm("fileName")
crs = ImRelateDao.ChatRecordStruct{
SenderUserId: fromId,
SenderUserName: fromName,
SenderUserAvatar: fromAvatar,
ReceiverUserId: toId,
ReceiverUserName: toName,
ReceiverUserAvatar: toAvatar,
SendTime: CommonUtil.GetCurrentTime(),
Content: videoName,
Size: videoSize,
Base64: thumbBase64,
Url: videoUrl,
MessageType: objectName,
ChatType: sendType,
}
} else {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "objectName参数错误"})
return
}
fromName := ImRelateDao.GetPersonNameByUserId(fromId)
fromAvatar := ImRelateDao.GetPersonAvatarByUserId(fromId)
var toName, toAvatar string
if sendType == "p" {
toName = ImRelateDao.GetPersonNameByUserId(toId)
toAvatar = ImRelateDao.GetPersonAvatarByUserId(toId)
} else
{
toName, toAvatar = ImRelateDao.GetGroupNameAvatarByGroupId(toId)
}
cm := map[string]string{
"sender_user_id": fromId,
"sender_user_name": fromName,
"sender_user_avatar": fromAvatar,
"receiver_user_id": toId,
"receiver_user_name": toName,
"receiver_user_avatar": toAvatar,
"send_time": CommonUtil.GetCurrentTime(),
"content": content,
"message_type": "TxtMsg",
"chat_type": sendType,
}
bodyJsonObj, _ := json.Marshal(cm)
bodyJsonObj, _ := json.Marshal(crs)
bodyString := string(bodyJsonObj)
saveErr := ImRelateDao.SaveChatRecord("chat_record", bodyString)
if saveErr != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "聊天记录保存失败!"})
return
}
c.JSON(http.StatusOK, gin.H{"success": true, "info": "发送消息成功!"})
}
/**
2021-08-16
*/
func sendImgMsg(c *gin.Context) {
//发送方Id。
fromId := c.PostForm("fromId")
//接收方Id。
toId := c.PostForm("toId")
//发送类型 p单聊 g群聊
sendType := c.PostForm("sendType")
//图片base64。
imgBase64 := c.PostForm("imgBase64")
//imgUrl
imgUrl := c.PostForm("imgUrl")
//文件名
fileName := c.PostForm("fileName")
m := map[string]string{"content": imgBase64, "imageUri": imgUrl}
contentJsonObj, _ := json.Marshal(m)
contentJsonStr := string(contentJsonObj)
err := ImRelateDao.SendRongYunMsg(sendType, fromId, toId, "RC:ImgMsg", contentJsonStr)
if err != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "发送消息失败!"})
return
}
fromName := ImRelateDao.GetPersonNameByUserId(fromId)
fromAvatar := ImRelateDao.GetPersonAvatarByUserId(fromId)
var toName, toAvatar string
if sendType == "p" {
toName = ImRelateDao.GetPersonNameByUserId(toId)
toAvatar = ImRelateDao.GetPersonAvatarByUserId(toId)
} else
{
toName, toAvatar = ImRelateDao.GetGroupNameAvatarByGroupId(toId)
}
cm := map[string]string{
"sender_user_id": fromId,
"sender_user_name": fromName,
"sender_user_avatar": fromAvatar,
"receiver_user_id": toId,
"receiver_user_name": toName,
"receiver_user_avatar": toAvatar,
"send_time": CommonUtil.GetCurrentTime(),
"content": fileName,
"base64": imgBase64,
"url": imgUrl,
"message_type": "ImgMsg",
"chat_type": sendType,
}
bodyJsonObj, _ := json.Marshal(cm)
bodyString := string(bodyJsonObj)
saveErr := ImRelateDao.SaveChatRecord("chat_record", bodyString)
if saveErr != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "聊天记录保存失败!"})
return
}
c.JSON(http.StatusOK, gin.H{"success": true, "info": "发送消息成功!"})
}
/**
2021-08-16
*/
func sendFileMsg(c *gin.Context) {
//发送方Id。
fromId := c.PostForm("fromId")
//接收方Id。
toId := c.PostForm("toId")
//发送类型 p单聊 g群聊
sendType := c.PostForm("sendType")
//文件名
fileName := c.PostForm("fileName")
//文件大小
fileSize := c.PostForm("fileSize")
//文件类型
fileType := c.PostForm("fileType")
//文件URL
fileUrl := c.PostForm("fileUrl")
m := map[string]string{"name": fileName, "size": fileSize, "type": fileType, "fileUrl": fileUrl}
contentJsonObj, _ := json.Marshal(m)
contentJsonStr := string(contentJsonObj)
err := ImRelateDao.SendRongYunMsg(sendType, fromId, toId, "RC:FileMsg", contentJsonStr)
if err != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "发送消息失败!"})
return
}
fromName := ImRelateDao.GetPersonNameByUserId(fromId)
fromAvatar := ImRelateDao.GetPersonAvatarByUserId(fromId)
var toName, toAvatar string
if sendType == "p" {
toName = ImRelateDao.GetPersonNameByUserId(toId)
toAvatar = ImRelateDao.GetPersonAvatarByUserId(toId)
} else
{
toName, toAvatar = ImRelateDao.GetGroupNameAvatarByGroupId(toId)
}
cm := map[string]string{
"sender_user_id": fromId,
"sender_user_name": fromName,
"sender_user_avatar": fromAvatar,
"receiver_user_id": toId,
"receiver_user_name": toName,
"receiver_user_avatar": toAvatar,
"send_time": CommonUtil.GetCurrentTime(),
"content": fileName,
"size": fileSize,
"file_type": fileType,
"url": fileUrl,
"message_type": "FileMsg",
"chat_type": sendType,
}
bodyJsonObj, _ := json.Marshal(cm)
bodyString := string(bodyJsonObj)
saveErr := ImRelateDao.SaveChatRecord("chat_record", bodyString)
if saveErr != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "聊天记录保存失败!"})
return
}
c.JSON(http.StatusOK, gin.H{"success": true, "info": "发送消息成功!"})
}
/**
2021-08-16
*/
func sendSightMsg(c *gin.Context) {
//发送方Id。
fromId := c.PostForm("fromId")
//接收方Id。
toId := c.PostForm("toId")
//发送类型 p单聊 g群聊
sendType := c.PostForm("sendType")
//视频URL
videoUrl := c.PostForm("videoUrl")
//视频缩略图base64编码
thumbBase64 := ConfigUtil.VideoThumb
//视频大小
videoSize := c.PostForm("videoSize")
//视频名称
videoName := c.PostForm("fileName")
m := map[string]string{"sightUrl": videoUrl, "content": thumbBase64, "duration": "60", "size": videoSize, "name": videoName}
contentJsonObj, _ := json.Marshal(m)
contentJsonStr := string(contentJsonObj)
err := ImRelateDao.SendRongYunMsg(sendType, fromId, toId, "RC:SightMsg", contentJsonStr)
if err != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "发送消息失败!"})
return
}
fromName := ImRelateDao.GetPersonNameByUserId(fromId)
fromAvatar := ImRelateDao.GetPersonAvatarByUserId(fromId)
var toName, toAvatar string
if sendType == "p" {
toName = ImRelateDao.GetPersonNameByUserId(toId)
toAvatar = ImRelateDao.GetPersonAvatarByUserId(toId)
} else
{
toName, toAvatar = ImRelateDao.GetGroupNameAvatarByGroupId(toId)
}
cm := map[string]string{
"sender_user_id": fromId,
"sender_user_name": fromName,
"sender_user_avatar": fromAvatar,
"receiver_user_id": toId,
"receiver_user_name": toName,
"receiver_user_avatar": toAvatar,
"send_time": CommonUtil.GetCurrentTime(),
"content": videoName,
"size": videoSize,
"base64": thumbBase64,
"url": videoUrl,
"message_type": "SightMsg",
"chat_type": sendType,
}
bodyJsonObj, _ := json.Marshal(cm)
bodyString := string(bodyJsonObj)
saveErr := ImRelateDao.SaveChatRecord("chat_record", bodyString)
if saveErr != nil {
c.JSON(http.StatusOK, gin.H{"success": false, "info": "聊天记录保存失败!"})

@ -15,6 +15,24 @@ import (
"strings"
)
//聊天记录结构
type ChatRecordStruct struct {
SenderUserId string `json:"sender_user_id"`
SenderUserName string `json:"sender_user_name"`
SenderUserAvatar string `json:"sender_user_avatar"`
ReceiverUserId string `json:"receiver_user_id"`
ReceiverUserName string `json:"receiver_user_name"`
ReceiverUserAvatar string `json:"receiver_user_avatar"`
SendTime string `json:"send_time"`
Content string `json:"content"`
Base64 string `json:"base64"`
FileType string `json:"file_type"`
Url string `json:"url"`
Size string `json:"size"`
MessageType string `json:"message_type"`
ChatType string `json:"chat_type"`
}
/**
@ -158,10 +176,10 @@ func SendRongYunMsg(sendType string, fromId string, toId string, objectName stri
if configErr != nil {
return configErr
}
ak := configMap["rong_key"]
ak := configMap["app_key"]
r := CommonUtil.GetSixRandom()
ts := CommonUtil.GetTimeStamp()
sk := configMap["rong_secret"]
sk := configMap["app_secret"]
st := CommonUtil.SHA1(sk + r + ts)
@ -265,3 +283,21 @@ func GetGroupNameAvatarByGroupId(groupId string) (string, string) {
groupName, groupAvatar := GetGroupNameAvatar(gId, "36", "36")
return groupName, groupAvatar
}
/**
2021-08-23
*/
func GetPersonNameAvatar(fromId string, toId string, sendType string) (fromName, fromAvatar, toName, toAvatar string) {
fromName = GetPersonNameByUserId(fromId)
fromAvatar = GetPersonAvatarByUserId(fromId)
if sendType == "p" {
toName = GetPersonNameByUserId(toId)
toAvatar = GetPersonAvatarByUserId(toId)
} else
{
toName, toAvatar = GetGroupNameAvatarByGroupId(toId)
}
return
}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save