diff --git a/app/main/api/desc/front/agent.api b/app/main/api/desc/front/agent.api index b3aca4e..fa77463 100644 --- a/app/main/api/desc/front/agent.api +++ b/app/main/api/desc/front/agent.api @@ -408,18 +408,18 @@ type ( MonthEarnings float64 `json:"month_earnings"` // 月收益 } TeamMemberItem { - AgentId string `json:"agent_id"` // 代理ID - Level int64 `json:"level"` // 等级 - LevelName string `json:"level_name"` // 等级名称 - Mobile string `json:"mobile"` // 手机号 - CreateTime string `json:"create_time"` // 加入团队时间 - TodayQueries int64 `json:"today_queries"` // 当日查询量 - TotalQueries int64 `json:"total_queries"` // 总查询量 - TotalRebateAmount float64 `json:"total_rebate_amount"` // 返佣给我的总金额 - TodayRebateAmount float64 `json:"today_rebate_amount"` // 返佣给我的今日金额 - TotalInvites int64 `json:"total_invites"` // 邀请加入团队的总人数 - TodayInvites int64 `json:"today_invites"` // 邀请加入团队的今日人数 - IsDirect bool `json:"is_direct"` // 是否直接下级 + AgentId string `json:"agent_id"` // 代理ID + Level int64 `json:"level"` // 等级 + LevelName string `json:"level_name"` // 等级名称 + Mobile string `json:"mobile"` // 手机号 + CreateTime string `json:"create_time"` // 加入团队时间 + TodayInvites int64 `json:"today_invites"` // 邀请加入团队的今日人数 + MonthInvites int64 `json:"month_invites"` // 邀请加入团队的本月人数 + TotalInvites int64 `json:"total_invites"` // 邀请加入团队的总人数 + TodayQueries int64 `json:"today_queries"` // 当日查询量 + MonthQueries int64 `json:"month_queries"` // 本月查询量 + TotalQueries int64 `json:"total_queries"` // 总查询量 + IsDirect bool `json:"is_direct"` // 是否直接下级 } // 收益信息 GetRevenueInfoResp { diff --git a/app/main/api/internal/logic/agent/getteamlistlogic.go b/app/main/api/internal/logic/agent/getteamlistlogic.go index d907212..851987f 100644 --- a/app/main/api/internal/logic/agent/getteamlistlogic.go +++ b/app/main/api/internal/logic/agent/getteamlistlogic.go @@ -2,14 +2,14 @@ package agent import ( "context" - "sort" - "strings" - "time" "qnc-server/app/main/model" "qnc-server/common/ctxdata" "qnc-server/common/globalkey" "qnc-server/common/xerr" "qnc-server/pkg/lzkit/crypto" + "sort" + "strings" + "time" "github.com/Masterminds/squirrel" "github.com/pkg/errors" @@ -170,7 +170,7 @@ func (l *GetTeamListLogic) GetTeamList(req *types.GetTeamListReq) (resp *types.G // 11. 组装响应列表 var list []types.TeamMemberItem for _, member := range teamMembers { - memberItem := l.buildTeamMemberItem(agent.Id, member, directSubordinateIds, todayStart) + memberItem := l.buildTeamMemberItem(agent.Id, member, directSubordinateIds, todayStart, monthStart) list = append(list, memberItem) } @@ -284,7 +284,7 @@ func (l *GetTeamListLogic) countDistinctOrdersForMember(ctx context.Context, bui } // buildTeamMemberItem 构建团队成员项 -func (l *GetTeamListLogic) buildTeamMemberItem(agentId string, member *model.Agent, directSubordinateIds map[string]bool, todayStart time.Time) types.TeamMemberItem { +func (l *GetTeamListLogic) buildTeamMemberItem(agentId string, member *model.Agent, directSubordinateIds map[string]bool, todayStart, monthStart time.Time) types.TeamMemberItem { levelName := "" switch member.Level { case 1: @@ -310,32 +310,34 @@ func (l *GetTeamListLogic) buildTeamMemberItem(agentId string, member *model.Age totalQueries := l.countDistinctOrdersForMember(l.ctx, rebateBuilder) todayRebateBuilder := rebateBuilder.Where("create_time >= ?", todayStart) todayQueries := l.countDistinctOrdersForMember(l.ctx, todayRebateBuilder) + monthRebateBuilder := rebateBuilder.Where("create_time >= ?", monthStart) + monthQueries := l.countDistinctOrdersForMember(l.ctx, monthRebateBuilder) // 统计返佣给我的金额(从agent_rebate表,source_agent_id = member.Id, agent_id = agentId) - totalRebateAmount, _ := l.svcCtx.AgentRebateModel.FindSum(l.ctx, rebateBuilder, "rebate_amount") - todayRebateAmount, _ := l.svcCtx.AgentRebateModel.FindSum(l.ctx, rebateBuilder.Where("create_time >= ?", todayStart), "rebate_amount") + // 原返佣统计字段已在新需求中不再下发给前端,这里暂不计算金额,后续如有需要可在 .api 中重新定义并补充实现 // 统计邀请人数(从agent_relation表,parent_id = member.Id) inviteBuilder := l.svcCtx.AgentRelationModel.SelectBuilder(). Where("parent_id = ? AND relation_type = ? AND del_state = ?", member.Id, 1, globalkey.DelStateNo) totalInvites, _ := l.svcCtx.AgentRelationModel.FindCount(l.ctx, inviteBuilder, "id") todayInvites, _ := l.svcCtx.AgentRelationModel.FindCount(l.ctx, inviteBuilder.Where("create_time >= ?", todayStart), "id") + monthInvites, _ := l.svcCtx.AgentRelationModel.FindCount(l.ctx, inviteBuilder.Where("create_time >= ?", monthStart), "id") // 判断是否直接下级 isDirect := directSubordinateIds[member.Id] return types.TeamMemberItem{ - AgentId: member.Id, - Level: member.Level, - LevelName: levelName, - Mobile: mobile, - CreateTime: member.CreateTime.Format("2006-01-02 15:04:05"), - TodayQueries: todayQueries, - TotalQueries: totalQueries, - TotalRebateAmount: totalRebateAmount, - TodayRebateAmount: todayRebateAmount, - TotalInvites: totalInvites, - TodayInvites: todayInvites, - IsDirect: isDirect, + AgentId: member.Id, + Level: member.Level, + LevelName: levelName, + Mobile: mobile, + CreateTime: member.CreateTime.Format("2006-01-02 15:04:05"), + TodayInvites: todayInvites, + MonthInvites: monthInvites, + TotalInvites: totalInvites, + TodayQueries: todayQueries, + MonthQueries: monthQueries, + TotalQueries: totalQueries, + IsDirect: isDirect, } } diff --git a/app/main/api/internal/types/types.go b/app/main/api/internal/types/types.go index c9222c3..856932f 100644 --- a/app/main/api/internal/types/types.go +++ b/app/main/api/internal/types/types.go @@ -500,18 +500,18 @@ type SubordinateItem struct { } type TeamMemberItem struct { - AgentId string `json:"agent_id"` // 代理ID - Level int64 `json:"level"` // 等级 - LevelName string `json:"level_name"` // 等级名称 - Mobile string `json:"mobile"` // 手机号 - CreateTime string `json:"create_time"` // 加入团队时间 - TodayQueries int64 `json:"today_queries"` // 当日查询量 - TotalQueries int64 `json:"total_queries"` // 总查询量 - TotalRebateAmount float64 `json:"total_rebate_amount"` // 返佣给我的总金额 - TodayRebateAmount float64 `json:"today_rebate_amount"` // 返佣给我的今日金额 - TotalInvites int64 `json:"total_invites"` // 邀请加入团队的总人数 - TodayInvites int64 `json:"today_invites"` // 邀请加入团队的今日人数 - IsDirect bool `json:"is_direct"` // 是否直接下级 + AgentId string `json:"agent_id"` // 代理ID + Level int64 `json:"level"` // 等级 + LevelName string `json:"level_name"` // 等级名称 + Mobile string `json:"mobile"` // 手机号 + CreateTime string `json:"create_time"` // 加入团队时间 + TodayInvites int64 `json:"today_invites"` // 邀请加入团队的今日人数 + MonthInvites int64 `json:"month_invites"` // 邀请加入团队的本月人数 + TotalInvites int64 `json:"total_invites"` // 邀请加入团队的总人数 + TodayQueries int64 `json:"today_queries"` // 当日查询量 + MonthQueries int64 `json:"month_queries"` // 本月查询量 + TotalQueries int64 `json:"total_queries"` // 总查询量 + IsDirect bool `json:"is_direct"` // 是否直接下级 } type TeamStatistics struct {