2025-12-02 19:57:10 +08:00
// Code generated by goctl. DO NOT EDIT!
package model
import (
"context"
"database/sql"
"fmt"
"strings"
2025-12-09 18:55:28 +08:00
"reflect"
2025-12-02 19:57:10 +08:00
"time"
"github.com/Masterminds/squirrel"
2025-12-09 18:55:28 +08:00
"github.com/google/uuid"
2025-12-02 19:57:10 +08:00
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
"ycc-server/common/globalkey"
)
var (
agentShortLinkFieldNames = builder . RawFieldNames ( & AgentShortLink { } )
agentShortLinkRows = strings . Join ( agentShortLinkFieldNames , "," )
2025-12-09 18:55:28 +08:00
agentShortLinkRowsExpectAutoSet = strings . Join ( stringx . Remove ( agentShortLinkFieldNames , "`create_time`" , "`update_time`" ) , "," )
2025-12-02 19:57:10 +08:00
agentShortLinkRowsWithPlaceHolder = strings . Join ( stringx . Remove ( agentShortLinkFieldNames , "`id`" , "`create_time`" , "`update_time`" ) , "=?," ) + "=?"
cacheYccAgentShortLinkIdPrefix = "cache:ycc:agentShortLink:id:"
cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix = "cache:ycc:agentShortLink:inviteCodeId:type:delState:"
cacheYccAgentShortLinkLinkIdTypeDelStatePrefix = "cache:ycc:agentShortLink:linkId:type:delState:"
cacheYccAgentShortLinkShortCodeDelStatePrefix = "cache:ycc:agentShortLink:shortCode:delState:"
)
type (
agentShortLinkModel interface {
Insert ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) ( sql . Result , error )
2025-12-09 18:55:28 +08:00
FindOne ( ctx context . Context , id string ) ( * AgentShortLink , error )
FindOneByInviteCodeIdTypeDelState ( ctx context . Context , inviteCodeId sql . NullString , tp int64 , delState int64 ) ( * AgentShortLink , error )
FindOneByLinkIdTypeDelState ( ctx context . Context , linkId sql . NullString , tp int64 , delState int64 ) ( * AgentShortLink , error )
2025-12-02 19:57:10 +08:00
FindOneByShortCodeDelState ( ctx context . Context , shortCode string , delState int64 ) ( * AgentShortLink , error )
Update ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) ( sql . Result , error )
UpdateWithVersion ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) error
Trans ( ctx context . Context , fn func ( context context . Context , session sqlx . Session ) error ) error
SelectBuilder ( ) squirrel . SelectBuilder
DeleteSoft ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) error
FindSum ( ctx context . Context , sumBuilder squirrel . SelectBuilder , field string ) ( float64 , error )
FindCount ( ctx context . Context , countBuilder squirrel . SelectBuilder , field string ) ( int64 , error )
FindAll ( ctx context . Context , rowBuilder squirrel . SelectBuilder , orderBy string ) ( [ ] * AgentShortLink , error )
FindPageListByPage ( ctx context . Context , rowBuilder squirrel . SelectBuilder , page , pageSize int64 , orderBy string ) ( [ ] * AgentShortLink , error )
FindPageListByPageWithTotal ( ctx context . Context , rowBuilder squirrel . SelectBuilder , page , pageSize int64 , orderBy string ) ( [ ] * AgentShortLink , int64 , error )
FindPageListByIdDESC ( ctx context . Context , rowBuilder squirrel . SelectBuilder , preMinId , pageSize int64 ) ( [ ] * AgentShortLink , error )
FindPageListByIdASC ( ctx context . Context , rowBuilder squirrel . SelectBuilder , preMaxId , pageSize int64 ) ( [ ] * AgentShortLink , error )
2025-12-09 18:55:28 +08:00
Delete ( ctx context . Context , session sqlx . Session , id string ) error
2025-12-02 19:57:10 +08:00
}
defaultAgentShortLinkModel struct {
sqlc . CachedConn
table string
}
AgentShortLink struct {
2025-12-09 18:55:28 +08:00
Id string ` db:"id" `
Type int64 ` db:"type" ` // 类型: 1=推广报告(promotion), 2=邀请好友(invite)
LinkId sql . NullString ` db:"link_id" `
InviteCodeId sql . NullString ` db:"invite_code_id" `
2025-12-02 19:57:10 +08:00
LinkIdentifier sql . NullString ` db:"link_identifier" ` // 推广链接标识(加密,仅推广报告类型使用)
InviteCode sql . NullString ` db:"invite_code" ` // 邀请码(仅邀请好友类型使用)
ShortCode string ` db:"short_code" ` // 短链标识( 6位随机字符串)
TargetPath string ` db:"target_path" ` // 目标地址(前端传入,如:/agent/promotionInquire/xxx 或 /register?invite_code=xxx)
PromotionDomain string ` db:"promotion_domain" ` // 推广域名(生成短链时使用的域名)
CreateTime time . Time ` db:"create_time" ` // 创建时间
UpdateTime time . Time ` db:"update_time" ` // 更新时间
DeleteTime sql . NullTime ` db:"delete_time" ` // 删除时间
DelState int64 ` db:"del_state" ` // 删除状态: 0=未删除, 1=已删除
Version int64 ` db:"version" ` // 版本号(乐观锁)
}
)
func newAgentShortLinkModel ( conn sqlx . SqlConn , c cache . CacheConf ) * defaultAgentShortLinkModel {
return & defaultAgentShortLinkModel {
CachedConn : sqlc . NewConn ( conn , c ) ,
table : "`agent_short_link`" ,
}
}
func ( m * defaultAgentShortLinkModel ) Insert ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) ( sql . Result , error ) {
data . DelState = globalkey . DelStateNo
2025-12-09 18:55:28 +08:00
m . insertUUID ( data )
2025-12-02 19:57:10 +08:00
yccAgentShortLinkIdKey := fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , data . Id )
yccAgentShortLinkInviteCodeIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix , data . InviteCodeId , data . Type , data . DelState )
yccAgentShortLinkLinkIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkLinkIdTypeDelStatePrefix , data . LinkId , data . Type , data . DelState )
yccAgentShortLinkShortCodeDelStateKey := fmt . Sprintf ( "%s%v:%v" , cacheYccAgentShortLinkShortCodeDelStatePrefix , data . ShortCode , data . DelState )
return m . ExecCtx ( ctx , func ( ctx context . Context , conn sqlx . SqlConn ) ( result sql . Result , err error ) {
2025-12-09 18:55:28 +08:00
query := fmt . Sprintf ( "insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" , m . table , agentShortLinkRowsExpectAutoSet )
2025-12-02 19:57:10 +08:00
if session != nil {
2025-12-09 18:55:28 +08:00
return session . ExecCtx ( ctx , query , data . Id , data . Type , data . LinkId , data . InviteCodeId , data . LinkIdentifier , data . InviteCode , data . ShortCode , data . TargetPath , data . PromotionDomain , data . DeleteTime , data . DelState , data . Version )
2025-12-02 19:57:10 +08:00
}
2025-12-09 18:55:28 +08:00
return conn . ExecCtx ( ctx , query , data . Id , data . Type , data . LinkId , data . InviteCodeId , data . LinkIdentifier , data . InviteCode , data . ShortCode , data . TargetPath , data . PromotionDomain , data . DeleteTime , data . DelState , data . Version )
2025-12-02 19:57:10 +08:00
} , yccAgentShortLinkIdKey , yccAgentShortLinkInviteCodeIdTypeDelStateKey , yccAgentShortLinkLinkIdTypeDelStateKey , yccAgentShortLinkShortCodeDelStateKey )
}
2025-12-09 18:55:28 +08:00
func ( m * defaultAgentShortLinkModel ) insertUUID ( data * AgentShortLink ) {
t := reflect . TypeOf ( data ) . Elem ( )
v := reflect . ValueOf ( data ) . Elem ( )
for i := 0 ; i < t . NumField ( ) ; i ++ {
sf := t . Field ( i )
if sf . Tag . Get ( "db" ) == "id" {
f := v . Field ( i )
if f . IsValid ( ) && f . CanSet ( ) && f . Kind ( ) == reflect . String {
if f . String ( ) == "" {
f . SetString ( uuid . NewString ( ) )
}
}
break
}
}
}
2025-12-02 19:57:10 +08:00
2025-12-09 18:55:28 +08:00
func ( m * defaultAgentShortLinkModel ) FindOne ( ctx context . Context , id string ) ( * AgentShortLink , error ) {
2025-12-02 19:57:10 +08:00
yccAgentShortLinkIdKey := fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , id )
var resp AgentShortLink
err := m . QueryRowCtx ( ctx , & resp , yccAgentShortLinkIdKey , func ( ctx context . Context , conn sqlx . SqlConn , v interface { } ) error {
query := fmt . Sprintf ( "select %s from %s where `id` = ? and del_state = ? limit 1" , agentShortLinkRows , m . table )
return conn . QueryRowCtx ( ctx , v , query , id , globalkey . DelStateNo )
} )
switch err {
case nil :
return & resp , nil
case sqlc . ErrNotFound :
return nil , ErrNotFound
default :
return nil , err
}
}
2025-12-09 18:55:28 +08:00
func ( m * defaultAgentShortLinkModel ) FindOneByInviteCodeIdTypeDelState ( ctx context . Context , inviteCodeId sql . NullString , tp int64 , delState int64 ) ( * AgentShortLink , error ) {
2025-12-02 19:57:10 +08:00
yccAgentShortLinkInviteCodeIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix , inviteCodeId , tp , delState )
var resp AgentShortLink
err := m . QueryRowIndexCtx ( ctx , & resp , yccAgentShortLinkInviteCodeIdTypeDelStateKey , m . formatPrimary , func ( ctx context . Context , conn sqlx . SqlConn , v interface { } ) ( i interface { } , e error ) {
query := fmt . Sprintf ( "select %s from %s where `invite_code_id` = ? and `type` = ? and `del_state` = ? and del_state = ? limit 1" , agentShortLinkRows , m . table )
if err := conn . QueryRowCtx ( ctx , & resp , query , inviteCodeId , tp , delState , globalkey . DelStateNo ) ; err != nil {
return nil , err
}
return resp . Id , nil
} , m . queryPrimary )
switch err {
case nil :
return & resp , nil
case sqlc . ErrNotFound :
return nil , ErrNotFound
default :
return nil , err
}
}
2025-12-09 18:55:28 +08:00
func ( m * defaultAgentShortLinkModel ) FindOneByLinkIdTypeDelState ( ctx context . Context , linkId sql . NullString , tp int64 , delState int64 ) ( * AgentShortLink , error ) {
2025-12-02 19:57:10 +08:00
yccAgentShortLinkLinkIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkLinkIdTypeDelStatePrefix , linkId , tp , delState )
var resp AgentShortLink
err := m . QueryRowIndexCtx ( ctx , & resp , yccAgentShortLinkLinkIdTypeDelStateKey , m . formatPrimary , func ( ctx context . Context , conn sqlx . SqlConn , v interface { } ) ( i interface { } , e error ) {
query := fmt . Sprintf ( "select %s from %s where `link_id` = ? and `type` = ? and `del_state` = ? and del_state = ? limit 1" , agentShortLinkRows , m . table )
if err := conn . QueryRowCtx ( ctx , & resp , query , linkId , tp , delState , globalkey . DelStateNo ) ; err != nil {
return nil , err
}
return resp . Id , nil
} , m . queryPrimary )
switch err {
case nil :
return & resp , nil
case sqlc . ErrNotFound :
return nil , ErrNotFound
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) FindOneByShortCodeDelState ( ctx context . Context , shortCode string , delState int64 ) ( * AgentShortLink , error ) {
yccAgentShortLinkShortCodeDelStateKey := fmt . Sprintf ( "%s%v:%v" , cacheYccAgentShortLinkShortCodeDelStatePrefix , shortCode , delState )
var resp AgentShortLink
err := m . QueryRowIndexCtx ( ctx , & resp , yccAgentShortLinkShortCodeDelStateKey , m . formatPrimary , func ( ctx context . Context , conn sqlx . SqlConn , v interface { } ) ( i interface { } , e error ) {
query := fmt . Sprintf ( "select %s from %s where `short_code` = ? and `del_state` = ? and del_state = ? limit 1" , agentShortLinkRows , m . table )
if err := conn . QueryRowCtx ( ctx , & resp , query , shortCode , delState , globalkey . DelStateNo ) ; err != nil {
return nil , err
}
return resp . Id , nil
} , m . queryPrimary )
switch err {
case nil :
return & resp , nil
case sqlc . ErrNotFound :
return nil , ErrNotFound
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) Update ( ctx context . Context , session sqlx . Session , newData * AgentShortLink ) ( sql . Result , error ) {
data , err := m . FindOne ( ctx , newData . Id )
if err != nil {
return nil , err
}
yccAgentShortLinkIdKey := fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , data . Id )
yccAgentShortLinkInviteCodeIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix , data . InviteCodeId , data . Type , data . DelState )
yccAgentShortLinkLinkIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkLinkIdTypeDelStatePrefix , data . LinkId , data . Type , data . DelState )
yccAgentShortLinkShortCodeDelStateKey := fmt . Sprintf ( "%s%v:%v" , cacheYccAgentShortLinkShortCodeDelStatePrefix , data . ShortCode , data . DelState )
return m . ExecCtx ( ctx , func ( ctx context . Context , conn sqlx . SqlConn ) ( result sql . Result , err error ) {
query := fmt . Sprintf ( "update %s set %s where `id` = ?" , m . table , agentShortLinkRowsWithPlaceHolder )
if session != nil {
return session . ExecCtx ( ctx , query , newData . Type , newData . LinkId , newData . InviteCodeId , newData . LinkIdentifier , newData . InviteCode , newData . ShortCode , newData . TargetPath , newData . PromotionDomain , newData . DeleteTime , newData . DelState , newData . Version , newData . Id )
}
return conn . ExecCtx ( ctx , query , newData . Type , newData . LinkId , newData . InviteCodeId , newData . LinkIdentifier , newData . InviteCode , newData . ShortCode , newData . TargetPath , newData . PromotionDomain , newData . DeleteTime , newData . DelState , newData . Version , newData . Id )
} , yccAgentShortLinkIdKey , yccAgentShortLinkInviteCodeIdTypeDelStateKey , yccAgentShortLinkLinkIdTypeDelStateKey , yccAgentShortLinkShortCodeDelStateKey )
}
func ( m * defaultAgentShortLinkModel ) UpdateWithVersion ( ctx context . Context , session sqlx . Session , newData * AgentShortLink ) error {
oldVersion := newData . Version
newData . Version += 1
var sqlResult sql . Result
var err error
data , err := m . FindOne ( ctx , newData . Id )
if err != nil {
return err
}
yccAgentShortLinkIdKey := fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , data . Id )
yccAgentShortLinkInviteCodeIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix , data . InviteCodeId , data . Type , data . DelState )
yccAgentShortLinkLinkIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkLinkIdTypeDelStatePrefix , data . LinkId , data . Type , data . DelState )
yccAgentShortLinkShortCodeDelStateKey := fmt . Sprintf ( "%s%v:%v" , cacheYccAgentShortLinkShortCodeDelStatePrefix , data . ShortCode , data . DelState )
sqlResult , err = m . ExecCtx ( ctx , func ( ctx context . Context , conn sqlx . SqlConn ) ( result sql . Result , err error ) {
query := fmt . Sprintf ( "update %s set %s where `id` = ? and version = ? " , m . table , agentShortLinkRowsWithPlaceHolder )
if session != nil {
return session . ExecCtx ( ctx , query , newData . Type , newData . LinkId , newData . InviteCodeId , newData . LinkIdentifier , newData . InviteCode , newData . ShortCode , newData . TargetPath , newData . PromotionDomain , newData . DeleteTime , newData . DelState , newData . Version , newData . Id , oldVersion )
}
return conn . ExecCtx ( ctx , query , newData . Type , newData . LinkId , newData . InviteCodeId , newData . LinkIdentifier , newData . InviteCode , newData . ShortCode , newData . TargetPath , newData . PromotionDomain , newData . DeleteTime , newData . DelState , newData . Version , newData . Id , oldVersion )
} , yccAgentShortLinkIdKey , yccAgentShortLinkInviteCodeIdTypeDelStateKey , yccAgentShortLinkLinkIdTypeDelStateKey , yccAgentShortLinkShortCodeDelStateKey )
if err != nil {
return err
}
updateCount , err := sqlResult . RowsAffected ( )
if err != nil {
return err
}
if updateCount == 0 {
return ErrNoRowsUpdate
}
return nil
}
func ( m * defaultAgentShortLinkModel ) DeleteSoft ( ctx context . Context , session sqlx . Session , data * AgentShortLink ) error {
data . DelState = globalkey . DelStateYes
data . DeleteTime = sql . NullTime { Time : time . Now ( ) , Valid : true }
if err := m . UpdateWithVersion ( ctx , session , data ) ; err != nil {
return errors . Wrapf ( errors . New ( "delete soft failed " ) , "AgentShortLinkModel delete err : %+v" , err )
}
return nil
}
func ( m * defaultAgentShortLinkModel ) FindSum ( ctx context . Context , builder squirrel . SelectBuilder , field string ) ( float64 , error ) {
if len ( field ) == 0 {
return 0 , errors . Wrapf ( errors . New ( "FindSum Least One Field" ) , "FindSum Least One Field" )
}
builder = builder . Columns ( "IFNULL(SUM(" + field + "),0)" )
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . ToSql ( )
if err != nil {
return 0 , err
}
var resp float64
err = m . QueryRowNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return 0 , err
}
}
func ( m * defaultAgentShortLinkModel ) FindCount ( ctx context . Context , builder squirrel . SelectBuilder , field string ) ( int64 , error ) {
if len ( field ) == 0 {
return 0 , errors . Wrapf ( errors . New ( "FindCount Least One Field" ) , "FindCount Least One Field" )
}
builder = builder . Columns ( "COUNT(" + field + ")" )
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . ToSql ( )
if err != nil {
return 0 , err
}
var resp int64
err = m . QueryRowNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return 0 , err
}
}
func ( m * defaultAgentShortLinkModel ) FindAll ( ctx context . Context , builder squirrel . SelectBuilder , orderBy string ) ( [ ] * AgentShortLink , error ) {
builder = builder . Columns ( agentShortLinkRows )
if orderBy == "" {
builder = builder . OrderBy ( "id DESC" )
} else {
builder = builder . OrderBy ( orderBy )
}
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . ToSql ( )
if err != nil {
return nil , err
}
var resp [ ] * AgentShortLink
err = m . QueryRowsNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) FindPageListByPage ( ctx context . Context , builder squirrel . SelectBuilder , page , pageSize int64 , orderBy string ) ( [ ] * AgentShortLink , error ) {
builder = builder . Columns ( agentShortLinkRows )
if orderBy == "" {
builder = builder . OrderBy ( "id DESC" )
} else {
builder = builder . OrderBy ( orderBy )
}
if page < 1 {
page = 1
}
offset := ( page - 1 ) * pageSize
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . Offset ( uint64 ( offset ) ) . Limit ( uint64 ( pageSize ) ) . ToSql ( )
if err != nil {
return nil , err
}
var resp [ ] * AgentShortLink
err = m . QueryRowsNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) FindPageListByPageWithTotal ( ctx context . Context , builder squirrel . SelectBuilder , page , pageSize int64 , orderBy string ) ( [ ] * AgentShortLink , int64 , error ) {
total , err := m . FindCount ( ctx , builder , "id" )
if err != nil {
return nil , 0 , err
}
builder = builder . Columns ( agentShortLinkRows )
if orderBy == "" {
builder = builder . OrderBy ( "id DESC" )
} else {
builder = builder . OrderBy ( orderBy )
}
if page < 1 {
page = 1
}
offset := ( page - 1 ) * pageSize
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . Offset ( uint64 ( offset ) ) . Limit ( uint64 ( pageSize ) ) . ToSql ( )
if err != nil {
return nil , total , err
}
var resp [ ] * AgentShortLink
err = m . QueryRowsNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , total , nil
default :
return nil , total , err
}
}
func ( m * defaultAgentShortLinkModel ) FindPageListByIdDESC ( ctx context . Context , builder squirrel . SelectBuilder , preMinId , pageSize int64 ) ( [ ] * AgentShortLink , error ) {
builder = builder . Columns ( agentShortLinkRows )
if preMinId > 0 {
builder = builder . Where ( " id < ? " , preMinId )
}
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . OrderBy ( "id DESC" ) . Limit ( uint64 ( pageSize ) ) . ToSql ( )
if err != nil {
return nil , err
}
var resp [ ] * AgentShortLink
err = m . QueryRowsNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) FindPageListByIdASC ( ctx context . Context , builder squirrel . SelectBuilder , preMaxId , pageSize int64 ) ( [ ] * AgentShortLink , error ) {
builder = builder . Columns ( agentShortLinkRows )
if preMaxId > 0 {
builder = builder . Where ( " id > ? " , preMaxId )
}
query , values , err := builder . Where ( "del_state = ?" , globalkey . DelStateNo ) . OrderBy ( "id ASC" ) . Limit ( uint64 ( pageSize ) ) . ToSql ( )
if err != nil {
return nil , err
}
var resp [ ] * AgentShortLink
err = m . QueryRowsNoCacheCtx ( ctx , & resp , query , values ... )
switch err {
case nil :
return resp , nil
default :
return nil , err
}
}
func ( m * defaultAgentShortLinkModel ) Trans ( ctx context . Context , fn func ( ctx context . Context , session sqlx . Session ) error ) error {
return m . TransactCtx ( ctx , func ( ctx context . Context , session sqlx . Session ) error {
return fn ( ctx , session )
} )
}
func ( m * defaultAgentShortLinkModel ) SelectBuilder ( ) squirrel . SelectBuilder {
return squirrel . Select ( ) . From ( m . table )
}
2025-12-09 18:55:28 +08:00
func ( m * defaultAgentShortLinkModel ) Delete ( ctx context . Context , session sqlx . Session , id string ) error {
2025-12-02 19:57:10 +08:00
data , err := m . FindOne ( ctx , id )
if err != nil {
return err
}
yccAgentShortLinkIdKey := fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , id )
yccAgentShortLinkInviteCodeIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkInviteCodeIdTypeDelStatePrefix , data . InviteCodeId , data . Type , data . DelState )
yccAgentShortLinkLinkIdTypeDelStateKey := fmt . Sprintf ( "%s%v:%v:%v" , cacheYccAgentShortLinkLinkIdTypeDelStatePrefix , data . LinkId , data . Type , data . DelState )
yccAgentShortLinkShortCodeDelStateKey := fmt . Sprintf ( "%s%v:%v" , cacheYccAgentShortLinkShortCodeDelStatePrefix , data . ShortCode , data . DelState )
_ , err = m . ExecCtx ( ctx , func ( ctx context . Context , conn sqlx . SqlConn ) ( result sql . Result , err error ) {
query := fmt . Sprintf ( "delete from %s where `id` = ?" , m . table )
if session != nil {
return session . ExecCtx ( ctx , query , id )
}
return conn . ExecCtx ( ctx , query , id )
} , yccAgentShortLinkIdKey , yccAgentShortLinkInviteCodeIdTypeDelStateKey , yccAgentShortLinkLinkIdTypeDelStateKey , yccAgentShortLinkShortCodeDelStateKey )
return err
}
func ( m * defaultAgentShortLinkModel ) formatPrimary ( primary interface { } ) string {
return fmt . Sprintf ( "%s%v" , cacheYccAgentShortLinkIdPrefix , primary )
}
func ( m * defaultAgentShortLinkModel ) queryPrimary ( ctx context . Context , conn sqlx . SqlConn , v , primary interface { } ) error {
query := fmt . Sprintf ( "select %s from %s where `id` = ? and del_state = ? limit 1" , agentShortLinkRows , m . table )
return conn . QueryRowCtx ( ctx , v , query , primary , globalkey . DelStateNo )
}
func ( m * defaultAgentShortLinkModel ) tableName ( ) string {
return m . table
}