|
@@ -5,6 +5,7 @@ import (
|
|
|
"box-cost/db/repo"
|
|
|
"box-cost/log"
|
|
|
"bytes"
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"math"
|
|
|
"math/rand"
|
|
@@ -13,6 +14,7 @@ import (
|
|
|
"time"
|
|
|
"unsafe"
|
|
|
|
|
|
+ "github.com/sergi/go-diff/diffmatchpatch"
|
|
|
"github.com/thecodingmachine/gotenberg-go-client/v7"
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
@@ -20,6 +22,27 @@ import (
|
|
|
|
|
|
var SignatureDir string = "https://www.3dqueen.cloud/box/v1/boxcost/public/"
|
|
|
|
|
|
+// 比较差异字符
|
|
|
+func diffUpdateData(oldObj any, newObj any) (diffStr string, err error) {
|
|
|
+ oldObjByte, err := json.Marshal(oldObj)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ newObjByte, err := json.Marshal(newObj)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+
|
|
|
+ dmp := diffmatchpatch.New()
|
|
|
+ diffs := dmp.DiffMain(string(oldObjByte), string(newObjByte), false)
|
|
|
+ // 返回差异数据用于日志记录
|
|
|
+ if len(diffs) > 0 {
|
|
|
+ return dmp.DiffPrettyText(diffs), nil
|
|
|
+ }
|
|
|
+
|
|
|
+ return "", err
|
|
|
+}
|
|
|
+
|
|
|
func makeBillQuery(query map[string]interface{}) map[string]interface{} {
|
|
|
if query["packId"] != nil {
|
|
|
query["packId"], _ = primitive.ObjectIDFromHex(query["packId"].(string))
|