Files
stat_center/service/innerserverser/xlsl_test.go
T
2026-05-20 16:13:58 +08:00

190 lines
5.0 KiB
Go

package innerserverser
import (
"context"
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"os"
"stat/api/proto"
"stat/common/log"
"stat/common/utils"
"stat/tool/pubtest"
"testing"
)
func TestExel1(t *testing.T) {
var f *excelize.File
newxlslfile := false
day0 := utils.BeginOfYesterday()
dir := day0.Format("2006-01")
filePath := "/usr/local" + "/bakmonth/" + dir + "/"
//filename := utils.BeginOfYesterday().Format("2006-01-02")
if !DocExsit(filePath) {
err := os.MkdirAll(filePath, os.ModePerm)
if err != nil {
log.Error("InnerServerDailyStat:export save file to disk failed",
log.Any("fileName", filePath),
log.E(err))
return
}
f = excelize.NewFile()
newxlslfile = true
} else {
if !DocExsit(filePath + dir + ".xlsx") {
f = excelize.NewFile()
newxlslfile = true
} else {
f, _ = excelize.OpenFile(filePath + dir + ".xlsx")
}
}
// 设置表头样式
headStyleID, _ := f.NewStyle(`{
"font":{
"color":"#333333",
"bold":true,
"size":16,
"family":"arial"
},
"alignment":{
"vertical":"center",
"horizontal":"center",
"wrap_text":true
}
}`)
headStyleID0, _ := f.NewStyle(`{
"font":{
"color":"#333333",
"bold":false,
"size":10,
"family":"arial"
},
"alignment":{
"vertical":"center",
"horizontal":"center",
"wrap_text":true
}
}`)
pubtest.TestInit("/Users/mac/Desktop/madou/stat_center")
ctx := context.Background()
list := make([]*proto.InnerDailyRecharge, 0)
yesterday := utils.BeginOfYesterday0()
bililist, appinfo, err := GetDbList(ctx, &day0, &yesterday)
if err != nil {
log.Error("InnerServerDailyStat:GetDbList", log.E(err))
}
for _, info := range bililist {
name := ""
if data, ok := appinfo[info.AppId]; ok {
name = data.Name
}
temp := &proto.InnerDailyRecharge{
AppId: info.AppId,
Name: name,
Type: "",
DateTime: "",
DailyVistCount: info.TotalVisitCount,
DailyRegister: info.NewTotalCount,
DailyAppAmount: info.TotalAmount,
DailyGameAmount: info.GameRechageAmount,
RechargeOrder: info.SuccessRechargeOrder,
}
list = append(list, temp)
}
temp := &proto.InnerDailyRecharge{}
for _, info := range list {
temp.AppId = 0
temp.Name = "天宇总充值"
temp.DailyVistCount += info.DailyVistCount
temp.DailyRegister += info.DailyRegister
temp.DailyAppAmount += info.DailyAppAmount
temp.DailyGameAmount += info.DailyGameAmount
temp.RechargeOrder += info.RechargeOrder
}
list = append(list, temp)
for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 {
list[i], list[j] = list[j], list[i]
}
if newxlslfile {
NewXlslFile0(f, list, headStyleID, headStyleID0)
} else {
OpenOldXlsl(f, list)
}
row := 1
day := yesterday.Format("2006-01-02")
cols := f.GetRows("Sheet1")
for rowindex, col := range cols {
for colindex, rowCell := range col {
if rowCell == "" {
continue
}
if colindex == 0 {
if rowCell == day {
row = rowindex
}
}
}
}
for _, info := range list {
cellday, serr := utils.CoordinatesToCellName(info.BeginCol, row)
if serr != nil {
log.Error("OpenOldXlsl CoordinatesToCellName ", log.Any("err", serr))
continue
}
cellregister, serr := utils.CoordinatesToCellName(info.BeginCol+1, row)
if serr != nil {
log.Error("OpenOldXlsl CoordinatesToCellName ", log.Any("err", serr))
continue
}
cellrecharge, serr := utils.CoordinatesToCellName(info.BeginCol+2, row)
if serr != nil {
log.Error("OpenOldXlsl CoordinatesToCellName ", log.Any("err", serr))
continue
}
cellgame, serr := utils.CoordinatesToCellName(info.BeginCol+3, row)
if serr != nil {
log.Error("OpenOldXlsl CoordinatesToCellName ", log.Any("err", serr))
continue
}
cellorder, serr := utils.CoordinatesToCellName(info.BeginCol+4, row)
if serr != nil {
log.Error("OpenOldXlsl CoordinatesToCellName ", log.Any("err", serr))
continue
}
f.SetCellStyle("Sheet1", cellday, cellday, headStyleID0)
totalamount := fmt.Sprintf("%.2f", float64(info.DailyVistCount)*0.01)
f.SetCellValue("Sheet1", cellday, totalamount)
f.SetCellStyle("Sheet1", cellregister, cellday, headStyleID0)
totalamount = fmt.Sprintf("%.2f", float64(info.DailyRegister)*0.01)
f.SetCellValue("Sheet1", cellregister, totalamount)
f.SetCellStyle("Sheet1", cellrecharge, cellday, headStyleID0)
totalamount = fmt.Sprintf("%.2f", float64(info.DailyAppAmount)*0.0001)
f.SetCellValue("Sheet1", cellrecharge, totalamount)
f.SetCellStyle("Sheet1", cellgame, cellday, headStyleID0)
if info.AppId == 0 || info.AppId == 888 {
totalamount = fmt.Sprintf("%.2f", float64(info.DailyGameAmount)*0.0001)
}
f.SetCellValue("Sheet1", cellgame, totalamount)
f.SetCellStyle("Sheet1", cellorder, cellday, headStyleID0)
totalamount = fmt.Sprintf("%.2f", float64(info.RechargeOrder)*0.01)
f.SetCellValue("Sheet1", cellorder, totalamount)
}
if newxlslfile {
f.SaveAs(filePath + dir + ".xlsx")
} else {
f.Save()
}
}
func TestExel0(t *testing.T) {
rowday := fmt.Sprintf("%s-%02d", "", 9)
fmt.Println(rowday)
}