get_wx_card_visit_by_id_logic.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package wxcardvisit
  2. import (
  3. "context"
  4. "github.com/alibabacloud-go/tea/tea"
  5. "github.com/suyuan32/simple-admin-common/msg/errormsg"
  6. "github.com/suyuan32/simple-admin-common/utils/pointy"
  7. "github.com/zeromicro/go-zero/core/errorx"
  8. "wechat-api/ent"
  9. "wechat-api/ent/agent"
  10. "wechat-api/ent/wxcard"
  11. "wechat-api/ent/wxcardvisit"
  12. "wechat-api/internal/utils/dberrorhandler"
  13. "wechat-api/internal/svc"
  14. "wechat-api/internal/types"
  15. "github.com/zeromicro/go-zero/core/logx"
  16. )
  17. type GetWxCardVisitByIdLogic struct {
  18. logx.Logger
  19. ctx context.Context
  20. svcCtx *svc.ServiceContext
  21. }
  22. func NewGetWxCardVisitByIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetWxCardVisitByIdLogic {
  23. return &GetWxCardVisitByIdLogic{
  24. Logger: logx.WithContext(ctx),
  25. ctx: ctx,
  26. svcCtx: svcCtx}
  27. }
  28. func (l *GetWxCardVisitByIdLogic) GetWxCardVisitById(req *types.IDReq) (*types.WxCardVisitInfoResp, error) {
  29. data, err := l.svcCtx.DB.WxCardVisit.Query().Where(wxcardvisit.ID(req.Id)).Only(l.ctx)
  30. if err != nil {
  31. if ent.IsNotFound(err) {
  32. return nil, errorx.NewInvalidArgumentError("记录不存在")
  33. }
  34. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  35. }
  36. var card types.WxCardSimpleInfo
  37. if data.BotType == 2 {
  38. acard, _ := l.svcCtx.DB.WxCard.Query().Where(wxcard.ID(data.BotID)).Only(l.ctx)
  39. card.Avatar = tea.String(acard.Avatar)
  40. card.Name = tea.String(acard.Name)
  41. } else if data.BotType == 3 {
  42. agent, _ := l.svcCtx.DB.Agent.Query().Where(agent.ID(data.BotID)).Only(l.ctx)
  43. card.Avatar = tea.String("")
  44. card.Name = tea.String(agent.Name)
  45. } else {
  46. }
  47. return &types.WxCardVisitInfoResp{
  48. BaseDataInfo: types.BaseDataInfo{
  49. Code: 0,
  50. Msg: errormsg.Success,
  51. },
  52. Data: types.WxCardVisitInfo{
  53. BaseIDInfo: types.BaseIDInfo{
  54. Id: &data.ID,
  55. CreatedAt: pointy.GetPointer(data.CreatedAt.UnixMilli()),
  56. UpdatedAt: pointy.GetPointer(data.UpdatedAt.UnixMilli()),
  57. },
  58. UserId: &data.UserID,
  59. BotType: &data.BotType,
  60. BotId: &data.BotID,
  61. CardInfo: types.WxCardSimpleInfo{
  62. Avatar: card.Avatar,
  63. Name: card.Name,
  64. },
  65. },
  66. }, nil
  67. }