抽取数据添加协程

This commit is contained in:
2026-04-08 16:00:54 +08:00
parent 073a098317
commit 000ea03420
3 changed files with 331 additions and 11 deletions

View File

@@ -28,14 +28,20 @@ func (m *MockDataGenerator) GenerateAccountReportRequest() *AccountReportRequest
},
PageInfo: &PageInfo{
CurrentPage: 1,
PageSize: 20,
PageSize: 10,
},
}
}
func (m *MockDataGenerator) GenerateAccountReportResponse() *AccountReportResponse {
return m.GenerateAccountReportResponseWithPage(1, 10)
}
func (m *MockDataGenerator) GenerateAccountReportResponseWithPage(page int, pageSize int) *AccountReportResponse {
sumData := m.generateSumData()
detailData := m.generateDetailData(5)
detailData := m.generateDetailDataByPage(page, pageSize)
totalCount := 23
return &AccountReportResponse{
Code: 0,
@@ -43,11 +49,58 @@ func (m *MockDataGenerator) GenerateAccountReportResponse() *AccountReportRespon
Data: &AccountReportData{
Sum: sumData,
Detail: detailData,
TotalCount: len(detailData),
TotalCount: totalCount,
},
}
}
func (m *MockDataGenerator) generateDetailDataByPage(page int, pageSize int) []*AccountReportItem {
totalCount := 23
if page < 1 || pageSize <= 0 {
return []*AccountReportItem{}
}
startIndex := (page - 1) * pageSize
if startIndex >= totalCount {
return []*AccountReportItem{}
}
endIndex := startIndex + pageSize
if endIndex > totalCount {
endIndex = totalCount
}
actualCount := endIndex - startIndex
items := make([]*AccountReportItem, actualCount)
for i := 0; i < actualCount; i++ {
itemIndex := startIndex + i + 1
campaignId := int64(itemIndex)
unitId := int64(itemIndex * 10)
creativeId := int64(itemIndex * 100)
campaignName := "测试计划_" + string(rune('A'+itemIndex-1))
unitName := "测试单元_" + string(rune('A'+itemIndex-1))
creativeName := "测试创意_" + string(rune('A'+itemIndex-1))
item := m.generateSumData()
item.CampaignId = &campaignId
item.UnitId = &unitId
item.CreativeId = &creativeId
item.CampaignName = campaignName
item.UnitName = unitName
item.CreativeName = creativeName
items[i] = (*AccountReportItem)(item)
}
return items
}
func (m *MockDataGenerator) generateSumData() *AccountReportSum {
cost := m.randomFloat(1000, 10000)
impression := m.randomInt64(10000, 100000)