sqlx: add stub sql dml for all data logic service use Yesql

r/paopao-ce-xtra
Michael Li 3 years ago
parent 90752be696
commit c64bac867b
No known key found for this signature in database

@ -7,7 +7,7 @@ require (
github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868
github.com/alimy/cfg v0.3.0 github.com/alimy/cfg v0.3.0
github.com/alimy/mir/v3 v3.1.1 github.com/alimy/mir/v3 v3.1.1
github.com/alimy/yesql v1.1.2 github.com/alimy/yesql v1.1.5
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible
github.com/allegro/bigcache/v3 v3.0.2 github.com/allegro/bigcache/v3 v3.0.2
github.com/bytedance/sonic v1.8.5 github.com/bytedance/sonic v1.8.5

@ -127,8 +127,8 @@ github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY=
github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c=
github.com/alimy/mir/v3 v3.1.1 h1:3tz7uGOwuA1IKU0BysyBvGbyqKtEVMuhPBD/APk1ANw= github.com/alimy/mir/v3 v3.1.1 h1:3tz7uGOwuA1IKU0BysyBvGbyqKtEVMuhPBD/APk1ANw=
github.com/alimy/mir/v3 v3.1.1/go.mod h1:ybhT2ijOiDn0lLwWzIY6vXdv+uzZrctS7VFfczcXBWU= github.com/alimy/mir/v3 v3.1.1/go.mod h1:ybhT2ijOiDn0lLwWzIY6vXdv+uzZrctS7VFfczcXBWU=
github.com/alimy/yesql v1.1.2 h1:gsqmzVvbvY87cuNal9xi5sJZrys6wug4aGSyJNA1W8Q= github.com/alimy/yesql v1.1.5 h1:kHqF5rXS8if/YXazXyfo2OjqV+NhkvVwR43+dfkxkKU=
github.com/alimy/yesql v1.1.2/go.mod h1:Y0FdRIwIbJyTv56wSX+MpaIHiAW1PyKTDYO6K/er4JY= github.com/alimy/yesql v1.1.5/go.mod h1:Y0FdRIwIbJyTv56wSX+MpaIHiAW1PyKTDYO6K/er4JY=
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis=
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI= github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI=

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,8 +17,7 @@ var (
type authorizationManageSrv struct { type authorizationManageSrv struct {
*sqlxSrv *sqlxSrv
stmtIdx *sqlx.Stmt q *cc.AuthorizationManage
stmtUpdateFriend *sqlx.Stmt
} }
func (s *authorizationManageSrv) IsAllow(user *core.User, action *core.Action) bool { func (s *authorizationManageSrv) IsAllow(user *core.User, action *core.Action) bool {
@ -52,8 +52,7 @@ func (s *authorizationManageSrv) isFriend(userId int64, friendId int64) bool {
func newAuthorizationManageService(db *sqlx.DB) core.AuthorizationManageService { func newAuthorizationManageService(db *sqlx.DB) core.AuthorizationManageService {
return &authorizationManageSrv{ return &authorizationManageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtIdx: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildAuthorizationManage),
stmtUpdateFriend: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -17,14 +18,12 @@ var (
type commentSrv struct { type commentSrv struct {
*sqlxSrv *sqlxSrv
stmtGetComments *sqlx.Stmt q *cc.Comment
stmtGetReply *sqlx.Stmt
} }
type commentManageSrv struct { type commentManageSrv struct {
*sqlxSrv *sqlxSrv
stmtDelComments *sqlx.Stmt q *cc.CommentManage
stmtAddComents *sqlx.Stmt
} }
func (s *commentSrv) GetComments(conditions *core.ConditionsT, offset, limit int) ([]*core.Comment, error) { func (s *commentSrv) GetComments(conditions *core.ConditionsT, offset, limit int) ([]*core.Comment, error) {
@ -95,16 +94,14 @@ func (s *commentManageSrv) CreateCommentContent(content *core.CommentContent) (*
func newCommentService(db *sqlx.DB) core.CommentService { func newCommentService(db *sqlx.DB) core.CommentService {
return &commentSrv{ return &commentSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtGetComments: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildComment),
stmtGetReply: c(`SELECT * FROM @user WHERE username=?`),
} }
} }
func newCommentManageService(db *sqlx.DB) core.CommentManageService { func newCommentManageService(db *sqlx.DB) core.CommentManageService {
return &commentManageSrv{ return &commentManageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddComents: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildCommentManage),
stmtDelComments: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,8 +17,7 @@ var (
type contactManageSrv struct { type contactManageSrv struct {
*sqlxSrv *sqlxSrv
stmtAddFriend *sqlx.Stmt q *cc.ContactManager
stmtDelFriend *sqlx.Stmt
} }
func (s *contactManageSrv) RequestingFriend(userId int64, friendId int64, greetings string) (err error) { func (s *contactManageSrv) RequestingFriend(userId int64, friendId int64, greetings string) (err error) {
@ -58,8 +58,7 @@ func (s *contactManageSrv) IsFriend(userId int64, friendId int64) bool {
func newContactManageService(db *sqlx.DB) core.ContactManageService { func newContactManageService(db *sqlx.DB) core.ContactManageService {
return &contactManageSrv{ return &contactManageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddFriend: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildContactManager),
stmtDelFriend: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,9 +17,7 @@ var (
type messageSrv struct { type messageSrv struct {
*sqlxSrv *sqlxSrv
stmtAddMsg *sqlx.Stmt q *cc.Message
stmtGetMsg *sqlx.Stmt
stmtReadMsg *sqlx.Stmt
} }
func (s *messageSrv) CreateMessage(msg *core.Message) (*core.Message, error) { func (s *messageSrv) CreateMessage(msg *core.Message) (*core.Message, error) {
@ -59,9 +58,7 @@ func (s *messageSrv) GetMessageCount(conditions *core.ConditionsT) (int64, error
func newMessageService(db *sqlx.DB) core.MessageService { func newMessageService(db *sqlx.DB) core.MessageService {
return &messageSrv{ return &messageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddMsg: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildMessage),
stmtGetMsg: c(`SELECT * FROM @user WHERE username=?`),
stmtReadMsg: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,9 +17,7 @@ var (
type securitySrv struct { type securitySrv struct {
*sqlxSrv *sqlxSrv
phoneVerify core.PhoneVerifyService q *cc.Security
stmtAddCaptcha *sqlx.Stmt
stmtGetCaptcha *sqlx.Stmt
} }
// GetLatestPhoneCaptcha 获取最新短信验证码 // GetLatestPhoneCaptcha 获取最新短信验证码
@ -44,9 +43,7 @@ func (s *securitySrv) SendPhoneCaptcha(phone string) error {
func newSecurityService(db *sqlx.DB, phoneVerify core.PhoneVerifyService) core.SecurityService { func newSecurityService(db *sqlx.DB, phoneVerify core.PhoneVerifyService) core.SecurityService {
return &securitySrv{ return &securitySrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
phoneVerify: phoneVerify, q: mustBuild(db, cc.BuildSecurity),
stmtAddCaptcha: c(`SELECT * FROM @user WHERE username=?`),
stmtGetCaptcha: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -20,19 +20,10 @@ var (
_db *sqlx.DB _db *sqlx.DB
) )
type sqlxDB struct {
*sqlx.DB
}
type sqlxSrv struct { type sqlxSrv struct {
db *sqlx.DB db *sqlx.DB
} }
// Rebind fixed table name in query and rebind the fixed query
func (s *sqlxDB) Rebind(query string) string {
return s.DB.Rebind(query)
}
func (s *sqlxSrv) with(handle func(tx *sqlx.Tx) error) error { func (s *sqlxSrv) with(handle func(tx *sqlx.Tx) error) error {
tx, err := s.db.Beginx() tx, err := s.db.Beginx()
if err != nil { if err != nil {
@ -130,12 +121,6 @@ func yesqlScan[T any](query yesql.SQLQuery, obj T) T {
return obj return obj
} }
func newSqlxDB(db *sqlx.DB) *sqlxDB {
return &sqlxDB{
DB: db,
}
}
func mustBuild[T any](db *sqlx.DB, fn func(yesql.PreparexBuilder, ...context.Context) (T, error)) T { func mustBuild[T any](db *sqlx.DB, fn func(yesql.PreparexBuilder, ...context.Context) (T, error)) T {
p := yesql.NewPreparexBuilder(db, func(query string) string { p := yesql.NewPreparexBuilder(db, func(query string) string {
return strings.Replace(query, "@", conf.DatabaseSetting.TablePrefix, -1) return strings.Replace(query, "@", conf.DatabaseSetting.TablePrefix, -1)

@ -8,6 +8,7 @@ import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/core/cs" "github.com/rocboss/paopao-ce/internal/core/cs"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -20,27 +21,27 @@ var (
type friendIndexSrv struct { type friendIndexSrv struct {
*sqlxSrv *sqlxSrv
ams core.AuthorizationManageService ams core.AuthorizationManageService
ths core.TweetHelpService ths core.TweetHelpService
stmtIndex *sqlx.Stmt q *cc.FriendIndex
} }
type followIndexSrv struct { type followIndexSrv struct {
*sqlxSrv *sqlxSrv
ths core.TweetHelpService ths core.TweetHelpService
stmtIndex *sqlx.Stmt q *cc.FollowIndex
} }
type lightIndexSrv struct { type lightIndexSrv struct {
*sqlxSrv *sqlxSrv
ths core.TweetHelpService ths core.TweetHelpService
stmtIndex *sqlx.Stmt q *cc.LightIndex
} }
type simpleIndexPostsSrv struct { type simpleIndexPostsSrv struct {
*sqlxSrv *sqlxSrv
ths core.TweetHelpService ths core.TweetHelpService
stmtIndex *sqlx.Stmt q *cc.SimpleIndex
} }
// IndexPosts 根据userId查询广场推文列表简单做到不同用户的主页都是不同的 // IndexPosts 根据userId查询广场推文列表简单做到不同用户的主页都是不同的
@ -89,32 +90,32 @@ func (s *simpleIndexPostsSrv) TweetTimeline(userId int64, offset int, limit int)
func newFriendIndexService(db *sqlx.DB, ams core.AuthorizationManageService, ths core.TweetHelpService) core.IndexPostsService { func newFriendIndexService(db *sqlx.DB, ams core.AuthorizationManageService, ths core.TweetHelpService) core.IndexPostsService {
return &friendIndexSrv{ return &friendIndexSrv{
ams: ams, ams: ams,
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtIndex: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildFriendIndex),
} }
} }
func newFollowIndexService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService { func newFollowIndexService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService {
return &followIndexSrv{ return &followIndexSrv{
ths: ths, ths: ths,
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtIndex: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildFollowIndex),
} }
} }
func newLightIndexService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService { func newLightIndexService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService {
return &lightIndexSrv{ return &lightIndexSrv{
ths: ths, ths: ths,
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtIndex: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildLightIndex),
} }
} }
func newSimpleIndexPostsService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService { func newSimpleIndexPostsService(db *sqlx.DB, ths core.TweetHelpService) core.IndexPostsService {
return &simpleIndexPostsSrv{ return &simpleIndexPostsSrv{
ths: ths, ths: ths,
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtIndex: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildSimpleIndex),
} }
} }

@ -9,6 +9,7 @@ import (
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/core/cs" "github.com/rocboss/paopao-ce/internal/core/cs"
"github.com/rocboss/paopao-ce/internal/dao/jinzhu/dbr" "github.com/rocboss/paopao-ce/internal/dao/jinzhu/dbr"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -21,24 +22,18 @@ var (
type tweetSrv struct { type tweetSrv struct {
*sqlxSrv *sqlxSrv
stmtGetTweet *sqlx.Stmt q *cc.Tweet
stmtListTweet *sqlx.Stmt
stmtListStar *sqlx.Stmt
} }
type tweetManageSrv struct { type tweetManageSrv struct {
*sqlxSrv *sqlxSrv
cacheIndex core.CacheIndexService cacheIndex core.CacheIndexService
stmtAddTweet *sqlx.Stmt q *cc.TweetManage
stmtDelTweet *sqlx.Stmt
stmtStickTweet *sqlx.Stmt
} }
type tweetHelpSrv struct { type tweetHelpSrv struct {
*sqlxSrv *sqlxSrv
stmtAddTag *sqlx.Stmt q *cc.TweetHelp
stmtDelTag *sqlx.Stmt
stmtListTag *sqlx.Stmt
} }
// MergePosts post数据整合 // MergePosts post数据整合
@ -325,28 +320,22 @@ func (s *tweetSrv) AttachmentByTweetId(userId int64, tweetId int64) (*cs.Attachm
func newTweetService(db *sqlx.DB) core.TweetService { func newTweetService(db *sqlx.DB) core.TweetService {
return &tweetSrv{ return &tweetSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtGetTweet: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildTweet),
stmtListTweet: c(`SELECT * FROM @user WHERE username=?`),
stmtListStar: c(`SELECT * FROM @user WHERE username=?`),
} }
} }
func newTweetManageService(db *sqlx.DB, cacheIndex core.CacheIndexService) core.TweetManageService { func newTweetManageService(db *sqlx.DB, cacheIndex core.CacheIndexService) core.TweetManageService {
return &tweetManageSrv{ return &tweetManageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
cacheIndex: cacheIndex, cacheIndex: cacheIndex,
stmtAddTweet: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildTweetManage),
stmtDelTweet: c(`SELECT * FROM @user WHERE username=?`),
stmtStickTweet: c(`SELECT * FROM @user WHERE username=?`),
} }
} }
func newTweetHelpService(db *sqlx.DB) core.TweetHelpService { func newTweetHelpService(db *sqlx.DB) core.TweetHelpService {
return &tweetHelpSrv{ return &tweetHelpSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddTag: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildTweetHelp),
stmtDelTag: c(`SELECT * FROM @user WHERE username=?`),
stmtListTag: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,9 +17,7 @@ var (
type userManageSrv struct { type userManageSrv struct {
*sqlxSrv *sqlxSrv
stmtAddUser *sqlx.Stmt q *cc.UserManage
stmtUpdateUser *sqlx.Stmt
stmtGetUser *sqlx.Stmt
} }
func (s *userManageSrv) GetUserByID(id int64) (*core.User, error) { func (s *userManageSrv) GetUserByID(id int64) (*core.User, error) {
@ -65,9 +64,7 @@ func (s *userManageSrv) UpdateUser(user *core.User) error {
func newUserManageService(db *sqlx.DB) core.UserManageService { func newUserManageService(db *sqlx.DB) core.UserManageService {
return &userManageSrv{ return &userManageSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddUser: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildUserManage),
stmtUpdateUser: c(`SELECT * FROM @user WHERE username=?`),
stmtGetUser: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -7,6 +7,7 @@ package sakila
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/dao/sakila/yesql/cc"
"github.com/rocboss/paopao-ce/pkg/debug" "github.com/rocboss/paopao-ce/pkg/debug"
) )
@ -16,9 +17,7 @@ var (
type walletSrv struct { type walletSrv struct {
*sqlxSrv *sqlxSrv
stmtAddRecharge *sqlx.Stmt q *cc.Wallet
stmtGetRecharge *sqlx.Stmt
stmtGetBills *sqlx.Stmt
} }
func (s *walletSrv) GetRechargeByID(id int64) (*core.WalletRecharge, error) { func (s *walletSrv) GetRechargeByID(id int64) (*core.WalletRecharge, error) {
@ -58,9 +57,7 @@ func (s *walletSrv) HandlePostAttachmentBought(post *core.Post, user *core.User)
func newWalletService(db *sqlx.DB) core.WalletService { func newWalletService(db *sqlx.DB) core.WalletService {
return &walletSrv{ return &walletSrv{
sqlxSrv: newSqlxSrv(db), sqlxSrv: newSqlxSrv(db),
stmtAddRecharge: c(`SELECT * FROM @user WHERE username=?`), q: mustBuild(db, cc.BuildWallet),
stmtGetRecharge: c(`SELECT * FROM @user WHERE username=?`),
stmtGetBills: c(`SELECT * FROM @user WHERE username=?`),
} }
} }

@ -1,6 +1,6 @@
// Code generated by go-mir. DO NOT EDIT. // Code generated by Yesql. DO NOT EDIT.
// versions: // versions:
// - Yesql v1.1.2 // - Yesql v1.1.5
package cc package cc
@ -12,18 +12,83 @@ import (
) )
const ( const (
_TagsByKeywordB_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 AND tag LIKE ? ORDER BY quote_num DESC LIMIT 6` _UserInfo_LightIndex = `SELECT * FROM @user WHERE username=?`
_InsertTag_Topic = `INSERT INTO @tag (user_id, tag, created_on, modified_on, quote_num) VALUES (?, ?, ?, ?, 1)` _NewestTags_Topic = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id, u.nickname, u.username, u.status, u.avatar, 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 ?`
_TagsByIdA_Topic = `SELECT id FROM @tag WHERE id IN (?) AND is_del = 0 AND quote_num > 0` _TagsByKeywordA_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 ORDER BY quote_num DESC LIMIT 6`
_TagsByIdB_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE id IN (?)` _TagsByKeywordB_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 AND tag LIKE ? ORDER BY quote_num DESC LIMIT 6`
_TagsForIncr_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?)` _TagsByIdB_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE id IN (?)`
_IncrTagsById_Topic = `UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?)` _HotTags_Topic = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id, u.nickname, u.username, u.status, u.avatar, 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 ?`
_NewestTags_Topic = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id, u.nickname, u.username, u.status, u.avatar, 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 ?` _InsertTag_Topic = `INSERT INTO @tag (user_id, tag, created_on, modified_on, quote_num) VALUES (?, ?, ?, ?, 1)`
_TagsByKeywordA_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE is_del = 0 ORDER BY quote_num DESC LIMIT 6` _TagsByIdA_Topic = `SELECT id FROM @tag WHERE id IN (?) AND is_del = 0 AND quote_num > 0`
_DecrTagsById_Topic = `UPDATE @tag SET quote_num=quote_num-1, modified_on=? WHERE id IN (?)` _DecrTagsById_Topic = `UPDATE @tag SET quote_num=quote_num-1, modified_on=? WHERE id IN (?)`
_HotTags_Topic = `SELECT t.id id, t.user_id user_id, t.tag tag, t.quote_num quote_num, u.id, u.nickname, u.username, u.status, u.avatar, 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 ?` _TagsForIncr_Topic = `SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?)`
_IncrTagsById_Topic = `UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?)`
_UserInfo_Wallet = `SELECT * FROM @user WHERE username=?`
_UserInfo_ContactManager = `SELECT * FROM @user WHERE username=?`
_UserInfo_FollowIndex = `SELECT * FROM @user WHERE username=?`
_UserInfo_SimpleIndex = `SELECT * FROM @user WHERE username=?`
_UserInfo_UserManage = `SELECT * FROM @user WHERE username=?`
_UserInfo_CommentManage = `SELECT * FROM @user WHERE username=?`
_UserInfo_Security = `SELECT * FROM @user WHERE username=?`
_UserInfo_TweetHelp = `SELECT * FROM @user WHERE username=?`
_UserInfo_AuthorizationManage = `SELECT * FROM @user WHERE username=?`
_UserInfo_Comment = `SELECT * FROM @user WHERE username=?`
_UserInfo_Message = `SELECT * FROM @user WHERE username=?`
_UserInfo_FriendIndex = `SELECT * FROM @user WHERE username=?`
_UserInfo_Tweet = `SELECT * FROM @user WHERE username=?`
_UserInfo_TweetManage = `SELECT * FROM @user WHERE username=?`
) )
type AuthorizationManage struct {
yesql.Namespace `yesql:"authorization_manage"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type Comment struct {
yesql.Namespace `yesql:"comment"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type CommentManage struct {
yesql.Namespace `yesql:"comment_manage"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type ContactManager struct {
yesql.Namespace `yesql:"contact_manager"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type FollowIndex struct {
yesql.Namespace `yesql:"follow_index"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type FriendIndex struct {
yesql.Namespace `yesql:"friend_index"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type LightIndex struct {
yesql.Namespace `yesql:"light_index"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type Message struct {
yesql.Namespace `yesql:"message"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type Security struct {
yesql.Namespace `yesql:"security"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type SimpleIndex struct {
yesql.Namespace `yesql:"simple_index"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type Topic struct { type Topic struct {
yesql.Namespace `yesql:"topic"` yesql.Namespace `yesql:"topic"`
DecrTagsById string `yesql:"decr_tags_by_id"` DecrTagsById string `yesql:"decr_tags_by_id"`
@ -38,6 +103,171 @@ type Topic struct {
TagsByKeywordB *sqlx.Stmt `yesql:"tags_by_keyword_b"` TagsByKeywordB *sqlx.Stmt `yesql:"tags_by_keyword_b"`
} }
type Tweet struct {
yesql.Namespace `yesql:"tweet"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type TweetHelp struct {
yesql.Namespace `yesql:"tweet_help"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type TweetManage struct {
yesql.Namespace `yesql:"tweet_manage"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type UserManage struct {
yesql.Namespace `yesql:"user_manage"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
type Wallet struct {
yesql.Namespace `yesql:"wallet"`
UserInfo *sqlx.Stmt `yesql:"user_info"`
}
func BuildAuthorizationManage(p yesql.PreparexBuilder, ctx ...context.Context) (obj *AuthorizationManage, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &AuthorizationManage{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_AuthorizationManage))); err != nil {
return
}
return
}
func BuildComment(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Comment, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &Comment{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_Comment))); err != nil {
return
}
return
}
func BuildCommentManage(p yesql.PreparexBuilder, ctx ...context.Context) (obj *CommentManage, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &CommentManage{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_CommentManage))); err != nil {
return
}
return
}
func BuildContactManager(p yesql.PreparexBuilder, ctx ...context.Context) (obj *ContactManager, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &ContactManager{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_ContactManager))); err != nil {
return
}
return
}
func BuildFollowIndex(p yesql.PreparexBuilder, ctx ...context.Context) (obj *FollowIndex, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &FollowIndex{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_FollowIndex))); err != nil {
return
}
return
}
func BuildFriendIndex(p yesql.PreparexBuilder, ctx ...context.Context) (obj *FriendIndex, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &FriendIndex{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_FriendIndex))); err != nil {
return
}
return
}
func BuildLightIndex(p yesql.PreparexBuilder, ctx ...context.Context) (obj *LightIndex, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &LightIndex{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_LightIndex))); err != nil {
return
}
return
}
func BuildMessage(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Message, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &Message{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_Message))); err != nil {
return
}
return
}
func BuildSecurity(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Security, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &Security{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_Security))); err != nil {
return
}
return
}
func BuildSimpleIndex(p yesql.PreparexBuilder, ctx ...context.Context) (obj *SimpleIndex, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &SimpleIndex{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_SimpleIndex))); err != nil {
return
}
return
}
func BuildTopic(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Topic, err error) { func BuildTopic(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Topic, err error) {
var c context.Context var c context.Context
if len(ctx) > 0 && ctx[0] != nil { if len(ctx) > 0 && ctx[0] != nil {
@ -69,3 +299,73 @@ func BuildTopic(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Topic, er
} }
return return
} }
func BuildTweet(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Tweet, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &Tweet{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_Tweet))); err != nil {
return
}
return
}
func BuildTweetHelp(p yesql.PreparexBuilder, ctx ...context.Context) (obj *TweetHelp, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &TweetHelp{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_TweetHelp))); err != nil {
return
}
return
}
func BuildTweetManage(p yesql.PreparexBuilder, ctx ...context.Context) (obj *TweetManage, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &TweetManage{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_TweetManage))); err != nil {
return
}
return
}
func BuildUserManage(p yesql.PreparexBuilder, ctx ...context.Context) (obj *UserManage, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &UserManage{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_UserManage))); err != nil {
return
}
return
}
func BuildWallet(p yesql.PreparexBuilder, ctx ...context.Context) (obj *Wallet, err error) {
var c context.Context
if len(ctx) > 0 && ctx[0] != nil {
c = ctx[0]
} else {
c = context.Background()
}
obj = &Wallet{}
if obj.UserInfo, err = p.PreparexContext(c, p.Rebind(p.QueryHook(_UserInfo_Wallet))); err != nil {
return
}
return
}

@ -1,3 +1,110 @@
--------------------------------------------------------------------------------
-- authorization_manage sql dml
--------------------------------------------------------------------------------
-- name: user_info@authorization_manage
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- comment sql dml
--------------------------------------------------------------------------------
-- name: user_info@comment
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- comment_manage sql dml
--------------------------------------------------------------------------------
-- name: user_info@comment_manage
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- contact_manager sql dml
--------------------------------------------------------------------------------
-- name: user_info@contact_manager
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- message sql dml
--------------------------------------------------------------------------------
-- name: user_info@message
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- security sql dml
--------------------------------------------------------------------------------
-- name: user_info@security
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- friend_index sql dml
--------------------------------------------------------------------------------
-- name: user_info@friend_index
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- follow_index sql dml
--------------------------------------------------------------------------------
-- name: user_info@follow_index
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- light_index sql dml
--------------------------------------------------------------------------------
-- name: user_info@light_index
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- simple_index sql dml
--------------------------------------------------------------------------------
-- name: user_info@simple_index
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- tweet sql dml
--------------------------------------------------------------------------------
-- name: user_info@tweet
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- tweet_manage sql dml
--------------------------------------------------------------------------------
-- name: user_info@tweet_manage
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- tweet_help sql dml
--------------------------------------------------------------------------------
-- name: user_info@tweet_help
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- topic sql dml
--------------------------------------------------------------------------------
-- name: newest_tags@topic -- name: newest_tags@topic
-- get newest tag information -- get newest tag information
@ -53,3 +160,19 @@ SELECT id, user_id, tag, quote_num FROM @tag WHERE tag IN (?);
-- prepare: raw -- prepare: raw
-- clause: in -- clause: in
UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?); UPDATE @tag SET quote_num=quote_num+1, is_del=0, modified_on=? WHERE id IN (?);
--------------------------------------------------------------------------------
-- user_manage sql dml
--------------------------------------------------------------------------------
-- name: user_info@user_manage
-- prepare: stmt
SELECT * FROM @user WHERE username=?
--------------------------------------------------------------------------------
-- wallet sql dml
--------------------------------------------------------------------------------
-- name: user_info@wallet
-- prepare: stmt
SELECT * FROM @user WHERE username=?
Loading…
Cancel
Save