package logic import ( "app.yhyue.com/moapp/MessageCenter/rpc/messageclient" "app.yhyue.com/moapp/MessageCenter/util" "context" "encoding/json" "log" "app.yhyue.com/moapp/MessageCenter/api/internal/svc" "app.yhyue.com/moapp/MessageCenter/api/internal/types" "github.com/tal-tech/go-zero/core/logx" ) type MultipleSaveMsgLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewMultipleSaveMsgLogic(ctx context.Context, svcCtx *svc.ServiceContext) MultipleSaveMsgLogic { return MultipleSaveMsgLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *MultipleSaveMsgLogic) MultipleSaveMsg(req types.MultipleSaveMsgReq) (*types.MultipleSaveMsgResp, error) { // todo: add your logic here and delete this line log.Println("请求参数:", req) var reqData = []map[string]interface{}{} err := json.Unmarshal([]byte(req.SaveData), reqData) if err != nil { return &types.MultipleSaveMsgResp{ Code: 0, Message: "失败", ErrCount: 0, }, nil } errCount := 0 lsi := l.svcCtx.MessageCenter for _, val := range reqData { resp, err := lsi.SendUserMsg(l.ctx, &messageclient.SendMsgRequest{ Appid: util.ObjToString(val["appid"]), ReceiveUserId: util.ObjToString(val["receiveUserId"]), ReceiveName: util.ObjToString(val["receiveName"]), SendUserId: util.ObjToString(val["sendUserId"]), SendName: util.ObjToString(val["sendName"]), Title: util.ObjToString(val["title"]), Content: util.ObjToString(val["content"]), MsgType: util.Int64All(val["msgType"]), Link: util.ObjToString(val["link"]), CiteId: util.Int64All(val["citeId"]), }) log.Println(resp) if err != nil { errCount++ } } return &types.MultipleSaveMsgResp{ Code: 1, Message: "保存成功", ErrCount: int64(errCount), }, nil }