feat(order): 新增订单导出功能
- 在 GetController 中添加 GetOrderExport 方法,实现订单数据的导出功能,支持根据多个条件筛选订单。 - 在 order_info.go 中新增 GetOrderAllByMap 方法,支持根据参数获取所有订单信息。 - 更新路由配置,新增订单导出路由。 - 在前端页面中添加导出按钮,用户可通过该按钮导出订单数据。 - 优化了订单查询界面,增强用户体验。
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -4,4 +4,7 @@
|
||||
main.exe
|
||||
main.exe~
|
||||
/logs/
|
||||
/vendor/
|
||||
/vendor/
|
||||
main
|
||||
**/.DS_Store
|
||||
.DS_Store
|
||||
53
go.mod
53
go.mod
@@ -5,41 +5,48 @@ go 1.23.0
|
||||
toolchain go1.23.6
|
||||
|
||||
require (
|
||||
github.com/beego/beego/v2 v2.3.4
|
||||
github.com/beego/beego/v2 v2.3.7
|
||||
github.com/duke-git/lancet/v2 v2.3.5
|
||||
github.com/go-redis/redis/v7 v7.4.1
|
||||
github.com/go-sql-driver/mysql v1.9.0
|
||||
github.com/go-sql-driver/mysql v1.9.2
|
||||
github.com/gogf/gf v1.16.9
|
||||
github.com/rs/xid v1.6.0
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
||||
github.com/xlzd/gotp v0.1.0
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa
|
||||
github.com/xuri/excelize/v2 v2.9.0
|
||||
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
|
||||
)
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||
github.com/duke-git/lancet/v2 v2.3.4 // indirect
|
||||
github.com/fatih/color v1.12.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
||||
github.com/mattn/go-colorable v0.1.8 // indirect
|
||||
github.com/mattn/go-isatty v0.0.12 // indirect
|
||||
github.com/fatih/color v1.18.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
||||
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
||||
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/prometheus/client_golang v1.19.0 // indirect
|
||||
github.com/prometheus/client_model v0.5.0 // indirect
|
||||
github.com/prometheus/common v0.48.0 // indirect
|
||||
github.com/prometheus/procfs v0.12.0 // indirect
|
||||
github.com/redis/go-redis/v9 v9.5.1 // indirect
|
||||
github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/prometheus/client_golang v1.22.0 // indirect
|
||||
github.com/prometheus/client_model v0.6.2 // indirect
|
||||
github.com/prometheus/common v0.63.0 // indirect
|
||||
github.com/prometheus/procfs v0.16.1 // indirect
|
||||
github.com/redis/go-redis/v9 v9.8.0 // indirect
|
||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||
github.com/richardlehane/msoleps v1.0.4 // indirect
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 // indirect
|
||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||
go.opentelemetry.io/otel v1.11.2 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.11.2 // indirect
|
||||
golang.org/x/crypto v0.24.0 // indirect
|
||||
golang.org/x/net v0.23.0 // indirect
|
||||
golang.org/x/sys v0.21.0 // indirect
|
||||
golang.org/x/text v0.16.0 // indirect
|
||||
google.golang.org/protobuf v1.34.2 // indirect
|
||||
github.com/xuri/efp v0.0.0-20250227110027-3491fafc2b79 // indirect
|
||||
github.com/xuri/nfp v0.0.0-20250226145837-86d5fc24b2ba // indirect
|
||||
go.opentelemetry.io/otel v1.35.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.35.0 // indirect
|
||||
golang.org/x/crypto v0.37.0 // indirect
|
||||
golang.org/x/net v0.39.0 // indirect
|
||||
golang.org/x/sys v0.32.0 // indirect
|
||||
golang.org/x/text v0.24.0 // indirect
|
||||
google.golang.org/protobuf v1.36.6 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
135
go.sum
135
go.sum
@@ -2,18 +2,16 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/beego/beego/v2 v2.3.3 h1:4eclONokaANi1iKjkB+3ABU0Y4Fj1xHAL9/d2B90Q4g=
|
||||
github.com/beego/beego/v2 v2.3.3/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=
|
||||
github.com/beego/beego/v2 v2.3.4 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI=
|
||||
github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=
|
||||
github.com/beego/beego/v2 v2.3.7 h1:z4btKtjU/rfp5BiYHkGD2QPjK9i1E9GH+I7vfhn6Agk=
|
||||
github.com/beego/beego/v2 v2.3.7/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=
|
||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
|
||||
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
|
||||
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
|
||||
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
|
||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 h1:LdXxtjzvZYhhUaonAaAKArG3pyC67kGL3YY+6hGG8G4=
|
||||
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@@ -21,26 +19,26 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||
github.com/duke-git/lancet/v2 v2.3.4 h1:8XGI7P9w+/GqmEBEXYaH/XuNiM0f4/90Ioti0IvYJls=
|
||||
github.com/duke-git/lancet/v2 v2.3.4/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc=
|
||||
github.com/duke-git/lancet/v2 v2.3.5 h1:vb49UWkkdyu2eewilZbl0L3X3T133znSQG0FaeJIBMg=
|
||||
github.com/duke-git/lancet/v2 v2.3.5/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc=
|
||||
github.com/elazarl/go-bindata-assetfs v1.0.1 h1:m0kkaHRKEu7tUIUFVwhGGGYClXvyl4RE03qmvRTNfbw=
|
||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
|
||||
github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc=
|
||||
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
|
||||
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
|
||||
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
||||
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-redis/redis/v7 v7.4.1 h1:PASvf36gyUpr2zdOUS/9Zqc80GbM+9BDyiJSJDDOrTI=
|
||||
github.com/go-redis/redis/v7 v7.4.1/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
|
||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
||||
github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo=
|
||||
github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw=
|
||||
github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU=
|
||||
github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
|
||||
github.com/gogf/gf v1.16.9 h1:Q803UmmRo59+Ws08sMVFOcd8oNpkSWL9vS33hlo/Cyk=
|
||||
github.com/gogf/gf v1.16.9/go.mod h1:8Q/kw05nlVRp+4vv7XASBsMe9L1tsVKiGoeP2AHnlkk=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -49,34 +47,45 @@ github.com/gomodule/redigo v1.8.5/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUz
|
||||
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
||||
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
|
||||
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
|
||||
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
|
||||
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
|
||||
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
|
||||
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/lib/pq v1.10.5 h1:J+gdV2cUmX7ZqL2B0lFcW0m+egaHC2V3lpO8nWxyYiQ=
|
||||
github.com/lib/pq v1.10.5/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
||||
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
|
||||
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
|
||||
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
@@ -86,51 +95,66 @@ github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
|
||||
github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k=
|
||||
github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
|
||||
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
||||
github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE=
|
||||
github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
||||
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
||||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
||||
github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8=
|
||||
github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
|
||||
github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
|
||||
github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
|
||||
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
|
||||
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
|
||||
github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k=
|
||||
github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18=
|
||||
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
|
||||
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
|
||||
github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI=
|
||||
github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
|
||||
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
|
||||
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
|
||||
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
||||
github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00=
|
||||
github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
|
||||
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
|
||||
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
|
||||
github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik=
|
||||
github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 h1:v9ezJDHA1XGxViAUSIoO/Id7Fl63u6d0YmsAm+/p2hs=
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02/go.mod h1:RF16/A3L0xSa0oSERcnhd8Pu3IXSDZSK2gmGIMsttFE=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/xlzd/gotp v0.1.0 h1:37blvlKCh38s+fkem+fFh7sMnceltoIEBYTVXyoa5Po=
|
||||
github.com/xlzd/gotp v0.1.0/go.mod h1:ndLJ3JKzi3xLmUProq4LLxCuECL93dG9WASNLpHz8qg=
|
||||
github.com/xuri/efp v0.0.0-20250227110027-3491fafc2b79 h1:78nKszZqigiBRBVcoe/AuPzyLTWW5B+ltBaUX1rlIXA=
|
||||
github.com/xuri/efp v0.0.0-20250227110027-3491fafc2b79/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
|
||||
github.com/xuri/excelize/v2 v2.9.0 h1:1tgOaEq92IOEumR1/JfYS/eR0KHOCsRv/rYXXh6YJQE=
|
||||
github.com/xuri/excelize/v2 v2.9.0/go.mod h1:uqey4QBZ9gdMeWApPLdhm9x+9o2lq4iVmjiLfBS5hdE=
|
||||
github.com/xuri/nfp v0.0.0-20250226145837-86d5fc24b2ba h1:DhIu6n3qU0joqG9f4IO6a/Gkerd+flXrmlJ+0yX2W8U=
|
||||
github.com/xuri/nfp v0.0.0-20250226145837-86d5fc24b2ba/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg=
|
||||
go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0=
|
||||
go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI=
|
||||
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
|
||||
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
|
||||
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
|
||||
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
|
||||
go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
|
||||
go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0=
|
||||
go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA=
|
||||
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
|
||||
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
|
||||
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
|
||||
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo=
|
||||
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak=
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa h1:t2QcU6V556bFjYgu4L6C+6VrCPyJZ+eyRsABUPs1mz4=
|
||||
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk=
|
||||
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
|
||||
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
|
||||
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM=
|
||||
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8=
|
||||
golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
|
||||
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
|
||||
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -140,18 +164,19 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
||||
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
||||
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
|
||||
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
|
||||
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
||||
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
|
||||
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
|
||||
@@ -13,9 +13,15 @@ import (
|
||||
"boss/internal/models/system"
|
||||
"boss/internal/models/user"
|
||||
"boss/internal/service"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/beego/beego/v2/core/logs"
|
||||
"github.com/duke-git/lancet/v2/slice"
|
||||
"github.com/xuri/excelize/v2"
|
||||
)
|
||||
|
||||
type GetController struct {
|
||||
@@ -772,14 +778,85 @@ func (c *GetController) GetOrder() {
|
||||
}
|
||||
orderDataJSON.StartIndex = c.Offset
|
||||
orderDataJSON.OrderList = order.GetOrderByMap(params, c.DisplayCount, c.Offset)
|
||||
// orderDataJSON.OrderProfitSummary = order.ProfitSummary{
|
||||
// TotalProfit: service.QueryTotalSummary(params),
|
||||
// TodayProfit: service.QueryTodaySummary(params),
|
||||
// }
|
||||
params["status"] = common.OrderStatusSuccess
|
||||
c.GenerateJSON(orderDataJSON)
|
||||
}
|
||||
|
||||
func (c *GetController) GetOrderExport() {
|
||||
startTime := strings.TrimSpace(c.GetString("startTime"))
|
||||
endTime := strings.TrimSpace(c.GetString("endTime"))
|
||||
merchantName := strings.TrimSpace(c.GetString("merchantName"))
|
||||
orderNo := strings.TrimSpace(c.GetString("merchantOrderId"))
|
||||
bankOrderId := strings.TrimSpace(c.GetString("bankOrderId"))
|
||||
status := strings.TrimSpace(c.GetString("orderStatus"))
|
||||
supplierUid := strings.TrimSpace(c.GetString("supplierUid"))
|
||||
payWayCode := strings.TrimSpace(c.GetString("payWayCode"))
|
||||
freeStatus := strings.TrimSpace(c.GetString("freeStatus"))
|
||||
cardData := strings.TrimSpace(c.GetString("cardData"))
|
||||
roadUid := strings.TrimSpace(c.GetString("roadUid"))
|
||||
|
||||
params := make(map[string]string)
|
||||
params["create_time__gte"] = startTime
|
||||
params["create_time__lte"] = endTime
|
||||
params["merchant_name__icontains"] = merchantName
|
||||
params["merchant_order_id"] = orderNo
|
||||
params["bank_order_id"] = bankOrderId
|
||||
params["status"] = status
|
||||
params["pay_product_code"] = supplierUid
|
||||
params["pay_type_code"] = payWayCode
|
||||
params["ex_value__icontains"] = cardData
|
||||
params["road_uid"] = roadUid
|
||||
switch freeStatus {
|
||||
case "free":
|
||||
params["free"] = "yes"
|
||||
case "unfree":
|
||||
params["unfree"] = "yes"
|
||||
case "refund":
|
||||
params["refund"] = "yes"
|
||||
}
|
||||
|
||||
orderList := order.GetOrderAllByMap(params)
|
||||
excel := excelize.NewFile()
|
||||
sheetName, _ := excel.NewSheet("Sheet1")
|
||||
excel.SetActiveSheet(sheetName)
|
||||
|
||||
_ = excel.SetCellValue("Sheet1", "A1", "订单号")
|
||||
_ = excel.SetCellValue("Sheet1", "B1", "商户订单号")
|
||||
_ = excel.SetCellValue("Sheet1", "C1", "卡号")
|
||||
_ = excel.SetCellValue("Sheet1", "D1", "卡密")
|
||||
|
||||
slice.ForEachConcurrent(orderList, func(i int, v order.OrderInfo) {
|
||||
var redeemCardInfo struct {
|
||||
Data string `json:"data,omitempty"` // 卡密
|
||||
CardNo string `json:"cardNo,omitempty"` // 卡号
|
||||
}
|
||||
err := json.Unmarshal([]byte(v.ExValue), &redeemCardInfo)
|
||||
if err != nil {
|
||||
logs.Error("json unmarshal fail: ", err)
|
||||
redeemCardInfo.CardNo = ""
|
||||
redeemCardInfo.Data = ""
|
||||
}
|
||||
_ = excel.SetCellValue("Sheet1", fmt.Sprintf("A%d", i+2), v.BankOrderId)
|
||||
_ = excel.SetCellValue("Sheet1", fmt.Sprintf("B%d", i+2), v.MerchantOrderId)
|
||||
_ = excel.SetCellValue("Sheet1", fmt.Sprintf("D%d", i+2), redeemCardInfo.CardNo)
|
||||
_ = excel.SetCellValue("Sheet1", fmt.Sprintf("E%d", i+2), redeemCardInfo.Data)
|
||||
|
||||
}, 10)
|
||||
|
||||
excel.Close()
|
||||
fileName := fmt.Sprintf("订单导出-%s.xlsx", time.Now().Format("2006-01-02 15:04:05"))
|
||||
|
||||
c.Ctx.Output.Header("Content-Disposition", "attachment; filename="+fileName)
|
||||
c.Ctx.Output.Header("Content-Description", "File Transfer")
|
||||
c.Ctx.Output.Header("Content-Type", "application/octet-stream")
|
||||
c.Ctx.Output.Header("Content-Transfer-Encoding", "binary")
|
||||
c.Ctx.Output.Header("Expires", "0")
|
||||
c.Ctx.Output.Header("Cache-Control", "must-revalidate")
|
||||
c.Ctx.Output.Header("Pragma", "public")
|
||||
_ = excel.Write(c.Ctx.ResponseWriter)
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// GetOrderSummary 获取订单统计数据
|
||||
func (c *GetController) GetOrderSummary() {
|
||||
startTime := strings.TrimSpace(c.GetString("startTime"))
|
||||
|
||||
@@ -109,6 +109,25 @@ func GetOrderByMap(params map[string]string, display, offset int) []OrderInfo {
|
||||
return orderInfoList
|
||||
}
|
||||
|
||||
func GetOrderAllByMap(params map[string]string) []OrderInfo {
|
||||
o := orm.NewOrm()
|
||||
var orderInfoList []OrderInfo
|
||||
qs := o.QueryTable(ORDER_INFO)
|
||||
for k, v := range params {
|
||||
if k == "card_data" {
|
||||
continue
|
||||
}
|
||||
if len(v) > 0 {
|
||||
qs = qs.Filter(k, v)
|
||||
}
|
||||
}
|
||||
_, err := qs.OrderBy("-create_time").All(&orderInfoList)
|
||||
if err != nil {
|
||||
logs.Error("get order by map fail: ", err)
|
||||
}
|
||||
return orderInfoList
|
||||
}
|
||||
|
||||
func GetOrderIdByMap(params map[string]string, display, offset int) []OrderIdInfo {
|
||||
o := orm.NewOrm()
|
||||
var orderInfoList []OrderIdInfo
|
||||
|
||||
@@ -69,9 +69,13 @@ func init() {
|
||||
web.Router("/get/agent", &controllers.GetController{}, "*:GetAgent")
|
||||
web.Router("/get/all/agent", &controllers.GetController{}, "*:GetAllAgent")
|
||||
web.Router("/get/product", &controllers.GetController{}, "*:GetProduct")
|
||||
|
||||
web.Router("/get/order", &controllers.GetController{}, "*:GetOrder")
|
||||
web.Router("/get/order/export", &controllers.GetController{}, "*:GetOrderExport")
|
||||
|
||||
web.Router("/get/orderSummary", &controllers.GetController{}, "*:GetOrderSummary")
|
||||
web.Router("/get/one/order", &controllers.GetController{}, "*:GetOneOrder")
|
||||
|
||||
web.Router("/get/orderProfit", &controllers.GetController{}, "*:GetOrderProfit")
|
||||
web.Router("/get/payfor", &controllers.GetController{}, "*:GetPayFor")
|
||||
web.Router("/get/one/payfor", &controllers.GetController{}, "*:GetOnePayFor")
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<link href="../static/css/basic.css" rel="stylesheet" type="text/css">
|
||||
<link href="../static/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="../static/lib/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet"
|
||||
type="text/css">
|
||||
type="text/css">
|
||||
<script src="../static/js/filter.js"></script>
|
||||
<script src="../static/js/jquery.min.js"></script>
|
||||
<script src="../static/lib/bootstrap/js/bootstrap.min.js"></script>
|
||||
@@ -50,376 +50,343 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="order-record">
|
||||
<div class="search form-inline">
|
||||
<label for="">
|
||||
<span>开始时间:</span>
|
||||
<input class="start-time" id="search-order-start-time" name="" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>结束时间:</span>
|
||||
<input class="end-time" id="search-order-end-time" name="" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>商户名称:</span>
|
||||
<input id="search-order-merchant-name" placeholder="模糊匹配" type="text">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>卡片数据:</span>
|
||||
<input id="search-order-card-data" placeholder="卡片数据" type="text">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>商户订单号:</span>
|
||||
<input id="search-order-merchant-order-id" type="text" value="">
|
||||
</label>
|
||||
<label>
|
||||
<span>本系统订单号:</span>
|
||||
<input id="search-order-bank-order-id" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
订单状态:
|
||||
<select id="search-order-status" name="">
|
||||
<div class="order-record">
|
||||
<div class="search form-inline">
|
||||
<label for="">
|
||||
<span>开始时间:</span>
|
||||
<input class="start-time" id="search-order-start-time" name="" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>结束时间:</span>
|
||||
<input class="end-time" id="search-order-end-time" name="" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>商户名称:</span>
|
||||
<input id="search-order-merchant-name" placeholder="模糊匹配" type="text">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>卡片数据:</span>
|
||||
<input id="search-order-card-data" placeholder="卡片数据" type="text">
|
||||
</label>
|
||||
<label for="">
|
||||
<span>商户订单号:</span>
|
||||
<input id="search-order-merchant-order-id" type="text" value="">
|
||||
</label>
|
||||
<label>
|
||||
<span>本系统订单号:</span>
|
||||
<input id="search-order-bank-order-id" type="text" value="">
|
||||
</label>
|
||||
<label for="">
|
||||
订单状态:
|
||||
<select id="search-order-status" name="">
|
||||
<option value="">请选择</option>
|
||||
<option value="success">支付成功</option>
|
||||
<option value="wait">等待支付</option>
|
||||
<option value="fail">支付失败</option>
|
||||
<option value="cancel">放弃支付</option>
|
||||
</select>
|
||||
</label>
|
||||
<label for="">
|
||||
上游名称:
|
||||
<select id="search-order-supplier-name" name="">
|
||||
</select>
|
||||
</label>
|
||||
<!-- <label for="">-->
|
||||
<!-- 支付类型:-->
|
||||
<!-- <select name="" id="search-order-pay-way-code">-->
|
||||
<!-- <option value="">请选择</option>-->
|
||||
<!-- <option value="CARD_DH">卡密兑换</option>-->
|
||||
<!-- <option value="WEIXIN_SCAN">微信扫码</option>-->
|
||||
<!-- <option value="WEIXIN_H5">微信H5</option>-->
|
||||
<!-- <option value="WEIXIN_SYT">微信收银台</option>-->
|
||||
<!-- <option value="ALI_SCAN">支付宝扫码</option>-->
|
||||
<!-- <option value="ALI_H5">支付宝H5</option>-->
|
||||
<!-- <option value="ALI_SYT">支付宝收银台</option>-->
|
||||
<!-- <option value="QQ_SCAN">QQ扫码</option>-->
|
||||
<!-- <option value="QQ_H5">QQ-H5</option>-->
|
||||
<!-- <option value="QQ_SYT">QQ收银台</option>-->
|
||||
<!-- <option value="UNION_SCAN">银联扫码</option>-->
|
||||
<!-- <option value="UNION_H5">银联H5</option>-->
|
||||
<!-- <option value="UNION_PC_WAP">银联pc-web</option>-->
|
||||
<!-- <option value="UNION_SYT">银联收银台</option>-->
|
||||
<!-- <option value="UNION_FAST">银联快捷</option>-->
|
||||
<!-- <option value="BAIDU_SCAN">百度钱包扫码</option>-->
|
||||
<!-- <option value="BAIDU_H5">百度钱包H5</option>-->
|
||||
<!-- <option value="BAIDU_SYT">百度钱包收银台</option>-->
|
||||
<!-- <option value="JD_SCAN">京东扫码</option>-->
|
||||
<!-- <option value="JD_H5">京东H5</option>-->
|
||||
<!-- <option value="JD_SYT">京东收银台</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- </label>-->
|
||||
<!-- <label>-->
|
||||
冻结状态:
|
||||
<select id="search-order-free-status" name="">
|
||||
<option value="">请选择</option>
|
||||
<option value="success">支付成功</option>
|
||||
<option value="wait">等待支付</option>
|
||||
<option value="fail">支付失败</option>
|
||||
<option value="cancel">放弃支付</option>
|
||||
<option value="freeze_amount">冻结</option>
|
||||
<option value="refund">退款</option>
|
||||
</select>
|
||||
</label>
|
||||
<label for="">
|
||||
上游名称:
|
||||
<select id="search-order-supplier-name" name="">
|
||||
</select>
|
||||
</label>
|
||||
<!-- <label for="">-->
|
||||
<!-- 支付类型:-->
|
||||
<!-- <select name="" id="search-order-pay-way-code">-->
|
||||
<!-- <option value="">请选择</option>-->
|
||||
<!-- <option value="CARD_DH">卡密兑换</option>-->
|
||||
<!-- <option value="WEIXIN_SCAN">微信扫码</option>-->
|
||||
<!-- <option value="WEIXIN_H5">微信H5</option>-->
|
||||
<!-- <option value="WEIXIN_SYT">微信收银台</option>-->
|
||||
<!-- <option value="ALI_SCAN">支付宝扫码</option>-->
|
||||
<!-- <option value="ALI_H5">支付宝H5</option>-->
|
||||
<!-- <option value="ALI_SYT">支付宝收银台</option>-->
|
||||
<!-- <option value="QQ_SCAN">QQ扫码</option>-->
|
||||
<!-- <option value="QQ_H5">QQ-H5</option>-->
|
||||
<!-- <option value="QQ_SYT">QQ收银台</option>-->
|
||||
<!-- <option value="UNION_SCAN">银联扫码</option>-->
|
||||
<!-- <option value="UNION_H5">银联H5</option>-->
|
||||
<!-- <option value="UNION_PC_WAP">银联pc-web</option>-->
|
||||
<!-- <option value="UNION_SYT">银联收银台</option>-->
|
||||
<!-- <option value="UNION_FAST">银联快捷</option>-->
|
||||
<!-- <option value="BAIDU_SCAN">百度钱包扫码</option>-->
|
||||
<!-- <option value="BAIDU_H5">百度钱包H5</option>-->
|
||||
<!-- <option value="BAIDU_SYT">百度钱包收银台</option>-->
|
||||
<!-- <option value="JD_SCAN">京东扫码</option>-->
|
||||
<!-- <option value="JD_H5">京东H5</option>-->
|
||||
<!-- <option value="JD_SYT">京东收银台</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- </label>-->
|
||||
<!-- <label>-->
|
||||
冻结状态:
|
||||
<select id="search-order-free-status" name="">
|
||||
<option value="">请选择</option>
|
||||
<option value="freeze_amount">冻结</option>
|
||||
<option value="refund">退款</option>
|
||||
</select>
|
||||
</label>
|
||||
<button class="btn btn-default" id="order-search" type="button">搜索</button>
|
||||
<button class="btn btn-default" onclick='loadMainContent("/order_info.html")' type="button">刷新</button>
|
||||
|
||||
<!-- <label class="color-red" style="font-size: 16px;">-->
|
||||
<!-- 交易金额:-->
|
||||
<!-- <span id="order-all-amount"></span>-->
|
||||
<!-- </label>-->
|
||||
|
||||
<!-- <label class="color-red" style="font-size: 16px;">-->
|
||||
<!-- 成功率:-->
|
||||
<!-- <span id="success-rate"></span>-->
|
||||
<!-- </label>-->
|
||||
</div>
|
||||
<!-- <div>-->
|
||||
<!-- 今日订单数:-->
|
||||
<!-- 今日总金额:-->
|
||||
<!-- 今日已付订单数:-->
|
||||
<!-- 今日已付总金额:-->
|
||||
<!-- 今日平台收入:-->
|
||||
<!-- 今日商户收入:-->
|
||||
<!-- 今日代理收入:-->
|
||||
<!-- 今日通道成本-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>-->
|
||||
<!-- 提交订单数:-->
|
||||
<!-- 订单总金额:-->
|
||||
<!-- 已付订单数:-->
|
||||
<!-- 已付总金额:-->
|
||||
<!-- 平台收入:-->
|
||||
<!-- 商户收入:-->
|
||||
<!-- 代理收入:-->
|
||||
<!-- 通道成本:-->
|
||||
<!-- </div>-->
|
||||
<div style="padding: 20px">
|
||||
<div class="row">
|
||||
<div class="col-sm-2 color-red">
|
||||
订单总量:
|
||||
<span id="orderTotalNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
订单总金额:
|
||||
<span id="AllAmount"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
成功订单数:
|
||||
<span id="succeedTotalNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
成功交易总量:
|
||||
<span id="SucceedPaidAmount"></span>
|
||||
</div>
|
||||
<!-- <div class="color-red">-->
|
||||
<!-- 手续费:-->
|
||||
<!-- <span id="supplierProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
平台利润:
|
||||
<span id="platformProfit"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
成功率:
|
||||
<span id="totalSucceedRate"></span>%
|
||||
</div>
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 代理利润:-->
|
||||
<!-- <span id="agentProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
</label>
|
||||
<button class="btn btn-default" id="order-search" type="button">搜索</button>
|
||||
<button class="btn btn-default" onclick='loadMainContent("/order_info.html")' type="button">刷新</button>
|
||||
<button class="btn btn-default" id="order-export" type="button">导出</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日订单数:
|
||||
<span id="TodayAllNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日订单总金额:
|
||||
<span id="TodayAllAmount"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日成功订单数:
|
||||
<span id="TodaySuccessNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日成功订单总金额:
|
||||
<span id="TodaySuccessAmount"></span>
|
||||
<div style="padding: 20px">
|
||||
<div class="row">
|
||||
<div class="col-sm-2 color-red">
|
||||
订单总量:
|
||||
<span id="orderTotalNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
订单总金额:
|
||||
<span id="AllAmount"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
成功订单数:
|
||||
<span id="succeedTotalNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red">
|
||||
成功交易总量:
|
||||
<span id="SucceedPaidAmount"></span>
|
||||
</div>
|
||||
<!-- <div class="color-red">-->
|
||||
<!-- 手续费:-->
|
||||
<!-- <span id="supplierProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
平台利润:
|
||||
<span id="platformProfit"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
成功率:
|
||||
<span id="totalSucceedRate"></span>%
|
||||
</div>
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 代理利润:-->
|
||||
<!-- <span id="agentProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日订单数:
|
||||
<span id="TodayAllNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日订单总金额:
|
||||
<span id="TodayAllAmount"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日成功订单数:
|
||||
<span id="TodaySuccessNum"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日成功订单总金额:
|
||||
<span id="TodaySuccessAmount"></span>
|
||||
</div>
|
||||
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 今日通道成本:-->
|
||||
<!-- <span id="TodaySupplierProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日平台利润:
|
||||
<span id="TodayPlatformProfit"></span>
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 今日通道成本:-->
|
||||
<!-- <span id="TodaySupplierProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
今日平台利润:
|
||||
<span id="TodayPlatformProfit"></span>
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
成功率:
|
||||
<span id="todaySucceedRate"></span>%
|
||||
</div>
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 今日代理润:-->
|
||||
<!-- <span id="TodayAgentProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div class="col-sm-2 color-red" style="font-weight: normal;">
|
||||
成功率:
|
||||
<span id="todaySucceedRate"></span>%
|
||||
</div>
|
||||
<!-- <div class="color-red" style="font-weight: normal;">-->
|
||||
<!-- 今日代理润:-->
|
||||
<!-- <span id="TodayAgentProfit"></span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-table">
|
||||
<table>
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>序列号</th>
|
||||
<th>商户名称</th>
|
||||
<th>商户订单号</th>
|
||||
<th>本系统订单号</th>
|
||||
<th>实付金额</th>
|
||||
<th>卡密信息</th>
|
||||
<th>支付状态</th>
|
||||
<th>冻结状态</th>
|
||||
<th>退款状态</th>
|
||||
<th>下单时间</th>
|
||||
<th>支付时间</th>
|
||||
<!-- <th>上游供应商</th>-->
|
||||
<th>上游返回数据</th>
|
||||
<th>用户IP</th>
|
||||
<th>禁用状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="order-table-body">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- 分页插件 -->
|
||||
<div class="cut_page">
|
||||
<li>
|
||||
每页显示
|
||||
<select id="display_count">
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</li>
|
||||
<li class="current_total_page">第<span class="current_page">0</span>/<span class="total_page">0</span>页</li>
|
||||
<li class="pre_page">上一页</li>
|
||||
<li class="next_page">下一页</li>
|
||||
<li class="jump_page">跳转 <input name="jump_page" type="text" value="">
|
||||
<button class="btn btn-default" type="button">Go</button>
|
||||
</li>
|
||||
</div>
|
||||
<!-- 模态框 -->
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="order-details"
|
||||
role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">订单详情</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-details">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div>商品名称:<span id="shop-name"></span></div>
|
||||
<div>商户订单id:<span id="merchant-order-id"></span></div>
|
||||
<div>系统订单id:<span id="bank-order-id"></span></div>
|
||||
<div>银行流水id:<span id="bank-trans-id"></span></div>
|
||||
<div>订单金额:<span id="order-amount"></span></div>
|
||||
<div>实际金额:<span id="fact-amount"></span></div>
|
||||
<div>轮询池id:<span id="roll-pool-code"></span></div>
|
||||
<div>轮询池名:<span id="roll-pool-name"></span></div>
|
||||
<div>通道id:<span id="road-uid"></span></div>
|
||||
<div>通道名称:<span id="road-name"></span></div>
|
||||
<div>上游商编码:<span id="pay-product-code"></span></div>
|
||||
<div>上游商名称:<span id="pay-product-name"></span></div>
|
||||
<div>支付类型编码:<span id="pay-type-code"></span></div>
|
||||
<div>支付类型名称:<span id="pay-type-name"></span></div>
|
||||
<div class="menu-table">
|
||||
<table>
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>序列号</th>
|
||||
<th>商户名称</th>
|
||||
<th>商户订单号</th>
|
||||
<th>本系统订单号</th>
|
||||
<th>实付金额</th>
|
||||
<th>卡密信息</th>
|
||||
<th>支付状态</th>
|
||||
<th>冻结状态</th>
|
||||
<th>退款状态</th>
|
||||
<th>下单时间</th>
|
||||
<th>支付时间</th>
|
||||
<!-- <th>上游供应商</th>-->
|
||||
<th>上游返回数据</th>
|
||||
<th>用户IP</th>
|
||||
<th>禁用状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="order-table-body">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- 分页插件 -->
|
||||
<div class="cut_page">
|
||||
<li>
|
||||
每页显示
|
||||
<select id="display_count">
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</li>
|
||||
<li class="current_total_page">第<span class="current_page">0</span>/<span class="total_page">0</span>页</li>
|
||||
<li class="pre_page">上一页</li>
|
||||
<li class="next_page">下一页</li>
|
||||
<li class="jump_page">跳转 <input name="jump_page" type="text" value="">
|
||||
<button class="btn btn-default" type="button">Go</button>
|
||||
</li>
|
||||
</div>
|
||||
<!-- 模态框 -->
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="order-details" role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">订单详情</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-details">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div>商品名称:<span id="shop-name"></span></div>
|
||||
<div>商户订单id:<span id="merchant-order-id"></span></div>
|
||||
<div>系统订单id:<span id="bank-order-id"></span></div>
|
||||
<div>银行流水id:<span id="bank-trans-id"></span></div>
|
||||
<div>订单金额:<span id="order-amount"></span></div>
|
||||
<div>实际金额:<span id="fact-amount"></span></div>
|
||||
<div>轮询池id:<span id="roll-pool-code"></span></div>
|
||||
<div>轮询池名:<span id="roll-pool-name"></span></div>
|
||||
<div>通道id:<span id="road-uid"></span></div>
|
||||
<div>通道名称:<span id="road-name"></span></div>
|
||||
<div>上游商编码:<span id="pay-product-code"></span></div>
|
||||
<div>上游商名称:<span id="pay-product-name"></span></div>
|
||||
<div>支付类型编码:<span id="pay-type-code"></span></div>
|
||||
<div>支付类型名称:<span id="pay-type-name"></span></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div>订单有效时间:<span id="order-period"></span></div>
|
||||
<div>支付状态:<span id="status"></span></div>
|
||||
<div>是否退款:<span id="refund"></span></div>
|
||||
<div>退款时间:<span id="refund-time"></span></div>
|
||||
<div>是否冻结:<span id="free"></span></div>
|
||||
<div>冻结时间:<span id="free-time"></span></div>
|
||||
<div>是否解冻:<span id="unfree"></span></div>
|
||||
<div>解冻时间:<span id="unfree-time"></span></div>
|
||||
<div>商户名称:<span id="merchant-name"></span></div>
|
||||
<div>商户编号:<span id="merchant-uid"></span></div>
|
||||
<div>代理编号:<span id="agent-uid"></span></div>
|
||||
<div>代理名称:<span id="agent-name"></span></div>
|
||||
<div>下单时间:<span id="create—time"></span></div>
|
||||
<!-- <div>更新时间:<span id="update-time"></span></div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div>订单有效时间:<span id="order-period"></span></div>
|
||||
<div>支付状态:<span id="status"></span></div>
|
||||
<div>是否退款:<span id="refund"></span></div>
|
||||
<div>退款时间:<span id="refund-time"></span></div>
|
||||
<div>是否冻结:<span id="free"></span></div>
|
||||
<div>冻结时间:<span id="free-time"></span></div>
|
||||
<div>是否解冻:<span id="unfree"></span></div>
|
||||
<div>解冻时间:<span id="unfree-time"></span></div>
|
||||
<div>商户名称:<span id="merchant-name"></span></div>
|
||||
<div>商户编号:<span id="merchant-uid"></span></div>
|
||||
<div>代理编号:<span id="agent-uid"></span></div>
|
||||
<div>代理名称:<span id="agent-name"></span></div>
|
||||
<div>下单时间:<span id="create—time"></span></div>
|
||||
<!-- <div>更新时间:<span id="update-time"></span></div>-->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
回调地址:<span id="notify"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
回调数据:<span id="card-return-data"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
回调地址:<span id="notify"></span>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default cancel-order-details" data-dismiss="modal" type="button">取消
|
||||
</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
回调数据:<span id="card-return-data"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default cancel-order-details" data-dismiss="modal" type="button">取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false" id="order-solve"
|
||||
role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">订单处理</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<div>
|
||||
<input name="order-solve-radio" style="margin-left: 10%;" type="radio" value="success">
|
||||
<span style="color: blue;">处理成功</span>
|
||||
<input name="order-solve-radio" style="margin-left: 15%;" type="radio" value="fail"><span
|
||||
style="color: red;">处理失败</span>
|
||||
<input hidden id="order-solve-bank-order-id" type="text" value="">
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="order-solve" role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">订单处理</h4>
|
||||
</div>
|
||||
<div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<div>
|
||||
<input name="order-solve-radio" style="margin-left: 10%;" type="radio" value="success">
|
||||
<span style="color: blue;">处理成功</span>
|
||||
<input name="order-solve-radio" style="margin-left: 15%;" type="radio" value="fail"><span
|
||||
style="color: red;">处理失败</span>
|
||||
<input hidden id="order-solve-bank-order-id" type="text" value="">
|
||||
</div>
|
||||
<div>
|
||||
<label>
|
||||
二次验证:
|
||||
<input id="order-info-totp" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-order-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal" type="button">取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="totp-order-solve" role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">二次验证</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<input hidden id="totp-solve-bank-order-id" type="text" value="">
|
||||
<input hidden id="totp-solveType" type="text" value="">
|
||||
<label>
|
||||
二次验证:
|
||||
<input id="order-info-totp" type="text" value="">
|
||||
<input id="totp-orderInfo" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-totp-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal" type="button">
|
||||
取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-order-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal"
|
||||
type="button">取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="totp-order-deal-solve" role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">二次验证</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<input hidden id="totp-solve-deal-order-id" type="text" value="">
|
||||
<input hidden id="totp-deal-solveType" type="text" value="">
|
||||
<label>
|
||||
二次验证:
|
||||
<input id="totp-totp-orderInfo" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-totp-deal-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal" type="button">
|
||||
取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="totp-order-solve"
|
||||
role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">二次验证</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<input hidden id="totp-solve-bank-order-id" type="text" value="">
|
||||
<input hidden id="totp-solveType" type="text" value="">
|
||||
<label>
|
||||
二次验证:
|
||||
<input id="totp-orderInfo" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-totp-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal" type="button">
|
||||
取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div aria-labelledby="myModalLabel" class="modal fade" data-backdrop="static" data-keyboard="false"
|
||||
id="totp-order-deal-solve"
|
||||
role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">二次验证</h4>
|
||||
</div>
|
||||
<div class="modal-body modal-body-order-solve">
|
||||
<input hidden id="totp-solve-deal-order-id" type="text" value="">
|
||||
<input hidden id="totp-deal-solveType" type="text" value="">
|
||||
<label>
|
||||
二次验证:
|
||||
<input id="totp-totp-orderInfo" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default save-totp-deal-solve" type="button">确定</button>
|
||||
<button class="btn btn-default cancel-order-solve" data-dismiss="modal" type="button">
|
||||
取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
//将上游通道供应商写入
|
||||
@@ -513,13 +480,13 @@
|
||||
exValue = {}
|
||||
}
|
||||
tmp = tmp + "<th>" + (res.StartIndex + i + 1) + "</th>" +
|
||||
"<th>" + v.MerchantName + "</th>" + "<th>" + v.MerchantOrderId + "</th>" +
|
||||
"<th>" + v.BankOrderId + "</th>" +
|
||||
"<th>" + v.FactAmount + "</th>" +
|
||||
"<th>" + `卡号:${exValue.cardNo !== undefined ? exValue.cardNo : ''}<br />卡密:${exValue.data !== undefined ? exValue.data : ''}` + "</th>" +
|
||||
"<th>" + (v.Status === "wait" ? "等待支付" : v.Status === "success" ? "支付成功" : v.Status === "fail" ? "支付失败" : v.Status === "cancel" ? "放弃支付" : v.Status === "created" ? "创建" : v.Status) + "</th>"; if (v.Freeze === "yes") {
|
||||
tmp += "<th style='color: red;'>" + "已经冻结" + "</th>"
|
||||
} else {
|
||||
"<th>" + v.MerchantName + "</th>" + "<th>" + v.MerchantOrderId + "</th>" +
|
||||
"<th>" + v.BankOrderId + "</th>" +
|
||||
"<th>" + v.FactAmount + "</th>" +
|
||||
"<th>" + `卡号:${exValue.cardNo !== undefined ? exValue.cardNo : ''}<br />卡密:${exValue.data !== undefined ? exValue.data : ''}` + "</th>" +
|
||||
"<th>" + (v.Status === "wait" ? "等待支付" : v.Status === "success" ? "支付成功" : v.Status === "fail" ? "支付失败" : v.Status === "cancel" ? "放弃支付" : v.Status === "created" ? "创建" : v.Status) + "</th>"; if (v.Freeze === "yes") {
|
||||
tmp += "<th style='color: red;'>" + "已经冻结" + "</th>"
|
||||
} else {
|
||||
tmp += "<th>" + "未被冻结" + "</th>"
|
||||
}
|
||||
if (v.Refund === "yes") {
|
||||
@@ -825,6 +792,10 @@
|
||||
AjaxOrderSummaryList(dataJSON)
|
||||
}
|
||||
|
||||
function AjaxOrderExport(dataJSON) {
|
||||
dataJSON["roadUid"] = "{{.roadUid}}"
|
||||
window.open("/get/order/export?" + $.param(dataJSON), "_self");
|
||||
}
|
||||
function AjaxOrderSummaryList(dataJSON) {
|
||||
dataJSON["roadUid"] = "{{.roadUid}}"
|
||||
$.ajax({
|
||||
@@ -881,6 +852,10 @@
|
||||
let dataJSON = getOrderSearchValues();
|
||||
AjaxOrderList(dataJSON);
|
||||
});
|
||||
$("#order-export").click(function () {
|
||||
let dataJSON = getOrderSearchValues();
|
||||
AjaxOrderExport(dataJSON);
|
||||
});
|
||||
$(function () {
|
||||
let day = new Date(new Date().getTime() - 86400000);
|
||||
let s = dateFtt("yyyy-MM-dd hh:mm:ss", day);
|
||||
|
||||
Reference in New Issue
Block a user