|
@@ -239,13 +239,13 @@ func (m *EdbDataBusiness) GetCountDataList(whereParams interface{}) (count int64
|
|
|
// @author: Roc
|
|
|
// @receiver m
|
|
|
// @datetime 2024-04-26 14:22:18
|
|
|
-// @param addData EdbDataBusiness
|
|
|
+// @param addData interface{}
|
|
|
// @return err error
|
|
|
-func (m *EdbDataBusiness) InsertDataByColl(coll *qmgo.Collection, addData EdbDataBusiness) (err error) {
|
|
|
+func (m *EdbDataBusiness) InsertDataByColl(coll *qmgo.Collection, addData interface{}) (err error) {
|
|
|
ctx := context.TODO()
|
|
|
_, err = coll.InsertOne(ctx, addData)
|
|
|
if err != nil {
|
|
|
- fmt.Println("BatchInsertData:Err:" + err.Error())
|
|
|
+ fmt.Println("InsertDataByColl:Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -257,13 +257,14 @@ func (m *EdbDataBusiness) InsertDataByColl(coll *qmgo.Collection, addData EdbDat
|
|
|
// @author: Roc
|
|
|
// @receiver m
|
|
|
// @datetime 2024-04-26 14:22:18
|
|
|
-// @param dataList interface{}
|
|
|
+// @param bulk int 每次请求保存的数据量
|
|
|
+// @param dataList []interface{}
|
|
|
// @return err error
|
|
|
-func (m *EdbDataBusiness) BatchInsertData(dataList []EdbDataBusiness) (err error) {
|
|
|
+func (m *EdbDataBusiness) BatchInsertData(bulk int, dataList []interface{}) (err error) {
|
|
|
db := utils.MgoDataCli.Database(m.DataBaseName())
|
|
|
coll := db.Collection(m.CollectionName())
|
|
|
|
|
|
- return m.BatchInsertDataByColl(coll, dataList)
|
|
|
+ return m.BatchInsertDataByColl(coll, bulk, dataList)
|
|
|
}
|
|
|
|
|
|
// BatchInsertDataByColl
|
|
@@ -271,16 +272,52 @@ func (m *EdbDataBusiness) BatchInsertData(dataList []EdbDataBusiness) (err error
|
|
|
// @author: Roc
|
|
|
// @receiver m
|
|
|
// @datetime 2024-04-26 14:22:18
|
|
|
-// @param dataList interface{}
|
|
|
+// @param coll *qmgo.Collection
|
|
|
+// @param bulk int 每次请求保存的数据量
|
|
|
+// @param dataList []interface{}
|
|
|
// @return err error
|
|
|
-func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, dataList []EdbDataBusiness) (err error) {
|
|
|
+func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, dataList []interface{}) (err error) {
|
|
|
ctx := context.TODO()
|
|
|
- _, err = coll.InsertMany(ctx, dataList)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("BatchInsertData:Err:" + err.Error())
|
|
|
+ dataNum := len(dataList)
|
|
|
+ if dataNum <= 0 {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 不设置每次保存切片数量大小,或者实际数据量小于设置的切片数量大小,那么就直接保存吧
|
|
|
+ if bulk <= 0 || dataNum <= bulk {
|
|
|
+ _, err = coll.InsertMany(ctx, dataList)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("BatchInsertData:Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分批保存
|
|
|
+ i := 0
|
|
|
+ tmpAddDataList := make([]interface{}, 0)
|
|
|
+ for _, v := range dataList {
|
|
|
+ tmpAddDataList = append(tmpAddDataList, v)
|
|
|
+ i++
|
|
|
+ if i >= bulk {
|
|
|
+ _, err = coll.InsertMany(ctx, tmpAddDataList)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("BatchInsertData:Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ i = 0
|
|
|
+ tmpAddDataList = make([]interface{}, 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(tmpAddDataList) > 0 {
|
|
|
+ _, err = coll.InsertMany(ctx, tmpAddDataList)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("BatchInsertData:Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return
|
|
|
}
|
|
|
|