12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package api
- import (
- "github.com/gin-gonic/gin"
- "gogs.daxia.dev/huanan/pkg.daxia.dev/validate_utils"
- "gogs.daxia.dev/huanan/pkg.daxia.dev/webutils"
- "nn.daxia.dev/nxd"
- "nn.daxia.dev/online"
- )
- type RecvInfo struct {
- RecvUserID uint32 `json:"recv_user_id" validate:"required"`
- NotifyType uint32 `json:"notify_type" validate:"required"`
- Content string `json:"content" validate:"required"`
- }
- type NotifyReq struct {
- RoomID uint32 `json:"room_id" validate:"required"`
- TableID uint32 `json:"table_id" validate:"required"`
- SenderID uint `json:"sender_id" validate:"required"`
- RecvList []RecvInfo `json:"recv_list" validate:"required"`
- }
- func Notify(ctx *gin.Context) {
- req := NotifyReq{}
- if err := ctx.ShouldBindJSON(&req); err != nil {
- errStr := validate_utils.SetErrorStr(err, func(tag string) string {
- switch tag {
- case "RoomID.required":
- return "房间ID不能为空"
- case "TableID.required":
- return "TableID不能为空"
- case "SenderID.required":
- return "发送者ID不能为空"
- case "RecvList.required":
- return "接收者不能为空"
- }
- return "内部错误"
- })
- webutils.FailedResponse(ctx, errStr(0))
- return
- }
- for _, item := range req.RecvList {
- nxd.SendMsgToUser(item.RecvUserID, online.Msg{
- RoomID: req.RoomID,
- Offset: 0,
- NotifyType: item.NotifyType,
- Data: item.Content,
- })
- }
- webutils.SuccessResponse(ctx, nil)
- }
|