diff --git a/README b/README new file mode 100644 index 0000000..596ac33 --- /dev/null +++ b/README @@ -0,0 +1,11 @@ +微信支付服务 +controller: 路由 +middle:中间件 +service: 业务逻辑 +repo:存储 +config.yaml:配置文件 +log:日志保存目录 + + +gf gen dao -p service/po +gf gen dao -h \ No newline at end of file diff --git a/config.yaml b/config.yaml index 4c75d75..4fae3f9 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,5 @@ server: - port: 8080 + address: ":8080" openapiPath: "/api.json" swaggerPath: "/swagger" logger: diff --git a/go.mod b/go.mod index f6d9f33..01b6ad8 100644 --- a/go.mod +++ b/go.mod @@ -5,18 +5,24 @@ go 1.22.3 require github.com/gogf/gf/v2 v2.7.4 require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 // indirect github.com/clbanning/mxj/v2 v2.7.0 // indirect + github.com/denisenkom/go-mssqldb v0.12.3 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-sql-driver/mysql v1.6.0 // indirect + github.com/go-sql-driver/mysql v1.8.1 // indirect github.com/gogf/gf v1.16.9 // indirect + github.com/gogf/gf-cli v1.17.0 // indirect github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.7.4 // indirect - github.com/gomodule/redigo v1.8.5 // indirect + github.com/gogf/swagger v1.3.0 // indirect + github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect + github.com/golang-sql/sqlexp v0.1.0 // indirect + github.com/gomodule/redigo v2.0.0+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/grokify/html-strip-tags-go v0.1.0 // indirect @@ -31,6 +37,7 @@ require ( go.opentelemetry.io/otel/metric v1.31.0 // indirect go.opentelemetry.io/otel/sdk v1.31.0 // indirect go.opentelemetry.io/otel/trace v1.31.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect diff --git a/go.sum b/go.sum index c3465dc..8b9f8e7 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,8 @@ +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -10,6 +15,10 @@ github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/denisenkom/go-mssqldb v0.0.0-20200206145737-bbfc9a55622e/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/denisenkom/go-mssqldb v0.12.3 h1:pBSGx9Tq67pBOTLmxNuirNTeB8Vjmf886Kx+8Y+8shw= +github.com/denisenkom/go-mssqldb v0.12.3/go.mod h1:k0mtMFOnU+AihqFxPMiF05rtiDrorD1Vrm1KEz5hxDo= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= 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.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= @@ -31,27 +40,49 @@ 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-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= 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/gogf/gf v1.16.4/go.mod h1:EjnxZXddTwfFoLPofDE3NokFWx+immofINtSyFCj280= 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/gogf/gf-cli v1.17.0 h1:b9jEeVjvnIrOJyB2yJwiBdSkeaOBP8f2Yizo4iAbASU= +github.com/gogf/gf-cli v1.17.0/go.mod h1:bJPhM0aJI70cq+99IVCuhfaYJKhp2VWI34j0npHwFQg= github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.7.4 h1:6eaV81MUtE7NUqYR95wOLQcdZ+OlLxn2GEs+rN+wtrM= github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.7.4/go.mod h1:JjZO8Ic5UxnFVtEY4cDkpFQQ1tx7pX7ZAQnlJ8ux0Kc= github.com/gogf/gf/v2 v2.7.4 h1:cGHUBO5Jr8ty21GN5EO+S2rFYhprdcqnwS7PnWL7+t4= github.com/gogf/gf/v2 v2.7.4/go.mod h1:EBXneAg/wes86rfeh68XC0a2JBNQylmT7Sp6/8Axk88= +github.com/gogf/mysql v1.6.1-0.20210603073548-16164ae25579/go.mod h1:52e6mXyNnHAsFrXrSnj5JPRSKsZKpHylVtA3j4AtMz8= +github.com/gogf/swagger v1.3.0 h1:McpIEwj2DXLF3/ZNN9h9LKza/fsjtHP54nMTYVSCQ74= +github.com/gogf/swagger v1.3.0/go.mod h1:VDpNntu8+8NTTJ3sLOZNPO1LUbfW/ZA84IFJhhrlpoM= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/gomodule/redigo v1.8.5 h1:nRAxCa+SVsyjSBrtZmG/cqb6VbTmuRzpg/PoTFlpumc= github.com/gomodule/redigo v1.8.5/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= +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.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grokify/html-strip-tags-go v0.0.0-20190921062105-daaa06bf1aaf/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= +github.com/grokify/html-strip-tags-go v0.0.0-20200322061010-ea0c1cf2f119/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4= github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -65,12 +96,17 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE 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-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 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/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= 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/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -80,32 +116,51 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +go.opentelemetry.io/otel v0.19.0/go.mod h1:j9bF567N9EfomkSidSfmMwIwIBuP37AMAIzVW85OxSg= go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel/metric v0.19.0/go.mod h1:8f9fglJPRnXuskQmKpnad31lcLJ2VmNNqIsx/uIwBSc= go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= +go.opentelemetry.io/otel/oteltest v0.19.0/go.mod h1:tI4yxwh8U21v7JD6R3BcA/2+RBoTKFexE/PJ/nSO7IA= go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/trace v0.19.0/go.mod h1:4IXiNextNOpPnRlI4ryK69mn5iC84bjBWZQA5DXz/qg= go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/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.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= @@ -113,6 +168,9 @@ golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= @@ -122,7 +180,11 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/log/2024-11-04.log b/log/2024-11-04.log deleted file mode 100644 index b38c870..0000000 --- a/log/2024-11-04.log +++ /dev/null @@ -1,3 +0,0 @@ -2024-11-04 16:57:48.549 {14e8d8ef2eb804182e267b7df4dbc6ae} main.go:30: 初始化成功 -2024-11-04 16:57:54.140 pay.go:27: {ShopId:ccccwsdfwefwefwef Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270} -2024-11-04 16:57:54.257 200 /wxApi/payQrCode cuowu!!!!! diff --git a/log/2024-11-05.log b/log/2024-11-05.log new file mode 100644 index 0000000..3f059d4 --- /dev/null +++ b/log/2024-11-05.log @@ -0,0 +1,4 @@ +2024-11-05 08:48:34.467 {4cf78ff910ec0418c94d0c59368b82be} main.go:31: 初始化成功 +2024-11-05 08:52:00.651 {d8d007fb40ec04185998a93c02952ba0} main.go:31: 初始化成功 +2024-11-05 08:52:29.385 main.go:18: 初始化成功 +2024-11-05 09:42:18.488 main.go:18: 初始化成功 diff --git a/log/sqlLog/2024-11-05.log b/log/sqlLog/2024-11-05.log new file mode 100644 index 0000000..b1997a3 --- /dev/null +++ b/log/sqlLog/2024-11-05.log @@ -0,0 +1,7 @@ +2024-11-05 09:30:49.100 [DEBU] {78fdd4185fee04183edff833322ba4a3} [ 77 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-05 09:30:49.115 [DEBU] {28b57c1d5fee04183fdff8338ad848b0} [ 14 ms] [default] [yuledui] [rows:5 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-05 09:30:49.142 [DEBU] {64cfe5175fee04183ddff833cddfc354} [ 26 ms] [default] [yuledui] [rows:30 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'account' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-05 09:30:49.182 [DEBU] {64cfe5175fee04183ddff833cddfc354} [ 21 ms] [default] [yuledui] [rows:9 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-05 09:30:49.221 [DEBU] {64cfe5175fee04183ddff833cddfc354} [ 19 ms] [default] [yuledui] [rows:12 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'promoter' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-05 09:30:49.259 [DEBU] {64cfe5175fee04183ddff833cddfc354} [ 20 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-05 09:30:49.299 [DEBU] {64cfe5175fee04183ddff833cddfc354} [ 19 ms] [default] [yuledui] [rows:12 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop_admin' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum diff --git a/main.go b/main.go index 61788ed..0299339 100644 --- a/main.go +++ b/main.go @@ -1,33 +1,21 @@ package main import ( - "fmt" "yuleduiPay/controller" "yuleduiPay/middle" "github.com/gogf/gf/v2/frame/g" - "github.com/gogf/gf/v2/os/gctx" _ "github.com/gogf/gf/contrib/drivers/pgsql/v2" ) func main() { s := g.Server() - ctx := gctx.New() - portStr, err := g.Cfg().Get(ctx, "server.port") - if err != nil { - fmt.Println(err) - return - } - - port := portStr.Int() s.Use(middle.MiddlewareCORS, middle.MiddlewareHandlerResponse) payRouter := controller.Pay{} s.Group("/wxApi", payRouter.RouterGroup) - //s.SetOpenApiPath("/api.json") - //s.SetSwaggerPath("/swagger") //swagger路径 - s.SetPort(port) - g.Log().Line().Print(ctx, "初始化成功") + + g.Log().Line().Print(nil, "初始化成功") s.Run() } diff --git a/repo/shop.go b/repo/shop.go new file mode 100644 index 0000000..ade592a --- /dev/null +++ b/repo/shop.go @@ -0,0 +1,16 @@ +package repo + +import ( + "yuleduiPay/service/po" + + "github.com/gogf/gf/v2/frame/g" +) + +type Shop struct { +} + +func (t *Shop) GetShopById(shopId string) (*po.Shop, error) { + shop := &po.Shop{} + err := g.Model("shop").Where("shop_id = ?", shopId).Scan(shop) + return shop, err +} diff --git a/service/pay.go b/service/pay.go index 3a2d31c..b4837d3 100644 --- a/service/pay.go +++ b/service/pay.go @@ -3,30 +3,35 @@ package service import ( "errors" "strconv" - "time" "yuleduiPay/repo" "yuleduiPay/service/po" "yuleduiPay/service/vo" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/guid" ) type Pay struct { payOrderRepo repo.PayOrder + shopRepo repo.Shop } func (t *Pay) PayQrCode(r *ghttp.Request) { req := vo.PayQrCodeReq{} err := r.Parse(&req) if err != nil { - r.Response.Writeln(err) + r.SetError(err) return } g.Log().Line().Printf(nil, "%+v", req) //获取订单信息 - + shop, err := t.shopRepo.GetShopById(req.ShopId) + if err != nil { + r.SetError(err) + return + } //创建订单记录 payOrder := po.PayOrder{} payOrder.OrderId = guid.S() @@ -48,7 +53,7 @@ func (t *Pay) PayQrCode(r *ghttp.Request) { payOrder.OpenId = req.OpenId payOrder.Mobile = req.Mobile payOrder.ShopId = req.ShopId - payOrder.Created = time.Now() + payOrder.Created = gtime.Now() payOrder.Updated = payOrder.Created err = t.payOrderRepo.CreatePayOrder(&payOrder) @@ -63,17 +68,17 @@ func (t *Pay) PayQrCode(r *ghttp.Request) { mMap["subject"] = "余乐兑小程序订单" //订单备注 mMap["total_amount"] = payOrder.Amount //该笔订单的资金总额???????? mMap["currency"] = "CNY" //默认人民币 //订单备注 - mMap["seller_id"] = 0 //???? - mMap["seller_name"] = "商户名称" //??? + mMap["seller_id"] = shop.AccountNumber //商户ID + mMap["seller_name"] = shop.ShopName //店铺名称 mMap["timeout_express"] = "1h" //设置未付款交易的超时时间,一个小时 mMap["sub_openid"] = payOrder.OpenId //微信OpenId mMap["is_minipg"] = "1" //微信小程序支付:1 - appId,err = g.Cfg().Get(ctx, "weixin.appId") + appId, err := g.Cfg().Get(nil, "weixin.appId") if err != nil { r.SetError(err) return } - mMap["appid"] = + mMap["appid"] = appId err = errors.New("cuowu!!!!!") r.SetError(err) diff --git a/service/po/account.go b/service/po/account.go new file mode 100644 index 0000000..8cdb834 --- /dev/null +++ b/service/po/account.go @@ -0,0 +1,43 @@ +// ================================================================================= +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package po + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// Account is the golang structure for table account. +type Account struct { + AccountId string `json:"accountId" orm:"account_id" ` // 进件编号 + ShopId string `json:"shopId" orm:"shop_id" ` // 商户编号 + ShopType int `json:"shopType" orm:"shop_type" ` // 商户类型 + Industry int `json:"industry" orm:"industry" ` // 所属行业 + ShopName string `json:"shopName" orm:"shop_name" ` // 店铺名称 + IdCard string `json:"idCard" orm:"id_card" ` // 身份证正反面 + Name string `json:"name" orm:"name" ` // 法人姓名 + IdNumber string `json:"idNumber" orm:"id_number" ` // 身份证号 + Phone string `json:"phone" orm:"phone" ` // 手机号 + Email string `json:"email" orm:"email" ` // 邮箱 + License string `json:"license" orm:"license" ` // 营业执照 + Uscc string `json:"uscc" orm:"uscc" ` // 统一社会信用代码 + LicenseName string `json:"licenseName" orm:"license_name" ` // 营业执照名称 + LicenseValidity string `json:"licenseValidity" orm:"license_validity" ` // 执照有效期 + LicenseAddress string `json:"licenseAddress" orm:"license_address" ` // 营业执照地址 + Area int `json:"area" orm:"area" ` // 商户营业地区 + SettlementName string `json:"settlementName" orm:"settlement_name" ` // 结算户名 + AccountBank string `json:"accountBank" orm:"account_bank" ` // 开户支行 + BankCard string `json:"bankCard" orm:"bank_card" ` // 银行卡正反面 + BankNumber string `json:"bankNumber" orm:"bank_number" ` // 银行卡号 + BankPhone string `json:"bankPhone" orm:"bank_phone" ` // 预留手机号 + AccountNumber string `json:"accountNumber" orm:"account_number" ` // 开户人证件号 + Manager string `json:"manager" orm:"manager" ` // 客户经理 + Rates float64 `json:"rates" orm:"rates" ` // 费率 + Extend string `json:"extend" orm:"extend" ` // 附加信息 + AccountDate *gtime.Time `json:"accountDate" orm:"account_date" ` // 进件日期 + State int `json:"state" orm:"state" ` // 进件状态 + DeleteFlag int `json:"deleteFlag" orm:"delete_flag" ` // 0:未删除 1:已删除 + CreateTime *gtime.Time `json:"createTime" orm:"create_time" ` // 创建时间 + UpdateTime *gtime.Time `json:"updateTime" orm:"update_time" ` // 最后更新时间 +} diff --git a/service/po/pay_order.go b/service/po/pay_order.go index 738216b..7f2dbc9 100644 --- a/service/po/pay_order.go +++ b/service/po/pay_order.go @@ -1,15 +1,18 @@ package po -import "time" +import ( + "github.com/gogf/gf/v2/os/gtime" +) +// PayOrder is the golang structure for table pay_order. type PayOrder struct { - OrderId string `gorm:"column:orderId"` //订单ID - Price float64 `gorm:"column:price"` //订单原价 - Amount float64 `gorm:"column:amount"` //支付价格 - Bean float64 `gorm:"column:bean"` //金豆抵扣价格 - OpenId string `gorm:"column:openId"` //支付用户微信OpenID - Mobile string `gorm:"column:mobile"` //支付用户手机号 - ShopId string `gorm:"column:shopId"` //商户ID - Created time.Time `gorm:"column:created"` //创建时间 - Updated time.Time `gorm:"column:updated"` //更新时间 + OrderId string `json:"orderId" orm:"orderId" ` // 订单ID,主键 + Price float64 `json:"price" orm:"price" ` // 订单原价 + Amount float64 `json:"amount" orm:"amount" ` // 支付价格 + Bean float64 `json:"bean" orm:"bean" ` // 金豆抵扣价格 + OpenId string `json:"openId" orm:"openId" ` // 支付用户微信openId + Mobile string `json:"mobile" orm:"mobile" ` // 支付用户手机号 + ShopId string `json:"shopId" orm:"shopId" ` // 商户ID + Created *gtime.Time `json:"created" orm:"created" ` // 创建时间 + Updated *gtime.Time `json:"updated" orm:"updated" ` // 更新时间 } diff --git a/service/po/promoter.go b/service/po/promoter.go new file mode 100644 index 0000000..dcf2572 --- /dev/null +++ b/service/po/promoter.go @@ -0,0 +1,25 @@ +// ================================================================================= +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package po + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// Promoter is the golang structure for table promoter. +type Promoter struct { + PromoterId string `json:"promoterId" orm:"promoter_id" ` // 推广人编号 + Phone string `json:"phone" orm:"phone" ` // 手机号 + Name string `json:"name" orm:"name" ` // 姓名 + Area int `json:"area" orm:"area" ` // 所在地区 + Password string `json:"password" orm:"password" ` // 登录密码 + WithdrawInfo string `json:"withdrawInfo" orm:"withdraw_info" ` // 提现信息 + Role string `json:"role" orm:"role" ` // 角色 + JoinDate *gtime.Time `json:"joinDate" orm:"join_date" ` // 入驻时间 + State int `json:"state" orm:"state" ` // 推广人状态 + DeleteFlag int `json:"deleteFlag" orm:"delete_flag" ` // 0:未删除 1:已删除 + CreateTime *gtime.Time `json:"createTime" orm:"create_time" ` // 创建时间 + UpdateTime *gtime.Time `json:"updateTime" orm:"update_time" ` // 最后更新时间 +} diff --git a/service/po/shop.go b/service/po/shop.go new file mode 100644 index 0000000..cc5bacd --- /dev/null +++ b/service/po/shop.go @@ -0,0 +1,31 @@ +// ================================================================================= +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package po + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// Shop is the golang structure for table shop. +type Shop struct { + ShopId string `json:"shopId" orm:"shop_id" ` // 商户编号 + PromoterId string `json:"promoterId" orm:"promoter_id" ` // 推广人编号 + AccountNumber string `json:"accountNumber" orm:"account_number" ` // 商户账号 + ChildAccountNumber string `json:"childAccountNumber" orm:"child_account_number" ` // 子商户号 + ContactName string `json:"contactName" orm:"contact_name" ` // 联系人 + Tel string `json:"tel" orm:"tel" ` // 联系电话 + ShopName string `json:"shopName" orm:"shop_name" ` // 店铺名称 + Address string `json:"address" orm:"address" ` // 营业地址 + DoorPhoto string `json:"doorPhoto" orm:"door_photo" ` // 门头照片 + InteriorPhoto string `json:"interiorPhoto" orm:"interior_photo" ` // 内部照片 + Industry int `json:"industry" orm:"industry" ` // 所属行业 + EquipmentNo string `json:"equipmentNo" orm:"equipment_no" ` // 设备编号 + Extend string `json:"extend" orm:"extend" ` // 附加信息 + JoinDate *gtime.Time `json:"joinDate" orm:"join_date" ` // 入驻时间 + State int `json:"state" orm:"state" ` // 商家状态 + DeleteFlag int `json:"deleteFlag" orm:"delete_flag" ` // 0:未删除 1:已删除 + CreateTime *gtime.Time `json:"createTime" orm:"create_time" ` // 创建时间 + UpdateTime *gtime.Time `json:"updateTime" orm:"update_time" ` // 最后更新时间 +} diff --git a/service/po/shop_admin.go b/service/po/shop_admin.go new file mode 100644 index 0000000..ba25e10 --- /dev/null +++ b/service/po/shop_admin.go @@ -0,0 +1,25 @@ +// ================================================================================= +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package po + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// ShopAdmin is the golang structure for table shop_admin. +type ShopAdmin struct { + ShopAdminId string `json:"shopAdminId" orm:"shop_admin_id" ` // 商家管理编号 + ShopId string `json:"shopId" orm:"shop_id" ` // 商户编号 + UserName string `json:"userName" orm:"user_name" ` // 登录账号 + GiftRate float64 `json:"giftRate" orm:"gift_rate" ` // 金豆赠送率 + DeductionRatio float64 `json:"deductionRatio" orm:"deduction_ratio" ` // 抵现比例 + Bonus float64 `json:"bonus" orm:"bonus" ` // 奖励金 + Password string `json:"password" orm:"password" ` // 登录密码 + Extend string `json:"extend" orm:"extend" ` // 附加信息 + State int `json:"state" orm:"state" ` // 账号状态 + DeleteFlag int `json:"deleteFlag" orm:"delete_flag" ` // 0:未删除 1:已删除 + CreateTime *gtime.Time `json:"createTime" orm:"create_time" ` // 创建时间 + UpdateTime *gtime.Time `json:"updateTime" orm:"update_time" ` // 最后更新时间 +}