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

fix excel

上级 05cd3107
...@@ -31,7 +31,7 @@ func (x *Excel) Err() error { ...@@ -31,7 +31,7 @@ func (x *Excel) Err() error {
return x.e 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 { if x.e != nil {
return x return x
} }
...@@ -49,7 +49,7 @@ func (x *Excel) WriteSheet(sheetName string, data any) *Excel { ...@@ -49,7 +49,7 @@ func (x *Excel) WriteSheet(sheetName string, data any) *Excel {
return x return x
} }
t := v.Index(0).Type() t := reflect.TypeOf(dataType)
headers := make([]interface{}, 0, t.NumField()) headers := make([]interface{}, 0, t.NumField())
for j := 0; j < t.NumField(); j++ { for j := 0; j < t.NumField(); j++ {
name := t.Field(j).Tag.Get("xls") name := t.Field(j).Tag.Get("xls")
......
...@@ -29,7 +29,7 @@ func TestNew(t *testing.T) { ...@@ -29,7 +29,7 @@ func TestNew(t *testing.T) {
} }
buf := bytes.Buffer{} 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) t.Error(e)
} }
......
...@@ -3,6 +3,7 @@ package weblogutils ...@@ -3,6 +3,7 @@ package weblogutils
import ( import (
"container/list" "container/list"
"context" "context"
"fmt"
"strings" "strings"
"time" "time"
...@@ -126,28 +127,28 @@ func Init() { ...@@ -126,28 +127,28 @@ func Init() {
} }
return nil 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 err
} }
return nil return nil
} }
go func() { go func() {
if debug { 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 { 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 { 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 { if debug {
logger.Info("[webLog]batch insert success") Info("batch insert success")
} }
}() }()
return nil return nil
}) })
logger.Info("[webLog]init success") Info("init success")
merger.Start() merger.Start()
webLogDaoInstance.db = database.DB(schema) webLogDaoInstance.db = database.DB(schema)
...@@ -223,3 +224,11 @@ func (x *WebLog) BeforeCreate(tx *gorm.DB) (err error) { ...@@ -223,3 +224,11 @@ func (x *WebLog) BeforeCreate(tx *gorm.DB) (err error) {
func (x *WebLog) BeforeUpdate(tx *gorm.DB) (err error) { func (x *WebLog) BeforeUpdate(tx *gorm.DB) (err error) {
return nil 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论