提交 7f544171 authored 作者: mooncake's avatar mooncake

fix excel

上级 05cd3107
......@@ -31,7 +31,7 @@ func (x *Excel) Err() error {
return x.e
}
func (x *Excel) WriteSheet(sheetName string, data any) *Excel {
func (x *Excel) WriteSheet(sheetName string, data any, dataType any) *Excel {
if x.e != nil {
return x
}
......@@ -49,7 +49,7 @@ func (x *Excel) WriteSheet(sheetName string, data any) *Excel {
return x
}
t := v.Index(0).Type()
t := reflect.TypeOf(dataType)
headers := make([]interface{}, 0, t.NumField())
for j := 0; j < t.NumField(); j++ {
name := t.Field(j).Tag.Get("xls")
......
......@@ -29,7 +29,7 @@ func TestNew(t *testing.T) {
}
buf := bytes.Buffer{}
if e := excelutils.New().WriteSheet("交易明细1", d).WriteSheet("交易明细2", d).WriteSheet("交易明细3", d).WriteBuf(&buf).Err(); e != nil {
if e := excelutils.New().WriteSheet("交易明细1", d, Payment{}).WriteSheet("交易明细2", d, Payment{}).WriteSheet("交易明细3", d, Payment{}).WriteBuf(&buf).Err(); e != nil {
t.Error(e)
}
......
......@@ -3,6 +3,7 @@ package weblogutils
import (
"container/list"
"context"
"fmt"
"strings"
"time"
......@@ -126,28 +127,28 @@ func Init() {
}
return nil
}
logger.Error("[webLog] insert fail detail", logger.Err(err), ctxutils.CtxTraceIDField(ctx))
Error("insert fail", logger.Err(err), ctxutils.CtxTraceIDField(ctx))
return err
}
return nil
}
go func() {
if debug {
logger.Info("[webLog]batch insert start")
Info("batch insert start")
}
if err := retryutils.Retry(insertFn, retryutils.RetryTimes(3), retryutils.RetryWithLinearBackoff(32*time.Minute)); err != nil {
logger.Error("[webLog] insert fail", logger.String("err", err.Error()), ctxutils.CtxTraceIDField(ctx))
Error("insert fail", logger.String("err", err.Error()), ctxutils.CtxTraceIDField(ctx))
for _, or := range ors {
logger.Error("[webLog] insert fail detail", logger.String("user_id", or.UID.String()), logger.String("operate", or.Operate), ctxutils.CtxTraceIDField(ctx))
Error("insert fail detail", logger.String("user_id", or.UID.String()), logger.String("operate", or.Operate), ctxutils.CtxTraceIDField(ctx))
}
}
if debug {
logger.Info("[webLog]batch insert success")
Info("batch insert success")
}
}()
return nil
})
logger.Info("[webLog]init success")
Info("init success")
merger.Start()
webLogDaoInstance.db = database.DB(schema)
......@@ -223,3 +224,11 @@ func (x *WebLog) BeforeCreate(tx *gorm.DB) (err error) {
func (x *WebLog) BeforeUpdate(tx *gorm.DB) (err error) {
return nil
}
func Info(msg string, fields ...logger.Field) {
logger.Info(fmt.Sprintf("[webLog]%s", msg), fields...)
}
func Error(msg string, fields ...logger.Field) {
logger.Error(fmt.Sprintf("[webLog]%s", msg), fields...)
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论