Parcourir la source

fix:修改返回圈量客服

jimmyyem il y a 1 mois
Parent
commit
e7ed457da4

+ 4 - 0
desc/wechat/xunji_service.api

@@ -1,4 +1,5 @@
 import "../base.api"
+import "./agent.api"
 
 type (
     // The data of xunji service information | XunjiService信息
@@ -14,6 +15,9 @@ type (
         // 智能体ID 
         AgentId  *uint64 `json:"agentId,optional"`
 
+		// 模式信息
+		AgentInfo *AgentInfo `json:"agentInfo,optional"`
+
         // organization_id | 租户ID 
         OrganizationId  *uint64 `json:"organizationId,optional"`
 

+ 35 - 21
internal/logic/xunji_service/get_xunji_service_by_id_logic.go

@@ -2,12 +2,13 @@ package xunji_service
 
 import (
 	"context"
+	"wechat-api/ent/xunjiservice"
 
 	"wechat-api/internal/svc"
 	"wechat-api/internal/types"
 	"wechat-api/internal/utils/dberrorhandler"
 
-    "github.com/suyuan32/simple-admin-common/msg/errormsg"
+	"github.com/suyuan32/simple-admin-common/msg/errormsg"
 
 	"github.com/suyuan32/simple-admin-common/utils/pointy"
 	"github.com/zeromicro/go-zero/core/logx"
@@ -28,30 +29,43 @@ func NewGetXunjiServiceByIdLogic(ctx context.Context, svcCtx *svc.ServiceContext
 }
 
 func (l *GetXunjiServiceByIdLogic) GetXunjiServiceById(req *types.IDReq) (*types.XunjiServiceInfoResp, error) {
-	data, err := l.svcCtx.DB.XunjiService.Get(l.ctx, req.Id)
+	data, err := l.svcCtx.DB.XunjiService.Query().Where(xunjiservice.ID(req.Id)).WithAgent().Only(l.ctx)
 	if err != nil {
 		return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
 	}
 
+	agent := types.AgentInfo{
+		BaseIDInfo: types.BaseIDInfo{
+			Id:        &data.AgentID,
+			CreatedAt: pointy.GetPointer(data.Edges.Agent.CreatedAt.UnixMilli()),
+			UpdatedAt: pointy.GetPointer(data.Edges.Agent.UpdatedAt.UnixMilli()),
+		},
+		Name:       &data.Edges.Agent.Name,
+		Role:       &data.Edges.Agent.Role,
+		Status:     &data.Edges.Agent.Status,
+		Background: &data.Edges.Agent.Background,
+		Examples:   &data.Edges.Agent.Examples,
+	}
+
 	return &types.XunjiServiceInfoResp{
-	    BaseDataInfo: types.BaseDataInfo{
-            Code: 0,
-            Msg:  errormsg.Success,
-        },
-        Data: types.XunjiServiceInfo{
-            BaseIDInfo:    types.BaseIDInfo{
-				Id:          &data.ID,
-				CreatedAt:    pointy.GetPointer(data.CreatedAt.UnixMilli()),
-				UpdatedAt:    pointy.GetPointer(data.UpdatedAt.UnixMilli()),
-            },
-			Status:	&data.Status,
-			XunjiId:	&data.XunjiID,
-			AgentId:	&data.AgentID,
-			OrganizationId:	&data.OrganizationID,
-			Wxid:	&data.Wxid,
-			ApiBase:	&data.APIBase,
-			ApiKey:	&data.APIKey,
-        },
+		BaseDataInfo: types.BaseDataInfo{
+			Code: 0,
+			Msg:  errormsg.Success,
+		},
+		Data: types.XunjiServiceInfo{
+			BaseIDInfo: types.BaseIDInfo{
+				Id:        &data.ID,
+				CreatedAt: pointy.GetPointer(data.CreatedAt.UnixMilli()),
+				UpdatedAt: pointy.GetPointer(data.UpdatedAt.UnixMilli()),
+			},
+			Status:         &data.Status,
+			XunjiId:        &data.XunjiID,
+			AgentId:        &data.AgentID,
+			AgentInfo:      &agent,
+			OrganizationId: &data.OrganizationID,
+			Wxid:           &data.Wxid,
+			ApiBase:        &data.APIBase,
+			ApiKey:         &data.APIKey,
+		},
 	}, nil
 }
-

+ 34 - 17
internal/logic/xunji_service/get_xunji_service_list_logic.go

@@ -3,13 +3,13 @@ package xunji_service
 import (
 	"context"
 
-	"wechat-api/ent/xunjiservice"
 	"wechat-api/ent/predicate"
+	"wechat-api/ent/xunjiservice"
 	"wechat-api/internal/svc"
 	"wechat-api/internal/types"
 	"wechat-api/internal/utils/dberrorhandler"
 
-    "github.com/suyuan32/simple-admin-common/msg/errormsg"
+	"github.com/suyuan32/simple-admin-common/msg/errormsg"
 
 	"github.com/suyuan32/simple-admin-common/utils/pointy"
 	"github.com/zeromicro/go-zero/core/logx"
@@ -40,7 +40,7 @@ func (l *GetXunjiServiceListLogic) GetXunjiServiceList(req *types.XunjiServiceLi
 	if req.ApiKey != nil {
 		predicates = append(predicates, xunjiservice.APIKeyContains(*req.ApiKey))
 	}
-	data, err := l.svcCtx.DB.XunjiService.Query().Where(predicates...).Page(l.ctx, req.Page, req.PageSize)
+	data, err := l.svcCtx.DB.XunjiService.Query().Where(predicates...).WithAgent().Page(l.ctx, req.Page, req.PageSize)
 
 	if err != nil {
 		return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
@@ -51,21 +51,38 @@ func (l *GetXunjiServiceListLogic) GetXunjiServiceList(req *types.XunjiServiceLi
 	resp.Data.Total = data.PageDetails.Total
 
 	for _, v := range data.List {
+		var agent types.AgentInfo
+		if v.Edges.Agent != nil {
+			agent = types.AgentInfo{
+				BaseIDInfo: types.BaseIDInfo{
+					Id:        &v.AgentID,
+					CreatedAt: pointy.GetPointer(v.Edges.Agent.CreatedAt.UnixMilli()),
+					UpdatedAt: pointy.GetPointer(v.Edges.Agent.UpdatedAt.UnixMilli()),
+				},
+				Name:       &v.Edges.Agent.Name,
+				Role:       &v.Edges.Agent.Role,
+				Status:     &v.Edges.Agent.Status,
+				Background: &v.Edges.Agent.Background,
+				Examples:   &v.Edges.Agent.Examples,
+			}
+		}
+
 		resp.Data.Data = append(resp.Data.Data,
-		types.XunjiServiceInfo{
-			BaseIDInfo:    types.BaseIDInfo{
-				Id:          &v.ID,
-				CreatedAt:    pointy.GetPointer(v.CreatedAt.UnixMilli()),
-				UpdatedAt:    pointy.GetPointer(v.UpdatedAt.UnixMilli()),
-            },
-			Status:	&v.Status,
-			XunjiId:	&v.XunjiID,
-			AgentId:	&v.AgentID,
-			OrganizationId:	&v.OrganizationID,
-			Wxid:	&v.Wxid,
-			ApiBase:	&v.APIBase,
-			ApiKey:	&v.APIKey,
-		})
+			types.XunjiServiceInfo{
+				BaseIDInfo: types.BaseIDInfo{
+					Id:        &v.ID,
+					CreatedAt: pointy.GetPointer(v.CreatedAt.UnixMilli()),
+					UpdatedAt: pointy.GetPointer(v.UpdatedAt.UnixMilli()),
+				},
+				Status:         &v.Status,
+				XunjiId:        &v.XunjiID,
+				AgentId:        &v.AgentID,
+				AgentInfo:      &agent,
+				OrganizationId: &v.OrganizationID,
+				Wxid:           &v.Wxid,
+				ApiBase:        &v.APIBase,
+				ApiKey:         &v.APIKey,
+			})
 	}
 
 	return resp, nil

+ 2 - 0
internal/types/types.go

@@ -4090,6 +4090,8 @@ type XunjiServiceInfo struct {
 	XunjiId *uint64 `json:"xunjiId,optional"`
 	// 智能体ID
 	AgentId *uint64 `json:"agentId,optional"`
+	// 模式信息
+	AgentInfo *AgentInfo `json:"agentInfo,optional"`
 	// organization_id | 租户ID
 	OrganizationId *uint64 `json:"organizationId,optional"`
 	// 微信ID