submit_api_wx_card_visit_logic.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package wxcardvisit
  2. import (
  3. "context"
  4. "github.com/suyuan32/simple-admin-common/msg/errormsg"
  5. "github.com/zeromicro/go-zero/core/errorx"
  6. "wechat-api/ent"
  7. "wechat-api/ent/wxcardvisit"
  8. "wechat-api/internal/utils/dberrorhandler"
  9. "wechat-api/internal/svc"
  10. "wechat-api/internal/types"
  11. "github.com/zeromicro/go-zero/core/logx"
  12. )
  13. type SubmitApiWxCardVisitLogic struct {
  14. logx.Logger
  15. ctx context.Context
  16. svcCtx *svc.ServiceContext
  17. }
  18. func NewSubmitApiWxCardVisitLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SubmitApiWxCardVisitLogic {
  19. return &SubmitApiWxCardVisitLogic{
  20. Logger: logx.WithContext(ctx),
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. }
  24. }
  25. func (l *SubmitApiWxCardVisitLogic) SubmitApiWxCardVisit(req *types.WxCardVisitInfo) (*types.BaseMsgResp, error) {
  26. userId := l.ctx.Value("userId").(uint64)
  27. var botId uint64
  28. var botType uint8
  29. if req.BotId != nil && *req.BotId > 0 {
  30. botId = *req.BotId
  31. }
  32. if req.BotType != nil && *req.BotType > 0 {
  33. botType = *req.BotType
  34. }
  35. if botId == 0 || botType == 0 {
  36. return nil, errorx.NewInvalidArgumentError("参数非法")
  37. }
  38. _, err := l.svcCtx.DB.WxCardVisit.Query().Where(wxcardvisit.BotID(botId), wxcardvisit.BotType(botType)).First(l.ctx)
  39. if err != nil && !ent.IsNotFound(err) {
  40. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  41. }
  42. // 创建记录
  43. _, err = l.svcCtx.DB.WxCardVisit.Create().
  44. SetBotID(botId).
  45. SetBotType(botType).
  46. SetUserID(userId).
  47. Save(l.ctx)
  48. if err != nil {
  49. return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
  50. }
  51. return &types.BaseMsgResp{
  52. Code: 0,
  53. Msg: errormsg.Success,
  54. }, nil
  55. }