kefu/controller/room.go

159 lines
3.8 KiB
Go
Raw Normal View History

2024-12-10 02:50:12 +00:00
package controller
//
//import (
// "encoding/json"
// "fmt"
// "github.com/gin-gonic/gin"
// "kefu/models"
// "kefu/tools"
// "kefu/types"
// "kefu/ws"
// "math/rand"
// "time"
//)
//
//func PostRoomLogin(c *gin.Context) {
// avator := c.PostForm("avator")
// if avator == "" {
// avator = fmt.Sprintf("/static/images/%d.jpg", rand.Intn(14))
// }
// toId := c.PostForm("to_id")
// entId := c.PostForm("ent_id")
// visitorName := c.PostForm("visitor_name")
// id := c.PostForm("visitor_id")
//
// if id == "" {
// id = tools.Uuid()
// }
// var city string
// ipCity, _ := tools.ParseIpNew(c.ClientIP())
// if ipCity != nil {
// city = ipCity.CountryName + ipCity.RegionName + ipCity.CityName
// } else {
// city = "未识别地区"
// }
// client_ip := c.ClientIP()
// if avator == "" || toId == "" || id == "" || entId == "" {
// c.JSON(200, gin.H{
// "code": 400,
// "msg": "error",
// })
// return
// }
//
// entUsers := models.FindUsersByEntId(entId)
// var flag = false
// for _, user := range entUsers {
// if user.Name == toId {
// flag = true
// break
// }
// }
// if !flag {
// c.JSON(200, gin.H{
// "code": 400,
// "msg": "room_id不存在",
// })
// return
// }
// visitor := models.FindVisitorByVistorId(id)
// if visitor.Name != "" {
// //更新状态上线
// models.UpdateVisitor(entId, visitorName, avator, id, toId, visitor.Status, c.ClientIP(), c.ClientIP(), "", "", "", visitor.VisitNum+1)
// } else {
// visitor = *models.CreateVisitor(visitorName, avator, client_ip, toId, id, "", city, client_ip, entId, "")
// }
// result := &Visitor{
// City: city,
// Name: visitorName,
// Avator: avator,
// ToId: toId,
// ClientIp: client_ip,
// VisitorId: id,
// EntId: entId,
// CreatedAt: time.Now().Format("2006-01-02 15:04:05"),
// UpdatedAt: time.Now().Format("2006-01-02 15:04:05"),
// }
//
// userInfo := make(map[string]string)
// userInfo["username"] = visitorName
// userInfo["avator"] = avator
// msg := ws.TypeMessage{
// Type: "userOnline",
// Data: userInfo,
// }
// str, _ := json.Marshal(msg)
// go func() {
// time.Sleep(3 * time.Second)
// ws.Room.SendMessageToRoom(toId, str)
// }()
// c.JSON(200, gin.H{
// "code": 200,
// "msg": "ok",
// "result": result,
// })
//}
//func PostRoomMessage(c *gin.Context) {
// fromId := c.PostForm("from_id")
// toId := c.PostForm("to_id")
// content := c.PostForm("content")
// if content == "" {
// c.JSON(200, gin.H{
// "code": 400,
// "msg": "内容不能为空",
// })
// return
// }
// //限流
// if !tools.LimitFreqSingle("sendmessage:"+c.ClientIP(), 1, 2) {
// c.JSON(200, gin.H{
// "code": 400,
// "msg": c.ClientIP() + "发送频率过快",
// })
// return
// }
// //验证访客黑名单
// if !CheckVisitorBlack(fromId) {
// c.JSON(200, gin.H{
// "code": types.ApiCode.VISITOR_BAN,
// "msg": types.ApiCode.GetMessage(types.ApiCode.VISITOR_BAN),
// })
// return
// }
//
// vistorInfo := models.FindVisitorByVistorId(fromId)
// kefuInfo := models.FindUser(toId)
// if kefuInfo.ID == 0 || vistorInfo.ID == 0 {
// c.JSON(200, gin.H{
// "code": 400,
// "msg": "room不存在",
// })
// return
// }
// models.CreateMessage(kefuInfo.Name, vistorInfo.VisitorId, content, "visitor", vistorInfo.EntId, "unread")
// msg := ws.TypeMessage{
// Type: "message",
// Data: ws.ClientMessage{
// Avator: vistorInfo.Avator,
// Id: vistorInfo.VisitorId,
// Name: fmt.Sprintf("#%d%s", vistorInfo.ID, vistorInfo.Name),
// ToId: kefuInfo.Name,
// Content: content,
// Time: time.Now().Format("2006-01-02 15:04:05"),
// IsKefu: "no",
// },
// }
// guest, ok := ws.ClientList[vistorInfo.VisitorId]
// if ok && guest != nil {
// guest.UpdateTime = time.Now()
// }
// str, _ := json.Marshal(msg)
// go ws.OneKefuMessage(kefuInfo.Name, str)
// go ws.Room.SendMessageToRoom(toId, str)
// c.JSON(200, gin.H{
// "code": 200,
// "msg": "ok",
// })
//}