get_wx_by_id_logic.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. Only(l.ctx)
  32. if err != nil {
  33. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  34. }
  35. return &types.WxInfoResp{
  36. BaseDataInfo: types.BaseDataInfo{
  37. Code: 0,
  38. Msg: errormsg.Success,
  39. },
  40. Data: types.WxInfo{
  41. BaseIDInfo: types.BaseIDInfo{
  42. Id: &data.ID,
  43. CreatedAt: pointy.GetPointer(data.CreatedAt.UnixMilli()),
  44. UpdatedAt: pointy.GetPointer(data.UpdatedAt.UnixMilli()),
  45. },
  46. Status: &data.Status,
  47. ServerId: &data.ServerID,
  48. Port: &data.Port,
  49. ProcessId: &data.ProcessID,
  50. Callback: &data.Callback,
  51. Wxid: &data.Wxid,
  52. Account: &data.Account,
  53. Nickname: &data.Nickname,
  54. Tel: &data.Tel,
  55. HeadBig: &data.HeadBig,
  56. OrganizationId: &data.OrganizationID,
  57. },
  58. }, nil
  59. }