|
@@ -0,0 +1,52 @@
|
|
|
+package sop_task
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "wechat-api/ent/soptask"
|
|
|
+ "wechat-api/ent/wx"
|
|
|
+ "wechat-api/internal/utils/dberrorhandler"
|
|
|
+
|
|
|
+ "wechat-api/internal/svc"
|
|
|
+ "wechat-api/internal/types"
|
|
|
+
|
|
|
+ "github.com/zeromicro/go-zero/core/logx"
|
|
|
+)
|
|
|
+
|
|
|
+type GetBotByTaskIdLogic struct {
|
|
|
+ logx.Logger
|
|
|
+ ctx context.Context
|
|
|
+ svcCtx *svc.ServiceContext
|
|
|
+}
|
|
|
+
|
|
|
+func NewGetBotByTaskIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetBotByTaskIdLogic {
|
|
|
+ return &GetBotByTaskIdLogic{
|
|
|
+ Logger: logx.WithContext(ctx),
|
|
|
+ ctx: ctx,
|
|
|
+ svcCtx: svcCtx}
|
|
|
+}
|
|
|
+
|
|
|
+func (l *GetBotByTaskIdLogic) GetBotByTaskId(req *types.GetBotByTaskIdReq) (resp *types.GetBotByTaskIdResp, err error) {
|
|
|
+ taskId := req.TaskId
|
|
|
+ task, err := l.svcCtx.DB.SopTask.Query().
|
|
|
+ Where(soptask.ID(uint64(taskId))).
|
|
|
+ First(l.ctx)
|
|
|
+ if err != nil {
|
|
|
+ l.Error("查询任务失败", err)
|
|
|
+ return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(task.BotWxidList) == 0 {
|
|
|
+ return &types.GetBotByTaskIdResp{Data: []types.BotList{}}, nil
|
|
|
+ }
|
|
|
+ var list []types.BotList
|
|
|
+ err = l.svcCtx.DB.Wx.Query().
|
|
|
+ Where(wx.WxidIn(task.BotWxidList...)).
|
|
|
+ Select(wx.FieldWxid, wx.FieldNickname).
|
|
|
+ Scan(l.ctx, &list)
|
|
|
+ if err != nil {
|
|
|
+ l.Error("查询机器人信息失败", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return &types.GetBotByTaskIdResp{Data: list}, nil
|
|
|
+
|
|
|
+}
|