get_apps_list_logic.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. apps "wechat-api/mongo_model/apps"
  9. team_members "wechat-api/mongo_model/team_members"
  10. users "wechat-api/mongo_model/users"
  11. "github.com/zeromicro/go-zero/core/logx"
  12. )
  13. type GetAppsListLogic struct {
  14. logx.Logger
  15. ctx context.Context
  16. svcCtx *svc.ServiceContext
  17. }
  18. func NewGetAppsListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAppsListLogic {
  19. return &GetAppsListLogic{
  20. Logger: logx.WithContext(ctx),
  21. ctx: ctx,
  22. svcCtx: svcCtx}
  23. }
  24. func (l *GetAppsListLogic) GetAppsList(req *types.AppsListReq) (resp *types.AppsListResp, err error) {
  25. organizationId := l.ctx.Value("organizationId").(uint64)
  26. organizationIdStr := strconv.FormatUint(organizationId, 10)
  27. usersModel := users.NewUsersModel(l.svcCtx.Config.FastgptMongoConf.Url, l.svcCtx.Config.FastgptMongoConf.DBName, "users")
  28. user, err := usersModel.FindOneByUsername(context.TODO(), organizationIdStr)
  29. if err != nil {
  30. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  31. }
  32. teamMembersModel := team_members.NewTeamMembersModel(l.svcCtx.Config.FastgptMongoConf.Url, l.svcCtx.Config.FastgptMongoConf.DBName, "team_members")
  33. teamMember, err := teamMembersModel.FindOneByUserId(context.TODO(), user.ID)
  34. if err != nil {
  35. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  36. }
  37. appsModel := apps.NewAppsModel(l.svcCtx.Config.FastgptMongoConf.Url, l.svcCtx.Config.FastgptMongoConf.DBName, "apps")
  38. data, err := appsModel.FindAll(context.TODO(), teamMember.TeamID, req.Type, req.Keyword)
  39. if err != nil {
  40. return nil, errorx.NewInvalidArgumentError("fastgpt get list failed " + err.Error())
  41. }
  42. var appList []*types.AppsListRespInfo
  43. if data != nil {
  44. for _, app := range data {
  45. appList = append(appList, &types.AppsListRespInfo{
  46. Id: app.ID.Hex(),
  47. TeamId: app.TeamID.Hex(),
  48. TmbId: app.TmbID.Hex(),
  49. Avatar: app.Avatar,
  50. Name: app.Name,
  51. Intro: app.Intro,
  52. })
  53. }
  54. }
  55. return &types.AppsListResp{Data: appList}, nil
  56. }