This commit is contained in:
2025-12-27 16:04:43 +08:00
parent 41ab1e1665
commit 8e1319ac39
10 changed files with 258 additions and 29 deletions

View File

@@ -0,0 +1,60 @@
package admin_agent
import (
"context"
"fmt"
"time"
"tydata-server/app/main/api/internal/svc"
"tydata-server/app/main/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type AdminGetAgentOrderStatisticsLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewAdminGetAgentOrderStatisticsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminGetAgentOrderStatisticsLogic {
return &AdminGetAgentOrderStatisticsLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *AdminGetAgentOrderStatisticsLogic) AdminGetAgentOrderStatistics(req *types.AdminGetAgentOrderStatisticsReq) (resp *types.AdminGetAgentOrderStatisticsResp, err error) {
// 获取今日的开始和结束时间
today := time.Now()
startOfDay := time.Date(today.Year(), today.Month(), today.Day(), 0, 0, 0, 0, today.Location())
endOfDay := startOfDay.Add(24 * time.Hour)
// 构建查询条件
builder := l.svcCtx.AgentOrderModel.SelectBuilder()
// 查询总代理订单数
totalBuilder := builder
totalAgentOrderCount, err := l.svcCtx.AgentOrderModel.FindCount(l.ctx, totalBuilder, "id")
if err != nil {
logx.Errorf("查询总代理订单数失败: %v", err)
return nil, fmt.Errorf("查询总代理订单数失败: %w", err)
}
// 查询今日代理订单数
todayBuilder := builder.Where("create_time >= ? AND create_time < ?", startOfDay, endOfDay)
todayAgentOrderCount, err := l.svcCtx.AgentOrderModel.FindCount(l.ctx, todayBuilder, "id")
if err != nil {
logx.Errorf("查询今日代理订单数失败: %v", err)
return nil, fmt.Errorf("查询今日代理订单数失败: %w", err)
}
// 构建响应
resp = &types.AdminGetAgentOrderStatisticsResp{
TotalAgentOrderCount: totalAgentOrderCount,
TodayAgentOrderCount: todayAgentOrderCount,
}
return resp, nil
}

View File

@@ -0,0 +1,56 @@
package admin_agent
import (
"context"
"fmt"
"time"
"tydata-server/app/main/api/internal/svc"
"tydata-server/app/main/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type AdminGetAgentStatisticsLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewAdminGetAgentStatisticsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminGetAgentStatisticsLogic {
return &AdminGetAgentStatisticsLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *AdminGetAgentStatisticsLogic) AdminGetAgentStatistics(req *types.AdminGetAgentStatisticsReq) (resp *types.AdminGetAgentStatisticsResp, err error) {
// 使用AgentModel的SelectBuilder和FindCount方法获取总代理数
totalBuilder := l.svcCtx.AgentModel.SelectBuilder()
totalAgentCount, err := l.svcCtx.AgentModel.FindCount(l.ctx, totalBuilder, "id")
if err != nil {
logx.Errorf("获取总代理数失败: %v", err)
return nil, fmt.Errorf("获取总代理数失败: %w", err)
}
// 获取今日新增代理数
todayBuilder := l.svcCtx.AgentModel.SelectBuilder()
today := time.Now()
startOfDay := time.Date(today.Year(), today.Month(), today.Day(), 0, 0, 0, 0, today.Location())
endOfDay := startOfDay.Add(24 * time.Hour)
todayBuilder = todayBuilder.Where("create_time >= ? AND create_time < ?", startOfDay, endOfDay)
todayAgentCount, err := l.svcCtx.AgentModel.FindCount(l.ctx, todayBuilder, "id")
if err != nil {
logx.Errorf("获取今日新增代理数失败: %v", err)
return nil, fmt.Errorf("获取今日新增代理数失败: %w", err)
}
resp = &types.AdminGetAgentStatisticsResp{
TotalAgentCount: totalAgentCount,
TodayAgentCount: todayAgentCount,
}
return resp, nil
}