From 3d640f0958fd3ee729cfc8e225167d82545330e2 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Sat, 19 Aug 2023 22:03:57 +0800 Subject: [PATCH] sqlx: make app work well but except create post/comment/reply and some other create act in postgres driver because it not support LasterInsertId --- go.mod | 2 +- go.sum | 13 +- internal/conf/db.go | 2 +- internal/dao/sakila/auto/ac/yesql.go | 35 +-- internal/dao/sakila/auto/cc/yesql.go | 312 +++++++++++++------------ internal/dao/sakila/auto/yesql.go | 23 +- internal/dao/sakila/comments.go | 24 +- internal/dao/sakila/contacts.go | 1 + internal/dao/sakila/following.go | 18 +- internal/dao/sakila/messages.go | 9 +- internal/dao/sakila/security.go | 1 + internal/dao/sakila/timeline.go | 52 +---- internal/dao/sakila/timeline_a.go | 63 +++++ internal/dao/sakila/tweets.go | 15 +- internal/dao/sakila/user.go | 6 + internal/dao/sakila/utils.go | 79 +++++-- internal/dao/sakila/yesql/yesql.sql | 20 ++ internal/dao/sakila/yesql/yesql_ac.sql | 6 +- internal/dao/sakila/yesql/yesql_cc.sql | 183 ++++++++++++--- internal/servants/web/core.go | 2 + internal/servants/web/loose.go | 6 + internal/servants/web/priv.go | 2 + internal/servants/web/pub.go | 3 + 23 files changed, 575 insertions(+), 302 deletions(-) create mode 100644 internal/dao/sakila/timeline_a.go diff --git a/go.mod b/go.mod index 457b7347..a0cacc2e 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.4.0 github.com/alimy/mir/v4 v4.0.0 - github.com/alimy/yesql v1.8.4 + github.com/alimy/yesql v1.8.5 github.com/aliyun/aliyun-oss-go-sdk v2.2.8+incompatible github.com/allegro/bigcache/v3 v3.1.0 github.com/bitbus/sqlx v1.6.0 diff --git a/go.sum b/go.sum index 0e2bc64b..b7049ef4 100644 --- a/go.sum +++ b/go.sum @@ -127,8 +127,8 @@ github.com/alimy/cfg v0.4.0 h1:SslKPndmxRViT1ePWLmNsEq7okYP0GVeuowQlRWZPkw= github.com/alimy/cfg v0.4.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= github.com/alimy/mir/v4 v4.0.0 h1:MzGfmoLjjvR69jbZEmpKJO3tUuqB0RGRv1UWPbtukBg= github.com/alimy/mir/v4 v4.0.0/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= -github.com/alimy/yesql v1.8.4 h1:Nj4u681SS6uEQTOqXUXBSFnXI67akStnYtv6eYXjPlM= -github.com/alimy/yesql v1.8.4/go.mod h1:ROvO5FnBWhyAMI+sSSGzoXi2q/cCs0cW3WuelHCkLlk= +github.com/alimy/yesql v1.8.5 h1:LD6veEOm+SKNQjWNc1SrfXgVE8ohq6HxJe6iComF3C8= +github.com/alimy/yesql v1.8.5/go.mod h1:ROvO5FnBWhyAMI+sSSGzoXi2q/cCs0cW3WuelHCkLlk= github.com/aliyun/aliyun-oss-go-sdk v2.2.8+incompatible h1:6JF1bjhT0WN2srEmijfOFtVWwV91KZ6dJY1/JbdtGrI= github.com/aliyun/aliyun-oss-go-sdk v2.2.8+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= @@ -448,6 +448,7 @@ github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -472,6 +473,7 @@ github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= @@ -513,6 +515,7 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -1071,6 +1074,7 @@ github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -1086,6 +1090,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -1545,6 +1550,7 @@ 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-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2090,6 +2096,7 @@ modernc.org/ccgo/v3 v3.9.2/go.mod h1:gnJpy6NIVqkETT+L5zPsQFj7L2kkhfPMzOghRNv/CFo modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/db v1.0.0/go.mod h1:kYD/cO29L/29RM0hXYl4i3+Q5VojL31kTUVpVJDw0s8= modernc.org/file v1.0.0/go.mod h1:uqEokAEn1u6e+J45e54dsEA/pw4o7zLrA2GwyntZzjw= modernc.org/fileutil v1.0.0/go.mod h1:JHsWpkrk/CnVV1H/eGlFf85BEpfkrp56ro8nojIq9Q8= @@ -2123,12 +2130,14 @@ modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.5.2/go.mod h1:pmJYOLgpiys3oI4AeAafkcUfE+TKKilminxNyU/+Zlo= modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY= +modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg= modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.0.1-0.20210308123920-1f282aa71362/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA= modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA= modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= +modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE= modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/internal/conf/db.go b/internal/conf/db.go index 32867a9c..b98cdd57 100644 --- a/internal/conf/db.go +++ b/internal/conf/db.go @@ -58,7 +58,7 @@ func newSqlDB() (driver string, db *sql.DB, err error) { if cfg.If("MySQL") { driver = "mysql" db, err = sql.Open(driver, MysqlSetting.Dsn()) - } else if cfg.If("PostgreSQL") || cfg.If("Postgres") { + } else if cfg.Any("PostgreSQL", "PgSQL", "Postgres") { driver = "pgx" db, err = sql.Open(driver, PostgresSetting.Dsn()) } else if cfg.If("Sqlite3") { diff --git a/internal/dao/sakila/auto/ac/yesql.go b/internal/dao/sakila/auto/ac/yesql.go index 2ebf69fe..67823b9b 100644 --- a/internal/dao/sakila/auto/ac/yesql.go +++ b/internal/dao/sakila/auto/ac/yesql.go @@ -1,34 +1,39 @@ // Code generated by Yesql. DO NOT EDIT. // versions: -// - Yesql v1.8.4 +// - Yesql v1.8.5 package ac import ( "context" + "fmt" "github.com/alimy/yesql" "github.com/bitbus/sqlx" ) +var ( + _ = fmt.Errorf("error for placeholder") +) + const ( _ShipIndexA_UserInfo = `SELECT * FROM @user WHERE username=?` _SimpleIndexA_UserInfo = `SELECT * FROM @user WHERE username=?` _TopicA_DecrTagsById = `UPDATE @tag SET quote_num=quote_num-1, modified_on=? WHERE id IN (?)` _TopicA_ExistTopicUser = `SELECT 1 FROM @topic_user WHERE user_id=? AND topic_id=? AND is_del=0` - _TopicA_FollowTags = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id "u.id", 1 as is_following, c.is_top, u.nickname "u.nickname", u.username "u.username", u.status "u.status", u.avatar "u.avatar", u.is_admin "u.is_admin" FROM @topic_user c JOIN @user u ON c.user_id = u.id JOIN @tag t ON c.topic_id = t.id WHERE c.is_del = 0 AND t.quote_num > 0 AND AND c.user_id=? ORDER BY t.quote_num DESC LIMIT ? OFFSET ?` + _TopicA_FollowTags = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id "u.id", 1 as is_following, c.is_top, u.nickname "u.nickname", u.username "u.username", u.status "u.status", u.avatar "u.avatar", u.is_admin "u.is_admin" FROM @topic_user c JOIN @user u ON c.user_id = u.id JOIN @tag t ON c.topic_id = t.id WHERE c.is_del = 0 AND t.quote_num > 0 AND c.user_id=? ORDER BY t.quote_num DESC LIMIT ? OFFSET ?` _TopicA_FollowTopic = `INSERT INTO @topic_user(user_id, topic_id, created_on) VALUES (?, ?, ?)` _TopicA_HotTags = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id "u.id", u.nickname "u.nickname", u.username "u.username", u.status "u.status", u.avatar "u.avatar", u.is_admin "u.is_admin" FROM @tag t JOIN @user u ON t.user_id = u.id WHERE t.is_del = 0 AND t.quote_num > 0 ORDER BY t.quote_num DESC LIMIT ? OFFSET ?` _TopicA_IncrTagsById = `UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?)` _TopicA_InsertTag = `INSERT INTO @tag (user_id, tag, created_on, modified_on, quote_num) VALUES (?, ?, ?, ?, 1)` _TopicA_NewestTags = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id "u.id", u.nickname "u.nickname", u.username "u.username", u.status "u.status", u.avatar "u.avatar", u.is_admin "u.is_admin" FROM @tag t JOIN @user u ON t.user_id = u.id WHERE t.is_del = 0 AND t.quote_num > 0 ORDER BY t.id DESC LIMIT ? OFFSET ?` - _TopicA_StickTopic = `UPDATE @topic_user SET is_top=1-is_top; modified_on=? WHERE user_id=? AND topic_id=? AND is_del=0` + _TopicA_StickTopic = `UPDATE @topic_user SET is_top=1-is_top, modified_on=? WHERE user_id=? AND topic_id=? AND is_del=0` _TopicA_TagsByIdA = `SELECT id FROM @tag WHERE id IN (?) AND is_del = 0 AND quote_num > 0` _TopicA_TagsByIdB = `SELECT id, user_id, tag, quote_num FROM @tag WHERE id IN (?)` _TopicA_TagsByKeywordA = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 ORDER BY quote_num DESC LIMIT 6` _TopicA_TagsByKeywordB = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 AND tag LIKE ? ORDER BY quote_num DESC LIMIT 6` _TopicA_TagsForIncr = `SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?)` - _TopicA_TopicInfos = `SELECT topic_id, is_top FROM @topic_user WHERE is_del=0 AND user_id=? AND topic_id IN ?` + _TopicA_TopicInfos = `SELECT topic_id, is_top FROM @topic_user WHERE is_del=0 AND user_id=? AND topic_id IN (?)` _TopicA_TopicIsTop = `SELECT is_top FROM @topic_user WHERE user_id=? AND topic_id=? AND is_del=0` _TopicA_UnfollowTopic = `UPDATE @topic_user SET is_del=1, deleted_on=? WHERE user_id=? AND topic_id=? AND is_del=0` _TweetA_AttachmentByTweetId = `SELECT * FROM @user WHERE username=?` @@ -154,37 +159,37 @@ func BuildTopicA(p PreparexBuilder, ctx ...context.Context) (obj *TopicA, err er TopicInfos: p.QueryHook(_TopicA_TopicInfos), } if obj.ExistTopicUser, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_ExistTopicUser))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_ExistTopicUser error: %w", err) } if obj.FollowTags, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_FollowTags))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_FollowTags error: %w", err) } if obj.FollowTopic, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_FollowTopic))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_FollowTopic error: %w", err) } if obj.HotTags, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_HotTags))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_HotTags error: %w", err) } if obj.InsertTag, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_InsertTag))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_InsertTag error: %w", err) } if obj.NewestTags, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_NewestTags))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_NewestTags error: %w", err) } if obj.StickTopic, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_StickTopic))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_StickTopic error: %w", err) } if obj.TagsByKeywordA, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_TagsByKeywordA))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_TagsByKeywordA error: %w", err) } if obj.TagsByKeywordB, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_TagsByKeywordB))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_TagsByKeywordB error: %w", err) } if obj.TopicIsTop, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_TopicIsTop))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_TopicIsTop error: %w", err) } if obj.UnfollowTopic, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TopicA_UnfollowTopic))); err != nil { - return + return nil, fmt.Errorf("prepare _TopicA_UnfollowTopic error: %w", err) } return } diff --git a/internal/dao/sakila/auto/cc/yesql.go b/internal/dao/sakila/auto/cc/yesql.go index 38fe0b8e..ba6a86fa 100644 --- a/internal/dao/sakila/auto/cc/yesql.go +++ b/internal/dao/sakila/auto/cc/yesql.go @@ -1,16 +1,21 @@ // Code generated by Yesql. DO NOT EDIT. // versions: -// - Yesql v1.8.4 +// - Yesql v1.8.5 package cc import ( "context" + "fmt" "github.com/alimy/yesql" "github.com/bitbus/sqlx" ) +var ( + _ = fmt.Errorf("error for placeholder") +) + const ( _AuthorizationManage_BeFriendIds = `SELECT user_id FROM @contact WHERE friend_id=? AND status=2 AND is_del=0` _AuthorizationManage_IsFriend = `SELECT status FROM @contact WHERE user_id=? AND friend_id=? AND is_del=0` @@ -19,9 +24,10 @@ const ( _Comment_GetCommentContentsByIds = `SELECT * FROM @comment_content WHERE comment_id IN (?)` _Comment_GetCommentCount = `SELECT count(*) FROM @comment WHERE post_id=:post_id AND is_del=0` _Comment_GetCommentReplyById = `SELECT * FROM @comment_reply WHERE id=? AND is_del=0` - _Comment_GetCommentThumbs = `SELECT * FROM @tweet_comment_thumbs WHERE user_id=? AND tweet_id=?` - _Comment_GetComments = `SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY %order% LIMIT ? OFFSET ?` + _Comment_GetCommentThumbs = `SELECT user_id, tweet_id, comment_id, reply_id, comment_type, is_thumbs_up, is_thumbs_down FROM @tweet_comment_thumbs WHERE user_id=? AND tweet_id=?` _Comment_GetCommmentRepliesByIds = `SELECT * FROM @comment_reply WHERE comment_id IN (?) ORDER BY id ASC` + _Comment_GetDefaultComments = `SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY id ASC LIMIT ? OFFSET ?` + _Comment_GetNewestComments = `SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY id DESC LIMIT ? OFFSET ?` _Comment_GetUsersByIds = `SELECT id, nickname, username, status, avatar, is_admin FROM @user WHERE id IN (?)` _CommentManage_CreateComment = `INSERT INTO @comment (post_id, user_id, ip, ip_loc, created_on) VALUES (?, ?, ?, ?, ?)` _CommentManage_CreateCommentContent = `INSERT INTO @comment_content (comment_id, user_id, content, type, sort, created_on) VALUES (?, ?, ?, ?, ?, ?)` @@ -45,7 +51,7 @@ const ( _ContactManager_GetContacts = `SELECT id, user_id, friend_id, group_id, remark, status, is_top, is_black, notice_enable, is_del FROM @contact WHERE (user_id=? AND friend_id=?) OR (user_id=? AND friend_id=?)` _ContactManager_GetUserFriend = `SELECT id, user_id, friend_id, group_id, remark, status, is_top, is_black, notice_enable, is_del FROM @contact WHERE user_id=? AND friend_id=? AND is_del=0` _ContactManager_IsFriend = `SELECT true FROM @contact WHERE user_id=? AND friend_id=? AND is_del=0 AND status=2` - _ContactManager_ListFriend = `SELECT c.friend_id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.phone phone FROM @contact c JOIN @user u ON c.friend_id=u.id WHERE user_id=? AND status=2 AND is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` + _ContactManager_ListFriend = `SELECT c.friend_id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.phone phone FROM @contact c JOIN @user u ON c.friend_id=u.id WHERE c.user_id=? AND c.status=2 AND c.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` _ContactManager_RejectFriendMsgsUpdate = `UPDATE @message SET reply_id=?, modified_on=? WHERE sender_user_id = ? AND receiver_user_id = ? AND type = ? AND reply_id = ?` _ContactManager_TotalFriendsById = `SELECT count(*) FROM @contact WHERE user_id=? AND status=2 AND is_del=0` _FollowingManager_CountFollowings = `SELECT count(*) FROM @following WHERE follow_id=? AND is_del=0` @@ -53,25 +59,25 @@ const ( _FollowingManager_CreateFollowing = `INSERT INTO @following (user_id, follow_id, created_on) VALUES (?, ?, ?)` _FollowingManager_DeleteFollowing = `UPDATE @following SET is_del=0, deleted_on=? WHERE user_id=? AND follow_id=? AND is_del=0` _FollowingManager_ExistFollowing = `SELECT 1 FROM @following WHERE user_id=? AND follow_id=? AND is_del=0` - _FollowingManager_ListFollowings = `SELECT u.user_id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.created_on created_on FROM @following f JOIN @user u ON f.user_id=u.id WHERE f.follow_id=? AND f.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` - _FollowingManager_ListFollows = `SELECT u.user_id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.created_on created_on FROM @following f JOIN @user u ON f.follow_id=u.id WHERE f.user_id=? AND f.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` + _FollowingManager_ListFollowings = `SELECT u.id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.created_on created_on FROM @following f JOIN @user u ON f.user_id=u.id WHERE f.follow_id=? AND f.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` + _FollowingManager_ListFollows = `SELECT u.id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.created_on created_on FROM @following f JOIN @user u ON f.follow_id=u.id WHERE f.user_id=? AND f.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?` _Message_CreateMessage = `INSERT INTO @message (sender_user_id, receiver_user_id, type, brief, content, post_id, comment_id, reply_id, created_on) VALUES (:sender_user_id, :receiver_user_id, :type, :brief, :content, :post_id, :comment_id, :reply_id, :created_on)` _Message_GetMessageById = `SELECT * FROM @message WHERE id=? AND is_del=0` - _Message_GetMessageCount = `SELECT count(*) FROM @message WHERE receiver_user_id=:recerver_user_id AND is_del=0` - _Message_GetMessages = `SELECT * FROM @message WHERE receiver_user_id=:recerver_user_id AND is_del=0 ORDER BY id DESC LIMIT :limit OFFSET :offset` + _Message_GetMessageCount = `SELECT count(*) FROM @message WHERE receiver_user_id=:receiver_user_id AND is_del=0` + _Message_GetMessages = `SELECT * FROM @message WHERE receiver_user_id=:receiver_user_id AND is_del=0 ORDER BY id DESC LIMIT :limit OFFSET :offset` _Message_GetUnreadCount = `SELECT count(*) FROM @message WHERE receiver_user_id=? AND is_read=0 AND is_del=0` _Message_ReadMessage = `UPDATE @message SET is_read=1, modified_on=? WHERE id=?` _Security_CreatePhoneCaptcha = `INSERT INTO @captcha (phone, captcha, expired_on, created_on) VALUES (:phone, :captcha, :expired_on, :created_on)` _Security_GetLatestPhoneCaptcha = `SELECT * FROM @captcha WHERE phone=? AND is_del=0` _Security_UsePhoneCaptcha = `UPDATE @captcha SET use_times=use_times+1, modified_on=? WHERE id=? AND is_del=0` - _ShipIndex_IndexByAdmin = `SELECT * FROM @p_post WHERE is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` - _ShipIndex_IndexByGuest = `SELECT * FROM @p_post WHERE visibility=0 AND is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` - _ShipIndex_IndexBySelf = `SELECT * FROM @p_post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR (visibility=2 AND user_id IN ?)) ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` - _ShipIndex_IndexCountByAdmin = `SELECT count(*) FROM @p_post WHERE is_del=0` - _ShipIndex_IndexCountByGuest = `SELECT count(*) FROM @p_post WHERE visibility=0 AND is_del=0` - _ShipIndex_IndexCountBySelf = `SELECT count(*) FROM @p_post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR (visibility=2 AND user_id IN ?))` - _SimpleIndex_Index = `SELECT * FROM @p_post WHERE visibility=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` - _SimpleIndex_IndexCount = `SELECT count(*) FROM @p_post WHERE visibility=0` + _ShipIndex_IndexByAdmin = `SELECT * FROM @post WHERE is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` + _ShipIndex_IndexByGuest = `SELECT * FROM @post WHERE visibility=0 AND is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` + _ShipIndex_IndexBySelf = `SELECT * FROM @post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR (visibility=2 AND user_id IN ?)) ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` + _ShipIndex_IndexCountByAdmin = `SELECT count(*) FROM @post WHERE is_del=0` + _ShipIndex_IndexCountByGuest = `SELECT count(*) FROM @post WHERE visibility=0 AND is_del=0` + _ShipIndex_IndexCountBySelf = `SELECT count(*) FROM @post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR (visibility=2 AND user_id IN ?))` + _SimpleIndex_Index = `SELECT * FROM @post WHERE visibility=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?` + _SimpleIndex_IndexCount = `SELECT count(*) FROM @post WHERE visibility=0` _Tweet_GetAnyPostCount = `SELECT count(*) FROM @post WHERE visibility IN (?)` _Tweet_GetAnyPosts = `SELECT * FROM @post WHERE visibility IN (?) AND is_del=0 LIMIT ? OFFSET ?` _Tweet_GetPostAttachmentBill = `SELECT * FROM @post_attachment_bill WHERE post_id=? AND user_id=? AND is_del=0` @@ -85,11 +91,11 @@ const ( _Tweet_GetUserPostStar = `SELECT s.*, P.ID "post.id", P.user_id "post.user_id", P.comment_count "post.comment_count", P.collection_count "post.collection_count", P.upvote_count "post.upvote_count", P.share_count "post.share_count", P.visibility "post.visibility", P.is_top "post.is_top", P.is_essence "post.is_essence", P.is_lock "post.is_lock", P.latest_replied_on "post.latest_replied_on", P.tags "post.tags", P.attachment_price "post.attachment_price", P.ip "post.ip", P.ip_loc "post.ip_loc", P.is_del "post.is_del", P.created_on "post.created_on", P.modified_on "post.modified_on", P.deleted_on "post.deleted_on" FROM @post_star s JOIN @post P ON s.post_id = P.ID WHERE s.post_id = ? AND s.user_id = ? AND s.is_del = 0 AND ( visibility <> 1 OR ( visibility = 1 AND P.user_id = ? ) ) ORDER BY P.ID DESC` _Tweet_GetUserPostStarCount = `SELECT count(*) FROM @post_star s JOIN @post P ON s.post_id = P.ID WHERE s.user_id = ? AND s.is_del = 0 AND ( visibility <> 1 OR ( visibility = 1 AND P.user_id = ? ) )` _Tweet_GetUserPostStars = `SELECT s.*, P.ID "post.id", P.user_id "post.user_id", P.comment_count "post.comment_count", P.collection_count "post.collection_count", P.upvote_count "post.upvote_count", P.share_count "post.share_count", P.visibility "post.visibility", P.is_top "post.is_top", P.is_essence "post.is_essence", P.is_lock "post.is_lock", P.latest_replied_on "post.latest_replied_on", P.tags "post.tags", P.attachment_price "post.attachment_price", P.ip "post.ip", P.ip_loc "post.ip_loc", P.is_del "post.is_del", P.created_on "post.created_on", P.modified_on "post.modified_on", P.deleted_on "post.deleted_on" FROM @post_star s JOIN @post P ON s.post_id = P.ID WHERE s.user_id = ? AND s.is_del = 0 AND ( visibility <> 1 OR ( visibility = 1 AND P.user_id = ? ) ) ORDER BY s.ID DESC, P.ID DESC LIMIT ? OFFSET ?` - _Tweet_GetUserPosts = `SELECT * FROM @post WHERE user_id=? AND visibility IN (?) ORDER BY latest_replies_on DESC LIMIT ? OFFSET ?` + _Tweet_GetUserPosts = `SELECT * FROM @post WHERE user_id=? AND visibility IN (?) ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` _TweetHelp_GetPostContentByIds = `SELECT id, post_id, content, type, sort FROM @post_content WHERE post_id IN (?) AND is_del=0` _TweetHelp_GetUsersByIds = `SELECT id, username, nickname, status, avatar, is_admin FROM @user WHERE id IN (?) AND is_del=0` _TweetManage_AddAttachment = `INSERT INTO @attachment (user_id, file_size, img_width, img_height, type, content, created_on) VALUES (?, ?, ?, ?, ?, ?, ?)` - _TweetManage_AddPost = `INSERT INTO @post (user_id, tags, ip, ip_loc, attachment_price, visibility, latest_replies_on, created_on) VALUES (:user_id, :tags, :ip, :ip_loc, :attachment_price, :visibility, :latest_replies_on, :created_on)` + _TweetManage_AddPost = `INSERT INTO @post (user_id, tags, ip, ip_loc, attachment_price, visibility, latest_replied_on, created_on) VALUES (:user_id, :tags, :ip, :ip_loc, :attachment_price, :visibility, :latest_replied_on, :created_on)` _TweetManage_AddPostCollection = `INSERT INTO @post_collection (post_id, user_id, created_on) VALUES (?, ?, ?)` _TweetManage_AddPostContent = `INSERT INTO @post_content (post_id, user_id, content, type, sort, created_on) VALUES (:post_id, :user_id, :content, :type, :sort, :created_on)` _TweetManage_AddPostStar = `INSERT INTO @post_star (post_id, user_id, created_on) VALUES (?, ?, ?)` @@ -103,31 +109,31 @@ const ( _TweetManage_DelReplyByCommentIds = `UPDATE @comment_reply SET deleted_on=?, is_del=1 WHERE comment_id IN (?) AND is_del=0` _TweetManage_HighlightPost = `UPDATE @post SET is_essence=1-is_essence WHERE id=? AND is_del=0` _TweetManage_LockPost = `UPDATE @post SET is_lock=1-is_lock, modified_on=? WHERE id=? AND is_del=0` - _TweetManage_MediaContentByPostId = `SELECT content FROM post_content WHERE post_id=? AND is_del=0 AND type IN (3, 4, 5, 7, 8)` + _TweetManage_MediaContentByPostId = `SELECT content FROM @post_content WHERE post_id=? AND is_del=0 AND type IN (3, 4, 5, 7, 8)` _TweetManage_PostHighlightStatus = `SELECT user_id, is_essence FROM @post WHERE id=? AND is_del=0` _TweetManage_StickPost = `UPDATE @post SET is_top=1-is_top, modified_on=? WHERE id=? AND is_del=0` - _TweetManage_UpdatePost = `UPDATE @post SET comment_count=:comment_count, upvote_count=:upvote_count, collection_count=:collection_count, latest_replies_on=:latest_replies_on, modified_on=:modified_on WHERE id=:id AND is_del=0` + _TweetManage_UpdatePost = `UPDATE @post SET comment_count=:comment_count, upvote_count=:upvote_count, collection_count=:collection_count, latest_replied_on=:latest_replied_on, modified_on=:modified_on WHERE id=:id AND is_del=0` _TweetManage_VisiblePost = `UPDATE @post SET visibility=?, is_top=?, modified_on=? WHERE id=? AND is_del=0` - _Tweet_UserCommentTweetsByFriend = `SELECT * FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` - _Tweet_UserCommentTweetsByGuest = `SELECT * FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND visibility=0 ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` - _Tweet_UserCommentTweetsBySelf = `SELECT * FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserCommentTweetsByFriend = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserCommentTweetsByGuest = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND visibility=0 ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserCommentTweetsBySelf = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` _Tweet_UserCommentTweetsCountByFriend = `SELECT count(*) FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND (visibility=0 OR visibility=2)` _Tweet_UserCommentTweetsCountByGuest = `SELECT count(*) FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND visibility=0` _Tweet_UserCommentTweetsCountBySelf = `SELECT count(*) FROM @post_by_comment WHERE is_del=0 AND comment_user_id=?` - _Tweet_UserMediaTweetsByFriend = `SELECT * FROM @post_by_media WHERE is_del=0 AND user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` - _Tweet_UserMediaTweetsByGuest = `SELECT * FROM @post_by_media WHERE is_del=0 AND user_id=? AND visibility=0 ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` - _Tweet_UserMediaTweetsBySelf = `SELECT * FROM @post_by_media WHERE is_del=0 AND user_id=? ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserMediaTweetsByFriend = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_media WHERE is_del=0 AND user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserMediaTweetsByGuest = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_media WHERE is_del=0 AND user_id=? AND visibility=0 ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` + _Tweet_UserMediaTweetsBySelf = `SELECT id, user_id, comment_count, collection_count, upvote_count, share_count, visibility, is_top, is_essence, is_lock, latest_replied_on, tags, attachment_price, ip, ip_loc, created_on, modified_on, deleted_on, is_del FROM @post_by_media WHERE is_del=0 AND user_id=? ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?` _Tweet_UserMediaTweetsCountByFriend = `SELECT count(*) FROM @post_by_media WHERE is_del=0 AND user_id=? AND (visibility=0 OR visibility=2)` _Tweet_UserMediaTweetsCountByGuest = `SELECT count(*) FROM @post_by_media WHERE is_del=0 AND user_id=? AND visibility=0` _Tweet_UserMediaTweetsCountBySelf = `SELECT count(*) FROM @post_by_media WHERE is_del=0 AND user_id=?` - _Tweet_UserStarTweetsByAdmin = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? ORDER BY post.latest_replied_on DESC; LIMIT ? OFFSET ?` + _Tweet_UserStarTweetsByAdmin = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?` _Tweet_UserStarTweetsByFriend = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility=0 OR post.visibility=2) ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?` _Tweet_UserStarTweetsByGuest = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del = 0 AND star.user_id =? AND post.visibility = 0 ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?` - _Tweet_UserStarTweetsBySelf = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 (post.visibility=0 AND post.user_id=?)) ORDER BY post.latest_replied_on DESC; LIMIT ? OFFSET ?` + _Tweet_UserStarTweetsBySelf = `SELECT star.*, post.ID "post.id", post.created_on "post.created_on", post.modified_on "post.modified_on", post.deleted_on "post.deleted_on", post.is_del "post.is_del", post.user_id "post.user_id", post.comment_count "post.comment_count", post.collection_count "post.collection_count", post.share_count "post.share_count", post.upvote_count "post.upvote_count", post.visibility "post.visibility", post.is_top "post.is_top", post.is_essence "post.is_essence", post.is_lock "post.is_lock", post.latest_replied_on "post.latest_replied_on", post.tags "post.tags", post.attachment_price "post.attachment_price", post.ip "post.ip", post.ip_loc "post.ip_loc" FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 OR (post.visibility=0 AND post.user_id=?)) ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?` _Tweet_UserStarTweetsCountByAdmin = `SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=?` _Tweet_UserStarTweetsCountByFriend = `SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility=0 OR post.visibility=2)` _Tweet_UserStarTweetsCountByGuest = `SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND post.visibility=0` - _Tweet_UserStarTweetsCountBySelf = `SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 (post.visibility=0 AND post.user_id=?))` + _Tweet_UserStarTweetsCountBySelf = `SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 OR (post.visibility=0 AND post.user_id=?))` _UserManage_CreateUser = `INSERT INTO @user (username, nickname, password, salt, avatar, status, created_on) VALUES (:username, :nickname, :password, :salt, :avatar, :status, :created_on)` _UserManage_GetAnyUsers = `SELECT * FROM @user WHERE is_del=0 ORDER BY id ASC limit 6` _UserManage_GetUserById = `SELECT * FROM @user WHERE id=? AND is_del=0` @@ -180,12 +186,13 @@ type AuthorizationManage struct { type Comment struct { yesql.Namespace `yesql:"comment"` GetCommentContentsByIds string `yesql:"get_comment_contents_by_ids"` - GetComments string `yesql:"get_comments"` GetCommmentRepliesByIds string `yesql:"get_commment_replies_by_ids"` GetUsersByIds string `yesql:"get_users_by_ids"` GetCommentById *sqlx.Stmt `yesql:"get_comment_by_id"` GetCommentReplyById *sqlx.Stmt `yesql:"get_comment_reply_by_id"` GetCommentThumbs *sqlx.Stmt `yesql:"get_comment_thumbs"` + GetDefaultComments *sqlx.Stmt `yesql:"get_default_comments"` + GetNewestComments *sqlx.Stmt `yesql:"get_newest_comments"` GetCommentCount *sqlx.NamedStmt `yesql:"get_comment_count"` } @@ -371,13 +378,13 @@ func BuildAuthorizationManage(p PreparexBuilder, ctx ...context.Context) (obj *A } obj = &AuthorizationManage{} if obj.BeFriendIds, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_AuthorizationManage_BeFriendIds))); err != nil { - return + return nil, fmt.Errorf("prepare _AuthorizationManage_BeFriendIds error: %w", err) } if obj.IsFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_AuthorizationManage_IsFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _AuthorizationManage_IsFriend error: %w", err) } if obj.MyFriendSet, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_AuthorizationManage_MyFriendSet))); err != nil { - return + return nil, fmt.Errorf("prepare _AuthorizationManage_MyFriendSet error: %w", err) } return } @@ -391,21 +398,26 @@ func BuildComment(p PreparexBuilder, ctx ...context.Context) (obj *Comment, err } obj = &Comment{ GetCommentContentsByIds: p.QueryHook(_Comment_GetCommentContentsByIds), - GetComments: p.QueryHook(_Comment_GetComments), GetCommmentRepliesByIds: p.QueryHook(_Comment_GetCommmentRepliesByIds), GetUsersByIds: p.QueryHook(_Comment_GetUsersByIds), } if obj.GetCommentById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Comment_GetCommentById))); err != nil { - return + return nil, fmt.Errorf("prepare _Comment_GetCommentById error: %w", err) } if obj.GetCommentReplyById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Comment_GetCommentReplyById))); err != nil { - return + return nil, fmt.Errorf("prepare _Comment_GetCommentReplyById error: %w", err) } if obj.GetCommentThumbs, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Comment_GetCommentThumbs))); err != nil { - return + return nil, fmt.Errorf("prepare _Comment_GetCommentThumbs error: %w", err) + } + if obj.GetDefaultComments, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Comment_GetDefaultComments))); err != nil { + return nil, fmt.Errorf("prepare _Comment_GetDefaultComments error: %w", err) + } + if obj.GetNewestComments, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Comment_GetNewestComments))); err != nil { + return nil, fmt.Errorf("prepare _Comment_GetNewestComments error: %w", err) } if obj.GetCommentCount, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_Comment_GetCommentCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Comment_GetCommentCount error: %w", err) } return } @@ -419,43 +431,43 @@ func BuildCommentManage(p PreparexBuilder, ctx ...context.Context) (obj *Comment } obj = &CommentManage{} if obj.CreateComment, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_CreateComment))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_CreateComment error: %w", err) } if obj.CreateCommentContent, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_CreateCommentContent))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_CreateCommentContent error: %w", err) } if obj.CreateCommentReply, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_CreateCommentReply))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_CreateCommentReply error: %w", err) } if obj.DeleteComment, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_DeleteComment))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_DeleteComment error: %w", err) } if obj.DeleteCommentReply, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_DeleteCommentReply))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_DeleteCommentReply error: %w", err) } if obj.DeleteCommentThumbs, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_DeleteCommentThumbs))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_DeleteCommentThumbs error: %w", err) } if obj.DeleteReplyThumbs, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_DeleteReplyThumbs))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_DeleteReplyThumbs error: %w", err) } if obj.GetCommentReplyThumb, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_GetCommentReplyThumb))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_GetCommentReplyThumb error: %w", err) } if obj.GetTweetCommentThumb, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_GetTweetCommentThumb))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_GetTweetCommentThumb error: %w", err) } if obj.UpdateCommentThumbsCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_UpdateCommentThumbsCount))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_UpdateCommentThumbsCount error: %w", err) } if obj.UpdateReplyThumbsCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_CommentManage_UpdateReplyThumbsCount))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_UpdateReplyThumbsCount error: %w", err) } if obj.CreateThumbsUpdownComment, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_CommentManage_CreateThumbsUpdownComment))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_CreateThumbsUpdownComment error: %w", err) } if obj.UpdateThumbsUpdownComment, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_CommentManage_UpdateThumbsUpdownComment))); err != nil { - return + return nil, fmt.Errorf("prepare _CommentManage_UpdateThumbsUpdownComment error: %w", err) } return } @@ -469,40 +481,40 @@ func BuildContactManager(p PreparexBuilder, ctx ...context.Context) (obj *Contac } obj = &ContactManager{} if obj.AddFriendMsgsUpdate, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_AddFriendMsgsUpdate))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_AddFriendMsgsUpdate error: %w", err) } if obj.CreateContact, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_CreateContact))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_CreateContact error: %w", err) } if obj.DelFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_DelFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_DelFriend error: %w", err) } if obj.FreshContactStatus, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_FreshContactStatus))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_FreshContactStatus error: %w", err) } if obj.GetContact, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_GetContact))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_GetContact error: %w", err) } if obj.GetContacts, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_GetContacts))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_GetContacts error: %w", err) } if obj.GetUserFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_GetUserFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_GetUserFriend error: %w", err) } if obj.IsFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_IsFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_IsFriend error: %w", err) } if obj.ListFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_ListFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_ListFriend error: %w", err) } if obj.RejectFriendMsgsUpdate, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_RejectFriendMsgsUpdate))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_RejectFriendMsgsUpdate error: %w", err) } if obj.TotalFriendsById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ContactManager_TotalFriendsById))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_TotalFriendsById error: %w", err) } if obj.CreateMessage, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_ContactManager_CreateMessage))); err != nil { - return + return nil, fmt.Errorf("prepare _ContactManager_CreateMessage error: %w", err) } return } @@ -516,25 +528,25 @@ func BuildFollowingManager(p PreparexBuilder, ctx ...context.Context) (obj *Foll } obj = &FollowingManager{} if obj.CountFollowings, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_CountFollowings))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_CountFollowings error: %w", err) } if obj.CountFollows, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_CountFollows))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_CountFollows error: %w", err) } if obj.CreateFollowing, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_CreateFollowing))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_CreateFollowing error: %w", err) } if obj.DeleteFollowing, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_DeleteFollowing))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_DeleteFollowing error: %w", err) } if obj.ExistFollowing, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_ExistFollowing))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_ExistFollowing error: %w", err) } if obj.ListFollowings, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_ListFollowings))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_ListFollowings error: %w", err) } if obj.ListFollows, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_FollowingManager_ListFollows))); err != nil { - return + return nil, fmt.Errorf("prepare _FollowingManager_ListFollows error: %w", err) } return } @@ -548,22 +560,22 @@ func BuildMessage(p PreparexBuilder, ctx ...context.Context) (obj *Message, err } obj = &Message{} if obj.GetMessageById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Message_GetMessageById))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_GetMessageById error: %w", err) } if obj.GetUnreadCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Message_GetUnreadCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_GetUnreadCount error: %w", err) } if obj.ReadMessage, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Message_ReadMessage))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_ReadMessage error: %w", err) } if obj.CreateMessage, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_Message_CreateMessage))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_CreateMessage error: %w", err) } if obj.GetMessageCount, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_Message_GetMessageCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_GetMessageCount error: %w", err) } if obj.GetMessages, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_Message_GetMessages))); err != nil { - return + return nil, fmt.Errorf("prepare _Message_GetMessages error: %w", err) } return } @@ -577,13 +589,13 @@ func BuildSecurity(p PreparexBuilder, ctx ...context.Context) (obj *Security, er } obj = &Security{} if obj.GetLatestPhoneCaptcha, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Security_GetLatestPhoneCaptcha))); err != nil { - return + return nil, fmt.Errorf("prepare _Security_GetLatestPhoneCaptcha error: %w", err) } if obj.UsePhoneCaptcha, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Security_UsePhoneCaptcha))); err != nil { - return + return nil, fmt.Errorf("prepare _Security_UsePhoneCaptcha error: %w", err) } if obj.CreatePhoneCaptcha, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_Security_CreatePhoneCaptcha))); err != nil { - return + return nil, fmt.Errorf("prepare _Security_CreatePhoneCaptcha error: %w", err) } return } @@ -600,16 +612,16 @@ func BuildShipIndex(p PreparexBuilder, ctx ...context.Context) (obj *ShipIndex, IndexCountBySelf: p.QueryHook(_ShipIndex_IndexCountBySelf), } if obj.IndexByAdmin, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ShipIndex_IndexByAdmin))); err != nil { - return + return nil, fmt.Errorf("prepare _ShipIndex_IndexByAdmin error: %w", err) } if obj.IndexByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ShipIndex_IndexByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _ShipIndex_IndexByGuest error: %w", err) } if obj.IndexCountByAdmin, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ShipIndex_IndexCountByAdmin))); err != nil { - return + return nil, fmt.Errorf("prepare _ShipIndex_IndexCountByAdmin error: %w", err) } if obj.IndexCountByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_ShipIndex_IndexCountByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _ShipIndex_IndexCountByGuest error: %w", err) } return } @@ -623,10 +635,10 @@ func BuildSimpleIndex(p PreparexBuilder, ctx ...context.Context) (obj *SimpleInd } obj = &SimpleIndex{} if obj.Index, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_SimpleIndex_Index))); err != nil { - return + return nil, fmt.Errorf("prepare _SimpleIndex_Index error: %w", err) } if obj.IndexCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_SimpleIndex_IndexCount))); err != nil { - return + return nil, fmt.Errorf("prepare _SimpleIndex_IndexCount error: %w", err) } return } @@ -646,91 +658,91 @@ func BuildTweet(p PreparexBuilder, ctx ...context.Context) (obj *Tweet, err erro GetUserPosts: p.QueryHook(_Tweet_GetUserPosts), } if obj.GetPostAttachmentBill, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetPostAttachmentBill))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetPostAttachmentBill error: %w", err) } if obj.GetPostById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetPostById))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetPostById error: %w", err) } if obj.GetPostContentById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetPostContentById))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetPostContentById error: %w", err) } if obj.GetUserPostCollection, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostCollection))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostCollection error: %w", err) } if obj.GetUserPostCollectionCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostCollectionCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostCollectionCount error: %w", err) } if obj.GetUserPostCollections, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostCollections))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostCollections error: %w", err) } if obj.GetUserPostStar, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostStar))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostStar error: %w", err) } if obj.GetUserPostStarCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostStarCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostStarCount error: %w", err) } if obj.GetUserPostStars, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_GetUserPostStars))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_GetUserPostStars error: %w", err) } if obj.UserCommentTweetsByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsByFriend error: %w", err) } if obj.UserCommentTweetsByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsByGuest error: %w", err) } if obj.UserCommentTweetsBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsBySelf error: %w", err) } if obj.UserCommentTweetsCountByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsCountByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsCountByFriend error: %w", err) } if obj.UserCommentTweetsCountByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsCountByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsCountByGuest error: %w", err) } if obj.UserCommentTweetsCountBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserCommentTweetsCountBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserCommentTweetsCountBySelf error: %w", err) } if obj.UserMediaTweetsByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsByFriend error: %w", err) } if obj.UserMediaTweetsByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsByGuest error: %w", err) } if obj.UserMediaTweetsBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsBySelf error: %w", err) } if obj.UserMediaTweetsCountByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsCountByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsCountByFriend error: %w", err) } if obj.UserMediaTweetsCountByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsCountByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsCountByGuest error: %w", err) } if obj.UserMediaTweetsCountBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserMediaTweetsCountBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserMediaTweetsCountBySelf error: %w", err) } if obj.UserStarTweetsByAdmin, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsByAdmin))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsByAdmin error: %w", err) } if obj.UserStarTweetsByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsByFriend error: %w", err) } if obj.UserStarTweetsByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsByGuest error: %w", err) } if obj.UserStarTweetsBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsBySelf error: %w", err) } if obj.UserStarTweetsCountByAdmin, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsCountByAdmin))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsCountByAdmin error: %w", err) } if obj.UserStarTweetsCountByFriend, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsCountByFriend))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsCountByFriend error: %w", err) } if obj.UserStarTweetsCountByGuest, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsCountByGuest))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsCountByGuest error: %w", err) } if obj.UserStarTweetsCountBySelf, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Tweet_UserStarTweetsCountBySelf))); err != nil { - return + return nil, fmt.Errorf("prepare _Tweet_UserStarTweetsCountBySelf error: %w", err) } return } @@ -756,55 +768,55 @@ func BuildTweetManage(p PreparexBuilder, ctx ...context.Context) (obj *TweetMana DelReplyByCommentIds: p.QueryHook(_TweetManage_DelReplyByCommentIds), } if obj.AddAttachment, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_AddAttachment))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_AddAttachment error: %w", err) } if obj.AddPostCollection, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_AddPostCollection))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_AddPostCollection error: %w", err) } if obj.AddPostStar, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_AddPostStar))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_AddPostStar error: %w", err) } if obj.CommentIdsByPostId, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_CommentIdsByPostId))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_CommentIdsByPostId error: %w", err) } if obj.DelCommentByPostId, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_DelCommentByPostId))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_DelCommentByPostId error: %w", err) } if obj.DelPostById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_DelPostById))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_DelPostById error: %w", err) } if obj.DelPostCollection, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_DelPostCollection))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_DelPostCollection error: %w", err) } if obj.DelPostStar, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_DelPostStar))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_DelPostStar error: %w", err) } if obj.HighlightPost, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_HighlightPost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_HighlightPost error: %w", err) } if obj.LockPost, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_LockPost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_LockPost error: %w", err) } if obj.MediaContentByPostId, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_MediaContentByPostId))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_MediaContentByPostId error: %w", err) } if obj.PostHighlightStatus, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_PostHighlightStatus))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_PostHighlightStatus error: %w", err) } if obj.StickPost, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_StickPost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_StickPost error: %w", err) } if obj.VisiblePost, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_TweetManage_VisiblePost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_VisiblePost error: %w", err) } if obj.AddPost, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_TweetManage_AddPost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_AddPost error: %w", err) } if obj.AddPostContent, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_TweetManage_AddPostContent))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_AddPostContent error: %w", err) } if obj.UpdatePost, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_TweetManage_UpdatePost))); err != nil { - return + return nil, fmt.Errorf("prepare _TweetManage_UpdatePost error: %w", err) } return } @@ -820,25 +832,25 @@ func BuildUserManage(p PreparexBuilder, ctx ...context.Context) (obj *UserManage GetUsersByIds: p.QueryHook(_UserManage_GetUsersByIds), } if obj.GetAnyUsers, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserManage_GetAnyUsers))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_GetAnyUsers error: %w", err) } if obj.GetUserById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserManage_GetUserById))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_GetUserById error: %w", err) } if obj.GetUserByPhone, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserManage_GetUserByPhone))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_GetUserByPhone error: %w", err) } if obj.GetUserByUsername, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserManage_GetUserByUsername))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_GetUserByUsername error: %w", err) } if obj.GetUsersByKeyword, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserManage_GetUsersByKeyword))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_GetUsersByKeyword error: %w", err) } if obj.CreateUser, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_UserManage_CreateUser))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_CreateUser error: %w", err) } if obj.UpdateUser, err = p.PrepareNamedContext(c, p.Rebind(p.QueryHook(_UserManage_UpdateUser))); err != nil { - return + return nil, fmt.Errorf("prepare _UserManage_UpdateUser error: %w", err) } return } @@ -852,40 +864,40 @@ func BuildWallet(p PreparexBuilder, ctx ...context.Context) (obj *Wallet, err er } obj = &Wallet{} if obj.AddUserBalance, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_AddUserBalance))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_AddUserBalance error: %w", err) } if obj.CreateRecharge, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_CreateRecharge))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_CreateRecharge error: %w", err) } if obj.CreateWalletStatement, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_CreateWalletStatement))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_CreateWalletStatement error: %w", err) } if obj.GetRechargeById, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_GetRechargeById))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_GetRechargeById error: %w", err) } if obj.GetUserBalance, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_GetUserBalance))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_GetUserBalance error: %w", err) } if obj.GetUserByUid, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_GetUserByUid))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_GetUserByUid error: %w", err) } if obj.GetUserWalletBillCount, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_GetUserWalletBillCount))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_GetUserWalletBillCount error: %w", err) } if obj.GetUserWalletBills, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_GetUserWalletBills))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_GetUserWalletBills error: %w", err) } if obj.MarkSuccessRecharge, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_MarkSuccessRecharge))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_MarkSuccessRecharge error: %w", err) } if obj.MinusUserBalance, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_MinusUserBalance))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_MinusUserBalance error: %w", err) } if obj.NewPostAttachmentBill, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_NewPostAttachmentBill))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_NewPostAttachmentBill error: %w", err) } if obj.NewPostBill, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_Wallet_NewPostBill))); err != nil { - return + return nil, fmt.Errorf("prepare _Wallet_NewPostBill error: %w", err) } return } diff --git a/internal/dao/sakila/auto/yesql.go b/internal/dao/sakila/auto/yesql.go index 35aac96f..48680f17 100644 --- a/internal/dao/sakila/auto/yesql.go +++ b/internal/dao/sakila/auto/yesql.go @@ -1,16 +1,25 @@ // Code generated by Yesql. DO NOT EDIT. // versions: -// - Yesql v1.8.4 +// - Yesql v1.8.5 package yesql import ( "context" + "fmt" "github.com/bitbus/sqlx" ) +var ( + _ = fmt.Errorf("error for placeholder") +) + const ( + _IncrTagsById = `UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?)` + _InsertTag = `INSERT INTO @tag (user_id, tag, created_on, modified_on, quote_num) VALUES (?, ?, ?, ?, 1)` + _TagsByIdB = `SELECT id, user_id, tag, quote_num FROM @tag WHERE id IN (?)` + _TagsForIncr = `SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?)` _TagsFromNames = `SELECT * FROM @tag WHERE tag IN (?) AND is_del=0` _UpdateTagQuote = `UPDATE @tag SET quote_num=?, modified_on=? WHERE id=? AND is_del=0` ) @@ -36,7 +45,11 @@ type PreparexBuilder interface { } type Yesql struct { + IncrTagsById string `yesql:"incr_tags_by_id"` + TagsByIdB string `yesql:"tags_by_id_b"` + TagsForIncr string `yesql:"tags_for_incr"` TagsFromNames string `yesql:"tags_from_names"` + InsertTag *sqlx.Stmt `yesql:"insert_tag"` UpdateTagQuote *sqlx.Stmt `yesql:"update_tag_quote"` } @@ -48,10 +61,16 @@ func BuildYesql(p PreparexBuilder, ctx ...context.Context) (obj *Yesql, err erro c = context.Background() } obj = &Yesql{ + IncrTagsById: p.QueryHook(_IncrTagsById), + TagsByIdB: p.QueryHook(_TagsByIdB), + TagsForIncr: p.QueryHook(_TagsForIncr), TagsFromNames: p.QueryHook(_TagsFromNames), } + if obj.InsertTag, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_InsertTag))); err != nil { + return nil, fmt.Errorf("prepare _InsertTag error: %w", err) + } if obj.UpdateTagQuote, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UpdateTagQuote))); err != nil { - return + return nil, fmt.Errorf("prepare _UpdateTagQuote error: %w", err) } return } diff --git a/internal/dao/sakila/comments.go b/internal/dao/sakila/comments.go index 328619f7..221875de 100644 --- a/internal/dao/sakila/comments.go +++ b/internal/dao/sakila/comments.go @@ -5,7 +5,6 @@ package sakila import ( - "strings" "time" "github.com/bitbus/sqlx" @@ -35,27 +34,35 @@ type commentManageSrv struct { func (s *commentSrv) GetComments(r *ms.ConditionsT, offset, limit int) (res []*ms.Comment, err error) { order := (*r)["ORDER"].(string) postId := (*r)["post_id"] - stmt := strings.Replace(s.q.GetComments, "%order%", order, 1) - err = s.db.Select(&res, stmt, postId, limit, offset) + if order == "id ASC" { + err = s.q.GetDefaultComments.Select(&res, postId, limit, offset) + } else { + err = s.q.GetNewestComments.Select(&res, postId, limit, offset) + } return } func (s *commentSrv) GetCommentByID(id int64) (res *ms.Comment, err error) { + res = &ms.Comment{} err = s.q.GetCommentById.Get(res, id) return } func (s *commentSrv) GetCommentReplyByID(id int64) (res *ms.CommentReply, err error) { + res = &ms.CommentReply{} err = s.q.GetCommentReplyById.Get(res, id) return } func (s *commentSrv) GetCommentCount(r *ms.ConditionsT) (res int64, err error) { - err = s.q.GetCommentCount.Get(&res, r) + err = s.q.GetCommentCount.Get(&res, *r) return } func (s *commentSrv) GetCommentContentsByIDs(ids []int64) (res []*ms.CommentContent, err error) { + if len(ids) == 0 { + return nil, nil + } err = s.db.InSelect(&res, s.q.GetCommentContentsByIds, ids) return res, err } @@ -81,6 +88,9 @@ func (s *commentSrv) GetCommentThumbsMap(userId int64, tweetId int64) (cs.Commen } func (s *commentSrv) GetCommentRepliesByID(ids []int64) ([]*ms.CommentReplyFormated, error) { + if len(ids) == 0 { + return nil, nil + } replies := []*ms.CommentReply{} err := s.db.InSelect(&replies, s.q.GetCommmentRepliesByIds, ids) if err != nil { @@ -91,8 +101,10 @@ func (s *commentSrv) GetCommentRepliesByID(ids []int64) ([]*ms.CommentReplyForma userIds = append(userIds, reply.UserID, reply.AtUserID) } users := []*ms.UserFormated{} - if err = s.db.InSelect(&users, s.q.GetUsersByIds, userIds); err != nil { - return nil, err + if len(userIds) > 0 { + if err = s.db.InSelect(&users, s.q.GetUsersByIds, userIds); err != nil { + return nil, err + } } repliesFormated := []*ms.CommentReplyFormated{} for _, reply := range replies { diff --git a/internal/dao/sakila/contacts.go b/internal/dao/sakila/contacts.go index b5d48181..cf8f21ee 100644 --- a/internal/dao/sakila/contacts.go +++ b/internal/dao/sakila/contacts.go @@ -160,6 +160,7 @@ func (s *contactManageSrv) IsFriend(userId int64, friendId int64) (res bool) { } func (s *contactManageSrv) fetchOrNewContact(tx *sqlx.Tx, userId int64, friendId int64, status int8) (res *cs.Contact, err error) { + res = &cs.Contact{} if err = tx.Stmtx(s.q.GetContact).Get(res, userId, friendId); err == nil { return } diff --git a/internal/dao/sakila/following.go b/internal/dao/sakila/following.go index 6ec611ac..fae66a6b 100644 --- a/internal/dao/sakila/following.go +++ b/internal/dao/sakila/following.go @@ -18,11 +18,11 @@ var ( ) type followItem struct { - UserId int64 - Username string - Nickname string - Avatar string - CreateOn int64 + UserId int64 + Username string + Nickname string + Avatar string + CreatedOn int64 } type followingManageSrv struct { @@ -56,7 +56,7 @@ func (s *followingManageSrv) ListFollows(userId int64, limit, offset int) (res * Username: f.Username, Nickname: f.Nickname, Avatar: f.Avatar, - CreatedOn: f.CreateOn, + CreatedOn: f.CreatedOn, }) } return @@ -74,15 +74,15 @@ func (s *followingManageSrv) ListFollowings(userId int64, limit, offset int) (re Username: f.Username, Nickname: f.Nickname, Avatar: f.Avatar, - CreatedOn: f.CreateOn, + CreatedOn: f.CreatedOn, }) } return } func (s *followingManageSrv) GetFollowCount(userId int64) (follows int64, followings int64, err error) { - if err = s.q.CountFollows.Get(&follows); err == nil { - err = s.q.CountFollowings.Get(&followings) + if err = s.q.CountFollows.Get(&follows, userId); err == nil { + err = s.q.CountFollowings.Get(&followings, userId) } return } diff --git a/internal/dao/sakila/messages.go b/internal/dao/sakila/messages.go index 1d013143..34f42a59 100644 --- a/internal/dao/sakila/messages.go +++ b/internal/dao/sakila/messages.go @@ -12,6 +12,7 @@ import ( "github.com/rocboss/paopao-ce/internal/core/ms" "github.com/rocboss/paopao-ce/internal/dao/jinzhu/dbr" "github.com/rocboss/paopao-ce/internal/dao/sakila/auto/cc" + "github.com/sirupsen/logrus" ) var ( @@ -39,7 +40,7 @@ func (s *messageSrv) CreateMessage(r *ms.Message) (*ms.Message, error) { } func (s *messageSrv) GetUnreadCount(userID int64) (res int64, err error) { - err = s.q.GetUnreadCount.Get(&res) + err = s.q.GetUnreadCount.Get(&res, userID) return } @@ -56,7 +57,7 @@ func (s *messageSrv) ReadMessage(r *ms.Message) (err error) { func (s *messageSrv) GetMessages(r *ms.ConditionsT, offset, limit int) ([]*ms.MessageFormated, error) { var messages []*ms.Message (*r)["limit"], (*r)["offset"] = limit, offset - if err := s.q.GetMessages.Select(&messages, r); err != nil { + if err := s.q.GetMessages.Select(&messages, *r); err != nil { return nil, err } mfs := make([]*dbr.MessageFormated, 0, len(messages)) @@ -68,7 +69,9 @@ func (s *messageSrv) GetMessages(r *ms.ConditionsT, offset, limit int) ([]*ms.Me } func (s *messageSrv) GetMessageCount(r *ms.ConditionsT) (res int64, err error) { - err = s.q.GetMessageCount.Get(&res, r) + if err = s.q.GetMessageCount.Get(&res, *r); err != nil { + logrus.Errorf("get message count error: %s", err) + } return } diff --git a/internal/dao/sakila/security.go b/internal/dao/sakila/security.go index 4df9031d..0cb08d08 100644 --- a/internal/dao/sakila/security.go +++ b/internal/dao/sakila/security.go @@ -29,6 +29,7 @@ type securitySrv struct { // GetLatestPhoneCaptcha 获取最新短信验证码 func (s *securitySrv) GetLatestPhoneCaptcha(phone string) (res *ms.Captcha, err error) { + res = &ms.Captcha{} err = s.q.GetLatestPhoneCaptcha.Get(res, phone) return } diff --git a/internal/dao/sakila/timeline.go b/internal/dao/sakila/timeline.go index 8f6e3fdd..adf2ad44 100644 --- a/internal/dao/sakila/timeline.go +++ b/internal/dao/sakila/timeline.go @@ -7,20 +7,14 @@ package sakila import ( "github.com/bitbus/sqlx" "github.com/rocboss/paopao-ce/internal/core" - "github.com/rocboss/paopao-ce/internal/core/cs" "github.com/rocboss/paopao-ce/internal/core/ms" - "github.com/rocboss/paopao-ce/internal/dao/sakila/auto/ac" "github.com/rocboss/paopao-ce/internal/dao/sakila/auto/cc" - "github.com/rocboss/paopao-ce/pkg/debug" "github.com/sirupsen/logrus" ) var ( _ core.IndexPostsService = (*shipIndexSrv)(nil) _ core.IndexPostsService = (*simpleIndexPostsSrv)(nil) - - _ core.IndexPostsServantA = (*shipIndexSrvA)(nil) - _ core.IndexPostsServantA = (*simpleIndexPostsSrvA)(nil) ) type shipIndexSrv struct { @@ -36,19 +30,6 @@ type simpleIndexPostsSrv struct { q *cc.SimpleIndex } -type shipIndexSrvA struct { - *sqlxSrv - ams core.AuthorizationManageService - ths core.TweetHelpServantA - q *ac.ShipIndexA -} - -type simpleIndexPostsSrvA struct { - *sqlxSrv - ths core.TweetHelpServantA - q *ac.SimpleIndexA -} - // IndexPosts 根据userId查询广场推文列表,简单做到不同用户的主页都是不同的; func (s *shipIndexSrv) IndexPosts(user *ms.User, offset int, limit int) (res *ms.IndexTweetList, err error) { var posts []*ms.Post @@ -60,7 +41,7 @@ func (s *shipIndexSrv) IndexPosts(user *ms.User, offset int, limit int) (res *ms } case user != nil && user.IsAdmin: if err = s.q.IndexByAdmin.Select(&posts, limit, offset); err == nil { - err = s.q.IndexByAdmin.Get(&res.Total) + err = s.q.IndexCountByAdmin.Get(&res.Total) } default: friendIds, _ := s.ams.BeFriendIds(user.ID) @@ -99,18 +80,6 @@ func (s *simpleIndexPostsSrv) IndexPosts(_user *ms.User, offset int, limit int) return } -// IndexPosts 根据userId查询广场推文列表,简单做到不同用户的主页都是不同的; -func (s *shipIndexSrvA) IndexPosts(user *ms.User, limit int, offset int) (*cs.TweetBox, error) { - // TODO - return nil, debug.ErrNotImplemented -} - -// IndexPosts simpleCacheIndex 专属获取广场推文列表函数 -func (s *simpleIndexPostsSrvA) IndexPosts(_user *ms.User, limit int, offset int) (*cs.TweetBox, error) { - // TODO - return nil, debug.ErrNotImplemented -} - func newShipIndexService(db *sqlx.DB, ams core.AuthorizationManageService, ths core.TweetHelpService) core.IndexPostsService { return &shipIndexSrv{ ams: ams, @@ -127,22 +96,3 @@ func newSimpleIndexPostsService(db *sqlx.DB, ths core.TweetHelpService) core.Ind q: ccBuild(db, cc.BuildSimpleIndex), } } - -//lint:ignore U1000 newShipIndexServantA -func newShipIndexServantA(db *sqlx.DB, ams core.AuthorizationManageService, ths core.TweetHelpServantA) core.IndexPostsServantA { - return &shipIndexSrvA{ - ams: ams, - ths: ths, - sqlxSrv: newSqlxSrv(db), - q: acBuildFn(db, ac.BuildShipIndexA), - } -} - -//lint:ignore U1000 newSimpleIndexPostsServantA -func newSimpleIndexPostsServantA(db *sqlx.DB, ths core.TweetHelpServantA) core.IndexPostsServantA { - return &simpleIndexPostsSrvA{ - ths: ths, - sqlxSrv: newSqlxSrv(db), - q: acBuildFn(db, ac.BuildSimpleIndexA), - } -} diff --git a/internal/dao/sakila/timeline_a.go b/internal/dao/sakila/timeline_a.go new file mode 100644 index 00000000..3cfc018f --- /dev/null +++ b/internal/dao/sakila/timeline_a.go @@ -0,0 +1,63 @@ +// Copyright 2023 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package sakila + +import ( + "github.com/bitbus/sqlx" + "github.com/rocboss/paopao-ce/internal/core" + "github.com/rocboss/paopao-ce/internal/core/cs" + "github.com/rocboss/paopao-ce/internal/core/ms" + "github.com/rocboss/paopao-ce/internal/dao/sakila/auto/ac" + "github.com/rocboss/paopao-ce/pkg/debug" +) + +var ( + _ core.IndexPostsServantA = (*shipIndexSrvA)(nil) + _ core.IndexPostsServantA = (*simpleIndexPostsSrvA)(nil) +) + +type shipIndexSrvA struct { + *sqlxSrv + ams core.AuthorizationManageService + ths core.TweetHelpServantA + q *ac.ShipIndexA +} + +type simpleIndexPostsSrvA struct { + *sqlxSrv + ths core.TweetHelpServantA + q *ac.SimpleIndexA +} + +// IndexPosts 根据userId查询广场推文列表,简单做到不同用户的主页都是不同的; +func (s *shipIndexSrvA) IndexPosts(user *ms.User, limit int, offset int) (*cs.TweetBox, error) { + // TODO + return nil, debug.ErrNotImplemented +} + +// IndexPosts simpleCacheIndex 专属获取广场推文列表函数 +func (s *simpleIndexPostsSrvA) IndexPosts(_user *ms.User, limit int, offset int) (*cs.TweetBox, error) { + // TODO + return nil, debug.ErrNotImplemented +} + +//lint:ignore U1000 newShipIndexServantA +func newShipIndexServantA(db *sqlx.DB, ams core.AuthorizationManageService, ths core.TweetHelpServantA) core.IndexPostsServantA { + return &shipIndexSrvA{ + ams: ams, + ths: ths, + sqlxSrv: newSqlxSrv(db), + q: acBuildFn(db, ac.BuildShipIndexA), + } +} + +//lint:ignore U1000 newSimpleIndexPostsServantA +func newSimpleIndexPostsServantA(db *sqlx.DB, ths core.TweetHelpServantA) core.IndexPostsServantA { + return &simpleIndexPostsSrvA{ + ths: ths, + sqlxSrv: newSqlxSrv(db), + q: acBuildFn(db, ac.BuildSimpleIndexA), + } +} diff --git a/internal/dao/sakila/tweets.go b/internal/dao/sakila/tweets.go index c0ffcb6f..7a253ebf 100644 --- a/internal/dao/sakila/tweets.go +++ b/internal/dao/sakila/tweets.go @@ -40,6 +40,9 @@ type tweetHelpSrv struct { // MergePosts post数据整合 func (s *tweetHelpSrv) MergePosts(posts []*ms.Post) ([]*ms.PostFormated, error) { + if len(posts) == 0 { + return nil, nil + } postIds := make([]int64, 0, len(posts)) userIds := make([]int64, 0, len(posts)) for _, post := range posts { @@ -75,6 +78,9 @@ func (s *tweetHelpSrv) MergePosts(posts []*ms.Post) ([]*ms.PostFormated, error) // RevampPosts post数据整形修复 func (s *tweetHelpSrv) RevampPosts(posts []*ms.PostFormated) ([]*ms.PostFormated, error) { + if len(posts) == 0 { + return nil, nil + } postIds := make([]int64, 0, len(posts)) userIds := make([]int64, 0, len(posts)) for _, post := range posts { @@ -327,6 +333,7 @@ func (s *tweetManageSrv) DeletePostStar(r *ms.PostStar) error { } func (s *tweetSrv) GetPostByID(id int64) (res *ms.Post, err error) { + res = &ms.Post{} err = s.q.GetPostById.Get(res, id) return } @@ -354,12 +361,13 @@ func (s *tweetSrv) GetPostCount(c ms.ConditionsT) (res int64, err error) { } func (s *tweetSrv) GetUserPostStar(postID, userID int64) (res *ms.PostStar, err error) { + res = &ms.PostStar{} err = s.q.GetUserPostStar.Get(res, postID, userID, userID) return } func (s *tweetSrv) GetUserPostStars(userID int64, limit int, offset int) (res []*ms.PostStar, err error) { - err = s.q.GetUserPostStar.Select(&res, userID, userID, limit, offset) + err = s.q.GetUserPostStars.Select(&res, userID, userID, limit, offset) return } @@ -372,7 +380,7 @@ func (s *tweetSrv) ListUserStarTweets(user *cs.VistUser, limit int, offset int) case cs.RelationSelf: // Fixed: 这里的查询有Bug,没有考虑查询Friend star 时如果对方已经不是你好友时,应该去除这个star if err = s.q.UserStarTweetsBySelf.Select(&res, user.UserId, user.UserId, limit, offset); err == nil { - err = s.q.UserStarTweetsCountByAdmin.Get(&total, user.UserId, user.UserId) + err = s.q.UserStarTweetsCountBySelf.Get(&total, user.UserId, user.UserId) } case cs.RelationFriend: if err = s.q.UserStarTweetsByFriend.Select(&res, user.UserId, limit, offset); err == nil { @@ -430,6 +438,7 @@ func (s *tweetSrv) GetUserPostStarCount(userID int64) (res int64, err error) { } func (s *tweetSrv) GetUserPostCollection(postID, userID int64) (res *ms.PostCollection, err error) { + res = &ms.PostCollection{} err = s.q.GetUserPostCollection.Get(res, postID, userID, userID) return } @@ -445,6 +454,7 @@ func (s *tweetSrv) GetUserPostCollectionCount(userID int64) (res int64, err erro } func (s *tweetSrv) GetPostAttatchmentBill(postID, userID int64) (res *ms.PostAttachmentBill, err error) { + res = &ms.PostAttachmentBill{} err = s.q.GetPostAttachmentBill.Get(res, postID, userID) return } @@ -455,6 +465,7 @@ func (s *tweetSrv) GetPostContentsByIDs(ids []int64) (res []*ms.PostContent, err } func (s *tweetSrv) GetPostContentByID(id int64) (res *ms.PostContent, err error) { + res = &ms.PostContent{} err = s.q.GetPostContentById.Get(res, id) return } diff --git a/internal/dao/sakila/user.go b/internal/dao/sakila/user.go index 18f469b0..275624e0 100644 --- a/internal/dao/sakila/user.go +++ b/internal/dao/sakila/user.go @@ -24,21 +24,27 @@ type userManageSrv struct { } func (s *userManageSrv) GetUserByID(id int64) (res *ms.User, err error) { + res = &ms.User{} err = s.q.GetUserById.Get(res, id) return } func (s *userManageSrv) GetUserByUsername(username string) (res *ms.User, err error) { + res = &ms.User{} err = s.q.GetUserByUsername.Get(res, username) return } func (s *userManageSrv) GetUserByPhone(phone string) (res *ms.User, err error) { + res = &ms.User{} err = s.q.GetUserByPhone.Get(res, phone) return } func (s *userManageSrv) GetUsersByIDs(ids []int64) (res []*ms.User, err error) { + if len(ids) == 0 { + return nil, nil + } err = s.db.InSelect(&res, s.q.GetUsersByIds, ids) return } diff --git a/internal/dao/sakila/utils.go b/internal/dao/sakila/utils.go index f9283433..88c8a55a 100644 --- a/internal/dao/sakila/utils.go +++ b/internal/dao/sakila/utils.go @@ -26,30 +26,59 @@ func (s *sqlxSrv) deleteTags(tx *sqlx.Tx, tags []string) (err error) { return } -func (s *sqlxSrv) createTags(tx *sqlx.Tx, userId int64, tags []string) (res cs.TagInfoList, err error) { - // for _, name := range tags { - // tag := &dbr.Tag{Tag: name} - // if tag, err = tag.Get(db); err == nil { - // // 更新 - // tag.QuoteNum++ - // if err = tag.Update(db); err != nil { - // return - // } - // } else { - // if tag, err = (&dbr.Tag{ - // UserID: userId, - // QuoteNum: 1, - // Tag: name, - // }).Create(db); err != nil { - // return - // } - // } - // res = append(res, &cs.TagInfo{ - // ID: tag.ID, - // UserID: tag.UserID, - // Tag: tag.Tag, - // QuoteNum: tag.QuoteNum, - // }) - // } +func (s *sqlxSrv) createTags(tx *sqlx.Tx, userId int64, tags []string) (res cs.TagInfoList, xerr error) { + if len(tags) == 0 { + return nil, nil + } + xerr = s.db.Withx(func(tx *sqlx.Tx) error { + var upTags cs.TagInfoList + if err := tx.InSelect(&upTags, s.y.TagsForIncr, tags); err != nil { + return err + } + now := time.Now().Unix() + if len(upTags) > 0 { + var ids []int64 + for _, t := range upTags { + ids = append(ids, t.ID) + t.QuoteNum++ + // prepare remain tags just delete updated tag + // notice ensure tags slice is distinct elements + for i, name := range tags { + if name == t.Tag { + lastIdx := len(tags) - 1 + tags[i] = tags[lastIdx] + tags = tags[:lastIdx] + break + } + } + } + if _, err := tx.InExec(s.y.IncrTagsById, now, ids); err != nil { + return err + } + res = append(res, upTags...) + } + // process remain tags if tags is not empty + if len(tags) == 0 { + return nil + } + var ids []int64 + for _, tag := range tags { + res, err := s.y.InsertTag.Exec(userId, tag, now, now) + if err != nil { + return err + } + id, err := res.LastInsertId() + if err != nil { + return err + } + ids = append(ids, id) + } + var newTags cs.TagInfoList + if err := tx.InSelect(&newTags, s.y.TagsByIdB, ids); err != nil { + return err + } + res = append(res, newTags...) + return nil + }) return } diff --git a/internal/dao/sakila/yesql/yesql.sql b/internal/dao/sakila/yesql/yesql.sql index 483f76b8..11ca2726 100644 --- a/internal/dao/sakila/yesql/yesql.sql +++ b/internal/dao/sakila/yesql/yesql.sql @@ -16,3 +16,23 @@ SELECT * FROM @tag WHERE tag IN (?) AND is_del=0; -- prepare: stmt UPDATE @tag SET quote_num=?, modified_on=? WHERE id=? AND is_del=0; + +-- name: tags_for_incr +-- prepare: raw +-- clause: in +SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?); + +-- name: incr_tags_by_id +-- prepare: raw +-- clause: in +UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?); + +-- name: insert_tag +-- prepare: stmt +INSERT INTO @tag (user_id, tag, created_on, modified_on, quote_num) +VALUES (?, ?, ?, ?, 1); + +-- name: tags_by_id_b +-- prepare: raw +-- clause: in +SELECT id, user_id, tag, quote_num FROM @tag WHERE id IN (?); diff --git a/internal/dao/sakila/yesql/yesql_ac.sql b/internal/dao/sakila/yesql/yesql_ac.sql index 68d5036d..a5082b91 100644 --- a/internal/dao/sakila/yesql/yesql_ac.sql +++ b/internal/dao/sakila/yesql/yesql_ac.sql @@ -147,7 +147,7 @@ SELECT t.id id, FROM @topic_user c JOIN @user u ON c.user_id = u.id JOIN @tag t ON c.topic_id = t.id -WHERE c.is_del = 0 AND t.quote_num > 0 AND AND c.user_id=? +WHERE c.is_del = 0 AND t.quote_num > 0 AND c.user_id=? ORDER BY t.quote_num DESC LIMIT ? OFFSET ?; @@ -156,7 +156,7 @@ LIMIT ? OFFSET ?; -- clause: in SELECT topic_id, is_top FROM @topic_user -WHERE is_del=0 AND user_id=? AND topic_id IN ?; +WHERE is_del=0 AND user_id=? AND topic_id IN (?); -- name: exist_topic_user@topic_a -- prepare: stmt @@ -175,7 +175,7 @@ WHERE user_id=? AND topic_id=? AND is_del=0; -- name: stick_topic@topic_a -- prepare: stmt UPDATE @topic_user -SET is_top=1-is_top; modified_on=? +SET is_top=1-is_top, modified_on=? WHERE user_id=? AND topic_id=? AND is_del=0; -- name: topic_is_top@topic_a diff --git a/internal/dao/sakila/yesql/yesql_cc.sql b/internal/dao/sakila/yesql/yesql_cc.sql index cc23932d..88428ebd 100644 --- a/internal/dao/sakila/yesql/yesql_cc.sql +++ b/internal/dao/sakila/yesql/yesql_cc.sql @@ -23,9 +23,13 @@ SELECT status FROM @contact WHERE user_id=? AND friend_id=? AND is_del=0; -- comment sql dml -------------------------------------------------------------------------------- --- name: get_comments@comment --- prepare: raw -SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY %order% LIMIT ? OFFSET ?; +-- name: get_newest_comments@comment +-- prepare: stmt +SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY id DESC LIMIT ? OFFSET ?; + +-- name: get_default_comments@comment +-- prepare: stmt +SELECT * FROM @comment WHERE post_id=? AND is_del=0 ORDER BY id ASC LIMIT ? OFFSET ?; -- name: get_comment_by_id@comment -- prepare: stmt @@ -56,7 +60,14 @@ SELECT id, nickname, username, status, avatar, is_admin FROM @user WHERE id IN ( -- name: get_comment_thumbs@comment -- prepare: stmt -SELECT * FROM @tweet_comment_thumbs WHERE user_id=? AND tweet_id=?; +SELECT user_id, + tweet_id, + comment_id, + reply_id, + comment_type, + is_thumbs_up, + is_thumbs_down +FROM @tweet_comment_thumbs WHERE user_id=? AND tweet_id=?; -------------------------------------------------------------------------------- -- comment_manage sql dml @@ -152,7 +163,7 @@ WHERE user_id=? AND follow_id=? AND is_del=0; -- name: list_follows@following_manager -- prepare: stmt -SELECT u.user_id user_id, +SELECT u.id user_id, u.username username, u.nickname nickname, u.avatar avatar, @@ -168,7 +179,7 @@ SELECT count(*) FROM @following WHERE user_id=? AND is_del=0; -- name: list_followings@following_manager -- prepare: stmt -SELECT u.user_id user_id, +SELECT u.id user_id, u.username username, u.nickname nickname, u.avatar avatar, @@ -220,7 +231,7 @@ UPDATE @contact SET status=4, is_del=1, deleted_on=? WHERE id=?; SELECT c.friend_id user_id, u.username username, u.nickname nickname, u.avatar avatar, u.phone phone FROM @contact c JOIN @user u ON c.friend_id=u.id -WHERE user_id=? AND status=2 AND is_del=0 +WHERE c.user_id=? AND c.status=2 AND c.is_del=0 ORDER BY u.nickname ASC LIMIT ? OFFSET ?; @@ -277,13 +288,13 @@ UPDATE @message SET is_read=1, modified_on=? WHERE id=?; -- prepare: named_stmt SELECT * FROM @message -WHERE receiver_user_id=:recerver_user_id AND is_del=0 +WHERE receiver_user_id=:receiver_user_id AND is_del=0 ORDER BY id DESC LIMIT :limit OFFSET :offset -- name: get_message_count@message -- prepare: named_stmt -SELECT count(*) FROM @message WHERE receiver_user_id=:recerver_user_id AND is_del=0; +SELECT count(*) FROM @message WHERE receiver_user_id=:receiver_user_id AND is_del=0; -------------------------------------------------------------------------------- -- security sql dml @@ -309,7 +320,7 @@ VALUES (:phone, :captcha, :expired_on, :created_on); -- name: index_by_admin@ship_index -- prepare: stmt SELECT * -FROM @p_post +FROM @post WHERE is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?; @@ -317,13 +328,13 @@ LIMIT ? OFFSET ?; -- name: index_count_by_admin@ship_index -- prepare: stmt SELECT count(*) -FROM @p_post +FROM @post WHERE is_del=0; -- name: index_by_guest@ship_index -- prepare: stmt SELECT * -FROM @p_post +FROM @post WHERE visibility=0 AND is_del=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?; @@ -331,14 +342,14 @@ LIMIT ? OFFSET ?; -- name: index_count_by_guest@ship_index -- prepare: stmt SELECT count(*) -FROM @p_post +FROM @post WHERE visibility=0 AND is_del=0; -- name: index_by_self@ship_index -- prepare: raw -- clause: in SELECT * -FROM @p_post +FROM @post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR @@ -350,7 +361,7 @@ LIMIT ? OFFSET ?; -- prepare: raw -- clause: in SELECT count(*) -FROM @p_post +FROM @post WHERE is_del=0 AND (visibility=0 OR (visibility=1 AND user_id=?) OR @@ -363,7 +374,7 @@ WHERE is_del=0 AND -- name: index@simple_index -- prepare: stmt SELECT * -FROM @p_post +FROM @post WHERE visibility=0 ORDER BY is_top DESC, latest_replied_on DESC LIMIT ? OFFSET ?; @@ -371,7 +382,7 @@ LIMIT ? OFFSET ?; -- name: index_count@simple_index -- prepare: stmt SELECT count(*) -FROM @p_post +FROM @post WHERE visibility=0; -------------------------------------------------------------------------------- @@ -387,7 +398,7 @@ SELECT * FROM @post WHERE id=? AND is_del=0; -- clause: in SELECT * FROM @post WHERE user_id=? AND visibility IN (?) -ORDER BY latest_replies_on DESC +ORDER BY latest_replied_on DESC LIMIT ? OFFSET ?; -- name: get_any_posts@tweet @@ -584,7 +595,25 @@ SELECT * FROM @post_content WHERE id=? AND is_del=0; -- name: user_media_tweets_by_guest@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_media WHERE is_del=0 AND user_id=? AND visibility=0 ORDER BY latest_replied_on DESC @@ -598,7 +627,25 @@ WHERE is_del=0 AND user_id=? AND visibility=0; -- name: user_media_tweets_by_friend@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_media WHERE is_del=0 AND user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC @@ -612,7 +659,25 @@ WHERE is_del=0 AND user_id=? AND (visibility=0 OR visibility=2); -- name: user_media_tweets_by_self@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_media WHERE is_del=0 AND user_id=? ORDER BY latest_replied_on DESC @@ -626,7 +691,25 @@ WHERE is_del=0 AND user_id=?; -- name: user_comment_tweets_by_guest@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND visibility=0 ORDER BY latest_replied_on DESC @@ -640,7 +723,25 @@ WHERE is_del=0 AND comment_user_id=? AND visibility=0; -- name: user_comment_tweets_by_friend@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? AND (visibility=0 OR visibility=2) ORDER BY latest_replied_on DESC @@ -654,7 +755,25 @@ WHERE is_del=0 AND comment_user_id=? AND (visibility=0 OR visibility=2); -- name: user_comment_tweets_by_self@tweet -- prepare: stmt -SELECT * +SELECT id, + user_id, + comment_count, + collection_count, + upvote_count, + share_count, + visibility, + is_top, + is_essence, + is_lock, + latest_replied_on, + tags, + attachment_price, + ip, + ip_loc, + created_on, + modified_on, + deleted_on, + is_del FROM @post_by_comment WHERE is_del=0 AND comment_user_id=? ORDER BY latest_replied_on DESC @@ -771,8 +890,8 @@ SELECT FROM @post_star star JOIN @post post ON star.post_id = post.ID -WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 (post.visibility=0 AND post.user_id=?)) -ORDER BY post.latest_replied_on DESC; +WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 OR (post.visibility=0 AND post.user_id=?)) +ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?; -- name: user_star_tweets_count_by_self@tweet @@ -781,7 +900,7 @@ SELECT count(*) FROM @post_star star JOIN @post post ON star.post_id = post.ID -WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 (post.visibility=0 AND post.user_id=?)); +WHERE star.is_del=0 AND star.user_id=? AND (post.visibility<>0 OR (post.visibility=0 AND post.user_id=?)); -- name: user_star_tweets_by_admin@tweet -- prepare: stmt @@ -810,7 +929,7 @@ FROM @post_star star JOIN @post post ON star.post_id = post.ID WHERE star.is_del=0 AND star.user_id=? -ORDER BY post.latest_replied_on DESC; +ORDER BY post.latest_replied_on DESC LIMIT ? OFFSET ?; -- name: user_star_tweets_count_by_admin@tweet @@ -827,12 +946,12 @@ WHERE star.is_del=0 AND star.user_id=?; -- name: add_post@tweet_manage -- prepare: named_stmt -INSERT INTO @post (user_id, tags, ip, ip_loc, attachment_price, visibility, latest_replies_on, created_on) -VALUES (:user_id, :tags, :ip, :ip_loc, :attachment_price, :visibility, :latest_replies_on, :created_on); +INSERT INTO @post (user_id, tags, ip, ip_loc, attachment_price, visibility, latest_replied_on, created_on) +VALUES (:user_id, :tags, :ip, :ip_loc, :attachment_price, :visibility, :latest_replied_on, :created_on); -- name: media_content_by_post_id@tweet_manage -- prepare stmt -SELECT content FROM post_content WHERE post_id=? AND is_del=0 AND type IN (3, 4, 5, 7, 8); +SELECT content FROM @post_content WHERE post_id=? AND is_del=0 AND type IN (3, 4, 5, 7, 8); -- name: del_post_by_id@tweet_manage -- prepare: stmt @@ -863,7 +982,7 @@ SELECT user_id, is_essence FROM @post WHERE id=? AND is_del=0; UPDATE @post SET comment_count=:comment_count, upvote_count=:upvote_count, collection_count=:collection_count, - latest_replies_on=:latest_replies_on, + latest_replied_on=:latest_replied_on, modified_on=:modified_on WHERE id=:id AND is_del=0; diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index de092a60..103fba1a 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -62,6 +62,7 @@ func (s *coreSrv) GetUserInfo(req *web.UserInfoReq) (*web.UserInfoResp, mir.Erro } follows, followings, err := s.Ds.GetFollowCount(user.ID) if err != nil { + logrus.Errorf("get follow count error: %s", err) return nil, web.ErrGetFollowCountFailed } resp := &web.UserInfoResp{ @@ -85,6 +86,7 @@ func (s *coreSrv) GetUserInfo(req *web.UserInfoReq) (*web.UserInfoResp, mir.Erro func (s *coreSrv) GetUnreadMsgCount(req *web.GetUnreadMsgCountReq) (*web.GetUnreadMsgCountResp, mir.Error) { count, err := s.Ds.GetUnreadCount(req.Uid) if err != nil { + logrus.Errorf("get unread msg count error: %s", err) return nil, xerror.ServerError } return &web.GetUnreadMsgCountResp{ diff --git a/internal/servants/web/loose.go b/internal/servants/web/loose.go index 27f33f77..642f445e 100644 --- a/internal/servants/web/loose.go +++ b/internal/servants/web/loose.go @@ -227,6 +227,7 @@ func (s *looseSrv) TopicList(req *web.TopicListReq) (*web.TopicListResp, mir.Err err = web.ErrGetPostTagsFailed } if err != nil { + logrus.Errorf("get tag list error: %s", err) return nil, web.ErrGetPostTagsFailed } return &web.TopicListResp{ @@ -247,6 +248,7 @@ func (s *looseSrv) TweetComments(req *web.TweetCommentsReq) (*web.TweetCommentsR comments, err := s.Ds.GetComments(conditions, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { + logrus.Errorf("get tweet comments error[1]: %s", err) return nil, web.ErrGetCommentsFailed } @@ -259,16 +261,19 @@ func (s *looseSrv) TweetComments(req *web.TweetCommentsReq) (*web.TweetCommentsR users, err := s.Ds.GetUsersByIDs(userIDs) if err != nil { + logrus.Errorf("get tweet comments error[2]: %s", err) return nil, web.ErrGetCommentsFailed } contents, err := s.Ds.GetCommentContentsByIDs(commentIDs) if err != nil { + logrus.Errorf("get tweet comments error[3]: %s", err) return nil, web.ErrGetCommentsFailed } replies, err := s.Ds.GetCommentRepliesByID(commentIDs) if err != nil { + logrus.Errorf("get tweet comments error[4]: %s", err) return nil, web.ErrGetCommentsFailed } @@ -276,6 +281,7 @@ func (s *looseSrv) TweetComments(req *web.TweetCommentsReq) (*web.TweetCommentsR if req.Uid > 0 { commentThumbs, replyThumbs, err = s.Ds.GetCommentThumbsMap(req.Uid, req.TweetId) if err != nil { + logrus.Errorf("get tweet comments error[5]: %s", err) return nil, web.ErrGetCommentsFailed } } diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go index f3654415..0a389f0d 100644 --- a/internal/servants/web/priv.go +++ b/internal/servants/web/priv.go @@ -361,6 +361,7 @@ func (s *privSrv) CreateCommentReply(req *web.CreateCommentReplyReq) (*web.Creat ) if post, comment, atUserID, err = s.createPostPreHandler(req.CommentID, req.Uid, req.AtUserID); err != nil { + logrus.Errorf("create comment reply error[1]: %s", err) return nil, web.ErrCreateReplyFailed } @@ -376,6 +377,7 @@ func (s *privSrv) CreateCommentReply(req *web.CreateCommentReplyReq) (*web.Creat reply, err = s.Ds.CreateCommentReply(reply) if err != nil { + logrus.Errorf("create comment reply error[2]: %s", err) return nil, web.ErrCreateReplyFailed } diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go index f12f74ee..1defb1b9 100644 --- a/internal/servants/web/pub.go +++ b/internal/servants/web/pub.go @@ -45,14 +45,17 @@ type pubSrv struct { func (s *pubSrv) TweetDetail(req *web.TweetDetailReq) (*web.TweetDetailResp, mir.Error) { post, err := s.Ds.GetPostByID(req.TweetId) if err != nil { + logrus.Errorf("get tweet detail error[1]: %s", err) return nil, web.ErrGetPostFailed } postContents, err := s.Ds.GetPostContentsByIDs([]int64{post.ID}) if err != nil { + logrus.Errorf("get tweet detail error[2]: %s", err) return nil, web.ErrGetPostFailed } users, err := s.Ds.GetUsersByIDs([]int64{post.UserID}) if err != nil { + logrus.Errorf("get tweet detail error[3]: %s", err) return nil, web.ErrGetPostFailed } // 数据整合