This commit is contained in:
2026-01-12 16:43:08 +08:00
parent dc747139c9
commit 3c6e2683f5
110 changed files with 9630 additions and 481 deletions

View File

@@ -185,7 +185,6 @@ func (l *GetConversionRateLogic) calculateConversionRate(agentId string, subordi
func (l *GetConversionRateLogic) calculatePeriodConversion(agentId string, subordinateIds []string, periodLabel string, startTime, endTime time.Time) types.PeriodConversionData {
// 构建 agent_order 查询条件
agentOrderBuilder := l.svcCtx.AgentOrderModel.SelectBuilder().
Where("del_state = ?", globalkey.DelStateNo).
Where("create_time >= ? AND create_time < ?", startTime, endTime)
if agentId != "" {
@@ -252,8 +251,7 @@ func (l *GetConversionRateLogic) calculatePeriodConversion(agentId string, subor
// 查询订单信息
orderBuilder := l.svcCtx.OrderModel.SelectBuilder().
Where(squirrel.Eq{"id": orderIds}).
Where("del_state = ?", globalkey.DelStateNo)
Where(squirrel.Eq{"id": orderIds})
orders, err := l.svcCtx.OrderModel.FindAll(l.ctx, orderBuilder, "")
if err != nil && !errors.Is(err, model.ErrNotFound) {
@@ -305,9 +303,9 @@ func (l *GetConversionRateLogic) calculatePeriodConversion(agentId string, subor
// 2. 付费量和金额通过agent_rebate表统计只有付费的订单才会产生返佣
func (l *GetConversionRateLogic) calculateSubordinatePeriodConversion(parentAgentId string, periodLabel string, startTime, endTime time.Time) types.PeriodConversionData {
// 1. 查询agent_rebate表获取所有曾经给当前用户产生返佣的source_agent_id这些代理在某个时间点是下级
// 不限制时间,获取所有历史返佣记录,用于确定哪些代理曾经是下级
// 不限制时间,获取所有历史返佣记录,用于确定哪些代理曾经是下级(排除已取消的记录 status=3
rebateBuilder := l.svcCtx.AgentRebateModel.SelectBuilder().
Where("agent_id = ? AND del_state = ?", parentAgentId, globalkey.DelStateNo).
Where("agent_id = ? AND del_state = ? AND status != ?", parentAgentId, globalkey.DelStateNo, 3).
Where("source_agent_id != ?", parentAgentId)
allRebates, err := l.svcCtx.AgentRebateModel.FindAll(l.ctx, rebateBuilder, "")
@@ -360,7 +358,6 @@ func (l *GetConversionRateLogic) calculateSubordinatePeriodConversion(parentAgen
// 2. 查询agent_order表统计这些代理在时间段内的所有订单包括未付费的
agentOrderBuilder := l.svcCtx.AgentOrderModel.SelectBuilder().
Where("del_state = ?", globalkey.DelStateNo).
Where("create_time >= ? AND create_time < ?", startTime, endTime).
Where(squirrel.Eq{"agent_id": sourceAgentIds})
@@ -413,8 +410,7 @@ func (l *GetConversionRateLogic) calculateSubordinatePeriodConversion(parentAgen
// 4. 查询订单信息
orderBuilder := l.svcCtx.OrderModel.SelectBuilder().
Where(squirrel.Eq{"id": orderIds}).
Where("del_state = ?", globalkey.DelStateNo)
Where(squirrel.Eq{"id": orderIds})
orders, err := l.svcCtx.OrderModel.FindAll(l.ctx, orderBuilder, "")
if err != nil && !errors.Is(err, model.ErrNotFound) {
@@ -429,9 +425,9 @@ func (l *GetConversionRateLogic) calculateSubordinatePeriodConversion(parentAgen
}
}
// 5. 查询时间段内的返佣记录,获取已付费订单的金额
// 5. 查询时间段内的返佣记录,获取已付费订单的金额(排除已取消的记录 status=3
rebateBuilder = l.svcCtx.AgentRebateModel.SelectBuilder().
Where("agent_id = ? AND del_state = ?", parentAgentId, globalkey.DelStateNo).
Where("agent_id = ? AND del_state = ? AND status != ?", parentAgentId, globalkey.DelStateNo, 3).
Where("source_agent_id != ?", parentAgentId).
Where("create_time >= ? AND create_time < ?", startTime, endTime).
Where(squirrel.Eq{"order_id": orderIds})