get_apps_list_logic.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package fastgpt
  2. import (
  3. "context"
  4. "github.com/zeromicro/go-zero/core/errorx"
  5. "strconv"
  6. "wechat-api/internal/svc"
  7. "wechat-api/internal/types"
  8. "github.com/zeromicro/go-zero/core/logx"
  9. )
  10. type GetAppsListLogic struct {
  11. logx.Logger
  12. ctx context.Context
  13. svcCtx *svc.ServiceContext
  14. }
  15. func NewGetAppsListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAppsListLogic {
  16. return &GetAppsListLogic{
  17. Logger: logx.WithContext(ctx),
  18. ctx: ctx,
  19. svcCtx: svcCtx}
  20. }
  21. func (l *GetAppsListLogic) GetAppsList(req *types.AppsListReq) (resp *types.AppsListResp, err error) {
  22. organizationId := l.ctx.Value("organizationId").(uint64)
  23. organizationIdStr := strconv.FormatUint(organizationId, 10)
  24. user, err := l.svcCtx.MongoModel.UsersModel.FindOneByUsername(context.TODO(), organizationIdStr)
  25. if err != nil {
  26. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  27. }
  28. teamMember, err := l.svcCtx.MongoModel.TeamMembersModel.FindOneByUserId(context.TODO(), user.ID)
  29. if err != nil {
  30. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  31. }
  32. data, err := l.svcCtx.MongoModel.AppsModel.FindAll(context.TODO(), teamMember.TeamID, req.Type, req.Keyword)
  33. if err != nil {
  34. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  35. }
  36. var appList []*types.AppsListRespInfo
  37. if data != nil {
  38. for _, app := range data {
  39. appList = append(appList, &types.AppsListRespInfo{
  40. Id: app.ID.String(),
  41. TeamId: app.TeamID.String(),
  42. TmbId: app.TmbID.String(),
  43. Avatar: app.Avatar,
  44. Name: app.Name,
  45. Intro: app.Intro,
  46. })
  47. }
  48. }
  49. return &types.AppsListResp{Data: appList}, nil
  50. }