12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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
- }
- }
|