get_wx_by_id_logic.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package Wx
  2. import (
  3. "context"
  4. "wechat-api/ent/wx"
  5. "wechat-api/internal/svc"
  6. "wechat-api/internal/types"
  7. "wechat-api/internal/utils/dberrorhandler"
  8. "github.com/suyuan32/simple-admin-common/msg/errormsg"
  9. "github.com/suyuan32/simple-admin-common/utils/pointy"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type GetWxByIdLogic struct {
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. logx.Logger
  16. }
  17. func NewGetWxByIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetWxByIdLogic {
  18. return &GetWxByIdLogic{
  19. ctx: ctx,
  20. svcCtx: svcCtx,
  21. Logger: logx.WithContext(ctx),
  22. }
  23. }
  24. func (l *GetWxByIdLogic) GetWxById(req *types.IDReq) (*types.WxInfoResp, error) {
  25. organizationId := l.ctx.Value("organizationId").(uint64)
  26. data, err := l.svcCtx.DB.Wx.Query().
  27. Where(
  28. wx.IDEQ(req.Id), // Filter by ID
  29. wx.OrganizationID(organizationId), // Additional filter by organizationId
  30. ).
  31. WithAgent().
  32. Only(l.ctx)
  33. if err != nil {
  34. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  35. }
  36. agent := types.AgentInfo{
  37. BaseIDInfo: types.BaseIDInfo{
  38. Id: &data.AgentID,
  39. CreatedAt: pointy.GetPointer(data.Edges.Agent.CreatedAt.UnixMilli()),
  40. UpdatedAt: pointy.GetPointer(data.Edges.Agent.UpdatedAt.UnixMilli()),
  41. },
  42. Name: &data.Edges.Agent.Name,
  43. Role: &data.Edges.Agent.Role,
  44. Status: &data.Edges.Agent.Status,
  45. Background: &data.Edges.Agent.Background,
  46. Examples: &data.Edges.Agent.Examples,
  47. }
  48. return &types.WxInfoResp{
  49. BaseDataInfo: types.BaseDataInfo{
  50. Code: 0,
  51. Msg: errormsg.Success,
  52. },
  53. Data: types.WxInfo{
  54. BaseIDInfo: types.BaseIDInfo{
  55. Id: &data.ID,
  56. CreatedAt: pointy.GetPointer(data.CreatedAt.UnixMilli()),
  57. UpdatedAt: pointy.GetPointer(data.UpdatedAt.UnixMilli()),
  58. },
  59. Status: &data.Status,
  60. ServerId: &data.ServerID,
  61. Port: &data.Port,
  62. ProcessId: &data.ProcessID,
  63. Callback: &data.Callback,
  64. Wxid: &data.Wxid,
  65. Account: &data.Account,
  66. Nickname: &data.Nickname,
  67. Tel: &data.Tel,
  68. HeadBig: &data.HeadBig,
  69. OrganizationId: &data.OrganizationID,
  70. AgentId: &data.AgentID,
  71. AgentInfo: &agent,
  72. },
  73. }, nil
  74. }