forked from all_user/stat_center
190 lines
5.0 KiB
Go
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)
|
|
}
|