package model import ( "context" "fmt" "github.com/zeromicro/go-zero/core/stores/sqlx" ) var _ DcItemHistoryDataModel = (*customDcItemHistoryDataModel)(nil) type ( // DcItemHistoryDataModel is an interface to be customized, add more methods here, // and implement the added methods in customDcItemHistoryDataModel. DcItemHistoryDataModel interface { dcItemHistoryDataModel MultiInsert(ctx context.Context, datas []DcItemHistoryData) (int64, error) } customDcItemHistoryDataModel struct { *defaultDcItemHistoryDataModel } ) // NewDcItemHistoryDataModel returns a model for the database table. func NewDcItemHistoryDataModel(conn sqlx.SqlConn) DcItemHistoryDataModel { return &customDcItemHistoryDataModel{ defaultDcItemHistoryDataModel: newDcItemHistoryDataModel(conn), } } func (m *defaultDcItemHistoryDataModel) MultiInsert(ctx context.Context, datas []DcItemHistoryData) (int64, error) { query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?)", m.table, dcItemHistoryDataRowsExpectAutoSet) if bulk, err := sqlx.NewBulkInserter(m.conn, query); err == nil { for _, data := range datas { if err = bulk.Insert(data.ProjectId, data.ItemName, data.Val, data.CTime); err != nil { return 0, err } } bulk.Flush() return int64(len(datas)), nil } else { return 0, err } }