Procházet zdrojové kódy

wip:微信模版消息发送api提交

wangkaiyue před 2 roky
rodič
revize
864aa2f3d0

+ 28 - 0
api/internal/handler/getmsgtypehandler.go

@@ -0,0 +1,28 @@
+package handler
+
+import (
+	"net/http"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/logic"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+	"github.com/zeromicro/go-zero/rest/httpx"
+)
+
+func GetMsgTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.GetMsgTypeReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+			return
+		}
+
+		l := logic.NewGetMsgTypeLogic(r.Context(), svcCtx)
+		resp, err := l.GetMsgType(&req)
+		if err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+		} else {
+			httpx.OkJsonCtx(r.Context(), w, resp)
+		}
+	}
+}

+ 28 - 0
api/internal/handler/sendwxtmplmsghandler.go

@@ -0,0 +1,28 @@
+package handler
+
+import (
+	"net/http"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/logic"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+	"github.com/zeromicro/go-zero/rest/httpx"
+)
+
+func SendWxTmplMsgHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.WxTmplMessageReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewSendWxTmplMsgLogic(r.Context(), svcCtx)
+		resp, err := l.SendWxTmplMsg(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 30 - 0
api/internal/logic/getmsgtypelogic.go

@@ -0,0 +1,30 @@
+package logic
+
+import (
+	"context"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetMsgTypeLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewGetMsgTypeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetMsgTypeLogic {
+	return &GetMsgTypeLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *GetMsgTypeLogic) GetMsgType(req *types.GetMsgTypeReq) (resp *types.GetMsgTypeRes, err error) {
+	// todo: add your logic here and delete this line
+
+	return
+}

+ 45 - 0
api/internal/logic/sendwxtmplmsglogic.go

@@ -0,0 +1,45 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/MessageCenter/rpc/messageclient"
+	"context"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type SendWxTmplMsgLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewSendWxTmplMsgLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SendWxTmplMsgLogic {
+	return &SendWxTmplMsgLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *SendWxTmplMsgLogic) SendWxTmplMsg(req *types.WxTmplMessageReq) (resp *types.WxTmplMessageResponse, err error) {
+	res, err := l.svcCtx.MessageCenter.SendWxTmplSystemDefaultMsg(l.ctx, &messageclient.SystemDefaultMsg{
+		UserIds:      req.UserIds,
+		PositionIds:  req.PositionIds,
+		MessageClass: req.Class,
+		Title:        req.Title,
+		Detail:       req.Detail,
+		Date:         req.Date,
+		Url:          req.Url,
+	})
+	if err != nil {
+		return nil, err
+	}
+	return &types.WxTmplMessageResponse{
+		Code:    1,
+		Total:   res.Total,
+		Message: res.Message,
+	}, nil
+}