fix 适配达梦数据库,修复细节

This commit is contained in:
yxh 2025-03-11 17:25:15 +08:00
parent 3503878cd4
commit 128990b3e2
12 changed files with 253 additions and 77 deletions

30
go.mod
View File

@ -10,10 +10,10 @@ require (
github.com/apache/rocketmq-client-go/v2 v2.1.1 github.com/apache/rocketmq-client-go/v2 v2.1.1
github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef
github.com/casbin/casbin/v2 v2.42.0 github.com/casbin/casbin/v2 v2.42.0
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.0 github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.3
github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.0 github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.3
github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.0 github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.3
github.com/gogf/gf/v2 v2.8.0 github.com/gogf/gf/v2 v2.8.3
github.com/gorilla/websocket v1.5.3 github.com/gorilla/websocket v1.5.3
github.com/mojocn/base64Captcha v1.3.6 github.com/mojocn/base64Captcha v1.3.6
github.com/mssola/user_agent v0.5.3 github.com/mssola/user_agent v0.5.3
@ -22,11 +22,11 @@ require (
github.com/shirou/gopsutil/v3 v3.23.2 github.com/shirou/gopsutil/v3 v3.23.2
github.com/sony/sonyflake v1.2.0 github.com/sony/sonyflake v1.2.0
github.com/tencentyun/cos-go-sdk-v5 v0.7.34 github.com/tencentyun/cos-go-sdk-v5 v0.7.34
github.com/tiger1103/gfast-cache v1.0.8 github.com/tiger1103/gfast-cache v1.0.9
github.com/tiger1103/gfast-token v1.0.8 github.com/tiger1103/gfast-token v1.0.9
github.com/wenlng/go-captcha v1.2.5 github.com/wenlng/go-captcha v1.2.5
github.com/xuri/excelize/v2 v2.7.1 github.com/xuri/excelize/v2 v2.7.1
golang.org/x/net v0.28.0 golang.org/x/net v0.32.0
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d
) )
@ -43,7 +43,7 @@ require (
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/dustin/go-humanize v1.0.0 // indirect github.com/dustin/go-humanize v1.0.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/fatih/color v1.17.0 // indirect github.com/fatih/color v1.18.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect
@ -66,7 +66,7 @@ require (
github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect
github.com/lib/pq v1.10.9 // indirect github.com/lib/pq v1.10.9 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/magiconair/properties v1.8.7 // indirect github.com/magiconair/properties v1.8.9 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect
@ -79,7 +79,7 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/redis/go-redis/v9 v9.6.1 // indirect github.com/redis/go-redis/v9 v9.7.0 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.3 // indirect github.com/richardlehane/msoleps v1.0.3 // indirect
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
@ -102,13 +102,13 @@ require (
go.uber.org/atomic v1.11.0 // indirect go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.27.0 // indirect golang.org/x/crypto v0.30.0 // indirect
golang.org/x/image v0.16.0 // indirect golang.org/x/image v0.16.0 // indirect
golang.org/x/mod v0.17.0 // indirect golang.org/x/mod v0.17.0 // indirect
golang.org/x/sync v0.8.0 // indirect golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.25.0 // indirect golang.org/x/sys v0.28.0 // indirect
golang.org/x/term v0.24.0 // indirect golang.org/x/term v0.27.0 // indirect
golang.org/x/text v0.18.0 // indirect golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.3.0 // indirect golang.org/x/time v0.3.0 // indirect
google.golang.org/protobuf v1.33.0 // indirect google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect

60
go.sum
View File

@ -49,8 +49,8 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@ -69,14 +69,14 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl
github.com/go-playground/validator/v10 v10.8.0/go.mod h1:9JhgTzTaE31GZDpH/HSvHiRJrJ3iKAgqqH0Bl/Ocjdk= github.com/go-playground/validator/v10 v10.8.0/go.mod h1:9JhgTzTaE31GZDpH/HSvHiRJrJ3iKAgqqH0Bl/Ocjdk=
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= 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.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.0 h1:Foyx+sGaHAfLXxbTc4xULyO+jaPmQO7puq2rius0pIQ= github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.3 h1:RtoBg5HWACFrgIrFkpzH94kxSd5EWefNAq5k6olNY6c=
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.0/go.mod h1:JuRwELQEatN+KrcumDhSd5nEysyD8Dh3voXjjuKs+Gk= github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.3/go.mod h1:elZjckHRCejwml5Kdx2zfhOUDiAV3r5i4BgXcKAeH00=
github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.0 h1:4BVMHFtMGc+l0T+QjDFQsc09fIX4qf0zPWKsb+wxVpI= github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.3 h1:DvpoiVac1cwGVDTqC6wzFbDb+gXNzcceRgZUIcuTmaI=
github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.0/go.mod h1:nZ5VGwXMT4GRow6IK/1VVcPArQtukcF+49kNOwvZT98= github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.8.3/go.mod h1:zugvYVb6c/X9rJ8Gb6b5WkMe+bFz2BsxQ5OLf4RSZos=
github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.0 h1:12l4LDn/ENMwG//tl6ICXfrAY+9vRy4kzi23H1MSkCI= github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.3 h1:SpstyaADpaJmTgv55Teb8i7mpQrKH9IMzL0TwnhGcHI=
github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.0/go.mod h1:8Jp8s33CX4yPajGv5NVUlYHPi5Pru81HUKQv+ccS4/o= github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.3/go.mod h1:kPSHCSoDQZNKcJ/ZlLd/c1sGKR+0BJRa5nCP3YkSteo=
github.com/gogf/gf/v2 v2.8.0 h1:CgNDoLFQCBxQaWOoGMzgU068T+tm0t/eNUgLV2wPJag= github.com/gogf/gf/v2 v2.8.3 h1:h9Px3lqJnnH6It0AqHRz4/1hx0JmvaSf1IvUir5x1rA=
github.com/gogf/gf/v2 v2.8.0/go.mod h1:6iYuZZ+A0ZcH8+4MDS/P0SvTPCvKzRvyAsY1kbkJYJc= github.com/gogf/gf/v2 v2.8.3/go.mod h1:n++xPYGUUMadw6IygLEgGZqc6y6DRLrJKg5kqCrPLWY=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE=
@ -143,8 +143,8 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM=
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@ -185,8 +185,8 @@ github.com/qiniu/dyn v1.3.0/go.mod h1:E8oERcm8TtwJiZvkQPbcAh0RL8jO1G0VXJMW3FAWdk
github.com/qiniu/go-sdk/v7 v7.13.0 h1:0bWRh/oAC2cArUILZLuWN+s9hPep1JYch5sA2Mfxq7A= github.com/qiniu/go-sdk/v7 v7.13.0 h1:0bWRh/oAC2cArUILZLuWN+s9hPep1JYch5sA2Mfxq7A=
github.com/qiniu/go-sdk/v7 v7.13.0/go.mod h1:btsaOc8CA3hdVloULfFdDgDc+g4f3TDZEFsDY0BLE+w= github.com/qiniu/go-sdk/v7 v7.13.0/go.mod h1:btsaOc8CA3hdVloULfFdDgDc+g4f3TDZEFsDY0BLE+w=
github.com/qiniu/x v1.10.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs= github.com/qiniu/x v1.10.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs=
github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E=
github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM= 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/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.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
@ -235,10 +235,10 @@ github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tiger1103/gfast-cache v1.0.8 h1:RK8VM3mS+H/D2uvhgNJnHtU2E7RuIlwW0yKvBQzuaHg= github.com/tiger1103/gfast-cache v1.0.9 h1:U5sa6z6httumNXQe2v/qTvIUfGZCfzVeN6ASxCjm+WU=
github.com/tiger1103/gfast-cache v1.0.8/go.mod h1:SNNHfEexumeIXSKz7f/ais+Fi97+TeJvT3r92MqlNk0= github.com/tiger1103/gfast-cache v1.0.9/go.mod h1:SNNHfEexumeIXSKz7f/ais+Fi97+TeJvT3r92MqlNk0=
github.com/tiger1103/gfast-token v1.0.8 h1:hRNoGna8ji2lPZjMnpaJgZxh2EP3oAVFUSxEaMy79dY= github.com/tiger1103/gfast-token v1.0.9 h1:lyV2PBft/Fqpf4xpsUHf6J7sCUwjSfDk9VCs17LnQkQ=
github.com/tiger1103/gfast-token v1.0.8/go.mod h1:gHgyf+25+tt4AbfrAtC+EM/SgM55wgPkLQiksLP/5+4= github.com/tiger1103/gfast-token v1.0.9/go.mod h1:b7XPhIPODqMzX9sYIPs6MZnL1kCBUCXlPt8gRf49xEE=
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
@ -284,8 +284,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4=
@ -314,8 +314,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -326,8 +326,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -348,14 +348,14 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@ -364,8 +364,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View File

@ -66,7 +66,6 @@ func (s *sSysDictData) GetDictWithDataByType(ctx context.Context, dictType, defa
if err != nil { if err != nil {
return return
} }
}
//设置给定的默认值 //设置给定的默认值
for _, v := range dict.Values { for _, v := range dict.Values {
if defaultValue != "" { if defaultValue != "" {
@ -77,6 +76,7 @@ func (s *sSysDictData) GetDictWithDataByType(ctx context.Context, dictType, defa
} }
} }
} }
}
return return
} }

View File

@ -87,7 +87,7 @@ func (s *sSysNotice) List(ctx context.Context, req *model.SysNoticeSearchReq) (l
var res []*model.SysNoticeListRes var res []*model.SysNoticeListRes
err = m.Page(req.PageNum, req.PageSize).Fields("" + err = m.Page(req.PageNum, req.PageSize).Fields("" +
"n.*," + "n.id,n.title,n.type,n.tag,n.remark,n.sort,n.status,n.created_by,n.created_at," +
"SUM(nr.clicks) as clickNumber" + "SUM(nr.clicks) as clickNumber" +
//"(nr.user_id=" + strconv.FormatUint(currentUserId, 10) + ") as isRead" + //"(nr.user_id=" + strconv.FormatUint(currentUserId, 10) + ") as isRead" +
"").Order(order).Group("n.id").Scan(&res) "").Order(order).Group("n.id").Scan(&res)
@ -117,7 +117,9 @@ func (s *sSysNotice) ListShow(ctx context.Context, req *model.SysNoticeSearchReq
m = m.Where("n."+dao.SysNotice.Columns().Type+" = ?", gconv.Int64(req.Type)) m = m.Where("n."+dao.SysNotice.Columns().Type+" = ?", gconv.Int64(req.Type))
if gconv.Int(req.Type) == consts.SysLetterType { if gconv.Int(req.Type) == consts.SysLetterType {
if service.ToolsGenTable().IsMysql() { if service.ToolsGenTable().IsMysql() {
m = m.Where(fmt.Sprintf("JSON_CONTAINS(n.receiver,'%d')", currentUserId)) m = m.Where("JSON_CONTAINS(n.receiver,?)", currentUserId)
} else if service.ToolsGenTable().IsDM() {
m = m.Where("INSTR(n.receiver,?)>?", currentUserId, 0)
} else { } else {
m = m.Where(fmt.Sprintf("receiver::jsonb @> '%d'::jsonb", currentUserId)) m = m.Where(fmt.Sprintf("receiver::jsonb @> '%d'::jsonb", currentUserId))
} }
@ -146,8 +148,7 @@ func (s *sSysNotice) ListShow(ctx context.Context, req *model.SysNoticeSearchReq
order = req.OrderBy order = req.OrderBy
} }
var res []*model.SysNoticeListRes var res []*model.SysNoticeListRes
err = m.Page(req.PageNum, req.PageSize).Fields("" + err = m.Page(req.PageNum, req.PageSize).Fields("n.*,CASE WHEN nr.id IS NOT NULL THEN 1 ELSE 0 END AS isRead").Order(order).Scan(&res)
"n.*,nr.id IS NOT NULL as isRead").Order(order).Scan(&res)
liberr.ErrIsNil(ctx, err, "获取数据失败") liberr.ErrIsNil(ctx, err, "获取数据失败")
if req.IsTrim { if req.IsTrim {
for k, v := range res { for k, v := range res {
@ -238,7 +239,7 @@ func (s *sSysNotice) Add(ctx context.Context, req *model.SysNoticeAddReq) (err e
Tag: req.Tag, Tag: req.Tag,
Content: req.Content, Content: req.Content,
Remark: req.Remark, Remark: req.Remark,
Receiver: req.Receiver, Receiver: gconv.String(req.Receiver),
Sort: req.Sort, Sort: req.Sort,
Status: req.Status, Status: req.Status,
CreatedBy: req.CreatedBy, CreatedBy: req.CreatedBy,
@ -276,7 +277,7 @@ func (s *sSysNotice) Edit(ctx context.Context, req *model.SysNoticeEditReq) (err
Remark: req.Remark, Remark: req.Remark,
Sort: req.Sort, Sort: req.Sort,
Status: req.Status, Status: req.Status,
Receiver: req.Receiver, Receiver: gconv.String(req.Receiver),
UpdatedBy: req.UpdatedBy, UpdatedBy: req.UpdatedBy,
} }
_, err = dao.SysNotice.Ctx(ctx).WherePri(req.Id).Update(data) _, err = dao.SysNotice.Ctx(ctx).WherePri(req.Id).Update(data)

View File

@ -60,15 +60,20 @@ func (s *sSysRole) GetRoleListSearch(ctx context.Context, req *system.RoleListRe
model = model.Where("a."+dao.SysRole.Columns().Id+" in(?) OR a.created_by = ?", roleIds, userId) model = model.Where("a."+dao.SysRole.Columns().Id+" in(?) OR a.created_by = ?", roleIds, userId)
} }
model = model.As("a") model = model.As("a")
fields := "a.*, count(u.id) user_cnt"
if service.ToolsGenTable().IsMysql() { if service.ToolsGenTable().IsMysql() {
model = model.LeftJoin("casbin_rule", "b", "b.v1 = a.id ") model = model.LeftJoin("casbin_rule", "b", "b.v1 = a.id ")
model = model.LeftJoin("sys_user", "u", "CONCAT('u_',u.id) = b.v0 ") model = model.LeftJoin("sys_user", "u", "CONCAT('u_',u.id) = b.v0 ")
} else if service.ToolsGenTable().IsDM() {
fields = "a.id,a.pid,a.status,a.list_order,a.name,a.remark, a.created_at,COUNT(u.id) AS user_cnt"
model = model.LeftJoin("casbin_rule", "b", "b.v1 = a.id ")
model = model.LeftJoin("sys_user", "u", "('u_' || u.id) = b.v0 ")
} else { } else {
model = model.LeftJoin("casbin_rule", "b", "b.v1 = cast(a.id AS VARCHAR) ") model = model.LeftJoin("casbin_rule", "b", "b.v1 = cast(a.id AS VARCHAR) ")
model = model.LeftJoin("sys_user", "u", "CONCAT('u_',u.id) = b.v0") model = model.LeftJoin("sys_user", "u", "CONCAT('u_',u.id) = b.v0")
} }
model = model.Group("a.id") model = model.Group("a.id")
err = model.Order("list_order asc,id asc").Fields("a.*, count(u.id) user_cnt").Scan(&res.List) err = model.Order("list_order asc,id asc").Fields(fields).Scan(&res.List)
liberr.ErrIsNil(ctx, err, "获取数据失败") liberr.ErrIsNil(ctx, err, "获取数据失败")
}) })
return return
@ -239,7 +244,7 @@ func (s *sSysRole) EditRole(ctx context.Context, req *system.RoleEditReq) (err e
ListOrder: req.ListOrder, ListOrder: req.ListOrder,
Name: req.Name, Name: req.Name,
Remark: req.Remark, Remark: req.Remark,
EffectiveTime: req.EffectiveTimeInfo, EffectiveTime: gconv.String(req.EffectiveTimeInfo),
}).Update() }).Update()
liberr.ErrIsNil(ctx, e, "修改角色失败") liberr.ErrIsNil(ctx, e, "修改角色失败")
//过滤ruleIds 把没有权限的过滤掉 //过滤ruleIds 把没有权限的过滤掉

View File

@ -470,7 +470,7 @@ func (s *sSysUser) List(ctx context.Context, req *system.UserSearchReq) (total i
} }
if req.RoleId > 0 { if req.RoleId > 0 {
m = m.As("a").LeftJoin("casbin_rule", "b", "b.v0 = CONCAT('u_',a.id )") m = m.LeftJoin("casbin_rule", "b", "b.v0 = CONCAT('u_',sys_user.id )")
m = m.Where("v1 = ? and SUBSTR(v0,1,2) = 'u_'", req.RoleId) m = m.Where("v1 = ? and SUBSTR(v0,1,2) = 'u_'", req.RoleId)
} }
//判断权限,普通管理只能按数据权限查看 //判断权限,普通管理只能按数据权限查看

View File

@ -7,6 +7,7 @@
package toolsGenTable package toolsGenTable
import "C"
import ( import (
"bufio" "bufio"
"context" "context"
@ -29,6 +30,7 @@ import (
"github.com/tiger1103/gfast/v3/internal/app/system/consts" "github.com/tiger1103/gfast/v3/internal/app/system/consts"
"github.com/tiger1103/gfast/v3/internal/app/system/dao" "github.com/tiger1103/gfast/v3/internal/app/system/dao"
"github.com/tiger1103/gfast/v3/internal/app/system/model" "github.com/tiger1103/gfast/v3/internal/app/system/model"
"github.com/tiger1103/gfast/v3/internal/app/system/model/do"
"github.com/tiger1103/gfast/v3/internal/app/system/model/entity" "github.com/tiger1103/gfast/v3/internal/app/system/model/entity"
"github.com/tiger1103/gfast/v3/internal/app/system/service" "github.com/tiger1103/gfast/v3/internal/app/system/service"
"github.com/tiger1103/gfast/v3/library/liberr" "github.com/tiger1103/gfast/v3/library/liberr"
@ -85,8 +87,8 @@ func (s *sToolsGenTable) SelectDbTableList(ctx context.Context, req *system.Tool
res = new(system.ToolsGenTableSearchRes) res = new(system.ToolsGenTableSearchRes)
db := g.DB() db := g.DB()
err = g.Try(ctx, func(ctx context.Context) { err = g.Try(ctx, func(ctx context.Context) {
if !s.IsMysql() && !s.IsPg() { if !s.IsMysql() && !s.IsPg() && !s.IsDM() {
liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql及postgresql数据库")) liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql、postgresql及达梦数据库"))
} }
var sqlStr string var sqlStr string
if s.IsMysql() { if s.IsMysql() {
@ -152,6 +154,42 @@ func (s *sToolsGenTable) SelectDbTableList(ctx context.Context, req *system.Tool
sqlStr += " order by pg_stat_get_last_analyze_time(pg_class.oid) desc,table_name asc LIMIT " + gconv.String(req.PageSize) + " OFFSET " + gconv.String(page) sqlStr += " order by pg_stat_get_last_analyze_time(pg_class.oid) desc,table_name asc LIMIT " + gconv.String(req.PageSize) + " OFFSET " + gconv.String(page)
err = db.GetScan(ctx, &res.List, "select "+sqlStr) err = db.GetScan(ctx, &res.List, "select "+sqlStr)
liberr.ErrIsNil(ctx, err, "读取数据失败") liberr.ErrIsNil(ctx, err, "读取数据失败")
} else if s.IsDM() {
dbName := gstr.ToUpper(g.DB().GetConfig().Name)
sqlStr = " FROM ALL_TABLES T " +
"LEFT JOIN ALL_TAB_COMMENTS C ON T.OWNER = C.OWNER AND T.TABLE_NAME = C.TABLE_NAME " +
"LEFT JOIN DBA_OBJECTS O ON T.OWNER = O.OWNER AND T.TABLE_NAME = O.OBJECT_NAME " +
" AND O.OBJECT_TYPE = 'TABLE' "
sqlStr += " WHERE T.OWNER = '" + dbName + "'"
sqlStr += " AND T.TABLE_NAME NOT LIKE 'TOOLS_GEN_%' " +
" AND T.TABLE_NAME NOT IN (SELECT TABLE_NAME FROM TOOLS_GEN_TABLE) "
if req != nil {
if req.TableName != "" {
sqlStr += gdb.FormatSqlWithArgs(" AND T.TABLE_NAME like ?", []interface{}{"%" + req.TableName + "%"})
}
if req.TableComment != "" {
sqlStr += gdb.FormatSqlWithArgs(" AND C.COMMENTS like ?", []interface{}{"%" + req.TableComment + "%"})
}
if len(req.DateRange) > 0 {
sqlStr += gdb.FormatSqlWithArgs(" AND O.CREATED >= date_format(?,'%y%m%d') ", []interface{}{req.DateRange[0]})
sqlStr += gdb.FormatSqlWithArgs(" AND O.CREATED <= date_format(?,'%y%m%d') ", []interface{}{req.DateRange[1]})
}
}
countSql := "select count(1) " + sqlStr
res.Total, err = db.GetCount(ctx, countSql)
liberr.ErrIsNil(ctx, err, "读取总表数失败")
sqlStr = `T.TABLE_NAME,C.COMMENTS AS TABLE_COMMENT, O.CREATED AS CREATE_TIME, O.LAST_DDL_TIME AS UPDATE_TIME ` + sqlStr
if req.PageNum == 0 {
req.PageNum = 1
}
if req.PageSize == 0 {
req.PageSize = consts.PageSize
}
page := (req.PageNum - 1) * req.PageSize
sqlStr += " ORDER BY O.CREATED desc,T.TABLE_NAME asc LIMIT " + gconv.String(req.PageSize) + " OFFSET " + gconv.String(page)
err = db.GetScan(ctx, &res.List, "SELECT "+sqlStr)
liberr.ErrIsNil(ctx, err, "读取数据失败")
} }
}) })
return return
@ -161,8 +199,8 @@ func (s *sToolsGenTable) SelectDbTableList(ctx context.Context, req *system.Tool
func (s *sToolsGenTable) SelectDbTableListByNames(ctx context.Context, tableNames []string) ([]*entity.ToolsGenTable, error) { func (s *sToolsGenTable) SelectDbTableListByNames(ctx context.Context, tableNames []string) ([]*entity.ToolsGenTable, error) {
var result []*entity.ToolsGenTable var result []*entity.ToolsGenTable
err := g.Try(ctx, func(ctx context.Context) { err := g.Try(ctx, func(ctx context.Context) {
if !s.IsMysql() && !s.IsPg() { if !s.IsMysql() && !s.IsPg() && !s.IsDM() {
liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql及postgresql数据库")) liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql、postgresql及达梦数据库"))
} }
db := g.DB() db := g.DB()
var sqlStr string var sqlStr string
@ -186,6 +224,22 @@ func (s *sToolsGenTable) SelectDbTableListByNames(ctx context.Context, tableName
} }
err := db.GetScan(ctx, &result, sqlStr) err := db.GetScan(ctx, &result, sqlStr)
liberr.ErrIsNil(ctx, err, "获取表格信息失败") liberr.ErrIsNil(ctx, err, "获取表格信息失败")
} else if s.IsDM() {
dbName := gstr.ToUpper(g.DB().GetConfig().Name)
sqlStr = "SELECT T.TABLE_NAME,C.COMMENTS AS TABLE_COMMENT," +
"O.CREATED AS CREATE_TIME," +
"O.LAST_DDL_TIME AS UPDATE_TIME " +
"FROM ALL_TABLES T LEFT JOIN ALL_TAB_COMMENTS C " +
"ON T.OWNER = C.OWNER AND T.TABLE_NAME = C.TABLE_NAME " +
"LEFT JOIN DBA_OBJECTS O " +
"ON T.OWNER = O.OWNER " +
"AND T.TABLE_NAME = O.OBJECT_NAME " +
"AND O.OBJECT_TYPE = 'TABLE' " +
gdb.FormatSqlWithArgs("WHERE T.OWNER = ? ", []interface{}{dbName}) +
gdb.FormatSqlWithArgs("AND T.TABLE_NAME in(?) ", gconv.SliceAny(tableNames)) +
"ORDER BY O.CREATED DESC,T.TABLE_NAME ASC"
err := db.GetScan(ctx, &result, sqlStr)
liberr.ErrIsNil(ctx, err, "获取表格信息失败")
} }
}) })
return result, err return result, err
@ -206,8 +260,33 @@ func (s *sToolsGenTable) ImportGenTable(ctx context.Context, tableList []*entity
} }
err = s.InitTable(ctx, table, genTableColumns) err = s.InitTable(ctx, table, genTableColumns)
liberr.ErrIsNil(ctx, err) liberr.ErrIsNil(ctx, err)
result, err1 := tx.Model(dao.ToolsGenTable.Table()).FieldsEx("table_id"). result, err1 := tx.Model(dao.ToolsGenTable.Table()).
Insert(table) Data(do.ToolsGenTable{
TableName: table.TableName,
TableComment: table.TableComment,
ClassName: table.ClassName,
TplCategory: table.TplCategory,
PackageName: table.PackageName,
ModuleName: table.ModuleName,
BusinessName: table.BusinessName,
FunctionName: table.FunctionName,
FunctionAuthor: table.FunctionAuthor,
Options: table.Options,
CreateTime: table.CreateTime,
UpdateTime: table.UpdateTime,
Remark: table.Remark,
Overwrite: table.Overwrite,
SortColumn: table.SortColumn,
SortType: table.SortType,
ShowDetail: table.ShowDetail,
ExcelPort: table.ExcelPort,
ExcelImp: table.ExcelImp,
UseSnowId: table.UseSnowId,
UseVirtual: table.UseVirtual,
OverwriteInfo: table.OverwriteInfo,
MenuPid: table.MenuPid,
}).
Insert()
liberr.ErrIsNil(ctx, err1) liberr.ErrIsNil(ctx, err1)
tmpId, err2 := result.LastInsertId() tmpId, err2 := result.LastInsertId()
liberr.ErrIsNil(ctx, err2, "保存数据失败") liberr.ErrIsNil(ctx, err2, "保存数据失败")
@ -302,6 +381,10 @@ func (s *sToolsGenTable) IsMysql() bool {
return s.getDbDriver() == "mysql" return s.getDbDriver() == "mysql"
} }
func (s *sToolsGenTable) IsDM() bool {
return s.getDbDriver() == "dm"
}
// DeleteTable 删除表信息 // DeleteTable 删除表信息
func (s *sToolsGenTable) DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) error { func (s *sToolsGenTable) DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) error {
err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
@ -485,7 +568,31 @@ func (s *sToolsGenTable) SaveEdit(ctx context.Context, req *system.ToolsGenTable
err = g.Try(ctx, func(ctx context.Context) { err = g.Try(ctx, func(ctx context.Context) {
_, err = tx.Model(dao.ToolsGenTable.Table()). _, err = tx.Model(dao.ToolsGenTable.Table()).
WherePri(table.TableId). WherePri(table.TableId).
Update(table) Update(do.ToolsGenTable{
TableName: table.TableName,
TableComment: table.TableComment,
ClassName: table.ClassName,
TplCategory: table.TplCategory,
PackageName: table.PackageName,
ModuleName: table.ModuleName,
BusinessName: table.BusinessName,
FunctionName: table.FunctionName,
FunctionAuthor: table.FunctionAuthor,
Options: table.Options,
CreateTime: table.CreateTime,
UpdateTime: table.UpdateTime,
Remark: table.Remark,
Overwrite: table.Overwrite,
SortColumn: table.SortColumn,
SortType: table.SortType,
ShowDetail: table.ShowDetail,
ExcelPort: table.ExcelPort,
ExcelImp: table.ExcelImp,
UseSnowId: table.UseSnowId,
UseVirtual: table.UseVirtual,
OverwriteInfo: gconv.String(table.OverwriteInfo),
MenuPid: table.MenuPid,
})
liberr.ErrIsNil(ctx, err, "保存表数据失败") liberr.ErrIsNil(ctx, err, "保存表数据失败")
//保存列数据 //保存列数据
if req.Columns != nil { if req.Columns != nil {
@ -549,6 +656,7 @@ func (s *sToolsGenTable) SaveEdit(ctx context.Context, req *system.ToolsGenTable
} }
_, err = tx.Model(dao.ToolsGenTableColumn.Table()). _, err = tx.Model(dao.ToolsGenTableColumn.Table()).
WherePri(dbColumn.ColumnId). WherePri(dbColumn.ColumnId).
FieldsEx(dao.ToolsGenTableColumn.Columns().ColumnId).
Update(dbColumn) Update(dbColumn)
liberr.ErrIsNil(ctx, err, "保存列:"+dbColumn.ColumnName+",数据失败") liberr.ErrIsNil(ctx, err, "保存列:"+dbColumn.ColumnName+",数据失败")
} }
@ -1419,7 +1527,9 @@ func (s *sToolsGenTable) SyncTable(ctx context.Context, tableId int64) (err erro
//字段不存在则添加 //字段不存在则添加
if !alreadyExists { if !alreadyExists {
service.ToolsGenTableColumn().InitColumnField(column, table) service.ToolsGenTableColumn().InitColumnField(column, table)
_, err = tx.Model(dao.ToolsGenTableColumn.Table()).Insert(column) _, err = tx.Model(dao.ToolsGenTableColumn.Table()).
FieldsEx(dao.ToolsGenTableColumn.Columns().ColumnId).
Insert(column)
liberr.ErrIsNil(ctx, err, fmt.Sprintf("保存列`%s`数据失败", column.ColumnName)) liberr.ErrIsNil(ctx, err, fmt.Sprintf("保存列`%s`数据失败", column.ColumnName))
} }
} }

View File

@ -7,6 +7,7 @@
package toolsGenTableColumn package toolsGenTableColumn
import "C"
import ( import (
"context" "context"
"fmt" "fmt"
@ -67,6 +68,7 @@ func (s *sToolsGenTableColumn) SelectDbTableColumnsByName(ctx context.Context, t
db := g.DB() db := g.DB()
var sql string var sql string
if service.ToolsGenTable().IsPg() { if service.ToolsGenTable().IsPg() {
//pg数据库
sql = "select c.column_name,(case when c.is_nullable='YES' || k.column_name is not null then '1' else '0' end) as is_required," + sql = "select c.column_name,(case when c.is_nullable='YES' || k.column_name is not null then '1' else '0' end) as is_required," +
"(case when k.column_name is not null then '1' else '0' end) as is_pk,c.ordinal_position as sort_order_edit,d.description column_comment," + "(case when k.column_name is not null then '1' else '0' end) as is_pk,c.ordinal_position as sort_order_edit,d.description column_comment," +
"(case when c.column_default like 'nextval%' then '1' else '0' end) as is_increment,c.udt_name as column_type " + "(case when c.column_default like 'nextval%' then '1' else '0' end) as is_increment,c.udt_name as column_type " +
@ -74,6 +76,63 @@ func (s *sToolsGenTableColumn) SelectDbTableColumnsByName(ctx context.Context, t
"left join pg_description d on d.objsubid=c.ordinal_position and d.objoid=c.table_name :: regclass " + "left join pg_description d on d.objsubid=c.ordinal_position and d.objoid=c.table_name :: regclass " +
"left join information_schema.key_column_usage k on c.table_name=k.table_name and c.column_name=k.column_name and c.table_catalog=k.table_catalog and c.table_schema=k.table_schema " "left join information_schema.key_column_usage k on c.table_name=k.table_name and c.column_name=k.column_name and c.table_catalog=k.table_catalog and c.table_schema=k.table_schema "
sql += "where " + gdb.FormatSqlWithArgs(" c.table_name=? ", []interface{}{tableName}) + " order by c.ordinal_position" sql += "where " + gdb.FormatSqlWithArgs(" c.table_name=? ", []interface{}{tableName}) + " order by c.ordinal_position"
} else if service.ToolsGenTable().IsDM() {
dbName := g.DB().GetSchema()
//达梦数据库
sql = "SELECT" +
" A.COLUMN_NAME," +
" (CASE WHEN A.NULLABLE = 'N' THEN '1' ELSE '0' END) AS IS_REQUIRED," +
" (CASE WHEN B.CONSTRAINT_TYPE = 'P' THEN '1' ELSE '0' END) AS IS_PK," +
" A.COLUMN_ID AS SORT_ORDER_EDIT," +
" C.COMMENTS AS COLUMN_COMMENT," +
" (CASE WHEN D.IS_INCREMENT = 1 THEN '1' ELSE '0' END) AS IS_INCREMENT," +
" A.DATA_TYPE || '(' || A.DATA_LENGTH || ')' AS COLUMN_TYPE " +
" FROM" +
" ALL_TAB_COLUMNS A" +
" LEFT JOIN (" +
" SELECT" +
" C.OWNER, " +
" C.TABLE_NAME," +
" CC.COLUMN_NAME," +
" C.CONSTRAINT_TYPE" +
" FROM" +
" ALL_CONSTRAINTS C" +
" JOIN ALL_CONS_COLUMNS CC" +
" ON C.OWNER = CC.OWNER " +
" AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAME" +
" AND C.TABLE_NAME = CC.TABLE_NAME" +
" WHERE" +
" C.CONSTRAINT_TYPE = 'P'" +
" AND C.OWNER = ? " +
") B " +
" ON A.OWNER = B.OWNER " +
" AND A.TABLE_NAME = B.TABLE_NAME" +
" AND A.COLUMN_NAME = B.COLUMN_NAME" +
" LEFT JOIN ALL_COL_COMMENTS C" +
" ON A.OWNER = C.SCHEMA_NAME " +
" AND A.TABLE_NAME = C.TABLE_NAME" +
" AND A.COLUMN_NAME = C.COLUMN_NAME" +
" LEFT JOIN (" +
" SELECT" +
" sf_get_schema_name_by_id(st.schid) AS TABLE_OWNER," +
" st.name AS TABLE_NAME," +
" sco.name AS COLUMN_NAME," +
" CASE WHEN bitand(sco.info2, 0x0001) = 1 THEN 1 ELSE 0 END AS IS_INCREMENT" +
" FROM" +
" syscolumns sco" +
" JOIN sysobjects st" +
" ON sco.id = st.id" +
" AND st.subtype$ = 'UTAB'" +
") D " +
" ON A.OWNER = D.TABLE_OWNER " +
" AND A.TABLE_NAME = D.TABLE_NAME" +
" AND A.COLUMN_NAME = D.COLUMN_NAME" +
" WHERE" +
" A.OWNER = ? " +
" AND A.TABLE_NAME = ?" +
" ORDER BY" +
" A.COLUMN_ID ASC"
sql = gdb.FormatSqlWithArgs(sql, []interface{}{dbName, dbName, tableName})
} else { } else {
sql = "select column_name, (case when (is_nullable = 'YES' || is_nullable = 'NO' && column_default is not null) then '0' else '1' end) as is_required, " + sql = "select column_name, (case when (is_nullable = 'YES' || is_nullable = 'NO' && column_default is not null) then '0' else '1' end) as is_required, " +
"(case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort_order_edit, column_comment," + "(case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort_order_edit, column_comment," +

View File

@ -34,6 +34,7 @@ type (
SyncTable(ctx context.Context, tableId int64) (err error) SyncTable(ctx context.Context, tableId int64) (err error)
IsPg() bool IsPg() bool
IsMysql() bool IsMysql() bool
IsDM() bool
} }
) )

View File

@ -9,5 +9,5 @@ package consts
const ( const (
Logo = `CiAgIF9fX19fX19fX19fXyAgICAgICAgICAgX18gCiAgLyBfX19fLyBfX19fL19fXyBfX19fX18vIC9fCiAvIC8gX18vIC9fICAvIF9fIGAvIF9fXy8gX18vCi8gL18vIC8gX18vIC8gL18vIChfXyAgKSAvXyAgClxfX19fL18vICAgIFxfXyxfL19fX18vXF9fLyAg` Logo = `CiAgIF9fX19fX19fX19fXyAgICAgICAgICAgX18gCiAgLyBfX19fLyBfX19fL19fXyBfX19fX18vIC9fCiAvIC8gX18vIC9fICAvIF9fIGAvIF9fXy8gX18vCi8gL18vIC8gX18vIC8gL18vIChfXyAgKSAvXyAgClxfX19fL18vICAgIFxfXyxfL19fX18vXF9fLyAg`
Version = "3.3.2" Version = "3.3.3"
) )

BIN
resource/data/GFAST_DM.dmp Normal file

Binary file not shown.