Merge branch 'dev-lzh-1029' into dev

This commit is contained in:
lzh 2025-11-10 09:38:18 +08:00
commit c9f032948e

View File

@ -114,7 +114,7 @@ func MetricsBundlePurchaseExport(ctx *gin.Context) {
}
if err := exportStructToExcel(resp.Data, []string{
"订单编号", "套餐", "用户编号", "客户姓名", "手机号", "支付时间", "套餐视频数", "增值视频数", "套餐金额", "增值金额", "支付金额", "结算金额", "手续费", "汇率",
"订单编号", "套餐", "用户编号", "客户姓名", "手机号", "支付时间", "套餐视频数", "增值视频数", "套餐金额", "增值金额", "支付金额", "结算金额", "手续费", "汇率%",
}, filePath, statistic); err != nil {
service.Error(ctx, err)
return
@ -312,7 +312,7 @@ func MetricsBalanceDetailExport(ctx *gin.Context) {
BundleVideoConsumptionNumber: item.BundleVideoConsumptionNumber,
IncreaseVideoConsumptionNumber: item.IncreaseVideoConsumptionNumber,
BundleVideoUsedPrice: float32(item.BundleVideoConsumptionNumber) * item.BundleVideoUnitPrice,
IncreaseVideoUsedPrice: float32(item.BundleVideoConsumptionNumber) * item.IncreaseVideoUnitPrice,
IncreaseVideoUsedPrice: float32(item.IncreaseVideoConsumptionNumber) * item.IncreaseVideoUnitPrice,
}
})
@ -321,13 +321,13 @@ func MetricsBalanceDetailExport(ctx *gin.Context) {
// 设置“小计”
endRow := len(data) + 1
f.SetCellValue(sheet, fmt.Sprintf("R%d", endRow+1), "小计")
f.SetCellFormula(sheet, fmt.Sprintf("S%d", endRow+1), fmt.Sprintf("=SUM(S%d:S%d)", 2, endRow))
f.SetCellFormula(sheet, fmt.Sprintf("T%d", endRow+1), fmt.Sprintf("=SUM(T%d:T%d)", 2, endRow))
f.SetCellValue(sheet, fmt.Sprintf("S%d", endRow+1), fmt.Sprintf("%.2f", lo.SumBy(items, func(i itemStruct) float32 { return i.BundleVideoUsedPrice })))
f.SetCellValue(sheet, fmt.Sprintf("T%d", endRow+1), fmt.Sprintf("%.2f", lo.SumBy(items, func(i itemStruct) float32 { return i.IncreaseVideoUsedPrice })))
// 设置“合计”演示可与小计相同也可进一步汇总其他sheet
f.MergeCell(sheet, fmt.Sprintf("S%d", endRow+2), fmt.Sprintf("T%d", endRow+2))
f.SetCellValue(sheet, fmt.Sprintf("R%d", endRow+2), "合计")
f.SetCellFormula(sheet, fmt.Sprintf("T%d", endRow+2), fmt.Sprintf("=SUM(S%d:T%d)", endRow+1, endRow+1))
f.SetCellValue(sheet, fmt.Sprintf("T%d", endRow+2), fmt.Sprintf("%.2f", lo.SumBy(items, func(i itemStruct) float32 { return i.BundleVideoUsedPrice + i.IncreaseVideoUsedPrice })))
// 设置样式(加粗、边框)
boldStyle, _ := f.NewStyle(&excelize.Style{
@ -493,6 +493,9 @@ func exportStructToExcel[T any](data []T, headers []string, filename string, fns
}
func tsToStr(ts int64, layout string) string {
if ts == 0 {
return ""
}
t := time.Unix(ts, 0).In(time.Local)
return t.Format(layout)
}