diff --git a/go.mod b/go.mod index 20cae83..129cdd7 100644 --- a/go.mod +++ b/go.mod @@ -10,10 +10,10 @@ require ( github.com/apache/rocketmq-client-go/v2 v2.1.1 github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef 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/pgsql/v2 v2.8.0 - github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.0 - github.com/gogf/gf/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.3 + github.com/gogf/gf/contrib/nosql/redis/v2 v2.8.3 + github.com/gogf/gf/v2 v2.8.3 github.com/gorilla/websocket v1.5.3 github.com/mojocn/base64Captcha v1.3.6 github.com/mssola/user_agent v0.5.3 @@ -22,11 +22,11 @@ require ( github.com/shirou/gopsutil/v3 v3.23.2 github.com/sony/sonyflake v1.2.0 github.com/tencentyun/cos-go-sdk-v5 v0.7.34 - github.com/tiger1103/gfast-cache v1.0.8 - github.com/tiger1103/gfast-token v1.0.8 + github.com/tiger1103/gfast-cache v1.0.9 + github.com/tiger1103/gfast-token v1.0.9 github.com/wenlng/go-captcha v1.2.5 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 ) @@ -43,7 +43,7 @@ require ( github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dustin/go-humanize v1.0.0 // 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/go-logr/logr v1.4.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/lib/pq v1.10.9 // 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-isatty v0.0.20 // 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/pkg/errors v0.9.1 // 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/msoleps v1.0.3 // 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/multierr v1.11.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/mod v0.17.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect diff --git a/go.sum b/go.sum index 27dc020..3bcae03 100644 --- a/go.sum +++ b/go.sum @@ -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.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= 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.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +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.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= 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= @@ -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-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/gogf/gf/contrib/drivers/mysql/v2 v2.8.0 h1:Foyx+sGaHAfLXxbTc4xULyO+jaPmQO7puq2rius0pIQ= -github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.0/go.mod h1:JuRwELQEatN+KrcumDhSd5nEysyD8Dh3voXjjuKs+Gk= -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.0/go.mod h1:nZ5VGwXMT4GRow6IK/1VVcPArQtukcF+49kNOwvZT98= -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.0/go.mod h1:8Jp8s33CX4yPajGv5NVUlYHPi5Pru81HUKQv+ccS4/o= -github.com/gogf/gf/v2 v2.8.0 h1:CgNDoLFQCBxQaWOoGMzgU068T+tm0t/eNUgLV2wPJag= -github.com/gogf/gf/v2 v2.8.0/go.mod h1:6iYuZZ+A0ZcH8+4MDS/P0SvTPCvKzRvyAsY1kbkJYJc= +github.com/gogf/gf/contrib/drivers/mysql/v2 v2.8.3 h1:RtoBg5HWACFrgIrFkpzH94kxSd5EWefNAq5k6olNY6c= +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.3 h1:DvpoiVac1cwGVDTqC6wzFbDb+gXNzcceRgZUIcuTmaI= +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.3 h1:SpstyaADpaJmTgv55Teb8i7mpQrKH9IMzL0TwnhGcHI= +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.3 h1:h9Px3lqJnnH6It0AqHRz4/1hx0JmvaSf1IvUir5x1rA= +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/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= 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/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/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +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/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= 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/go.mod h1:btsaOc8CA3hdVloULfFdDgDc+g4f3TDZEFsDY0BLE+w= 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.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= +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/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= 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/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= 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.8/go.mod h1:SNNHfEexumeIXSKz7f/ais+Fi97+TeJvT3r92MqlNk0= -github.com/tiger1103/gfast-token v1.0.8 h1:hRNoGna8ji2lPZjMnpaJgZxh2EP3oAVFUSxEaMy79dY= -github.com/tiger1103/gfast-token v1.0.8/go.mod h1:gHgyf+25+tt4AbfrAtC+EM/SgM55wgPkLQiksLP/5+4= +github.com/tiger1103/gfast-cache v1.0.9 h1:U5sa6z6httumNXQe2v/qTvIUfGZCfzVeN6ASxCjm+WU= +github.com/tiger1103/gfast-cache v1.0.9/go.mod h1:SNNHfEexumeIXSKz7f/ais+Fi97+TeJvT3r92MqlNk0= +github.com/tiger1103/gfast-token v1.0.9 h1:lyV2PBft/Fqpf4xpsUHf6J7sCUwjSfDk9VCs17LnQkQ= +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/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= 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-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.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= +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/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= @@ -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.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.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +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/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= @@ -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-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.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +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-20180905080454-ebe1bf3edb33/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.6.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.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +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-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.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.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +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.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 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.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.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +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/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/internal/app/common/logic/sysDictData/sys_dict_data.go b/internal/app/common/logic/sysDictData/sys_dict_data.go index b82a794..1bbaeb2 100644 --- a/internal/app/common/logic/sysDictData/sys_dict_data.go +++ b/internal/app/common/logic/sysDictData/sys_dict_data.go @@ -66,14 +66,14 @@ func (s *sSysDictData) GetDictWithDataByType(ctx context.Context, dictType, defa if err != nil { return } - } - //设置给定的默认值 - for _, v := range dict.Values { - if defaultValue != "" { - if gstr.Equal(defaultValue, v.DictValue) { - v.IsDefault = 1 - } else { - v.IsDefault = 0 + //设置给定的默认值 + for _, v := range dict.Values { + if defaultValue != "" { + if gstr.Equal(defaultValue, v.DictValue) { + v.IsDefault = 1 + } else { + v.IsDefault = 0 + } } } } diff --git a/internal/app/system/logic/sysNotice/sys_notice.go b/internal/app/system/logic/sysNotice/sys_notice.go index c42b72a..f7f8935 100644 --- a/internal/app/system/logic/sysNotice/sys_notice.go +++ b/internal/app/system/logic/sysNotice/sys_notice.go @@ -87,7 +87,7 @@ func (s *sSysNotice) List(ctx context.Context, req *model.SysNoticeSearchReq) (l var res []*model.SysNoticeListRes 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" + //"(nr.user_id=" + strconv.FormatUint(currentUserId, 10) + ") as isRead" + "").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)) if gconv.Int(req.Type) == consts.SysLetterType { 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 { 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 } var res []*model.SysNoticeListRes - err = m.Page(req.PageNum, req.PageSize).Fields("" + - "n.*,nr.id IS NOT NULL as isRead").Order(order).Scan(&res) + 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) liberr.ErrIsNil(ctx, err, "获取数据失败") if req.IsTrim { for k, v := range res { @@ -238,7 +239,7 @@ func (s *sSysNotice) Add(ctx context.Context, req *model.SysNoticeAddReq) (err e Tag: req.Tag, Content: req.Content, Remark: req.Remark, - Receiver: req.Receiver, + Receiver: gconv.String(req.Receiver), Sort: req.Sort, Status: req.Status, CreatedBy: req.CreatedBy, @@ -276,7 +277,7 @@ func (s *sSysNotice) Edit(ctx context.Context, req *model.SysNoticeEditReq) (err Remark: req.Remark, Sort: req.Sort, Status: req.Status, - Receiver: req.Receiver, + Receiver: gconv.String(req.Receiver), UpdatedBy: req.UpdatedBy, } _, err = dao.SysNotice.Ctx(ctx).WherePri(req.Id).Update(data) diff --git a/internal/app/system/logic/sysRole/sys_role.go b/internal/app/system/logic/sysRole/sys_role.go index 1433dbc..7c83b12 100644 --- a/internal/app/system/logic/sysRole/sys_role.go +++ b/internal/app/system/logic/sysRole/sys_role.go @@ -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.As("a") + fields := "a.*, count(u.id) user_cnt" if service.ToolsGenTable().IsMysql() { model = model.LeftJoin("casbin_rule", "b", "b.v1 = a.id ") 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 { 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.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, "获取数据失败") }) return @@ -239,7 +244,7 @@ func (s *sSysRole) EditRole(ctx context.Context, req *system.RoleEditReq) (err e ListOrder: req.ListOrder, Name: req.Name, Remark: req.Remark, - EffectiveTime: req.EffectiveTimeInfo, + EffectiveTime: gconv.String(req.EffectiveTimeInfo), }).Update() liberr.ErrIsNil(ctx, e, "修改角色失败") //过滤ruleIds 把没有权限的过滤掉 diff --git a/internal/app/system/logic/sysUser/sys_user.go b/internal/app/system/logic/sysUser/sys_user.go index 96cc7e5..549b29c 100644 --- a/internal/app/system/logic/sysUser/sys_user.go +++ b/internal/app/system/logic/sysUser/sys_user.go @@ -470,7 +470,7 @@ func (s *sSysUser) List(ctx context.Context, req *system.UserSearchReq) (total i } 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) } //判断权限,普通管理只能按数据权限查看 diff --git a/internal/app/system/logic/toolsGenTable/tools_gen_table.go b/internal/app/system/logic/toolsGenTable/tools_gen_table.go index f0388d5..e1323dd 100644 --- a/internal/app/system/logic/toolsGenTable/tools_gen_table.go +++ b/internal/app/system/logic/toolsGenTable/tools_gen_table.go @@ -7,6 +7,7 @@ package toolsGenTable +import "C" import ( "bufio" "context" @@ -29,6 +30,7 @@ import ( "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/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/service" "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) db := g.DB() err = g.Try(ctx, func(ctx context.Context) { - if !s.IsMysql() && !s.IsPg() { - liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql及postgresql数据库")) + if !s.IsMysql() && !s.IsPg() && !s.IsDM() { + liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql、postgresql及达梦数据库")) } var sqlStr string 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) err = db.GetScan(ctx, &res.List, "select "+sqlStr) 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 @@ -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) { var result []*entity.ToolsGenTable err := g.Try(ctx, func(ctx context.Context) { - if !s.IsMysql() && !s.IsPg() { - liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql及postgresql数据库")) + if !s.IsMysql() && !s.IsPg() && !s.IsDM() { + liberr.ErrIsNil(ctx, gerror.New("代码生成暂时只支持mysql、postgresql及达梦数据库")) } db := g.DB() var sqlStr string @@ -186,6 +224,22 @@ func (s *sToolsGenTable) SelectDbTableListByNames(ctx context.Context, tableName } err := db.GetScan(ctx, &result, sqlStr) 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 @@ -206,8 +260,33 @@ func (s *sToolsGenTable) ImportGenTable(ctx context.Context, tableList []*entity } err = s.InitTable(ctx, table, genTableColumns) liberr.ErrIsNil(ctx, err) - result, err1 := tx.Model(dao.ToolsGenTable.Table()).FieldsEx("table_id"). - Insert(table) + result, err1 := tx.Model(dao.ToolsGenTable.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) tmpId, err2 := result.LastInsertId() liberr.ErrIsNil(ctx, err2, "保存数据失败") @@ -302,6 +381,10 @@ func (s *sToolsGenTable) IsMysql() bool { return s.getDbDriver() == "mysql" } +func (s *sToolsGenTable) IsDM() bool { + return s.getDbDriver() == "dm" +} + // DeleteTable 删除表信息 func (s *sToolsGenTable) DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) 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 = tx.Model(dao.ToolsGenTable.Table()). 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, "保存表数据失败") //保存列数据 if req.Columns != nil { @@ -549,6 +656,7 @@ func (s *sToolsGenTable) SaveEdit(ctx context.Context, req *system.ToolsGenTable } _, err = tx.Model(dao.ToolsGenTableColumn.Table()). WherePri(dbColumn.ColumnId). + FieldsEx(dao.ToolsGenTableColumn.Columns().ColumnId). Update(dbColumn) liberr.ErrIsNil(ctx, err, "保存列:"+dbColumn.ColumnName+",数据失败") } @@ -1419,7 +1527,9 @@ func (s *sToolsGenTable) SyncTable(ctx context.Context, tableId int64) (err erro //字段不存在则添加 if !alreadyExists { 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)) } } diff --git a/internal/app/system/logic/toolsGenTableColumn/tools_gen_table_column.go b/internal/app/system/logic/toolsGenTableColumn/tools_gen_table_column.go index e09c81f..1ed115d 100644 --- a/internal/app/system/logic/toolsGenTableColumn/tools_gen_table_column.go +++ b/internal/app/system/logic/toolsGenTableColumn/tools_gen_table_column.go @@ -7,6 +7,7 @@ package toolsGenTableColumn +import "C" import ( "context" "fmt" @@ -67,15 +68,73 @@ func (s *sToolsGenTableColumn) SelectDbTableColumnsByName(ctx context.Context, t db := g.DB() var sql string if service.ToolsGenTable().IsPg() { - 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," + + //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," + "(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 " + "from information_schema.columns c " + "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 " 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 { - 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 extra = 'auto_increment' then '1' else '0' end) as is_increment, column_type from information_schema.columns" + " where table_schema = (select database()) " diff --git a/internal/app/system/service/tools_gen_table.go b/internal/app/system/service/tools_gen_table.go index 9f7ad47..7da71bd 100644 --- a/internal/app/system/service/tools_gen_table.go +++ b/internal/app/system/service/tools_gen_table.go @@ -26,14 +26,15 @@ type ( DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) error ColumnList(ctx context.Context, req *system.ToolsGenTableEditReq) (res *system.ToolsGenTableEditRes, err error) GetTableInfoByTableId(ctx context.Context, tableId int64) (data *entity.ToolsGenTable, err error) - GetRelationTable(ctx context.Context,req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error) + GetRelationTable(ctx context.Context, req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error) SaveEdit(ctx context.Context, req *system.ToolsGenTableColumnsEditReq) (err error) GenData(ctx context.Context, tableId int64) (data g.MapStrStr, extendData *model.ToolsGenTableEx, err error) SelectRecordById(ctx context.Context, tableId int64) (tableEx *model.ToolsGenTableEx, err error) GenCode(ctx context.Context, ids []int) (err error) SyncTable(ctx context.Context, tableId int64) (err error) - IsPg()bool - IsMysql()bool + IsPg() bool + IsMysql() bool + IsDM() bool } ) diff --git a/internal/consts/version.go b/internal/consts/version.go index d78cab4..ca5d5b3 100644 --- a/internal/consts/version.go +++ b/internal/consts/version.go @@ -9,5 +9,5 @@ package consts const ( Logo = `CiAgIF9fX19fX19fX19fXyAgICAgICAgICAgX18gCiAgLyBfX19fLyBfX19fL19fXyBfX19fX18vIC9fCiAvIC8gX18vIC9fICAvIF9fIGAvIF9fXy8gX18vCi8gL18vIC8gX18vIC8gL18vIChfXyAgKSAvXyAgClxfX19fL18vICAgIFxfXyxfL19fX18vXF9fLyAg` - Version = "3.3.2" + Version = "3.3.3" ) diff --git a/manifest/config/config.yaml.bak b/manifest/config/config.yaml.bak index 35e8c66..7a2dad4 100644 --- a/manifest/config/config.yaml.bak +++ b/manifest/config/config.yaml.bak @@ -111,7 +111,7 @@ upload: endPoint: "xxx.xxxx.com" #自定域名 bucketName: "xxx" #使用的存储桶 isHttps: true #是否开启https访问 - path:"gfast" #上传文件保存路径 + path: "gfast" #上传文件保存路径 # 代码生成配置 gen: diff --git a/resource/data/GFAST_DM.dmp b/resource/data/GFAST_DM.dmp new file mode 100644 index 0000000..ea41abf Binary files /dev/null and b/resource/data/GFAST_DM.dmp differ