43 lines
973 B
Go
43 lines
973 B
Go
package crm
|
|
|
|
import (
|
|
"context"
|
|
|
|
"apps/backend/internal/svc"
|
|
"apps/backend/internal/types"
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
)
|
|
|
|
type GetCrmStatsLogic struct {
|
|
logx.Logger
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
}
|
|
|
|
func NewGetCrmStatsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCrmStatsLogic {
|
|
return &GetCrmStatsLogic{Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx}
|
|
}
|
|
|
|
func (l *GetCrmStatsLogic) GetCrmStats(req *types.CrmStatsReq) (*types.CrmStatsData, error) {
|
|
uid, err := ownerUID(l.ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
stats, err := l.svcCtx.Crm.Stats(l.ctx, uid, req.From, req.To)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
won := 0
|
|
if v, ok := stats["won"].(int); ok {
|
|
won = v
|
|
}
|
|
return &types.CrmStatsData{
|
|
Terms: []types.TermConversionStat{},
|
|
Variants: []types.VariantConversionStat{},
|
|
Sources: []types.SourceConversionStat{
|
|
{Source: "radar", Won: won, InsufficientSample: won < 5},
|
|
},
|
|
}, nil
|
|
}
|